Message ID | 20240829093722.2714921-5-carlos.song@nxp.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/5] i2c: imx-lpi2c: add target mode support | expand |
Hi, Am Donnerstag, 29. August 2024, 11:37:22 CEST schrieb carlos.song@nxp.com: > From: Clark Wang <xiaoning.wang@nxp.com> > > Switching the clock frequently will affect the data transmission > efficiency, and prolong the timeout to reduce autosuspend times for > lpi2c. Efficiency as in throughput or total time per transfer? Do you have any numbers? Best regards, Alexander > Signed-off-by: Clark Wang <xiaoning.wang@nxp.com> > Signed-off-by: Carlos Song <carlos.song@nxp.com> > --- > drivers/i2c/busses/i2c-imx-lpi2c.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c b/drivers/i2c/busses/i2c-imx-lpi2c.c > index 210d505db76d..cc5e5d96aacd 100644 > --- a/drivers/i2c/busses/i2c-imx-lpi2c.c > +++ b/drivers/i2c/busses/i2c-imx-lpi2c.c > @@ -129,7 +129,7 @@ > #define I2C_CLK_RATIO 2 > #define CHUNK_DATA 256 > > -#define I2C_PM_TIMEOUT 10 /* ms */ > +#define I2C_PM_TIMEOUT 1000 /* ms */ > #define I2C_DMA_THRESHOLD 8 /* bytes */ > > enum lpi2c_imx_mode { >
> -----Original Message----- > From: Alexander Stein <alexander.stein@ew.tq-group.com> > Sent: Thursday, August 29, 2024 6:55 PM > To: Aisheng Dong <aisheng.dong@nxp.com>; andi.shyti@kernel.org; > shawnguo@kernel.org; s.hauer@pengutronix.de; kernel@pengutronix.de; > festevam@gmail.com; linux-arm-kernel@lists.infradead.org > Cc: linux-i2c@vger.kernel.org; imx@lists.linux.dev; > linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; Carlos Song > <carlos.song@nxp.com> > Subject: [EXT] Re: [PATCH 5/5] i2c: imx-lpi2c: increase PM timeout to avoid > operate clk frequently > > Caution: This is an external email. Please take care when clicking links or > opening attachments. When in doubt, report the message using the 'Report this > email' button > > > Hi, > > Am Donnerstag, 29. August 2024, 11:37:22 CEST schrieb carlos.song@nxp.com: > > From: Clark Wang <xiaoning.wang@nxp.com> > > > > Switching the clock frequently will affect the data transmission > > efficiency, and prolong the timeout to reduce autosuspend times for > > lpi2c. > > Efficiency as in throughput or total time per transfer? Do you have any numbers? > Hi, Thank your for your quick ack! Apologies for the unclear explanation. The efficiency I'm referring to isn't just for I2C. For platforms with SC firmware like the 8X series, every i2c transfer to enable or disable the clock notifies the SC firmware to perform a clock operation. So if the autosuspend time is short, i2c may enable and disable clock frequently, it will occupy resources of the SC firmware. Therefore, we add this patch to minimize the excessive sc firmware resource waste caused by frequent I2C clock enable/disable operations. > Best regards, > Alexander > > > Signed-off-by: Clark Wang <xiaoning.wang@nxp.com> > > Signed-off-by: Carlos Song <carlos.song@nxp.com> > > --- > > drivers/i2c/busses/i2c-imx-lpi2c.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c > > b/drivers/i2c/busses/i2c-imx-lpi2c.c > > index 210d505db76d..cc5e5d96aacd 100644 > > --- a/drivers/i2c/busses/i2c-imx-lpi2c.c > > +++ b/drivers/i2c/busses/i2c-imx-lpi2c.c > > @@ -129,7 +129,7 @@ > > #define I2C_CLK_RATIO 2 > > #define CHUNK_DATA 256 > > > > -#define I2C_PM_TIMEOUT 10 /* ms */ > > +#define I2C_PM_TIMEOUT 1000 /* ms */ > > #define I2C_DMA_THRESHOLD 8 /* bytes */ > > > > enum lpi2c_imx_mode { > > > > > -- > TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany > Amtsgericht München, HRB 105018 > Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider > http://www.tq-g/ > roup.com%2F&data=05%7C02%7Ccarlos.song%40nxp.com%7C85ca11fd9cff416 > ea43108dcc8191786%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C > 638605257330352810%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD > AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdat > a=AV343gx9HRiXKLNQk5kBKj%2FfJM0p%2FSLKG%2FQFuQg64I0%3D&reserved > =0 >
Hi, Am Freitag, 30. August 2024, 10:53:16 CEST schrieb Carlos Song: > > -----Original Message----- > > From: Alexander Stein <alexander.stein@ew.tq-group.com> > > Sent: Thursday, August 29, 2024 6:55 PM > > To: Aisheng Dong <aisheng.dong@nxp.com>; andi.shyti@kernel.org; > > shawnguo@kernel.org; s.hauer@pengutronix.de; kernel@pengutronix.de; > > festevam@gmail.com; linux-arm-kernel@lists.infradead.org > > Cc: linux-i2c@vger.kernel.org; imx@lists.linux.dev; > > linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; Carlos Song > > <carlos.song@nxp.com> > > Subject: [EXT] Re: [PATCH 5/5] i2c: imx-lpi2c: increase PM timeout to avoid > > operate clk frequently > > > > Caution: This is an external email. Please take care when clicking links or > > opening attachments. When in doubt, report the message using the 'Report this > > email' button > > > > > > Hi, > > > > Am Donnerstag, 29. August 2024, 11:37:22 CEST schrieb carlos.song@nxp.com: > > > From: Clark Wang <xiaoning.wang@nxp.com> > > > > > > Switching the clock frequently will affect the data transmission > > > efficiency, and prolong the timeout to reduce autosuspend times for > > > lpi2c. > > > > Efficiency as in throughput or total time per transfer? Do you have any numbers? > > > > Hi, Thank your for your quick ack! > > Apologies for the unclear explanation. The efficiency I'm referring to isn't just for I2C. For platforms with SC firmware > like the 8X series, every i2c transfer to enable or disable the clock notifies the SC firmware to perform a clock operation. > So if the autosuspend time is short, i2c may enable and disable clock frequently, it will occupy resources of the SC firmware. > > Therefore, we add this patch to minimize the excessive sc firmware resource waste caused by frequent I2C clock enable/disable operations. Thanks for the explanation. So this delay only occurs on systems using an SC (imx8qm/qxp) or SM (imx95), right? Is there a chance to detect this kind of clock provider and make this timeout configurable? Best regards, Alexander
diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c b/drivers/i2c/busses/i2c-imx-lpi2c.c index 210d505db76d..cc5e5d96aacd 100644 --- a/drivers/i2c/busses/i2c-imx-lpi2c.c +++ b/drivers/i2c/busses/i2c-imx-lpi2c.c @@ -129,7 +129,7 @@ #define I2C_CLK_RATIO 2 #define CHUNK_DATA 256 -#define I2C_PM_TIMEOUT 10 /* ms */ +#define I2C_PM_TIMEOUT 1000 /* ms */ #define I2C_DMA_THRESHOLD 8 /* bytes */ enum lpi2c_imx_mode {