summaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2024-07-30 07:19:41 -0700
committerWolfram Sang <wsa+renesas@sang-engineering.com>2024-08-04 16:29:34 +0200
commitf6c29f710c1ff2590109f83be3e212b86c01e0f3 (patch)
tree62849bed957f9bf47c7feb056e19f21ce5e265d9 /ipc
parent37c526f00bc1c4f847fc800085f8f009d2e11be6 (diff)
downloadlinux-stable-f6c29f710c1ff2590109f83be3e212b86c01e0f3.tar.gz
linux-stable-f6c29f710c1ff2590109f83be3e212b86c01e0f3.tar.bz2
linux-stable-f6c29f710c1ff2590109f83be3e212b86c01e0f3.zip
i2c: smbus: Send alert notifications to all devices if source not found
If a SMBus alert is received and the originating device is not found, the reason may be that the address reported on the SMBus alert address is corrupted, for example because multiple devices asserted alert and do not correctly implement SMBus arbitration. If this happens, call alert handlers on all devices connected to the given I2C bus, in the hope that this cleans up the situation. This change reliably fixed the problem on a system with multiple devices on a single bus. Example log where the device on address 0x18 (ADM1021) and on address 0x4c (ADT7461A) both had the alert line asserted: smbus_alert 3-000c: SMBALERT# from dev 0x0c, flag 0 smbus_alert 3-000c: no driver alert()! smbus_alert 3-000c: SMBALERT# from dev 0x0c, flag 0 smbus_alert 3-000c: no driver alert()! lm90 3-0018: temp1 out of range, please check! lm90 3-0018: Disabling ALERT# lm90 3-0029: Everything OK lm90 3-002a: Everything OK lm90 3-004c: temp1 out of range, please check! lm90 3-004c: temp2 out of range, please check! lm90 3-004c: Disabling ALERT# Fixes: b5527a7766f0 ("i2c: Add SMBus alert support") Signed-off-by: Guenter Roeck <linux@roeck-us.net> [wsa: fixed a typo in the commit message] Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Diffstat (limited to 'ipc')
0 files changed, 0 insertions, 0 deletions