Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'i2c-for-6.7-final' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c fixes from Wolfram Sang:
"Improve the detection when to run atomic transfer handlers for kernels
with preemption disabled. This removes some false positive splats a
number of users were seeing if their driver didn't have support for
atomic transfers.

Also, fix a typo in the docs while we are here"

* tag 'i2c-for-6.7-final' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
i2c: core: Fix atomic xfer check for non-preempt config
Documentation/i2c: fix spelling error in i2c-address-translators

+4 -2
+1 -1
Documentation/i2c/i2c-address-translators.rst
··· 71 71 - Physical I2C transaction on bus A, slave address 0x20 72 72 - ATR chip detects transaction on address 0x20, finds it in table, 73 73 propagates transaction on bus B with address translated to 0x10, 74 - keeps clock streched on bus A waiting for reply 74 + keeps clock stretched on bus A waiting for reply 75 75 - Slave X chip (on bus B) detects transaction at its own physical 76 76 address 0x10 and replies normally 77 77 - ATR chip stops clock stretching and forwards reply on bus A,
+3 -1
drivers/i2c/i2c-core.h
··· 3 3 * i2c-core.h - interfaces internal to the I2C framework 4 4 */ 5 5 6 + #include <linux/kconfig.h> 6 7 #include <linux/rwsem.h> 7 8 8 9 struct i2c_devinfo { ··· 30 29 */ 31 30 static inline bool i2c_in_atomic_xfer_mode(void) 32 31 { 33 - return system_state > SYSTEM_RUNNING && !preemptible(); 32 + return system_state > SYSTEM_RUNNING && 33 + (IS_ENABLED(CONFIG_PREEMPT_COUNT) ? !preemptible() : irqs_disabled()); 34 34 } 35 35 36 36 static inline int __i2c_lock_bus_helper(struct i2c_adapter *adap)