ast2600 i2c irq error
Joel Stanley
joel at jms.id.au
Mon Oct 24 15:02:40 AEDT 2022
With the 6.0 kernel I saw this on hardware:
[ 205.644781] aspeed-i2c-bus 1e78a800.i2c-bus: irq handled != irq.
expected 0x00000021, but was 0x00000020
[ 205.669842] aspeed-i2c-bus 1e78a800.i2c-bus: irq handled != irq.
expected 0x00000021, but was 0x00000020
[ 205.694814] aspeed-i2c-bus 1e78a800.i2c-bus: irq handled != irq.
expected 0x00000021, but was 0x00000020
[ 205.719805] aspeed-i2c-bus 1e78a800.i2c-bus: irq handled != irq.
expected 0x00000021, but was 0x00000020
$ bitfield G6I2CD10 0x00000021
decoding as AST2600 I2C interrupt status register
0x00000021 [33]
Slave Address Received Pending: 0x0
Slave mode inactive timeout: 0x0
SDA data-low timeout: 0x0
Bus recover done: 0x0
SMBus device alert: 0x0
Reserved: 0x0
Reserved: 0x0
Reserved: 0x0
Reserved: 0x0
Slave address received match: 0x0
SCL clock-low timeout: 0x0
Abnormal start/stop: 0x1
Normal stop: 0x0
Master arbitration loss: 0x0
Receive done: 0x0
Transmit done with NACK: 0x0
Transmit done with ACK: 0x1
I think it was happening at host boot time:
Oct 21 03:03:20 ever9bmc kernel: aspeed-i2c-bus 1e78a800.i2c-bus: irq
handled != irq. expected 0x00000021, but was 0x00000020
Oct 21 03:03:20 ever9bmc platform-fru-detect[587]: Failed to read
block data from device 0x6a on /dev/i2c-40: Protocol error
Oct 21 03:03:20 ever9bmc platform-fru-detect[587]: Unhandled error
condition in notifier callback, disabling sink: 71
There were no i2c patches in dev-5.15. Since v5.15, the following
patches have gone in:
$ git log --oneline v5.15..dev-6.0 -- drivers/i2c/busses/i2c-aspeed.c
drivers/irqchip/irq-aspeed-i2c-ic.c
5bd733a9928e i2c: aspeed: Assert NAK when slave is busy
ea1558ce149d i2c: move drivers from strlcpy to strscpy
50f0f26e7c86 irqchip/aspeed-i2c-ic: Fix irq_of_parse_and_map() return value
653becec6d56 i2c: aspeed: Remove unused includes
The only one of these that had signficiant changes is
https://github.com/torvalds/linux/commit/5bd733a9928e.
More information about the openbmc
mailing list