]> www.infradead.org Git - users/jedix/linux-maple.git/commit
net: dsa: mv88e6xxx: Reset mv88e6393x force WD event bit
authorGustav Ekelund <gustaek@axis.com>
Fri, 31 Mar 2023 08:40:13 +0000 (10:40 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Apr 2023 14:55:21 +0000 (16:55 +0200)
commit90c29c00b156061757ceaa14eb17a854c8f1f938
tree6f1af67e8799129098171b233b0702778a1c7154
parente48e6a4652c5e368ac0df37802374c4f6bc65728
net: dsa: mv88e6xxx: Reset mv88e6393x force WD event bit

[ Upstream commit 089b91a0155c4de1209a07ff2a7dd299ff3ece47 ]

The force watchdog event bit is not cleared during SW reset in the
mv88e6393x switch. This is a different behavior compared to mv886390 which
clears the force WD event bit as advertised. This causes a force WD event
to be handled over and over again as the SW reset following the event never
clears the force WD event bit.

Explicitly clear the watchdog event register to 0 in irq_action when
handling an event to prevent the switch from sending continuous interrupts.
Marvell aren't aware of any other stuck bits apart from the force WD
bit.

Fixes: de776d0d316f ("net: dsa: mv88e6xxx: add support for mv88e6393x family"
Signed-off-by: Gustav Ekelund <gustaek@axis.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/dsa/mv88e6xxx/chip.c
drivers/net/dsa/mv88e6xxx/global2.c
drivers/net/dsa/mv88e6xxx/global2.h