[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171005124133.7ue727bib2mlpnyy@ninjato>
Date: Thu, 5 Oct 2017 14:41:33 +0200
From: Wolfram Sang <wsa@...-dreams.de>
To: Pontus Andersson <epontan@...il.com>
Cc: Seth Heasley <seth.heasley@...el.com>,
Neil Horman <nhorman@...driver.com>, linux-i2c@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] i2c: ismt: Separate I2C block read from SMBus block read
On Mon, Oct 02, 2017 at 02:45:19PM +0200, Pontus Andersson wrote:
> Commit b6c159a9cb69 ("i2c: ismt: Don't duplicate the receive length for
> block reads") broke I2C block reads. It aimed to fix normal SMBus block
> read, but changed the correct behavior of I2C block read in the process.
>
> According to Documentation/i2c/smbus-protocol, one vital difference
> between normal SMBus block read and I2C block read is that there is no
> byte count prefixed in the data sent on the wire:
>
> SMBus Block Read: i2c_smbus_read_block_data()
> S Addr Wr [A] Comm [A]
> S Addr Rd [A] [Count] A [Data] A [Data] A ... A [Data] NA P
>
> I2C Block Read: i2c_smbus_read_i2c_block_data()
> S Addr Wr [A] Comm [A]
> S Addr Rd [A] [Data] A [Data] A ... A [Data] NA P
>
> Therefore the two transaction types need to be processed differently in
> the driver by copying of the dma_buffer as done previously for the
> I2C_SMBUS_I2C_BLOCK_DATA case.
>
> Fixes: b6c159a9cb69 ("i2c: ismt: Don't duplicate the receive length for block reads")
> Signed-off-by: Pontus Andersson <epontan@...il.com>
> Cc: stable@...r.kernel.org
Applied to for-current, thanks!
Might have been good to CC the patch author of the problematic commit,
too.
Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)
Powered by blists - more mailing lists