diff options
Diffstat (limited to 'target/linux/generic/files/drivers/net/phy/b53/b53_spi.c')
-rw-r--r-- | target/linux/generic/files/drivers/net/phy/b53/b53_spi.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_spi.c b/target/linux/generic/files/drivers/net/phy/b53/b53_spi.c index 8c6b171e75..469a8ddde3 100644 --- a/target/linux/generic/files/drivers/net/phy/b53/b53_spi.c +++ b/target/linux/generic/files/drivers/net/phy/b53/b53_spi.c @@ -86,6 +86,7 @@ static inline int b53_spi_set_page(struct spi_device *spi, u8 page) static inline int b53_prepare_reg_access(struct spi_device *spi, u8 page) { int ret = b53_spi_clear_status(spi); + if (ret) return ret; @@ -144,6 +145,7 @@ static int b53_spi_read8(struct b53_device *dev, u8 page, u8 reg, u8 *val) static int b53_spi_read16(struct b53_device *dev, u8 page, u8 reg, u16 *val) { int ret = b53_spi_read(dev, page, reg, (u8 *)val, 2); + if (!ret) *val = le16_to_cpu(*val); @@ -153,6 +155,7 @@ static int b53_spi_read16(struct b53_device *dev, u8 page, u8 reg, u16 *val) static int b53_spi_read32(struct b53_device *dev, u8 page, u8 reg, u32 *val) { int ret = b53_spi_read(dev, page, reg, (u8 *)val, 4); + if (!ret) *val = le32_to_cpu(*val); @@ -174,6 +177,7 @@ static int b53_spi_read48(struct b53_device *dev, u8 page, u8 reg, u64 *val) static int b53_spi_read64(struct b53_device *dev, u8 page, u8 reg, u64 *val) { int ret = b53_spi_read(dev, page, reg, (u8 *)val, 8); + if (!ret) *val = le64_to_cpu(*val); @@ -303,9 +307,8 @@ static int b53_spi_remove(struct spi_device *spi) { struct b53_device *dev = spi_get_drvdata(spi); - if (dev) { + if (dev) b53_switch_remove(dev); - } return 0; } |