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 branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c fixes from Wolfram Sang:
"A core fix for ACPI matching and two driver bugfixes"

* 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
i2c: iproc: Fix shifting 31 bits
i2c: rcar: in slave mode, clear NACK earlier
i2c: acpi: Remove dead code, i.e. i2c_acpi_match_device()
i2c: core: Don't fail PRP0001 enumeration when no ID table exist

+4 -22
+2 -2
drivers/i2c/busses/i2c-bcm-iproc.c
··· 720 720 721 721 /* mark the last byte */ 722 722 if (!process_call && (i == msg->len - 1)) 723 - val |= 1 << M_TX_WR_STATUS_SHIFT; 723 + val |= BIT(M_TX_WR_STATUS_SHIFT); 724 724 725 725 iproc_i2c_wr_reg(iproc_i2c, M_TX_OFFSET, val); 726 726 } ··· 738 738 */ 739 739 addr = i2c_8bit_addr_from_msg(msg); 740 740 /* mark it the last byte out */ 741 - val = addr | (1 << M_TX_WR_STATUS_SHIFT); 741 + val = addr | BIT(M_TX_WR_STATUS_SHIFT); 742 742 iproc_i2c_wr_reg(iproc_i2c, M_TX_OFFSET, val); 743 743 } 744 744
+1
drivers/i2c/busses/i2c-rcar.c
··· 590 590 /* master sent stop */ 591 591 if (ssr_filtered & SSR) { 592 592 i2c_slave_event(priv->slave, I2C_SLAVE_STOP, &value); 593 + rcar_i2c_write(priv, ICSCR, SIE | SDBS); /* clear our NACK */ 593 594 rcar_i2c_write(priv, ICSIER, SAR); 594 595 rcar_i2c_write(priv, ICSSR, ~SSR & 0xff); 595 596 }
-10
drivers/i2c/i2c-core-acpi.c
··· 276 276 dev_warn(&adap->dev, "failed to enumerate I2C slaves\n"); 277 277 } 278 278 279 - const struct acpi_device_id * 280 - i2c_acpi_match_device(const struct acpi_device_id *matches, 281 - struct i2c_client *client) 282 - { 283 - if (!(client && matches)) 284 - return NULL; 285 - 286 - return acpi_match_device(matches, &client->dev); 287 - } 288 - 289 279 static const struct acpi_device_id i2c_acpi_force_400khz_device_ids[] = { 290 280 /* 291 281 * These Silead touchscreen controllers only work at 400KHz, for
+1 -1
drivers/i2c/i2c-core-base.c
··· 480 480 * or ACPI ID table is supplied for the probing device. 481 481 */ 482 482 if (!driver->id_table && 483 - !i2c_acpi_match_device(dev->driver->acpi_match_table, client) && 483 + !acpi_driver_match_device(dev, dev->driver) && 484 484 !i2c_of_match_device(dev->driver->of_match_table, client)) { 485 485 status = -ENODEV; 486 486 goto put_sync_adapter;
-9
drivers/i2c/i2c-core.h
··· 59 59 } 60 60 61 61 #ifdef CONFIG_ACPI 62 - const struct acpi_device_id * 63 - i2c_acpi_match_device(const struct acpi_device_id *matches, 64 - struct i2c_client *client); 65 62 void i2c_acpi_register_devices(struct i2c_adapter *adap); 66 63 67 64 int i2c_acpi_get_irq(struct i2c_client *client); 68 65 #else /* CONFIG_ACPI */ 69 66 static inline void i2c_acpi_register_devices(struct i2c_adapter *adap) { } 70 - static inline const struct acpi_device_id * 71 - i2c_acpi_match_device(const struct acpi_device_id *matches, 72 - struct i2c_client *client) 73 - { 74 - return NULL; 75 - } 76 67 77 68 static inline int i2c_acpi_get_irq(struct i2c_client *client) 78 69 {