Re: [PATCH] Elantech Touchpad: Fix Elantech touchpad and trackpoint for Lenovo ThinkPad notebooks.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Benjamin,

> On Dec 29, 2018, at 1:53 AM, Philipp Kaelin <kaelinphilipp@xxxxxxxxx> wrote:
> 
> Initial situation:
> - The touchpad of a Lenovo ThinkPad L580 doesn't work with newer kernel versions eg. 4.20
> - It used to work on earlier versions eg. 4.14
> 
> Cause:
> - The elantech driver was adapted in to support SMBus wich not all firmware versions
>  of the elantech firmware support. The SMBus is used as default.
> 
> Solution:
> - Previously a blacklist was introduced for devices which doesn't support the access using SMBus.
>  The ThinkPad P52 and P72 have already been fixed by adding it to such a blacklist in a prevois patch.
>  The exact same solution fixed also the issue on the mentioned ThinkPad L580.
> 
> Change:
> 1) The firmware id of the ThinkPad L580 was added to this blacklist.
> 2) To not have a half baked solution the information which firmware versions are using the same driver
>   and therefore most probably have all the same issue was extracted from the Lenovo Windows driver package.
>   All these firmware versions are now also added to the blacklist.

I actually have a reversed situation: 
I’d like to make Elantech touchpad defaults to SMBus on some platforms, but the firmware version does not match to ETP_NEW_IC_SMBUS_HOST_NOTIFY().

Use whitelist is obviously a bad idea so I’d like to know do you have any better approach in mind?

Kai-Heng

> 
> Risk assesment:
> As in prevois versions of the kernel eg. 4.14 none of the devices used to be accessed via SMBus
> (and they are reported to work at this time) it's quite safe that this blaklisting doesn't cause
> any harm on devices which have not been testes but included in the blacklist.
> 
> Signed-off-by: Philipp Kaelin <kaelinphilipp@xxxxxxxxx>
> ---
> drivers/input/mouse/elantech.c | 23 +++++++++++++++++++----
> 1 file changed, 19 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
> index 9fe075c137dc..e5fa8cfd8393 100644
> --- a/drivers/input/mouse/elantech.c
> +++ b/drivers/input/mouse/elantech.c
> @@ -1772,10 +1772,25 @@ static const char * const i2c_blacklist_pnp_ids[] = {
> 	 * These are known to not be working properly as bits are missing
> 	 * in elan_i2c.
> 	 */
> -	"LEN2131", /* ThinkPad P52 w/ NFC */
> -	"LEN2132", /* ThinkPad P52 */
> -	"LEN2133", /* ThinkPad P72 w/ NFC */
> -	"LEN2134", /* ThinkPad P72 */
> +	"LEN2131", /* Walter-3	w/ NFC		ThinkPad P52 w/ NFC	*/
> +	"LEN2132", /* Walter-3	w/o/ NFC	ThinkPad P52		*/
> +	"LEN2133", /* Chiron	w/ NFC		ThinkPad P72 w/ NFC	*/
> +	"LEN2134", /* Chiron	w/o/ NFC	ThinkPad P72		*/
> +	"LEN2037", /* Lando	w/ NFC		ThinkPad L580 w/ NFC	*/
> +	"LEN2038", /* Lando	w/o/ NFC	ThinkPad L580		*/
> +	"LEN004F", /* Storm	w/o/ NFC				*/
> +	"LEN005C", /* Storm	w/ NFC					*/
> +	"LEN2030", /* Carling						*/
> +	"LEN2031", /* Bell						*/
> +	"LEN2032", /* Bell-2						*/
> +	"LEN2033", /* Storm-2						*/
> +	"LEN2034", /* Storm-3						*/
> +	"LEN2035", /* Solo	w/ NFC					*/
> +	"LEN2036", /* Solo	w/o/ NFC				*/
> +	"LEN2039", /* Leia						*/
> +	"LEN2130", /* Kylo	(Clamshell)				*/
> +	"LEN008F", /* Kolar	w/o/ NF					*/
> +	"LEN0090", /* Kolar	w/ NFC					*/
> 	NULL
> };
> 
> -- 
> 2.19.2
> 




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux