mbox

Lucid/Maverick pre-stable, Input: i8042 - introduce notimeout blacklist for Dell Vostro V13

Message ID 20110114194139.197B0F8C2C@sepang.rtg.net
State Accepted
Headers show

Pull-request

git://kernel.ubuntu.com/rtg/ubuntu-maverick.git i8042-v13-lp380126

Message

Tim Gardner Jan. 14, 2011, 7:41 p.m. UTC
The following changes since commit 87129e06f19f3d040ff6cb67e96dc242e6bef756:
  Brad Figg (1):
        UBUNTU: Ubuntu-2.6.35-25.43

are available in the git repository at:

  git://kernel.ubuntu.com/rtg/ubuntu-maverick.git i8042-v13-lp380126

Jiri Kosina (1):
      Input: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13

 Documentation/kernel-parameters.txt   |    1 +
 drivers/input/serio/i8042-x86ia64io.h |   21 +++++++++++++++++++++
 drivers/input/serio/i8042.c           |    6 +++++-
 3 files changed, 27 insertions(+), 1 deletions(-)

From 7f58f757c90fe45cabbe299cc17716b9ced0997b Mon Sep 17 00:00:00 2001
From: Jiri Kosina <jkosina@suse.cz>
Date: Sat, 8 Jan 2011 01:37:26 -0800
Subject: [PATCH] Input: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13

BugLink: http://bugs.launchpad.net/bugs/380126

i8042 controller present in Dell Vostro V13 errorneously signals spurious
timeouts.

Introduce i8042.notimeout parameter for ignoring i8042-signalled timeouts
and apply this quirk automatically for Dell Vostro V13, based on DMI match.

In addition to that, this machine also needs to be added to nomux blacklist.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Backported from f8313ef1f448006207f12c107123522c8bc00f15
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
---
 Documentation/kernel-parameters.txt   |    1 +
 drivers/input/serio/i8042-x86ia64io.h |   21 +++++++++++++++++++++
 drivers/input/serio/i8042.c           |    6 +++++-
 3 files changed, 27 insertions(+), 1 deletions(-)

Comments

Stefan Bader Jan. 14, 2011, 8:24 p.m. UTC | #1
Backport from upstream, only changes things for that one model. Sounds ok to me.

Acked-by: Stefan Bader <stefan.bader@canonical.com>

On 01/14/2011 01:41 PM, Tim Gardner wrote:
> The following changes since commit 87129e06f19f3d040ff6cb67e96dc242e6bef756:
>   Brad Figg (1):
>         UBUNTU: Ubuntu-2.6.35-25.43
> 
> are available in the git repository at:
> 
>   git://kernel.ubuntu.com/rtg/ubuntu-maverick.git i8042-v13-lp380126
> 
> Jiri Kosina (1):
>       Input: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13
> 
>  Documentation/kernel-parameters.txt   |    1 +
>  drivers/input/serio/i8042-x86ia64io.h |   21 +++++++++++++++++++++
>  drivers/input/serio/i8042.c           |    6 +++++-
>  3 files changed, 27 insertions(+), 1 deletions(-)
> 
> From 7f58f757c90fe45cabbe299cc17716b9ced0997b Mon Sep 17 00:00:00 2001
> From: Jiri Kosina <jkosina@suse.cz>
> Date: Sat, 8 Jan 2011 01:37:26 -0800
> Subject: [PATCH] Input: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13
> 
> BugLink: http://bugs.launchpad.net/bugs/380126
> 
> i8042 controller present in Dell Vostro V13 errorneously signals spurious
> timeouts.
> 
> Introduce i8042.notimeout parameter for ignoring i8042-signalled timeouts
> and apply this quirk automatically for Dell Vostro V13, based on DMI match.
> 
> In addition to that, this machine also needs to be added to nomux blacklist.
> 
> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
> Backported from f8313ef1f448006207f12c107123522c8bc00f15
> Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
> ---
>  Documentation/kernel-parameters.txt   |    1 +
>  drivers/input/serio/i8042-x86ia64io.h |   21 +++++++++++++++++++++
>  drivers/input/serio/i8042.c           |    6 +++++-
>  3 files changed, 27 insertions(+), 1 deletions(-)
> 
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index b61f89f..5d96cd9 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -921,6 +921,7 @@ and is between 256 and 4096 characters. It is defined in the file
>  	i8042.panicblink=
>  			[HW] Frequency with which keyboard LEDs should blink
>  			     when kernel panics (default is 0.5 sec)
> +	i8042.notimeout	[HW] Ignore timeout condition signalled by conroller
>  	i8042.reset	[HW] Reset the controller during init and cleanup
>  	i8042.unlock	[HW] Unlock (ignore) the keylock
>  
> diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
> index 8c53926..a0730fd 100644
> --- a/drivers/input/serio/i8042-x86ia64io.h
> +++ b/drivers/input/serio/i8042-x86ia64io.h
> @@ -420,6 +420,13 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = {
>  			DMI_MATCH(DMI_PRODUCT_VERSION, "0100"),
>  		},
>  	},
> +	{
> +		/* Dell Vostro V13 */
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V13"),
> +		},
> +	},
>  	{ }
>  };
>  
> @@ -541,6 +548,17 @@ static const struct dmi_system_id __initconst i8042_dmi_laptop_table[] = {
>  };
>  #endif
>  
> +static const struct dmi_system_id __initconst i8042_dmi_notimeout_table[] = {
> +	{
> +		/* Dell Vostro V13 */
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V13"),
> +		},
> +	},
> +	{ }
> +};
> +
>  /*
>   * Some Wistron based laptops need us to explicitly enable the 'Dritek
>   * keyboard extension' to make their extra keys start generating scancodes.
> @@ -893,6 +911,9 @@ static int __init i8042_platform_init(void)
>  	if (dmi_check_system(i8042_dmi_nomux_table))
>  		i8042_nomux = true;
>  
> +	if (dmi_check_system(i8042_dmi_notimeout_table))
> +		i8042_notimeout = true;
> +
>  	if (dmi_check_system(i8042_dmi_dritek_table))
>  		i8042_dritek = true;
>  #endif /* CONFIG_X86 */
> diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
> index 5d42358..3e8a78f 100644
> --- a/drivers/input/serio/i8042.c
> +++ b/drivers/input/serio/i8042.c
> @@ -65,6 +65,10 @@ static unsigned int i8042_blink_frequency = 500;
>  module_param_named(panicblink, i8042_blink_frequency, uint, 0600);
>  MODULE_PARM_DESC(panicblink, "Frequency with which keyboard LEDs should blink when kernel panics");
>  
> +static bool i8042_notimeout;
> +module_param_named(notimeout, i8042_notimeout, bool, 0);
> +MODULE_PARM_DESC(notimeout, "Ignore timeouts signalled by i8042");
> +
>  #ifdef CONFIG_X86
>  static bool i8042_dritek;
>  module_param_named(dritek, i8042_dritek, bool, 0);
> @@ -507,7 +511,7 @@ static irqreturn_t i8042_interrupt(int irq, void *dev_id)
>  	} else {
>  
>  		dfl = ((str & I8042_STR_PARITY) ? SERIO_PARITY : 0) |
> -		      ((str & I8042_STR_TIMEOUT) ? SERIO_TIMEOUT : 0);
> +		      ((str & I8042_STR_TIMEOUT && !i8042_notimeout) ? SERIO_TIMEOUT : 0);
>  
>  		port_no = (str & I8042_STR_AUXDATA) ?
>  				I8042_AUX_PORT_NO : I8042_KBD_PORT_NO;
Colin Ian King Jan. 15, 2011, 10:58 a.m. UTC | #2
Upstream backport, just affects the Dell Vostro V13 model, so looks safe
to me.

Acked-by: Colin Ian King <colin.king@canonical.com>


On Fri, 2011-01-14 at 12:41 -0700, Tim Gardner wrote:
> The following changes since commit 87129e06f19f3d040ff6cb67e96dc242e6bef756:
>   Brad Figg (1):
>         UBUNTU: Ubuntu-2.6.35-25.43
> 
> are available in the git repository at:
> 
>   git://kernel.ubuntu.com/rtg/ubuntu-maverick.git i8042-v13-lp380126
> 
> Jiri Kosina (1):
>       Input: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13
> 
>  Documentation/kernel-parameters.txt   |    1 +
>  drivers/input/serio/i8042-x86ia64io.h |   21 +++++++++++++++++++++
>  drivers/input/serio/i8042.c           |    6 +++++-
>  3 files changed, 27 insertions(+), 1 deletions(-)
> 
> From 7f58f757c90fe45cabbe299cc17716b9ced0997b Mon Sep 17 00:00:00 2001
> From: Jiri Kosina <jkosina@suse.cz>
> Date: Sat, 8 Jan 2011 01:37:26 -0800
> Subject: [PATCH] Input: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13
> 
> BugLink: http://bugs.launchpad.net/bugs/380126
> 
> i8042 controller present in Dell Vostro V13 errorneously signals spurious
> timeouts.
> 
> Introduce i8042.notimeout parameter for ignoring i8042-signalled timeouts
> and apply this quirk automatically for Dell Vostro V13, based on DMI match.
> 
> In addition to that, this machine also needs to be added to nomux blacklist.
> 
> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
> Backported from f8313ef1f448006207f12c107123522c8bc00f15
> Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
> ---
>  Documentation/kernel-parameters.txt   |    1 +
>  drivers/input/serio/i8042-x86ia64io.h |   21 +++++++++++++++++++++
>  drivers/input/serio/i8042.c           |    6 +++++-
>  3 files changed, 27 insertions(+), 1 deletions(-)
> 
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index b61f89f..5d96cd9 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -921,6 +921,7 @@ and is between 256 and 4096 characters. It is defined in the file
>  	i8042.panicblink=
>  			[HW] Frequency with which keyboard LEDs should blink
>  			     when kernel panics (default is 0.5 sec)
> +	i8042.notimeout	[HW] Ignore timeout condition signalled by conroller
>  	i8042.reset	[HW] Reset the controller during init and cleanup
>  	i8042.unlock	[HW] Unlock (ignore) the keylock
>  
> diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
> index 8c53926..a0730fd 100644
> --- a/drivers/input/serio/i8042-x86ia64io.h
> +++ b/drivers/input/serio/i8042-x86ia64io.h
> @@ -420,6 +420,13 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = {
>  			DMI_MATCH(DMI_PRODUCT_VERSION, "0100"),
>  		},
>  	},
> +	{
> +		/* Dell Vostro V13 */
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V13"),
> +		},
> +	},
>  	{ }
>  };
>  
> @@ -541,6 +548,17 @@ static const struct dmi_system_id __initconst i8042_dmi_laptop_table[] = {
>  };
>  #endif
>  
> +static const struct dmi_system_id __initconst i8042_dmi_notimeout_table[] = {
> +	{
> +		/* Dell Vostro V13 */
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V13"),
> +		},
> +	},
> +	{ }
> +};
> +
>  /*
>   * Some Wistron based laptops need us to explicitly enable the 'Dritek
>   * keyboard extension' to make their extra keys start generating scancodes.
> @@ -893,6 +911,9 @@ static int __init i8042_platform_init(void)
>  	if (dmi_check_system(i8042_dmi_nomux_table))
>  		i8042_nomux = true;
>  
> +	if (dmi_check_system(i8042_dmi_notimeout_table))
> +		i8042_notimeout = true;
> +
>  	if (dmi_check_system(i8042_dmi_dritek_table))
>  		i8042_dritek = true;
>  #endif /* CONFIG_X86 */
> diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
> index 5d42358..3e8a78f 100644
> --- a/drivers/input/serio/i8042.c
> +++ b/drivers/input/serio/i8042.c
> @@ -65,6 +65,10 @@ static unsigned int i8042_blink_frequency = 500;
>  module_param_named(panicblink, i8042_blink_frequency, uint, 0600);
>  MODULE_PARM_DESC(panicblink, "Frequency with which keyboard LEDs should blink when kernel panics");
>  
> +static bool i8042_notimeout;
> +module_param_named(notimeout, i8042_notimeout, bool, 0);
> +MODULE_PARM_DESC(notimeout, "Ignore timeouts signalled by i8042");
> +
>  #ifdef CONFIG_X86
>  static bool i8042_dritek;
>  module_param_named(dritek, i8042_dritek, bool, 0);
> @@ -507,7 +511,7 @@ static irqreturn_t i8042_interrupt(int irq, void *dev_id)
>  	} else {
>  
>  		dfl = ((str & I8042_STR_PARITY) ? SERIO_PARITY : 0) |
> -		      ((str & I8042_STR_TIMEOUT) ? SERIO_TIMEOUT : 0);
> +		      ((str & I8042_STR_TIMEOUT && !i8042_notimeout) ? SERIO_TIMEOUT : 0);
>  
>  		port_no = (str & I8042_STR_AUXDATA) ?
>  				I8042_AUX_PORT_NO : I8042_KBD_PORT_NO;
> -- 
> 1.7.0.4
> 
>
Brad Figg Jan. 18, 2011, 4:50 a.m. UTC | #3
On 01/15/2011 02:58 AM, Colin Ian King wrote:
> Upstream backport, just affects the Dell Vostro V13 model, so looks safe
> to me.
>
> Acked-by: Colin Ian King<colin.king@canonical.com>
>
>
> On Fri, 2011-01-14 at 12:41 -0700, Tim Gardner wrote:
>> The following changes since commit 87129e06f19f3d040ff6cb67e96dc242e6bef756:
>>    Brad Figg (1):
>>          UBUNTU: Ubuntu-2.6.35-25.43
>>
>> are available in the git repository at:
>>
>>    git://kernel.ubuntu.com/rtg/ubuntu-maverick.git i8042-v13-lp380126
>>
>> Jiri Kosina (1):
>>        Input: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13
>>
>>   Documentation/kernel-parameters.txt   |    1 +
>>   drivers/input/serio/i8042-x86ia64io.h |   21 +++++++++++++++++++++
>>   drivers/input/serio/i8042.c           |    6 +++++-
>>   3 files changed, 27 insertions(+), 1 deletions(-)
>>
>>  From 7f58f757c90fe45cabbe299cc17716b9ced0997b Mon Sep 17 00:00:00 2001
>> From: Jiri Kosina<jkosina@suse.cz>
>> Date: Sat, 8 Jan 2011 01:37:26 -0800
>> Subject: [PATCH] Input: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13
>>
>> BugLink: http://bugs.launchpad.net/bugs/380126
>>
>> i8042 controller present in Dell Vostro V13 errorneously signals spurious
>> timeouts.
>>
>> Introduce i8042.notimeout parameter for ignoring i8042-signalled timeouts
>> and apply this quirk automatically for Dell Vostro V13, based on DMI match.
>>
>> In addition to that, this machine also needs to be added to nomux blacklist.
>>
>> Signed-off-by: Jiri Kosina<jkosina@suse.cz>
>> Signed-off-by: Dmitry Torokhov<dtor@mail.ru>
>> Backported from f8313ef1f448006207f12c107123522c8bc00f15
>> Signed-off-by: Tim Gardner<tim.gardner@canonical.com>
>> ---
>>   Documentation/kernel-parameters.txt   |    1 +
>>   drivers/input/serio/i8042-x86ia64io.h |   21 +++++++++++++++++++++
>>   drivers/input/serio/i8042.c           |    6 +++++-
>>   3 files changed, 27 insertions(+), 1 deletions(-)
>>
>> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
>> index b61f89f..5d96cd9 100644
>> --- a/Documentation/kernel-parameters.txt
>> +++ b/Documentation/kernel-parameters.txt
>> @@ -921,6 +921,7 @@ and is between 256 and 4096 characters. It is defined in the file
>>   	i8042.panicblink=
>>   			[HW] Frequency with which keyboard LEDs should blink
>>   			     when kernel panics (default is 0.5 sec)
>> +	i8042.notimeout	[HW] Ignore timeout condition signalled by conroller
>>   	i8042.reset	[HW] Reset the controller during init and cleanup
>>   	i8042.unlock	[HW] Unlock (ignore) the keylock
>>
>> diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
>> index 8c53926..a0730fd 100644
>> --- a/drivers/input/serio/i8042-x86ia64io.h
>> +++ b/drivers/input/serio/i8042-x86ia64io.h
>> @@ -420,6 +420,13 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = {
>>   			DMI_MATCH(DMI_PRODUCT_VERSION, "0100"),
>>   		},
>>   	},
>> +	{
>> +		/* Dell Vostro V13 */
>> +		.matches = {
>> +			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
>> +			DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V13"),
>> +		},
>> +	},
>>   	{ }
>>   };
>>
>> @@ -541,6 +548,17 @@ static const struct dmi_system_id __initconst i8042_dmi_laptop_table[] = {
>>   };
>>   #endif
>>
>> +static const struct dmi_system_id __initconst i8042_dmi_notimeout_table[] = {
>> +	{
>> +		/* Dell Vostro V13 */
>> +		.matches = {
>> +			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
>> +			DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V13"),
>> +		},
>> +	},
>> +	{ }
>> +};
>> +
>>   /*
>>    * Some Wistron based laptops need us to explicitly enable the 'Dritek
>>    * keyboard extension' to make their extra keys start generating scancodes.
>> @@ -893,6 +911,9 @@ static int __init i8042_platform_init(void)
>>   	if (dmi_check_system(i8042_dmi_nomux_table))
>>   		i8042_nomux = true;
>>
>> +	if (dmi_check_system(i8042_dmi_notimeout_table))
>> +		i8042_notimeout = true;
>> +
>>   	if (dmi_check_system(i8042_dmi_dritek_table))
>>   		i8042_dritek = true;
>>   #endif /* CONFIG_X86 */
>> diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
>> index 5d42358..3e8a78f 100644
>> --- a/drivers/input/serio/i8042.c
>> +++ b/drivers/input/serio/i8042.c
>> @@ -65,6 +65,10 @@ static unsigned int i8042_blink_frequency = 500;
>>   module_param_named(panicblink, i8042_blink_frequency, uint, 0600);
>>   MODULE_PARM_DESC(panicblink, "Frequency with which keyboard LEDs should blink when kernel panics");
>>
>> +static bool i8042_notimeout;
>> +module_param_named(notimeout, i8042_notimeout, bool, 0);
>> +MODULE_PARM_DESC(notimeout, "Ignore timeouts signalled by i8042");
>> +
>>   #ifdef CONFIG_X86
>>   static bool i8042_dritek;
>>   module_param_named(dritek, i8042_dritek, bool, 0);
>> @@ -507,7 +511,7 @@ static irqreturn_t i8042_interrupt(int irq, void *dev_id)
>>   	} else {
>>
>>   		dfl = ((str&  I8042_STR_PARITY) ? SERIO_PARITY : 0) |
>> -		      ((str&  I8042_STR_TIMEOUT) ? SERIO_TIMEOUT : 0);
>> +		      ((str&  I8042_STR_TIMEOUT&&  !i8042_notimeout) ? SERIO_TIMEOUT : 0);
>>
>>   		port_no = (str&  I8042_STR_AUXDATA) ?
>>   				I8042_AUX_PORT_NO : I8042_KBD_PORT_NO;
>> --
>> 1.7.0.4
>>
>>
>
>
>

Applied and pushed for Maverick.
Tim Gardner Jan. 18, 2011, 1:38 p.m. UTC | #4
On 01/17/2011 09:50 PM, Brad Figg wrote:
> On 01/15/2011 02:58 AM, Colin Ian King wrote:
>> Upstream backport, just affects the Dell Vostro V13 model, so looks safe
>> to me.
>>
>> Acked-by: Colin Ian King<colin.king@canonical.com>
>>
>>
>> On Fri, 2011-01-14 at 12:41 -0700, Tim Gardner wrote:
>>> The following changes since commit
>>> 87129e06f19f3d040ff6cb67e96dc242e6bef756:
>>> Brad Figg (1):
>>> UBUNTU: Ubuntu-2.6.35-25.43
>>>
>>> are available in the git repository at:
>>>
>>> git://kernel.ubuntu.com/rtg/ubuntu-maverick.git i8042-v13-lp380126
>>>
>>> Jiri Kosina (1):
>>> Input: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13
>>>
>>> Documentation/kernel-parameters.txt | 1 +
>>> drivers/input/serio/i8042-x86ia64io.h | 21 +++++++++++++++++++++
>>> drivers/input/serio/i8042.c | 6 +++++-
>>> 3 files changed, 27 insertions(+), 1 deletions(-)
>>>
>>> From 7f58f757c90fe45cabbe299cc17716b9ced0997b Mon Sep 17 00:00:00 2001
>>> From: Jiri Kosina<jkosina@suse.cz>
>>> Date: Sat, 8 Jan 2011 01:37:26 -0800
>>> Subject: [PATCH] Input: i8042 - introduce 'notimeout' blacklist for
>>> Dell Vostro V13
>>>
>>> BugLink: http://bugs.launchpad.net/bugs/380126
>>>
>>> i8042 controller present in Dell Vostro V13 errorneously signals
>>> spurious
>>> timeouts.
>>>
>>> Introduce i8042.notimeout parameter for ignoring i8042-signalled
>>> timeouts
>>> and apply this quirk automatically for Dell Vostro V13, based on DMI
>>> match.
>>>
>>> In addition to that, this machine also needs to be added to nomux
>>> blacklist.
>>>
>>> Signed-off-by: Jiri Kosina<jkosina@suse.cz>
>>> Signed-off-by: Dmitry Torokhov<dtor@mail.ru>
>>> Backported from f8313ef1f448006207f12c107123522c8bc00f15
>>> Signed-off-by: Tim Gardner<tim.gardner@canonical.com>
>>> ---
>>> Documentation/kernel-parameters.txt | 1 +
>>> drivers/input/serio/i8042-x86ia64io.h | 21 +++++++++++++++++++++
>>> drivers/input/serio/i8042.c | 6 +++++-
>>> 3 files changed, 27 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/Documentation/kernel-parameters.txt
>>> b/Documentation/kernel-parameters.txt
>>> index b61f89f..5d96cd9 100644
>>> --- a/Documentation/kernel-parameters.txt
>>> +++ b/Documentation/kernel-parameters.txt
>>> @@ -921,6 +921,7 @@ and is between 256 and 4096 characters. It is
>>> defined in the file
>>> i8042.panicblink=
>>> [HW] Frequency with which keyboard LEDs should blink
>>> when kernel panics (default is 0.5 sec)
>>> + i8042.notimeout [HW] Ignore timeout condition signalled by conroller
>>> i8042.reset [HW] Reset the controller during init and cleanup
>>> i8042.unlock [HW] Unlock (ignore) the keylock
>>>
>>> diff --git a/drivers/input/serio/i8042-x86ia64io.h
>>> b/drivers/input/serio/i8042-x86ia64io.h
>>> index 8c53926..a0730fd 100644
>>> --- a/drivers/input/serio/i8042-x86ia64io.h
>>> +++ b/drivers/input/serio/i8042-x86ia64io.h
>>> @@ -420,6 +420,13 @@ static const struct dmi_system_id __initconst
>>> i8042_dmi_nomux_table[] = {
>>> DMI_MATCH(DMI_PRODUCT_VERSION, "0100"),
>>> },
>>> },
>>> + {
>>> + /* Dell Vostro V13 */
>>> + .matches = {
>>> + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
>>> + DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V13"),
>>> + },
>>> + },
>>> { }
>>> };
>>>
>>> @@ -541,6 +548,17 @@ static const struct dmi_system_id __initconst
>>> i8042_dmi_laptop_table[] = {
>>> };
>>> #endif
>>>
>>> +static const struct dmi_system_id __initconst
>>> i8042_dmi_notimeout_table[] = {
>>> + {
>>> + /* Dell Vostro V13 */
>>> + .matches = {
>>> + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
>>> + DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V13"),
>>> + },
>>> + },
>>> + { }
>>> +};
>>> +
>>> /*
>>> * Some Wistron based laptops need us to explicitly enable the 'Dritek
>>> * keyboard extension' to make their extra keys start generating
>>> scancodes.
>>> @@ -893,6 +911,9 @@ static int __init i8042_platform_init(void)
>>> if (dmi_check_system(i8042_dmi_nomux_table))
>>> i8042_nomux = true;
>>>
>>> + if (dmi_check_system(i8042_dmi_notimeout_table))
>>> + i8042_notimeout = true;
>>> +
>>> if (dmi_check_system(i8042_dmi_dritek_table))
>>> i8042_dritek = true;
>>> #endif /* CONFIG_X86 */
>>> diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
>>> index 5d42358..3e8a78f 100644
>>> --- a/drivers/input/serio/i8042.c
>>> +++ b/drivers/input/serio/i8042.c
>>> @@ -65,6 +65,10 @@ static unsigned int i8042_blink_frequency = 500;
>>> module_param_named(panicblink, i8042_blink_frequency, uint, 0600);
>>> MODULE_PARM_DESC(panicblink, "Frequency with which keyboard LEDs
>>> should blink when kernel panics");
>>>
>>> +static bool i8042_notimeout;
>>> +module_param_named(notimeout, i8042_notimeout, bool, 0);
>>> +MODULE_PARM_DESC(notimeout, "Ignore timeouts signalled by i8042");
>>> +
>>> #ifdef CONFIG_X86
>>> static bool i8042_dritek;
>>> module_param_named(dritek, i8042_dritek, bool, 0);
>>> @@ -507,7 +511,7 @@ static irqreturn_t i8042_interrupt(int irq, void
>>> *dev_id)
>>> } else {
>>>
>>> dfl = ((str& I8042_STR_PARITY) ? SERIO_PARITY : 0) |
>>> - ((str& I8042_STR_TIMEOUT) ? SERIO_TIMEOUT : 0);
>>> + ((str& I8042_STR_TIMEOUT&& !i8042_notimeout) ? SERIO_TIMEOUT : 0);
>>>
>>> port_no = (str& I8042_STR_AUXDATA) ?
>>> I8042_AUX_PORT_NO : I8042_KBD_PORT_NO;
>>> --
>>> 1.7.0.4
>>>
>>>
>>
>>
>>
>
> Applied and pushed for Maverick.
>

applied to Lucid