mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] i2c: qcom-geni: restore tSCL with 32MHz I2C fast-mode
@ 2026-09-29  4:14 Daniel J Blueman
  2026-09-30  7:19 ` Mukesh Savaliya
  0 siblings, 1 reply; 11+ messages in thread
From: Daniel J Blueman @ 2026-09-29  4:14 UTC (permalink / raw)
  To: Mukesh Kumar Savaliya, Viken Dadhaniya, Andi Shyti,
	Manikanta Mylavarapu, Bjorn Andersson
  Cc: linux-i2c, linux-arm-msm, linux-kernel, stable, Daniel J Blueman

Commit cb97bf3d4f91 ("i2c: qcom-geni: Fix hardcoded clock index in
SE_GENI_CLK_SEL") allowed GENI to use 32MHz clock. This changed I2C
timing, making the Yoga Slim 7x keyboard (ITE 048D:8987) unusable
on all boots, and touchpad unusable on some boots, resulting in:

  i2c_hid_of 1-003a: unexpected HID descriptor bcdVersion (0x0000)
  i2c_hid_of 1-002c: failed to fetch HID descriptor: -110

With this change, t_high_cnt 3 and clk_div 4 gave a tSCL of 375ns
versus the previous default of 521ns, however the I2C spec has a
minimum tSCL of 600ns.

Restore tSCL to the spec with t_high_cnt 5 giving a 625ns tSCL,
verified on Lenovo Yoga Slim 7x X1E-80100.

Fixes: 506bb2ab0075 ("i2c: qcom-geni: Support systems with 32MHz serial engine clock")
Cc: <stable@vger.kernel.org>
Signed-off-by: Daniel J Blueman <daniel@quora.org>
---
 drivers/i2c/busses/i2c-qcom-geni.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c
index 6a39e21d5ed4..1336a09ca183 100644
--- a/drivers/i2c/busses/i2c-qcom-geni.c
+++ b/drivers/i2c/busses/i2c-qcom-geni.c
@@ -193,7 +193,7 @@ static const struct geni_i2c_clk_fld geni_i2c_clk_map_19p2mhz[] = {
 /* source_clock = 32 MHz */
 static const struct geni_i2c_clk_fld geni_i2c_clk_map_32mhz[] = {
 	{ I2C_MAX_STANDARD_MODE_FREQ, 12, 9, 10, 26 },
-	{ I2C_MAX_FAST_MODE_FREQ, 4, 3, 9, 19 },
+	{ I2C_MAX_FAST_MODE_FREQ, 4, 5, 9, 19 },
 	{ I2C_MAX_FAST_MODE_PLUS_FREQ, 2, 3, 5, 15 },
 	{}
 };
-- 
2.53.0


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] i2c: qcom-geni: restore tSCL with 32MHz I2C fast-mode
  2026-09-29  4:14 [PATCH] i2c: qcom-geni: restore tSCL with 32MHz I2C fast-mode Daniel J Blueman
@ 2026-09-30  7:19 ` Mukesh Savaliya
  2026-09-30  9:31   ` Daniel J Blueman
  0 siblings, 1 reply; 11+ messages in thread
From: Mukesh Savaliya @ 2026-09-30  7:19 UTC (permalink / raw)
  To: Daniel J Blueman, Viken Dadhaniya, Andi Shyti,
	Manikanta Mylavarapu, Bjorn Andersson
  Cc: linux-i2c, linux-arm-msm, linux-kernel, stable

Thanks Daniel !

On 9/29/2026 9:44 AM, Daniel J Blueman wrote:
> Commit cb97bf3d4f91 ("i2c: qcom-geni: Fix hardcoded clock index in
> SE_GENI_CLK_SEL") allowed GENI to use 32MHz clock. This changed I2C
> timing, making the Yoga Slim 7x keyboard (ITE 048D:8987) unusable
> on all boots, and touchpad unusable on some boots, resulting in:
> 
>    i2c_hid_of 1-003a: unexpected HID descriptor bcdVersion (0x0000)
>    i2c_hid_of 1-002c: failed to fetch HID descriptor: -110
> 
> With this change, t_high_cnt 3 and clk_div 4 gave a tSCL of 375ns
> versus the previous default of 521ns, however the I2C spec has a
> minimum tSCL of 600ns.
> 
> Restore tSCL to the spec with t_high_cnt 5 giving a 625ns tSCL,
> verified on Lenovo Yoga Slim 7x X1E-80100.
> 

There might be a final count which i should get and update back.
Since this fix is working though not suggested per hardware guidance, 
should we consider as temporary fix and move ahead to prevent failing 
usecase ?

Any thought @andi ?

> Fixes: 506bb2ab0075 ("i2c: qcom-geni: Support systems with 32MHz serial engine clock")
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Daniel J Blueman <daniel@quora.org>
> ---
>   drivers/i2c/busses/i2c-qcom-geni.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c
> index 6a39e21d5ed4..1336a09ca183 100644
> --- a/drivers/i2c/busses/i2c-qcom-geni.c
> +++ b/drivers/i2c/busses/i2c-qcom-geni.c
> @@ -193,7 +193,7 @@ static const struct geni_i2c_clk_fld geni_i2c_clk_map_19p2mhz[] = {
>   /* source_clock = 32 MHz */
>   static const struct geni_i2c_clk_fld geni_i2c_clk_map_32mhz[] = {
>   	{ I2C_MAX_STANDARD_MODE_FREQ, 12, 9, 10, 26 },
> -	{ I2C_MAX_FAST_MODE_FREQ, 4, 3, 9, 19 },
> +	{ I2C_MAX_FAST_MODE_FREQ, 4, 5, 9, 19 },

Exact change to come from hardware experts, till that i am hoping this 
revert should be fine.

>   	{ I2C_MAX_FAST_MODE_PLUS_FREQ, 2, 3, 5, 15 },
>   	{}
>   };


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] i2c: qcom-geni: restore tSCL with 32MHz I2C fast-mode
  2026-09-30  7:19 ` Mukesh Savaliya
@ 2026-09-30  9:31   ` Daniel J Blueman
  2026-10-06  4:57     ` Mukesh Savaliya
  0 siblings, 1 reply; 11+ messages in thread
From: Daniel J Blueman @ 2026-09-30  9:31 UTC (permalink / raw)
  To: Mukesh Savaliya
  Cc: Viken Dadhaniya, Andi Shyti, Manikanta Mylavarapu,
	Bjorn Andersson, linux-i2c, linux-arm-msm, linux-kernel, stable

On Wed, 30 Sept 2026 at 15:19, Mukesh Savaliya
<mukesh.savaliya@oss.qualcomm.com> wrote:
>
> Thanks Daniel !
>
> On 9/29/2026 9:44 AM, Daniel J Blueman wrote:
> > Commit cb97bf3d4f91 ("i2c: qcom-geni: Fix hardcoded clock index in
> > SE_GENI_CLK_SEL") allowed GENI to use 32MHz clock. This changed I2C
> > timing, making the Yoga Slim 7x keyboard (ITE 048D:8987) unusable
> > on all boots, and touchpad unusable on some boots, resulting in:
> >
> >    i2c_hid_of 1-003a: unexpected HID descriptor bcdVersion (0x0000)
> >    i2c_hid_of 1-002c: failed to fetch HID descriptor: -110
> >
> > With this change, t_high_cnt 3 and clk_div 4 gave a tSCL of 375ns
> > versus the previous default of 521ns, however the I2C spec has a
> > minimum tSCL of 600ns.
> >
> > Restore tSCL to the spec with t_high_cnt 5 giving a 625ns tSCL,
> > verified on Lenovo Yoga Slim 7x X1E-80100.
> >
>
> There might be a final count which i should get and update back.
> Since this fix is working though not suggested per hardware guidance,
> should we consider as temporary fix and move ahead to prevent failing
> usecase ?

If you can get the final values into a patch for the next -rc instead
of my fix here, that would be the minimal path for everyone. You or
the hardware team can cross-check against the I2C standard as I did
[1, p44].

I would revert the original patch if there is hardware that uses the
I2C 1MHz fast-mode, since the current timings aren't to spec, but also
weren't before.

Thanks,
  Dan

-- [1] https://www.nxp.com/docs/en/user-guide/UM10204.pdf
-- 
Daniel J Blueman

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] i2c: qcom-geni: restore tSCL with 32MHz I2C fast-mode
  2026-09-30  9:31   ` Daniel J Blueman
@ 2026-10-06  4:57     ` Mukesh Savaliya
  2026-10-09 19:01       ` Sasha Levin
  0 siblings, 1 reply; 11+ messages in thread
From: Mukesh Savaliya @ 2026-10-06  4:57 UTC (permalink / raw)
  To: Daniel J Blueman
  Cc: Viken Dadhaniya, Andi Shyti, Manikanta Mylavarapu,
	Bjorn Andersson, linux-i2c, linux-arm-msm, linux-kernel, stable

Thanks Dan !

On 9/30/2026 3:01 PM, Daniel J Blueman wrote:
> On Wed, 30 Sept 2026 at 15:19, Mukesh Savaliya
> <mukesh.savaliya@oss.qualcomm.com> wrote:
>>
>> Thanks Daniel !
>>
>> On 9/29/2026 9:44 AM, Daniel J Blueman wrote:
>>> Commit cb97bf3d4f91 ("i2c: qcom-geni: Fix hardcoded clock index in
>>> SE_GENI_CLK_SEL") allowed GENI to use 32MHz clock. This changed I2C
>>> timing, making the Yoga Slim 7x keyboard (ITE 048D:8987) unusable
>>> on all boots, and touchpad unusable on some boots, resulting in:
>>>
>>>     i2c_hid_of 1-003a: unexpected HID descriptor bcdVersion (0x0000)
>>>     i2c_hid_of 1-002c: failed to fetch HID descriptor: -110
>>>
>>> With this change, t_high_cnt 3 and clk_div 4 gave a tSCL of 375ns
>>> versus the previous default of 521ns, however the I2C spec has a
>>> minimum tSCL of 600ns.
>>>
>>> Restore tSCL to the spec with t_high_cnt 5 giving a 625ns tSCL,
>>> verified on Lenovo Yoga Slim 7x X1E-80100.
>>>
>>
>> There might be a final count which i should get and update back.
>> Since this fix is working though not suggested per hardware guidance,
>> should we consider as temporary fix and move ahead to prevent failing
>> usecase ?
> 
> If you can get the final values into a patch for the next -rc instead
> of my fix here, that would be the minimal path for everyone. You or
> the hardware team can cross-check against the I2C standard as I did
> [1, p44].
> 

Yes, Agree Dan ! That would be quick and fast way.
I am in discussion to get more details on correct configuration meeting 
the specs.

> I would revert the original patch if there is hardware that uses the
> I2C 1MHz fast-mode, since the current timings aren't to spec, but also
> weren't before.
> 
Agree, after having last change thought that would meet the spec.


> Thanks,
>    Dan
> 
> -- [1] https://www.nxp.com/docs/en/user-guide/UM10204.pdf


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] i2c: qcom-geni: restore tSCL with 32MHz I2C fast-mode
  2026-10-06  4:57     ` Mukesh Savaliya
@ 2026-10-09 19:01       ` Sasha Levin
  2026-10-13  7:34         ` Thorsten Leemhuis
  0 siblings, 1 reply; 11+ messages in thread
From: Sasha Levin @ 2026-10-09 19:01 UTC (permalink / raw)
  To: Daniel J Blueman
  Cc: Sasha Levin, Mukesh Savaliya, Viken Dadhaniya, Andi Shyti,
	Manikanta Mylavarapu, Bjorn Andersson, linux-i2c, linux-arm-msm,
	linux-kernel, stable

> On 9/30/2026 3:01 PM, Daniel J Blueman wrote:
> > I would revert the original patch if there is hardware that uses the
> > I2C 1MHz fast-mode, since the current timings aren't to spec, but also
> > weren't before.

For stable: cb97bf3d4f91 ("i2c: qcom-geni: Fix hardcoded clock index in
SE_GENI_CLK_SEL") has already shipped in 7.2.9, 6.18.55 and 6.12.112, and is
queued for 6.6, 6.1, 5.15 and 5.10.

The 32 MHz clock map (506bb2ab0075, v6.13+) does not exist in 6.12.y and older.
The backports there pick only the 19.2 MHz entry, so the Yoga Slim 7x /
X1E80100 timing regression cannot occur on 6.12.y or older, and I'm keeping the
6.6 and older queues as they are.

7.2.y and 6.18.y do have the 32 MHz table and are affected. Once the fix lands
in mainline, I'll pick it up for 7.2 and 6.18.

-- 
Thanks,
Sasha

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] i2c: qcom-geni: restore tSCL with 32MHz I2C fast-mode
  2026-10-09 19:01       ` Sasha Levin
@ 2026-10-13  7:34         ` Thorsten Leemhuis
  2026-10-13 18:28           ` Mukesh Savaliya
  0 siblings, 1 reply; 11+ messages in thread
From: Thorsten Leemhuis @ 2026-10-13  7:34 UTC (permalink / raw)
  To: Daniel J Blueman, Andi Shyti, Viken Dadhaniya
  Cc: Mukesh Savaliya, Sasha Levin, Manikanta Mylavarapu,
	Bjorn Andersson, linux-i2c, linux-arm-msm, linux-kernel, stable,
	Birk Skyum, Linux kernel regressions list

On 10/9/26 21:01, Sasha Levin wrote:
>> On 9/30/2026 3:01 PM, Daniel J Blueman wrote:
>>> I would revert the original patch if there is hardware that uses the
>>> I2C 1MHz fast-mode, since the current timings aren't to spec, but also
>>> weren't before.
> 
> For stable: cb97bf3d4f91 ("i2c: qcom-geni: Fix hardcoded clock index in
> SE_GENI_CLK_SEL") has already shipped in 7.2.9, 6.18.55 and 6.12.112, and is
> queued for 6.6, 6.1, 5.15 and 5.10.
> 
> The 32 MHz clock map (506bb2ab0075, v6.13+) does not exist in 6.12.y and older.
> The backports there pick only the 19.2 MHz entry, so the Yoga Slim 7x /
> X1E80100 timing regression cannot occur on 6.12.y or older, and I'm keeping the
> 6.6 and older queues as they are.
> 
> 7.2.y and 6.18.y do have the 32 MHz table and are affected. Once the fix lands
> in mainline, I'll pick it up for 7.2 and 6.18.

@Andi, @viken, and/or @Daniel:

Is the patch at the start of the thread or some improved version heading
to mainline meanwhile? What Sasha wrote above is one reason why that
would be good rather sooner than latter; another is a regression
report[1] from Birk (now CCed) wo ran into the problem with mainline --
so it would be good to fix this before 7.3 is released, too.

Or is a revert the better option to achieve that?

Ciao, Thorsten

[1]
https://lore.kernel.org/stable/179173732257.29426.7905170638383807320@pm.me/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] i2c: qcom-geni: restore tSCL with 32MHz I2C fast-mode
  2026-10-13  7:34         ` Thorsten Leemhuis
@ 2026-10-13 18:28           ` Mukesh Savaliya
  2026-10-14  5:08             ` Thorsten Leemhuis
  0 siblings, 1 reply; 11+ messages in thread
From: Mukesh Savaliya @ 2026-10-13 18:28 UTC (permalink / raw)
  To: Thorsten Leemhuis, Daniel J Blueman, Andi Shyti, Viken Dadhaniya
  Cc: Sasha Levin, Manikanta Mylavarapu, Bjorn Andersson, linux-i2c,
	linux-arm-msm, linux-kernel, stable, Birk Skyum,
	Linux kernel regressions list

Hi Thorsten, Thanks !

On 10/13/2026 1:04 PM, Thorsten Leemhuis wrote:
> On 10/9/26 21:01, Sasha Levin wrote:
>>> On 9/30/2026 3:01 PM, Daniel J Blueman wrote:
>>>> I would revert the original patch if there is hardware that uses the
>>>> I2C 1MHz fast-mode, since the current timings aren't to spec, but also
>>>> weren't before.
>>
>> For stable: cb97bf3d4f91 ("i2c: qcom-geni: Fix hardcoded clock index in
>> SE_GENI_CLK_SEL") has already shipped in 7.2.9, 6.18.55 and 6.12.112, and is
>> queued for 6.6, 6.1, 5.15 and 5.10.
>>
>> The 32 MHz clock map (506bb2ab0075, v6.13+) does not exist in 6.12.y and older.
>> The backports there pick only the 19.2 MHz entry, so the Yoga Slim 7x /
>> X1E80100 timing regression cannot occur on 6.12.y or older, and I'm keeping the
>> 6.6 and older queues as they are.
>>
>> 7.2.y and 6.18.y do have the 32 MHz table and are affected. Once the fix lands
>> in mainline, I'll pick it up for 7.2 and 6.18.
> 
> @Andi, @viken, and/or @Daniel:
> 
> Is the patch at the start of the thread or some improved version heading
> to mainline meanwhile? What Sasha wrote above is one reason why that
> would be good rather sooner than latter; another is a regression
> report[1] from Birk (now CCed) wo ran into the problem with mainline --
> so it would be good to fix this before 7.3 is released, too.
> 
> Or is a revert the better option to achieve that?
> 

This is in active discussion with hardware experts, but taking time to 
get specs compliant configuration values while it's being tested.

I see 7.3 release on 25th, so what max time we can have before reverting ?

I am trying to get values asap.

> Ciao, Thorsten
> 
> [1]
> https://lore.kernel.org/stable/179173732257.29426.7905170638383807320@pm.me/


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] i2c: qcom-geni: restore tSCL with 32MHz I2C fast-mode
  2026-10-13 18:28           ` Mukesh Savaliya
@ 2026-10-14  5:08             ` Thorsten Leemhuis
  2026-10-14 12:11               ` Birk Skyum
  0 siblings, 1 reply; 11+ messages in thread
From: Thorsten Leemhuis @ 2026-10-14  5:08 UTC (permalink / raw)
  To: Mukesh Savaliya, Daniel J Blueman, Andi Shyti, Viken Dadhaniya
  Cc: Sasha Levin, Manikanta Mylavarapu, Bjorn Andersson, linux-i2c,
	linux-arm-msm, linux-kernel, stable, Birk Skyum,
	Linux kernel regressions list

On 10/13/26 20:28, Mukesh Savaliya wrote:
> On 10/13/2026 1:04 PM, Thorsten Leemhuis wrote:
>> On 10/9/26 21:01, Sasha Levin wrote:
>>>> On 9/30/2026 3:01 PM, Daniel J Blueman wrote:
>>>>> I would revert the original patch if there is hardware that uses the
>>>>> I2C 1MHz fast-mode, since the current timings aren't to spec, but also
>>>>> weren't before.
>>>
>>> For stable: cb97bf3d4f91 ("i2c: qcom-geni: Fix hardcoded clock index in
>>> SE_GENI_CLK_SEL") has already shipped in 7.2.9, 6.18.55 and 6.12.112,
>>> and is
>>> queued for 6.6, 6.1, 5.15 and 5.10.
>>>
>>> The 32 MHz clock map (506bb2ab0075, v6.13+) does not exist in 6.12.y
>>> and older.
>>> The backports there pick only the 19.2 MHz entry, so the Yoga Slim 7x /
>>> X1E80100 timing regression cannot occur on 6.12.y or older, and I'm
>>> keeping the
>>> 6.6 and older queues as they are.
>>>
>>> 7.2.y and 6.18.y do have the 32 MHz table and are affected. Once the
>>> fix lands
>>> in mainline, I'll pick it up for 7.2 and 6.18.
>>
>> @Andi, @viken, and/or @Daniel:
>>
>> Is the patch at the start of the thread or some improved version heading
>> to mainline meanwhile? What Sasha wrote above is one reason why that
>> would be good rather sooner than latter; another is a regression
>> report[1] from Birk (now CCed) wo ran into the problem with mainline --
>> so it would be good to fix this before 7.3 is released, too.
>>
>> Or is a revert the better option to achieve that?
> 
> This is in active discussion with hardware experts, but taking time to
> get specs compliant configuration values while it's being tested.

That's how it is sometimes, but then it's likely best to go back to the
know old state by reverting the culprit -- or is that a bad idea for
some reason?

> I see 7.3 release on 25th, so what max time we can have before reverting ?

Not sure where you get this from, but 7.3 most likely will be released
this Sunday, so four days from now. Given that this affects stable is
should ideally be fixed quickly anyway. And the issue is know for a
while, so it normally should be fixed already, as that's what Linus wants:

https://www.kernel.org/doc/html/latest/process/handling-regressions.html#on-how-quickly-regressions-should-be-fixed

""But if it's a regression with a known commit that caused it, I think
the rule of thumb [to fix it] should generally be "within a week",
preferably before the next rc."""

Ciao, Thorsten

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] i2c: qcom-geni: restore tSCL with 32MHz I2C fast-mode
  2026-10-14  5:08             ` Thorsten Leemhuis
@ 2026-10-14 12:11               ` Birk Skyum
  2026-10-14 12:30                 ` Konrad Dybcio
  0 siblings, 1 reply; 11+ messages in thread
From: Birk Skyum @ 2026-10-14 12:11 UTC (permalink / raw)
  To: Thorsten Leemhuis, Mukesh Savaliya, Daniel J Blueman, Andi Shyti,
	Viken Dadhaniya
  Cc: Sasha Levin, Manikanta Mylavarapu, Bjorn Andersson, linux-i2c,
	linux-arm-msm, linux-kernel, stable,
	Linux kernel regressions list

On 10/14/26 07:08, Thorsten Leemhuis wrote:
> That's how it is sometimes, but then it's likely best to go back to the
> know old state by reverting the culprit -- or is that a bad idea for
> some reason?

Hi Thorsten,

One correction first. My report was from 7.2.9, and I had not booted
mainline when I sent it. I have now, on the Yoga Slim 7x with v7.3-rc7
(a distribution config, no patches), and the keyboard and touchpad are
dead at the disk passphrase prompt.

  geni_i2c b80000.i2c: Bus proto err, noisy/unexpected start/stop
  i2c_hid_of 1-003a: failed to fetch HID descriptor: -5

Same kernel with only i2c-qcom-geni.ko swapped, one boot each.

  v7.3-rc7                          keyboard dead
  v7.3-rc7, cb97bf3d4f91 reverted   keyboard works
  v7.3-rc7 with Daniel's patch      keyboard works

The touchpad binds whenever the keyboard does. The I2C serial engine
clocks read 32 MHz on plain rc7 and with Daniel's patch, and 19.2 MHz
with the revert. In all three boots the touchscreen and the three PS8830
retimers on the other four buses work, and only b80000 fails.

Thanks,
Birk


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] i2c: qcom-geni: restore tSCL with 32MHz I2C fast-mode
  2026-10-14 12:11               ` Birk Skyum
@ 2026-10-14 12:30                 ` Konrad Dybcio
  0 siblings, 0 replies; 11+ messages in thread
From: Konrad Dybcio @ 2026-10-14 12:30 UTC (permalink / raw)
  To: Birk Skyum, Thorsten Leemhuis, Mukesh Savaliya, Daniel J Blueman,
	Andi Shyti, Viken Dadhaniya
  Cc: Sasha Levin, Manikanta Mylavarapu, Bjorn Andersson, linux-i2c,
	linux-arm-msm, linux-kernel, stable,
	Linux kernel regressions list

On 10/14/26 2:11 PM, Birk Skyum wrote:
> On 10/14/26 07:08, Thorsten Leemhuis wrote:
>> That's how it is sometimes, but then it's likely best to go back to the
>> know old state by reverting the culprit -- or is that a bad idea for
>> some reason?
> 
> Hi Thorsten,
> 
> One correction first. My report was from 7.2.9, and I had not booted
> mainline when I sent it. I have now, on the Yoga Slim 7x with v7.3-rc7
> (a distribution config, no patches), and the keyboard and touchpad are
> dead at the disk passphrase prompt.
> 
>   geni_i2c b80000.i2c: Bus proto err, noisy/unexpected start/stop
>   i2c_hid_of 1-003a: failed to fetch HID descriptor: -5
> 
> Same kernel with only i2c-qcom-geni.ko swapped, one boot each.
> 
>   v7.3-rc7                          keyboard dead
>   v7.3-rc7, cb97bf3d4f91 reverted   keyboard works
>   v7.3-rc7 with Daniel's patch      keyboard works
> 
> The touchpad binds whenever the keyboard does. The I2C serial engine
> clocks read 32 MHz on plain rc7 and with Daniel's patch, and 19.2 MHz
> with the revert. In all three boots the touchscreen and the three PS8830
> retimers on the other four buses work, and only b80000 fails.

Since the discussion still hasn't settled, please go ahead with a
last-minute revert for 7.3 so that we don't get an utterly broken
release.

Konrad

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] i2c: qcom-geni: restore tSCL with 32MHz I2C fast-mode
@ 2026-10-12 12:25 Birk Skyum
  0 siblings, 0 replies; 11+ messages in thread
From: Birk Skyum @ 2026-10-12 12:25 UTC (permalink / raw)
  To: Daniel J Blueman
  Cc: Mukesh Kumar Savaliya, Viken Dadhaniya, Andi Shyti,
	Manikanta Mylavarapu, Bjorn Andersson, linux-i2c, linux-arm-msm,
	linux-kernel, stable

On Tue, 29 Sep 2026 12:14:43 +0800, Daniel J Blueman wrote:
> With this change, t_high_cnt 3 and clk_div 4 gave a tSCL of 375ns
> versus the previous default of 521ns, however the I2C spec has a
> minimum tSCL of 600ns.
>
> Restore tSCL to the spec with t_high_cnt 5 giving a 625ns tSCL,
> verified on Lenovo Yoga Slim 7x X1E-80100.

This fixes it on another Yoga Slim 7x (83ED).

I took a distribution build of 7.2.8 that works on this laptop and
replaced only i2c-qcom-geni.ko, built from the same tree:

  7.2.8 driver                   keyboard works
  7.2.9 driver                   keyboard and touchpad dead
  7.2.9 driver with this patch   keyboard, touchpad, touchscreen work

With the patch the keyboard takes the disk passphrase in the initramfs
again. The five I2C controllers in use run from the 32 MHz clock, as
they do without it, and the log has no error from geni_i2c or
i2c_hid_of. That is one boot.

Tested-by: Birk Skyum <birk.skyum@pm.me> # Lenovo Yoga Slim 7x

Thanks,
Birk


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-10-14 13:17 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-29  4:14 [PATCH] i2c: qcom-geni: restore tSCL with 32MHz I2C fast-mode Daniel J Blueman
2026-09-30  7:19 ` Mukesh Savaliya
2026-09-30  9:31   ` Daniel J Blueman
2026-10-06  4:57     ` Mukesh Savaliya
2026-10-09 19:01       ` Sasha Levin
2026-10-13  7:34         ` Thorsten Leemhuis
2026-10-13 18:28           ` Mukesh Savaliya
2026-10-14  5:08             ` Thorsten Leemhuis
2026-10-14 12:11               ` Birk Skyum
2026-10-14 12:30                 ` Konrad Dybcio
2026-10-12 12:25 Birk Skyum

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®