From: "Jorge Ramirez-Ortiz, Foundries" <jorge@foundries.io>
To: Patrick DELAUNAY <patrick.delaunay@foss.st.com>
Cc: Alain Volmat <alain.volmat@foss.st.com>,
uboot-stm32@st-md-mailman.stormreply.com, u-boot@lists.denx.de,
patrice.chotard@foss.st.com, jorge@foundries.io, hs@denx.de,
oleksandr.suvorov@foundries.io
Subject: Re: [PATCH v2 3/3] i2c: stm32: only send a STOP upon transfer completion
Date: Fri, 9 Sep 2022 10:30:38 +0200 [thread overview]
Message-ID: <20220909083038.GA314457@trex> (raw)
In-Reply-To: <d7370841-4ba2-7e1f-596c-187de27e51b3@foss.st.com>
On 08/09/22, Patrick DELAUNAY wrote:
> Hi,
>
> On 9/8/22 12:59, Alain Volmat wrote:
> > Current function stm32_i2c_message_xfer is sending a STOP
> > whatever the result of the transaction is. This can cause issues
> > such as making the bus busy since the controller itself is already
> > sending automatically a STOP when a NACK is generated. This can
> > be especially seen when the processing get slower (ex: enabling lots
> > of debug messages), ending up send 2 STOP (one automatically by the
> > controller and a 2nd one at the end of the stm32_i2c_message_xfer
> > function).
> >
Cmon no need to thank me, that is kind of excessive :)
Just the sign-off or codevelop tags for reference
if you can wait before merging I will test the series before monday
thanks
Jorge
> > Thanks to Jorge Ramirez-Ortiz for diagnosing and proposing a first
> > fix for this. [1]
> >
> > [1] https://lore.kernel.org/u-boot/20220815145211.31342-2-jorge@foundries.io/
> >
> > Reported-by: Jorge Ramirez-Ortiz, Foundries <jorge@foundries.io>
> > Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io>
> > Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
> > ---
> > drivers/i2c/stm32f7_i2c.c | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/i2c/stm32f7_i2c.c b/drivers/i2c/stm32f7_i2c.c
> > index 0ec67b5c12..8803979d3e 100644
> > --- a/drivers/i2c/stm32f7_i2c.c
> > +++ b/drivers/i2c/stm32f7_i2c.c
> > @@ -477,16 +477,16 @@ static int stm32_i2c_message_xfer(struct stm32_i2c_priv *i2c_priv,
> > if (ret)
> > break;
> > + /* End of transfer, send stop condition */
> > + mask = STM32_I2C_CR2_STOP;
> > + setbits_le32(®s->cr2, mask);
> > +
> > if (!stop)
> > /* Message sent, new message has to be sent */
> > return 0;
> > }
> > }
> > - /* End of transfer, send stop condition */
> > - mask = STM32_I2C_CR2_STOP;
> > - setbits_le32(®s->cr2, mask);
> > -
> > return stm32_i2c_check_end_of_message(i2c_priv);
> > }
>
>
> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
>
> Thanks
> Patrick
>
next prev parent reply other threads:[~2022-09-09 8:30 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-08 10:59 [PATCH v2 0/3] i2c: stm32: cleanup & stop handling fix Alain Volmat
2022-09-08 10:59 ` [PATCH v2 1/3] i2c: stm32: fix comment and remove unused AUTOEND bit Alain Volmat
2022-09-08 12:50 ` Patrick DELAUNAY
2022-09-08 10:59 ` [PATCH v2 2/3] i2c: stm32: remove unused stop parameter in start & reload handling Alain Volmat
2022-09-08 12:50 ` Patrick DELAUNAY
2022-09-08 10:59 ` [PATCH v2 3/3] i2c: stm32: only send a STOP upon transfer completion Alain Volmat
2022-09-08 12:50 ` Patrick DELAUNAY
2022-09-09 8:30 ` Jorge Ramirez-Ortiz, Foundries [this message]
2022-09-09 8:43 ` Heiko Schocher
2022-09-09 11:53 ` Patrick DELAUNAY
2022-09-09 12:53 ` Patrick DELAUNAY
2022-09-09 15:17 ` Alain Volmat
2022-09-11 18:57 ` Jorge Ramirez-Ortiz, Foundries
2022-09-12 8:36 ` Alain Volmat
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220909083038.GA314457@trex \
--to=jorge@foundries.io \
--cc=alain.volmat@foss.st.com \
--cc=hs@denx.de \
--cc=oleksandr.suvorov@foundries.io \
--cc=patrice.chotard@foss.st.com \
--cc=patrick.delaunay@foss.st.com \
--cc=u-boot@lists.denx.de \
--cc=uboot-stm32@st-md-mailman.stormreply.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.