Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6d16db00 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'i2c/for-current-fixed' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c fixes from Wolfram Sang:
 "A bunch of driver bugfixes and a MAINTAINERS addition"

* 'i2c/for-current-fixed' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
  MAINTAINERS: add entry for STM32 I2C driver
  i2c: viperboard: return message count on master_xfer success
  i2c: pmcmsp: fix error return from master_xfer
  i2c: pmcmsp: return message count on master_xfer success
  i2c: designware: fix poll-after-enable regression
  eeprom: at24: fix retrieving the at24_chip_data structure
  i2c: core: ACPI: Log device not acking errors at dbg loglevel
  i2c: core: ACPI: Improve OpRegion read errors
parents 2c71d338 22aac3eb
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -13264,6 +13264,12 @@ M: Jan-Benedict Glaw <jbglaw@lug-owl.de>
S:	Maintained
F:	arch/alpha/kernel/srm_env.c

ST STM32 I2C/SMBUS DRIVER
M:	Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
L:	linux-i2c@vger.kernel.org
S:	Maintained
F:	drivers/i2c/busses/i2c-stm32*

STABLE BRANCH
M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
L:	stable@vger.kernel.org
+4 −1
Original line number Diff line number Diff line
@@ -209,7 +209,10 @@ static void i2c_dw_xfer_init(struct dw_i2c_dev *dev)
	i2c_dw_disable_int(dev);

	/* Enable the adapter */
	__i2c_dw_enable_and_wait(dev, true);
	__i2c_dw_enable(dev, true);

	/* Dummy read to avoid the register getting stuck on Bay Trail */
	dw_readl(dev, DW_IC_ENABLE_STATUS);

	/* Clear and enable interrupts */
	dw_readl(dev, DW_IC_CLR_INTR);
+2 −2
Original line number Diff line number Diff line
@@ -564,10 +564,10 @@ static int pmcmsptwi_master_xfer(struct i2c_adapter *adap,
		 * TODO: We could potentially loop and retry in the case
		 * of MSP_TWI_XFER_TIMEOUT.
		 */
		return -1;
		return -EIO;
	}

	return 0;
	return num;
}

static u32 pmcmsptwi_i2c_func(struct i2c_adapter *adapter)
+1 −1
Original line number Diff line number Diff line
@@ -337,7 +337,7 @@ static int vprbrd_i2c_xfer(struct i2c_adapter *i2c, struct i2c_msg *msgs,
		}
		mutex_unlock(&vb->lock);
	}
	return 0;
	return num;
error:
	mutex_unlock(&vb->lock);
	return error;
+10 −3
Original line number Diff line number Diff line
@@ -445,10 +445,17 @@ static int acpi_gsb_i2c_read_bytes(struct i2c_client *client,
	msgs[1].buf = buffer;

	ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs));
	if (ret < 0)
		dev_err(&client->adapter->dev, "i2c read failed\n");
	if (ret < 0) {
		/* Getting a NACK is unfortunately normal with some DSTDs */
		if (ret == -EREMOTEIO)
			dev_dbg(&client->adapter->dev, "i2c read %d bytes from client@%#x starting at reg %#x failed, error: %d\n",
				data_len, client->addr, cmd, ret);
		else
			dev_err(&client->adapter->dev, "i2c read %d bytes from client@%#x starting at reg %#x failed, error: %d\n",
				data_len, client->addr, cmd, ret);
	} else {
		memcpy(data, buffer, data_len);
	}

	kfree(buffer);
	return ret;
Loading