[PATCH v2 0/6] Apple/PASemi i2c error recovery fixes

Sven Peter via B4 Relay
2025-04-15T15:37:17Z

Hi,

This series adds a few fixes/improvements to the error recovery for
Apple/PASemi i2c controllers.
The patches have been in our downstream tree and were originally used
to debug a rare glitch caused by clock strechting but are useful in
general. We haven't seen the controller misbehave since adding these.

Best,

Sven

Signed-off-by: Sven Peter <sven@svenpeter.dev>
---
Changes in v2:
- Added commit to use the correct include (bits.h instead of bitfield.h)
- Added commit to sort includes
- Moved timeout explanations to code instead of just the commit log
- Made timeout recovery also work correctly in the interrupt case when
waiting for the condition failed
- Used readx_poll_timeout instead of open-coded alternative
- Link to v1: https://lore.kernel.org/r/20250222-pasemi-fixes-v1-0-d7ea33d50c5e@svenpeter.dev

---
Hector Martin (3):
i2c: pasemi: Improve error recovery
i2c: pasemi: Enable the unjam machine
i2c: pasemi: Log bus reset causes

Sven Peter (3):
i2c: pasemi: Use correct bits.h include
i2c: pasemi: Sort includes alphabetically
i2c: pasemi: Improve timeout handling

drivers/i2c/busses/i2c-pasemi-core.c | 114 ++++++++++++++++++++++++++++-------
drivers/i2c/busses/i2c-pasemi-pci.c | 10 +--
2 files changed, 96 insertions(+), 28 deletions(-)
---
base-commit: 0af2f6be1b4281385b618cb86ad946eded089ac8
change-id: 20250220-pasemi-fixes-916cb77404ba

Best regards,
--
Sven Peter <sven@svenpeter.dev>