|
@@ -422,16 +422,13 @@ int of_phy_register_fixed_link(struct device_node *np)
|
|
|
struct fixed_phy_status status = {};
|
|
|
struct device_node *fixed_link_node;
|
|
|
u32 fixed_link_prop[5];
|
|
|
- struct phy_device *phy;
|
|
|
const char *managed;
|
|
|
- int link_gpio;
|
|
|
+ int link_gpio = -1;
|
|
|
|
|
|
- if (of_property_read_string(np, "managed", &managed) == 0) {
|
|
|
- if (strcmp(managed, "in-band-status") == 0) {
|
|
|
- /* status is zeroed, namely its .link member */
|
|
|
- phy = fixed_phy_register(PHY_POLL, &status, -1, np);
|
|
|
- return PTR_ERR_OR_ZERO(phy);
|
|
|
- }
|
|
|
+ if (of_property_read_string(np, "managed", &managed) == 0 &&
|
|
|
+ strcmp(managed, "in-band-status") == 0) {
|
|
|
+ /* status is zeroed, namely its .link member */
|
|
|
+ goto register_phy;
|
|
|
}
|
|
|
|
|
|
/* New binding */
|
|
@@ -454,8 +451,7 @@ int of_phy_register_fixed_link(struct device_node *np)
|
|
|
if (link_gpio == -EPROBE_DEFER)
|
|
|
return -EPROBE_DEFER;
|
|
|
|
|
|
- phy = fixed_phy_register(PHY_POLL, &status, link_gpio, np);
|
|
|
- return PTR_ERR_OR_ZERO(phy);
|
|
|
+ goto register_phy;
|
|
|
}
|
|
|
|
|
|
/* Old binding */
|
|
@@ -466,11 +462,14 @@ int of_phy_register_fixed_link(struct device_node *np)
|
|
|
status.speed = fixed_link_prop[2];
|
|
|
status.pause = fixed_link_prop[3];
|
|
|
status.asym_pause = fixed_link_prop[4];
|
|
|
- phy = fixed_phy_register(PHY_POLL, &status, -1, np);
|
|
|
- return PTR_ERR_OR_ZERO(phy);
|
|
|
+ goto register_phy;
|
|
|
}
|
|
|
|
|
|
return -ENODEV;
|
|
|
+
|
|
|
+register_phy:
|
|
|
+ return PTR_ERR_OR_ZERO(fixed_phy_register(PHY_POLL, &status, link_gpio,
|
|
|
+ np));
|
|
|
}
|
|
|
EXPORT_SYMBOL(of_phy_register_fixed_link);
|
|
|
|