summaryrefslogtreecommitdiff
path: root/drivers/net/plip
diff options
context:
space:
mode:
authorMichael Walle <michael@walle.cc>2022-12-05 21:04:53 +0100
committerJakub Kicinski <kuba@kernel.org>2022-12-07 20:04:11 -0800
commit5f4d487d01ff5349da38f7a09ca36bf6aa2e29fb (patch)
tree000b2585a67a3d86c12b7858d9fec9e30b0e923a /drivers/net/plip
parent65e349f766a6f63d9f8679697fce8cfba1cce672 (diff)
net: phy: mxl-gpy: add MDINT workaround
At least the GPY215B and GPY215C has a bug where it is still driving the interrupt line (MDINT) even after the interrupt status register is read and its bits are cleared. This will cause an interrupt storm. Although the MDINT is multiplexed with a GPIO pin and theoretically we could switch the pinmux to GPIO input mode, this isn't possible because the access to this register will stall exactly as long as the interrupt line is asserted. We exploit this very fact and just read a random internal register in our interrupt handler. This way, it will be delayed until the external interrupt line is released and an interrupt storm is avoided. The internal register access via the mailbox was deduced by looking at the downstream PHY API because the datasheet doesn't mention any of this. Fixes: 7d901a1e878a ("net: phy: add Maxlinear GPY115/21x/24x driver") Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://lore.kernel.org/r/20221205200453.3447866-1-michael@walle.cc Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/plip')
0 files changed, 0 insertions, 0 deletions