net: micrel: Fix lan8841_config_intr after getting out of sleep mode
authorHoratiu Vultur <horatiu.vultur@microchip.com>
Fri, 24 May 2024 08:53:50 +0000 (10:53 +0200)
committerJakub Kicinski <kuba@kernel.org>
Mon, 27 May 2024 23:58:39 +0000 (16:58 -0700)
commit4fb679040d9f758eeb3b4d01bbde6405bf20e64e
tree6a38ceba007df721804998664882a9aebd2c5865
parentbf0497f53c8535f99b72041529d3f7708a6e2c0d
net: micrel: Fix lan8841_config_intr after getting out of sleep mode

When the interrupt is enabled, the function lan8841_config_intr tries to
clear any pending interrupts by reading the interrupt status, then
checks the return value for errors and then continue to enable the
interrupt. It has been seen that once the system gets out of sleep mode,
the interrupt status has the value 0x400 meaning that the PHY detected
that the link was in low power. That is correct value but the problem is
that the check is wrong.  We try to check for errors but we return an
error also in this case which is not an error. Therefore fix this by
returning only when there is an error.

Fixes: a8f1a19d27ef ("net: micrel: Add support for lan8841 PHY")
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Reviewed-by: Suman Ghosh <sumang@marvell.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://lore.kernel.org/r/20240524085350.359812-1-horatiu.vultur@microchip.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/micrel.c