[stable,4.19+,01/20] i2c: stm32f7: fix first byte to send in slave mode
diff mbox series

Message ID 20191115223356.27675-1-mathieu.poirier@linaro.org
State New
Headers show
Series
  • [stable,4.19+,01/20] i2c: stm32f7: fix first byte to send in slave mode
Related show

Commit Message

Mathieu Poirier Nov. 15, 2019, 10:33 p.m. UTC
From: Fabrice Gasnier <fabrice.gasnier@st.com>

commit 915da2b794ce4fc98b1acf64d64354f22a5e4931 upstream

The slave-interface documentation [1] states "the bus driver should
transmit the first byte" upon I2C_SLAVE_READ_REQUESTED slave event:
- 'val': backend returns first byte to be sent
The driver currently ignores the 1st byte to send on this event.

[1] https://www.kernel.org/doc/Documentation/i2c/slave-interface

Fixes: 60d609f30de2 ("i2c: i2c-stm32f7: Add slave support")
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
Reviewed-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: stable <stable@vger.kernel.org> # 4.19+
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
---
 drivers/i2c/busses/i2c-stm32f7.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Greg Kroah-Hartman Nov. 21, 2019, 8:35 p.m. UTC | #1
On Fri, Nov 15, 2019 at 03:33:37PM -0700, Mathieu Poirier wrote:
> From: Fabrice Gasnier <fabrice.gasnier@st.com>
> 
> commit 915da2b794ce4fc98b1acf64d64354f22a5e4931 upstream

That commit is not in Linus's tree :(

I'll stop here.  Please check all of these and resend the whole thing.

Also, does this series also apply fully to 5.3.y?

thanks,

greg k-h
Mathieu Poirier Nov. 22, 2019, 4:27 p.m. UTC | #2
On Thu, 21 Nov 2019 at 13:35, Greg KH <gregkh@linuxfoundation.org> wrote:
>
> On Fri, Nov 15, 2019 at 03:33:37PM -0700, Mathieu Poirier wrote:
> > From: Fabrice Gasnier <fabrice.gasnier@st.com>
> >
> > commit 915da2b794ce4fc98b1acf64d64354f22a5e4931 upstream
>
> That commit is not in Linus's tree :(

:o(  Apologies for that - probably a copy/paste problem.

>
> I'll stop here.  Please check all of these and resend the whole thing.
>
> Also, does this series also apply fully to 5.3.y?

Normally it should have and that is what I assumed.  I just did a
quick test and I'm wrong - as you probably noticed since you're
pointing it out.  Forget the whole thing and I'll send another set (or
two).

>
> thanks,
>
> greg k-h

Patch
diff mbox series

diff --git a/drivers/i2c/busses/i2c-stm32f7.c b/drivers/i2c/busses/i2c-stm32f7.c
index ac9c9486b834..48521bc8a4d2 100644
--- a/drivers/i2c/busses/i2c-stm32f7.c
+++ b/drivers/i2c/busses/i2c-stm32f7.c
@@ -1177,6 +1177,8 @@  static void stm32f7_i2c_slave_start(struct stm32f7_i2c_dev *i2c_dev)
 			STM32F7_I2C_CR1_TXIE;
 		stm32f7_i2c_set_bits(base + STM32F7_I2C_CR1, mask);
 
+		/* Write 1st data byte */
+		writel_relaxed(value, base + STM32F7_I2C_TXDR);
 	} else {
 		/* Notify i2c slave that new write transfer is starting */
 		i2c_slave_event(slave, I2C_SLAVE_WRITE_REQUESTED, &value);