Commit dfba48a7 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull i2c fixes from Wolfram Sang:

 - imx: fix SMBus protocol compliance during block read

 - omap: fix error handling path in probe

 - robotfuzz, tiny-usb: prevent zero-length reads

 - x86, designware, amdisp: fix build error when modules are disabled
   (agreed to go in via i2c)

 - scx200_acb: fix build error because of missing HAS_IOPORT

* tag 'i2c-for-6.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
  i2c: scx200_acb: depends on HAS_IOPORT
  i2c: omap: Fix an error handling path in omap_i2c_probe()
  platform/x86: Use i2c adapter name to fix build errors
  i2c: amd-isp: Initialize unique adapter name
  i2c: designware: Initialize adapter name only when not set
  i2c: tiny-usb: disable zero-length read messages
  i2c: robotfuzz-osif: disable zero-length read messages
  i2c: imx: fix emulated smbus block read
parents ded77901 f40213cd
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -24099,6 +24099,7 @@ M: Bin Du <bin.du@amd.com>
L:	linux-i2c@vger.kernel.org
S:	Maintained
F:	drivers/i2c/busses/i2c-designware-amdisp.c
F:	include/linux/soc/amd/isp4_misc.h
SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
M:	Jaehoon Chung <jh80.chung@samsung.com>
+1 −1
Original line number Diff line number Diff line
@@ -1530,7 +1530,7 @@ config I2C_XGENE_SLIMPRO

config SCx200_ACB
	tristate "Geode ACCESS.bus support"
	depends on X86_32 && PCI
	depends on X86_32 && PCI && HAS_IOPORT
	help
	  Enable the use of the ACCESS.bus controllers on the Geode SCx200 and
	  SC1100 processors and the CS5535 and CS5536 Geode companion devices.
+2 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/soc/amd/isp4_misc.h>

#include "i2c-designware-core.h"

@@ -62,6 +63,7 @@ static int amd_isp_dw_i2c_plat_probe(struct platform_device *pdev)

	adap = &isp_i2c_dev->adapter;
	adap->owner = THIS_MODULE;
	scnprintf(adap->name, sizeof(adap->name), AMDISP_I2C_ADAP_NAME);
	ACPI_COMPANION_SET(&adap->dev, ACPI_COMPANION(&pdev->dev));
	adap->dev.of_node = pdev->dev.of_node;
	/* use dynamically allocated adapter id */
+3 −2
Original line number Diff line number Diff line
@@ -1042,7 +1042,8 @@ int i2c_dw_probe_master(struct dw_i2c_dev *dev)
	if (ret)
		return ret;

	snprintf(adap->name, sizeof(adap->name),
	if (!adap->name[0])
		scnprintf(adap->name, sizeof(adap->name),
			  "Synopsys DesignWare I2C adapter");
	adap->retries = 3;
	adap->algo = &i2c_dw_algo;
+2 −1
Original line number Diff line number Diff line
@@ -1008,7 +1008,7 @@ static inline int i2c_imx_isr_read(struct imx_i2c_struct *i2c_imx)
	/* setup bus to read data */
	temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR);
	temp &= ~I2CR_MTX;
	if (i2c_imx->msg->len - 1)
	if ((i2c_imx->msg->len - 1) || (i2c_imx->msg->flags & I2C_M_RECV_LEN))
		temp &= ~I2CR_TXAK;

	imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR);
@@ -1063,6 +1063,7 @@ static inline void i2c_imx_isr_read_block_data_len(struct imx_i2c_struct *i2c_im
		wake_up(&i2c_imx->queue);
	}
	i2c_imx->msg->len += len;
	i2c_imx->msg->buf[i2c_imx->msg_buf_idx++] = len;
}

static irqreturn_t i2c_imx_master_isr(struct imx_i2c_struct *i2c_imx, unsigned int status)
Loading