diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0609-net-phy-Also-request-modules-for-C45-IDs.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/0609-net-phy-Also-request-modules-for-C45-IDs.patch | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0609-net-phy-Also-request-modules-for-C45-IDs.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0609-net-phy-Also-request-modules-for-C45-IDs.patch new file mode 100644 index 00000000..71a4db58 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0609-net-phy-Also-request-modules-for-C45-IDs.patch @@ -0,0 +1,56 @@ +From e305df337fa76c854511e23c02828800d08c4ae8 Mon Sep 17 00:00:00 2001 +From: Jose Abreu <jose.abreu@synopsys.com> +Date: Sun, 2 Dec 2018 16:33:14 +0100 +Subject: [PATCH 0609/2940] net: phy: Also request modules for C45 IDs + +Logic of phy_device_create() requests PHY modules according to PHY ID +but for C45 PHYs we use different field for the IDs. + +Let's also request the modules for these IDs. + +Changes from v1: +- Only request C22 modules if C45 are not present (Andrew) + +Signed-off-by: Jose Abreu <joabreu@synopsys.com> +Cc: Andrew Lunn <andrew@lunn.ch> +Cc: Florian Fainelli <f.fainelli@gmail.com> +Cc: "David S. Miller" <davem@davemloft.net> +Cc: Joao Pinto <joao.pinto@synopsys.com> +Reviewed-by: Andrew Lunn <andrew@lunn.ch> +Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> +Signed-off-by: David S. Miller <davem@davemloft.net> +Signed-off-by: Sudheesh Mavila <sudheesh.mavila@amd.com> +--- + drivers/net/phy/phy_device.c | 16 +++++++++++++++- + 1 file changed, 15 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c +index 55b7f5c10f77..abdae4dc4867 100755 +--- a/drivers/net/phy/phy_device.c ++++ b/drivers/net/phy/phy_device.c +@@ -599,7 +599,21 @@ struct phy_device *phy_device_create(struct mii_bus *bus, int addr, int phy_id, + * driver will get bored and give up as soon as it finds that + * there's no driver _already_ loaded. + */ +- request_module(MDIO_MODULE_PREFIX MDIO_ID_FMT, MDIO_ID_ARGS(phy_id)); ++ if (is_c45 && c45_ids) { ++ const int num_ids = ARRAY_SIZE(c45_ids->device_ids); ++ int i; ++ ++ for (i = 1; i < num_ids; i++) { ++ if (!(c45_ids->devices_in_package & (1 << i))) ++ continue; ++ ++ request_module(MDIO_MODULE_PREFIX MDIO_ID_FMT, ++ MDIO_ID_ARGS(c45_ids->device_ids[i])); ++ } ++ } else { ++ request_module(MDIO_MODULE_PREFIX MDIO_ID_FMT, ++ MDIO_ID_ARGS(phy_id)); ++ } + + device_initialize(&mdiodev->dev); + +-- +2.17.1 + |