aboutsummaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python
diff options
context:
space:
mode:
authorSander Vanheule <[email protected]>2022-08-07 21:21:15 +0200
committerBartosz Golaszewski <[email protected]>2022-08-31 17:46:30 +0200
commitee0175b3b44288c74d5292c2a9c2c154f6c0317e (patch)
treec7ee8f9a7ef579a65186dd231102392b167aaff9 /tools/perf/scripts/python
parent518e26f11af2fe4f5bebf9a0351595d508c7077f (diff)
gpio: realtek-otto: switch to 32-bit I/O
By using 16-bit I/O on the GPIO peripheral, which is apparently not safe on MIPS, the IMR can end up containing garbage. This then results in interrupt triggers for lines that don't have an interrupt handler associated. The irq_desc lookup fails, and the ISR will not be cleared, keeping the CPU busy until reboot, or until another IMR operation restores the correct value. This situation appears to happen very rarely, for < 0.5% of IMR writes. Instead of using 8-bit or 16-bit I/O operations on the 32-bit memory mapped peripheral registers, switch to using 32-bit I/O only, operating on the entire bank for all single bit line settings. For 2-bit line settings, with 16-bit port values, stick to manual (un)packing. This issue has been seen on RTL8382M (HPE 1920-16G), RTL8391M (Netgear GS728TP v2), and RTL8393M (D-Link DGS-1210-52 F3, Zyxel GS1900-48). Reported-by: Luiz Angelo Daros de Luca <[email protected]> # DGS-1210-52 Reported-by: Birger Koblitz <[email protected]> # GS728TP Reported-by: Jan Hoffmann <[email protected]> # 1920-16G Fixes: 0d82fb1127fb ("gpio: Add Realtek Otto GPIO support") Signed-off-by: Sander Vanheule <[email protected]> Cc: Paul Cercueil <[email protected]> Reviewed-by: Linus Walleij <[email protected]> Signed-off-by: Bartosz Golaszewski <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions