Skip to content

Commit 075e238

Browse files
elkablodavem330
authored andcommitted
mdio_bus: fix mdio_register_device when RESET_CONTROLLER is disabled
When CONFIG_RESET_CONTROLLER is disabled, the devm_reset_control_get_exclusive function returns -ENOTSUPP. This is not handled in subsequent check and then the mdio device fails to probe. When CONFIG_RESET_CONTROLLER is enabled, its code checks in OF for reset device, and since it is not present, returns -ENOENT. -ENOENT is handled. Add -ENOTSUPP also. This happened to me when upgrading kernel on Turris Omnia. You either have to enable CONFIG_RESET_CONTROLLER or use this patch. Signed-off-by: Marek Behún <marek.behun@nic.cz> Fixes: 71dd6c0 ("net: phy: add support for reset-controller") Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Andrew Lunn <andrew@lunn.ch> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent ca749bb commit 075e238

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

drivers/net/phy/mdio_bus.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ static int mdiobus_register_reset(struct mdio_device *mdiodev)
6565
reset = devm_reset_control_get_exclusive(&mdiodev->dev,
6666
"phy");
6767
if (IS_ERR(reset)) {
68-
if (PTR_ERR(reset) == -ENOENT || PTR_ERR(reset) == -ENOSYS)
68+
if (PTR_ERR(reset) == -ENOENT || PTR_ERR(reset) == -ENOSYS ||
69+
PTR_ERR(reset) == -ENOTSUPP)
6970
reset = NULL;
7071
else
7172
return PTR_ERR(reset);

0 commit comments

Comments
 (0)