net: dsa: microchip: ksz9477: add error handling to ksz9477_r/w_phy
authorOleksij Rempel <o.rempel@pengutronix.de>
Fri, 26 Aug 2022 10:56:23 +0000 (12:56 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 31 Aug 2022 08:41:23 +0000 (09:41 +0100)
Now ksz_pread/ksz_pwrite can return error value. So, make use of it.

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/microchip/ksz9477.c

index a4f682d3e1fe67417a4e9b76bf6292b4c35d5600..f60ceaf25a66c7e08e855b5e94830686fa80b80e 100644 (file)
@@ -277,6 +277,7 @@ static void ksz9477_r_phy_quirks(struct ksz_device *dev, u16 addr, u16 reg,
 int ksz9477_r_phy(struct ksz_device *dev, u16 addr, u16 reg, u16 *data)
 {
        u16 val = 0xffff;
+       int ret;
 
        /* No real PHY after this. Simulate the PHY.
         * A fixed PHY can be setup in the device tree, but this function is
@@ -317,7 +318,10 @@ int ksz9477_r_phy(struct ksz_device *dev, u16 addr, u16 reg, u16 *data)
                        break;
                }
        } else {
-               ksz_pread16(dev, addr, 0x100 + (reg << 1), &val);
+               ret = ksz_pread16(dev, addr, 0x100 + (reg << 1), &val);
+               if (ret)
+                       return ret;
+
                ksz9477_r_phy_quirks(dev, addr, reg, &val);
        }
 
@@ -334,11 +338,9 @@ int ksz9477_w_phy(struct ksz_device *dev, u16 addr, u16 reg, u16 val)
 
        /* No gigabit support.  Do not write to this register. */
        if (!dev->info->gbit_capable[addr] && reg == MII_CTRL1000)
-               return 0;
+               return -ENXIO;
 
-       ksz_pwrite16(dev, addr, 0x100 + (reg << 1), val);
-
-       return 0;
+       return ksz_pwrite16(dev, addr, 0x100 + (reg << 1), val);
 }
 
 void ksz9477_cfg_port_member(struct ksz_device *dev, int port, u8 member)