|
@@ -421,10 +421,10 @@ int of_phy_register_fixed_link(struct device_node *np)
|
|
|
{
|
|
|
struct fixed_phy_status status = {};
|
|
|
struct device_node *fixed_link_node;
|
|
|
- const __be32 *fixed_link_prop;
|
|
|
+ u32 fixed_link_prop[5];
|
|
|
struct phy_device *phy;
|
|
|
const char *managed;
|
|
|
- int link_gpio, len;
|
|
|
+ int link_gpio;
|
|
|
|
|
|
if (of_property_read_string(np, "managed", &managed) == 0) {
|
|
|
if (strcmp(managed, "in-band-status") == 0) {
|
|
@@ -459,13 +459,13 @@ int of_phy_register_fixed_link(struct device_node *np)
|
|
|
}
|
|
|
|
|
|
/* Old binding */
|
|
|
- fixed_link_prop = of_get_property(np, "fixed-link", &len);
|
|
|
- if (fixed_link_prop && len == (5 * sizeof(__be32))) {
|
|
|
+ if (of_property_read_u32_array(np, "fixed-link", fixed_link_prop,
|
|
|
+ ARRAY_SIZE(fixed_link_prop)) == 0) {
|
|
|
status.link = 1;
|
|
|
- status.duplex = be32_to_cpu(fixed_link_prop[1]);
|
|
|
- status.speed = be32_to_cpu(fixed_link_prop[2]);
|
|
|
- status.pause = be32_to_cpu(fixed_link_prop[3]);
|
|
|
- status.asym_pause = be32_to_cpu(fixed_link_prop[4]);
|
|
|
+ status.duplex = fixed_link_prop[1];
|
|
|
+ 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);
|
|
|
}
|