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