From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CDD5DC38145 for ; Thu, 8 Sep 2022 12:50:41 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 95E5F84B01; Thu, 8 Sep 2022 14:50:39 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=foss.st.com header.i=@foss.st.com header.b="ab1s/u6Y"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D596084B03; Thu, 8 Sep 2022 14:50:37 +0200 (CEST) Received: from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 0E55084AFE for ; Thu, 8 Sep 2022 14:50:35 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=prvs=52505b2c16=patrick.delaunay@foss.st.com Received: from pps.filterd (m0046660.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 288C35m1018759; Thu, 8 Sep 2022 14:50:32 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=selector1; bh=hSL0Rq/0ujWh7Vgcm8NdsB59GFdDTpbRtKeqPpzp4Gc=; b=ab1s/u6YhWO3nmYm/79vNGoB+PI3PJGsrhnDx4fUD50OEpdkganm2pYr1f4pLtvSAwcU RqIplLb2HeykQTh8dGpb8bPXIitf8ynHvJKBfAuyKjLgrF4iPc1nHyzOR/uO95YvTuCT 6bkH9G8xFS9LZnl7/xj5HdAK6RWUASarQScSVmjE6qDB+KRbWXFHtYoRlJJZrDqrHVpS p3DyyYTRd7RkebX1K+o8Bd2ZXY/UHLjVbXnebGvzBx65m9dkNbieBkg4NoCeHFXV82EV ltCQWWPiyScQHaPQ41YIQQK0wIPuUJbNA6VM6SOLj3Mku20O452Jb360r5G7gT4g2AHe gQ== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 3jerfv9m5p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 08 Sep 2022 14:50:32 +0200 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id E1D0410002A; Thu, 8 Sep 2022 14:50:31 +0200 (CEST) Received: from Webmail-eu.st.com (shfdag1node3.st.com [10.75.129.71]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id DCF1821FE8F; Thu, 8 Sep 2022 14:50:31 +0200 (CEST) Received: from [10.48.0.213] (10.75.127.50) by SHFDAG1NODE3.st.com (10.75.129.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2375.31; Thu, 8 Sep 2022 14:50:30 +0200 Message-ID: Date: Thu, 8 Sep 2022 14:50:30 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH v2 3/3] i2c: stm32: only send a STOP upon transfer completion Content-Language: en-US To: Alain Volmat , , CC: , , , References: <20220908105934.1764482-1-alain.volmat@foss.st.com> <20220908105934.1764482-4-alain.volmat@foss.st.com> From: Patrick DELAUNAY In-Reply-To: <20220908105934.1764482-4-alain.volmat@foss.st.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.75.127.50] X-ClientProxiedBy: SFHDAG2NODE3.st.com (10.75.127.6) To SHFDAG1NODE3.st.com (10.75.129.71) X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.528,FMLib:17.11.122.1 definitions=2022-09-08_08,2022-09-07_02,2022-06-22_01 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean 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). > > 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 > Signed-off-by: Jorge Ramirez-Ortiz > Signed-off-by: Alain Volmat > --- > 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 Thanks Patrick