Message ID | 20220830064055.2340403-1-horatiu.vultur@microchip.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 4a4ce82212ef014d70f486a427005b2b5bab8e34 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v3] net: phy: micrel: Make the GPIO to be non-exclusive | expand |
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Tue, 30 Aug 2022 08:40:55 +0200 you wrote: > The same GPIO line can be shared by multiple phys for the coma mode pin. > If that is the case then, all the other phys that share the same line > will failed to be probed because the access to the gpio line is not > non-exclusive. > Fix this by making access to the gpio line to be nonexclusive using flag > GPIOD_FLAGS_BIT_NONEXCLUSIVE. This allows all the other PHYs to be > probed. > > [...] Here is the summary with links: - [net,v3] net: phy: micrel: Make the GPIO to be non-exclusive https://git.kernel.org/netdev/net/c/4a4ce82212ef You are awesome, thank you!
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c index e78d0bf69bc3..6f52b4fb6888 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c @@ -2873,12 +2873,18 @@ static int lan8814_config_init(struct phy_device *phydev) return 0; } +/* It is expected that there will not be any 'lan8814_take_coma_mode' + * function called in suspend. Because the GPIO line can be shared, so if one of + * the phys goes back in coma mode, then all the other PHYs will go, which is + * wrong. + */ static int lan8814_release_coma_mode(struct phy_device *phydev) { struct gpio_desc *gpiod; gpiod = devm_gpiod_get_optional(&phydev->mdio.dev, "coma-mode", - GPIOD_OUT_HIGH_OPEN_DRAIN); + GPIOD_OUT_HIGH_OPEN_DRAIN | + GPIOD_FLAGS_BIT_NONEXCLUSIVE); if (IS_ERR(gpiod)) return PTR_ERR(gpiod);