diff options
author | Troy Mitchell <troy.mitchell@linux.spacemit.com> | 2025-09-25 10:02:26 +0800 |
---|---|---|
committer | Wolfram Sang <wsa+renesas@sang-engineering.com> | 2025-09-25 23:15:00 +0200 |
commit | 445522fe7aad6131b2747ae8c76f77266054cd84 (patch) | |
tree | 8aa0b8bd176d90ad72622b61b0c856543c92a5c8 /drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |
parent | 41d6f90ef5dc2841bdd09817c63a3d6188473b9b (diff) |
i2c: spacemit: remove stop function to avoid bus error
Previously, STOP handling was split into two separate steps:
1) clear TB/STOP/START/ACK bits
2) issue STOP by calling spacemit_i2c_stop()
This left a small window where the control register was updated
twice, which can confuse the controller. While this race has not
been observed with interrupt-driven transfers, it reliably causes
bus errors in PIO mode.
Inline the STOP sequence into the IRQ handler and ensure that
control register bits are updated atomically in a single writel().
Fixes: 5ea558473fa31 ("i2c: spacemit: add support for SpacemiT K1 SoC")
Signed-off-by: Troy Mitchell <troy.mitchell@linux.spacemit.com>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
0 files changed, 0 insertions, 0 deletions