Message ID | 20230629191725.1434142-1-ahalaney@redhat.com (mailing list archive) |
---|---|
State | Deferred |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [1/3] net: stmmac: dwmac-qcom-ethqos: Return device_get_phy_mode() errors properly | expand |
On Thu, Jun 29, 2023 at 02:14:16PM -0500, Andrew Halaney wrote: > Other than -ENODEV, other errors resulted in -EINVAL being returned > instead of the actual error. > > Signed-off-by: Andrew Halaney <ahalaney@redhat.com> > --- > drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > index e62940414e54..3bf025e8e2bd 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > @@ -721,6 +721,9 @@ static int qcom_ethqos_probe(struct platform_device *pdev) > return -ENOMEM; > > ethqos->phy_mode = device_get_phy_mode(dev); > + if (ethqos->phy_mode < 0) > + return dev_err_probe(dev, ethqos->phy_mode, > + "Failed to get phy mode\n"); If this every used on anything other than device tree? of_get_phy_mode() has a better API, there is a clear separation of the return value indicating success/fail, and the interface mode found in DT. You can then change phy_mode in struct qcom_ethqos to be phy_interface_t. Andrew
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c index e62940414e54..3bf025e8e2bd 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c @@ -721,6 +721,9 @@ static int qcom_ethqos_probe(struct platform_device *pdev) return -ENOMEM; ethqos->phy_mode = device_get_phy_mode(dev); + if (ethqos->phy_mode < 0) + return dev_err_probe(dev, ethqos->phy_mode, + "Failed to get phy mode\n"); switch (ethqos->phy_mode) { case PHY_INTERFACE_MODE_RGMII: case PHY_INTERFACE_MODE_RGMII_ID: @@ -731,8 +734,6 @@ static int qcom_ethqos_probe(struct platform_device *pdev) case PHY_INTERFACE_MODE_SGMII: ethqos->configure_func = ethqos_configure_sgmii; break; - case -ENODEV: - return -ENODEV; default: return -EINVAL; }
Other than -ENODEV, other errors resulted in -EINVAL being returned instead of the actual error. Signed-off-by: Andrew Halaney <ahalaney@redhat.com> --- drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)