[SRU] [F/G/Unstable/OEM-5.6] [PATCH 0/1] Fix touchpad on Lenovo ThinkBook

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[SRU] [F/G/Unstable/OEM-5.6] [PATCH 0/1] Fix touchpad on Lenovo ThinkBook

Kai-Heng Feng
BugLink: https://bugs.launchpad.net/bugs/1853277

[Impact]
Touchpad on sereval Lenovo ThinkBook doesn't work.

[Fix]
Maintain method calling ordering by calling _REG before issuing _STA, as
ACPI spec suggested, for I2C ACPI devices.

[Test]
Positive feedback from several users.

[Regression Potential]
If there are some systems that rely on the wrong calling ordering then
there's a regression risk. However it's rather unlikely.

Hans de Goede (1):
  i2c: core: Call i2c_acpi_install_space_handler() before
    i2c_acpi_register_devices()

 drivers/i2c/i2c-core-base.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--
2.17.1


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

[PATCH 1/1] i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()

Kai-Heng Feng
From: Hans de Goede <[hidden email]>

BugLink: https://bugs.launchpad.net/bugs/1853277

Some ACPI i2c-devices _STA method (which is used to detect if the device
is present) use autodetection code which probes which device is present
over i2c. This requires the I2C ACPI OpRegion handler to be registered
before we enumerate i2c-clients under the i2c-adapter.

This fixes the i2c touchpad on the Lenovo ThinkBook 14-IIL and
ThinkBook 15 IIL not getting an i2c-client instantiated and thus not
working.

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1842039
Signed-off-by: Hans de Goede <[hidden email]>
Reviewed-by: Mika Westerberg <[hidden email]>
Signed-off-by: Wolfram Sang <[hidden email]>
(cherry picked from commit 21653a4181ff292480599dad996a2b759ccf050f)
Signed-off-by: Kai-Heng Feng <[hidden email]>
---
 drivers/i2c/i2c-core-base.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
index 4f09d4c31828..7031393c7480 100644
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@ -1336,8 +1336,8 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
 
  /* create pre-declared device nodes */
  of_i2c_register_devices(adap);
- i2c_acpi_register_devices(adap);
  i2c_acpi_install_space_handler(adap);
+ i2c_acpi_register_devices(adap);
 
  if (adap->nr < __i2c_first_dynamic_bus_num)
  i2c_scan_static_board_info(adap);
--
2.17.1


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

ACK / APPLIED[G]: [SRU] [F/G/Unstable/OEM-5.6] [PATCH 0/1] Fix touchpad on Lenovo ThinkBook

Seth Forshee
In reply to this post by Kai-Heng Feng
On Tue, Sep 22, 2020 at 10:22:55PM +0800, Kai-Heng Feng wrote:

> BugLink: https://bugs.launchpad.net/bugs/1853277
>
> [Impact]
> Touchpad on sereval Lenovo ThinkBook doesn't work.
>
> [Fix]
> Maintain method calling ordering by calling _REG before issuing _STA, as
> ACPI spec suggested, for I2C ACPI devices.
>
> [Test]
> Positive feedback from several users.
>
> [Regression Potential]
> If there are some systems that rely on the wrong calling ordering then
> there's a regression risk. However it's rather unlikely.

Acked-by: Seth Forshee <[hidden email]>

Applied to groovy/master-next, thanks!

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

ACK/Cmnt: [PATCH 1/1] i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()

Stefan Bader-2
In reply to this post by Kai-Heng Feng
On 22.09.20 16:22, Kai-Heng Feng wrote:

> From: Hans de Goede <[hidden email]>
>
> BugLink: https://bugs.launchpad.net/bugs/1853277
>
> Some ACPI i2c-devices _STA method (which is used to detect if the device
> is present) use autodetection code which probes which device is present
> over i2c. This requires the I2C ACPI OpRegion handler to be registered
> before we enumerate i2c-clients under the i2c-adapter.
>
> This fixes the i2c touchpad on the Lenovo ThinkBook 14-IIL and
> ThinkBook 15 IIL not getting an i2c-client instantiated and thus not
> working.
>
> BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1842039
> Signed-off-by: Hans de Goede <[hidden email]>
> Reviewed-by: Mika Westerberg <[hidden email]>
> Signed-off-by: Wolfram Sang <[hidden email]>
> (cherry picked from commit 21653a4181ff292480599dad996a2b759ccf050f)
> Signed-off-by: Kai-Heng Feng <[hidden email]>
Acked-by: Stefan Bader <[hidden email]>
> ---

Possibly regression potential might be simplified as some different input
devices might stop working.

-Stefan

>  drivers/i2c/i2c-core-base.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
> index 4f09d4c31828..7031393c7480 100644
> --- a/drivers/i2c/i2c-core-base.c
> +++ b/drivers/i2c/i2c-core-base.c
> @@ -1336,8 +1336,8 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
>  
>   /* create pre-declared device nodes */
>   of_i2c_register_devices(adap);
> - i2c_acpi_register_devices(adap);
>   i2c_acpi_install_space_handler(adap);
> + i2c_acpi_register_devices(adap);
>  
>   if (adap->nr < __i2c_first_dynamic_bus_num)
>   i2c_scan_static_board_info(adap);
>


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

APPLIED[F]: [PATCH 1/1] i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()

Ian May
In reply to this post by Kai-Heng Feng
Applied to Focal/master-next.  Thanks!

Ian

On 2020-09-22 22:22:56 , Kai-Heng Feng wrote:

> From: Hans de Goede <[hidden email]>
>
> BugLink: https://bugs.launchpad.net/bugs/1853277
>
> Some ACPI i2c-devices _STA method (which is used to detect if the device
> is present) use autodetection code which probes which device is present
> over i2c. This requires the I2C ACPI OpRegion handler to be registered
> before we enumerate i2c-clients under the i2c-adapter.
>
> This fixes the i2c touchpad on the Lenovo ThinkBook 14-IIL and
> ThinkBook 15 IIL not getting an i2c-client instantiated and thus not
> working.
>
> BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1842039
> Signed-off-by: Hans de Goede <[hidden email]>
> Reviewed-by: Mika Westerberg <[hidden email]>
> Signed-off-by: Wolfram Sang <[hidden email]>
> (cherry picked from commit 21653a4181ff292480599dad996a2b759ccf050f)
> Signed-off-by: Kai-Heng Feng <[hidden email]>
> ---
>  drivers/i2c/i2c-core-base.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
> index 4f09d4c31828..7031393c7480 100644
> --- a/drivers/i2c/i2c-core-base.c
> +++ b/drivers/i2c/i2c-core-base.c
> @@ -1336,8 +1336,8 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
>  
>   /* create pre-declared device nodes */
>   of_i2c_register_devices(adap);
> - i2c_acpi_register_devices(adap);
>   i2c_acpi_install_space_handler(adap);
> + i2c_acpi_register_devices(adap);
>  
>   if (adap->nr < __i2c_first_dynamic_bus_num)
>   i2c_scan_static_board_info(adap);
> --
> 2.17.1
>
>
> --
> kernel-team mailing list
> [hidden email]
> https://lists.ubuntu.com/mailman/listinfo/kernel-team

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

APPLIED [OEM-5.6] Re: [SRU] [F/G/Unstable/OEM-5.6] [PATCH 0/1] Fix touchpad on Lenovo ThinkBook

Timo Aaltonen-6
In reply to this post by Kai-Heng Feng
On 22.9.2020 17.22, Kai-Heng Feng wrote:

> BugLink: https://bugs.launchpad.net/bugs/1853277
>
> [Impact]
> Touchpad on sereval Lenovo ThinkBook doesn't work.
>
> [Fix]
> Maintain method calling ordering by calling _REG before issuing _STA, as
> ACPI spec suggested, for I2C ACPI devices.
>
> [Test]
> Positive feedback from several users.
>
> [Regression Potential]
> If there are some systems that rely on the wrong calling ordering then
> there's a regression risk. However it's rather unlikely.
>
> Hans de Goede (1):
>    i2c: core: Call i2c_acpi_install_space_handler() before
>      i2c_acpi_register_devices()
>
>   drivers/i2c/i2c-core-base.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>

applied to oem-5.6, thanks

--
t

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team