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.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c fixes from Wolfram Sang:
"The main thing is the removal of 'probe_new' because all i2c client
drivers are converted now. Thanks Uwe, this marks the end of a long
conversion process.

Other than that, we have a few Kconfig updates and driver bugfixes"

* tag 'i2c-for-6.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
i2c: cadence: Fix the kernel-doc warnings
i2c: aspeed: Reset the i2c controller when timeout occurs
i2c: I2C_MLXCPLD on ARM64 should depend on ACPI
i2c: Make I2C_ATR invisible
i2c: Drop legacy callback .probe_new()
w1: ds2482: Switch back to use struct i2c_driver's .probe()

+11 -16
+1 -1
drivers/i2c/Kconfig
··· 72 72 source "drivers/i2c/muxes/Kconfig" 73 73 74 74 config I2C_ATR 75 - tristate "I2C Address Translator (ATR) support" 75 + tristate "I2C Address Translator (ATR) support" if COMPILE_TEST 76 76 help 77 77 Enable support for I2C Address Translator (ATR) chips. 78 78
+2 -2
drivers/i2c/busses/Kconfig
··· 1384 1384 1385 1385 config I2C_MLXCPLD 1386 1386 tristate "Mellanox I2C driver" 1387 - depends on X86_64 || ARM64 || COMPILE_TEST 1387 + depends on X86_64 || (ARM64 && ACPI) || COMPILE_TEST 1388 1388 help 1389 1389 This exposes the Mellanox platform I2C busses to the linux I2C layer 1390 - for X86 based systems. 1390 + for X86 and ARM64/ACPI based systems. 1391 1391 Controller is implemented as CPLD logic. 1392 1392 1393 1393 This driver can also be built as a module. If so, the module will be
+5 -2
drivers/i2c/busses/i2c-aspeed.c
··· 698 698 699 699 if (time_left == 0) { 700 700 /* 701 - * If timed out and bus is still busy in a multi master 702 - * environment, attempt recovery at here. 701 + * In a multi-master setup, if a timeout occurs, attempt 702 + * recovery. But if the bus is idle, we still need to reset the 703 + * i2c controller to clear the remaining interrupts. 703 704 */ 704 705 if (bus->multi_master && 705 706 (readl(bus->base + ASPEED_I2C_CMD_REG) & 706 707 ASPEED_I2CD_BUS_BUSY_STS)) 707 708 aspeed_i2c_recover_bus(bus); 709 + else 710 + aspeed_i2c_reset(bus); 708 711 709 712 /* 710 713 * If timed out and the state is still pending, drop the pending
+1
drivers/i2c/busses/i2c-cadence.c
··· 182 182 * @reset: Reset control for the device 183 183 * @quirks: flag for broken hold bit usage in r1p10 184 184 * @ctrl_reg: Cached value of the control register. 185 + * @rinfo: I2C GPIO recovery information 185 186 * @ctrl_reg_diva_divb: value of fields DIV_A and DIV_B from CR register 186 187 * @slave: Registered slave instance. 187 188 * @dev_mode: I2C operating role(master/slave).
+1 -1
drivers/w1/masters/ds2482.c
··· 551 551 .driver = { 552 552 .name = "ds2482", 553 553 }, 554 - .probe_new = ds2482_probe, 554 + .probe = ds2482_probe, 555 555 .remove = ds2482_remove, 556 556 .id_table = ds2482_id, 557 557 };
+1 -10
include/linux/i2c.h
··· 237 237 * struct i2c_driver - represent an I2C device driver 238 238 * @class: What kind of i2c device we instantiate (for detect) 239 239 * @probe: Callback for device binding 240 - * @probe_new: Transitional callback for device binding - do not use 241 240 * @remove: Callback for device unbinding 242 241 * @shutdown: Callback for device shutdown 243 242 * @alert: Alert callback, for example for the SMBus alert protocol ··· 271 272 struct i2c_driver { 272 273 unsigned int class; 273 274 274 - union { 275 275 /* Standard driver model interfaces */ 276 - int (*probe)(struct i2c_client *client); 277 - /* 278 - * Legacy callback that was part of a conversion of .probe(). 279 - * Today it has the same semantic as .probe(). Don't use for new 280 - * code. 281 - */ 282 - int (*probe_new)(struct i2c_client *client); 283 - }; 276 + int (*probe)(struct i2c_client *client); 284 277 void (*remove)(struct i2c_client *client); 285 278 286 279