int rx_id_delay;
int tx_id_delay;
int fifo_depth;
- int values_are_sane;
};
static int dp83867_ack_interrupt(struct phy_device *phydev)
ret = of_property_read_u32(of_node, "ti,rx-internal-delay",
&dp83867->rx_id_delay);
if (ret)
- goto invalid_dt;
+ return ret;
ret = of_property_read_u32(of_node, "ti,tx-internal-delay",
&dp83867->tx_id_delay);
if (ret)
- goto invalid_dt;
+ return ret;
- ret = of_property_read_u32(of_node, "ti,fifo-depth",
+ return of_property_read_u32(of_node, "ti,fifo-depth",
&dp83867->fifo_depth);
- if (ret)
- goto invalid_dt;
-
- dp83867->values_are_sane = 1;
-
- return 0;
-
-invalid_dt:
- phydev_err(phydev, "missing properties in device tree");
-
- /*
- * We can still run with a broken dt by not using any of the optional
- * parameters, so just don't set dp83867->values_are_sane.
- */
- return 0;
}
#else
static int dp83867_of_init(struct phy_device *phydev)
dp83867 = (struct dp83867_private *)phydev->priv;
}
- /*
- * With no or broken device tree, we don't have the values that we would
- * want to configure the phy with. In that case, cross our fingers and
- * assume that firmware did everything correctly for us or that we don't
- * need them.
- */
- if (!dp83867->values_are_sane)
- return 0;
-
if (phy_interface_is_rgmii(phydev)) {
ret = phy_write(phydev, MII_DP83867_PHYCTRL,
(dp83867->fifo_depth << DP83867_PHYCR_FIFO_DEPTH_SHIFT));