Skip to content

Commit e77aee1

Browse files
committed
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
2 parents 1b46b92 + 0204081 commit e77aee1

5 files changed

Lines changed: 4 additions & 22 deletions

File tree

drivers/i2c/busses/i2c-bcm-iproc.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -720,7 +720,7 @@ static int bcm_iproc_i2c_xfer_internal(struct bcm_iproc_i2c_dev *iproc_i2c,
720720

721721
/* mark the last byte */
722722
if (!process_call && (i == msg->len - 1))
723-
val |= 1 << M_TX_WR_STATUS_SHIFT;
723+
val |= BIT(M_TX_WR_STATUS_SHIFT);
724724

725725
iproc_i2c_wr_reg(iproc_i2c, M_TX_OFFSET, val);
726726
}
@@ -738,7 +738,7 @@ static int bcm_iproc_i2c_xfer_internal(struct bcm_iproc_i2c_dev *iproc_i2c,
738738
*/
739739
addr = i2c_8bit_addr_from_msg(msg);
740740
/* mark it the last byte out */
741-
val = addr | (1 << M_TX_WR_STATUS_SHIFT);
741+
val = addr | BIT(M_TX_WR_STATUS_SHIFT);
742742
iproc_i2c_wr_reg(iproc_i2c, M_TX_OFFSET, val);
743743
}
744744

drivers/i2c/busses/i2c-rcar.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,7 @@ static bool rcar_i2c_slave_irq(struct rcar_i2c_priv *priv)
590590
/* master sent stop */
591591
if (ssr_filtered & SSR) {
592592
i2c_slave_event(priv->slave, I2C_SLAVE_STOP, &value);
593+
rcar_i2c_write(priv, ICSCR, SIE | SDBS); /* clear our NACK */
593594
rcar_i2c_write(priv, ICSIER, SAR);
594595
rcar_i2c_write(priv, ICSSR, ~SSR & 0xff);
595596
}

drivers/i2c/i2c-core-acpi.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -276,16 +276,6 @@ void i2c_acpi_register_devices(struct i2c_adapter *adap)
276276
dev_warn(&adap->dev, "failed to enumerate I2C slaves\n");
277277
}
278278

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-
289279
static const struct acpi_device_id i2c_acpi_force_400khz_device_ids[] = {
290280
/*
291281
* These Silead touchscreen controllers only work at 400KHz, for

drivers/i2c/i2c-core-base.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ static int i2c_device_probe(struct device *dev)
480480
* or ACPI ID table is supplied for the probing device.
481481
*/
482482
if (!driver->id_table &&
483-
!i2c_acpi_match_device(dev->driver->acpi_match_table, client) &&
483+
!acpi_driver_match_device(dev, dev->driver) &&
484484
!i2c_of_match_device(dev->driver->of_match_table, client)) {
485485
status = -ENODEV;
486486
goto put_sync_adapter;

drivers/i2c/i2c-core.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,20 +59,11 @@ static inline int __i2c_check_suspended(struct i2c_adapter *adap)
5959
}
6060

6161
#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);
6562
void i2c_acpi_register_devices(struct i2c_adapter *adap);
6663

6764
int i2c_acpi_get_irq(struct i2c_client *client);
6865
#else /* CONFIG_ACPI */
6966
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-
}
7667

7768
static inline int i2c_acpi_get_irq(struct i2c_client *client)
7869
{

0 commit comments

Comments
 (0)