* [patch 0/2] Make the touchpad on the MSI Wind netbook work @ 2009-02-05 3:15 Arjan van de Ven 2009-02-05 3:16 ` [patch 1/2] input: introduce a tougher i8042.reset Arjan van de Ven ` (3 more replies) 0 siblings, 4 replies; 18+ messages in thread From: Arjan van de Ven @ 2009-02-05 3:15 UTC (permalink / raw) To: linux-input; +Cc: linux-kernel, akpm Hi, A MSI Wind (100) netbook landed on my desk with the comment "touchpad doesn't work in Linux but works in XP". It turns out that there are a 2 separate issues with this netbook that needed fixing 1) The touchpad requires the equivalent of "i8042.reset", which resets the controller before probing. (This is done via a DMI quirk in patch 2/2) 2) About half the time, the reset will fail the first time. In the current code, this is fatal and then also disables the keyboard in addition to the touchpad. Ungood. Patch 1 makes the kernel retry the reset upto five times before giving up (it seems the 2nd or 3rd time succeed for me), and also adds an option to not make such a failure fatal to the keyboard. I don't think this is a regression, but it is pretty nasty behavior (the machine is useless without) so it could be a 2.6.29 candidate... -- Arjan van de Ven Intel Open Source Technology Centre For development, discussion and tips for power savings, visit http://www.lesswatts.org ^ permalink raw reply [flat|nested] 18+ messages in thread
* [patch 1/2] input: introduce a tougher i8042.reset 2009-02-05 3:15 [patch 0/2] Make the touchpad on the MSI Wind netbook work Arjan van de Ven @ 2009-02-05 3:16 ` Arjan van de Ven 2009-02-05 21:52 ` Andrew Morton 2009-02-05 3:17 ` [patch 2/2] input: add a DMI table for the i8042.reset option; make MSI Wind U-100 work Arjan van de Ven ` (2 subsequent siblings) 3 siblings, 1 reply; 18+ messages in thread From: Arjan van de Ven @ 2009-02-05 3:16 UTC (permalink / raw) To: linux-input; +Cc: Arjan van de Ven, linux-kernel, akpm >From 2c5ccde448ae5f4062802bcd6002f856acbd268f Mon Sep 17 00:00:00 2001 From: Arjan van de Ven <arjan@linux.intel.com> Date: Tue, 3 Feb 2009 16:26:16 -0800 Subject: [PATCH] input: introduce a tougher i8042.reset Some touchpads don't reset right the first time (MSI Wind U-100 for example). This patch will retry the reset up to 5 times. In addition, this patch also adds a module parameter to not treat reset failures as fatal to the usage of the device. This prevents a touchpad failure from also disabling the keyboard.... Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> --- Documentation/kernel-parameters.txt | 2 ++ drivers/input/serio/i8042.c | 33 ++++++++++++++++++++++++--------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index ac613a6..a43e3bd 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -855,6 +855,8 @@ and is between 256 and 4096 characters. It is defined in the file [HW] Frequency with which keyboard LEDs should blink when kernel panics (default is 0.5 sec) i8042.reset [HW] Reset the controller during init and cleanup + i8042.nonfatal [HW] Don't treat i8042.reset failures as fatal for the + device initialization. i8042.unlock [HW] Unlock (ignore) the keylock i810= [HW,DRM] diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index 170f71e..2473a9a 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c @@ -47,6 +47,10 @@ static unsigned int i8042_reset; module_param_named(reset, i8042_reset, bool, 0); MODULE_PARM_DESC(reset, "Reset controller during init and cleanup."); +static unsigned int i8042_nonfatal; +module_param_named(nonfatal, i8042_nonfatal, bool, 0); +MODULE_PARM_DESC(reset, "Treat controller test failures as non-fatal."); + static unsigned int i8042_direct; module_param_named(direct, i8042_direct, bool, 0); MODULE_PARM_DESC(direct, "Put keyboard port into non-translated mode."); @@ -712,22 +716,33 @@ static int i8042_controller_check(void) static int i8042_controller_selftest(void) { unsigned char param; + int i = 0; if (!i8042_reset) return 0; - if (i8042_command(¶m, I8042_CMD_CTL_TEST)) { - printk(KERN_ERR "i8042.c: i8042 controller self test timeout.\n"); - return -ENODEV; - } + /* + * We try this 5 times; on some really fragile systems this does not + * take the first time... + */ + do { + + if (i8042_command(¶m, I8042_CMD_CTL_TEST)) { + printk(KERN_ERR "i8042.c: i8042 controller self test timeout.\n"); + return -ENODEV; + } + + if (param == I8042_RET_CTL_TEST) + return 0; - if (param != I8042_RET_CTL_TEST) { printk(KERN_ERR "i8042.c: i8042 controller selftest failed. (%#x != %#x)\n", - param, I8042_RET_CTL_TEST); - return -EIO; - } + param, I8042_RET_CTL_TEST); + msleep(50); + } while (i++ < 5); - return 0; + if (i8042_nonfatal) + return 0; + return -EIO; } /* -- 1.6.0.6 -- Arjan van de Ven Intel Open Source Technology Centre For development, discussion and tips for power savings, visit http://www.lesswatts.org ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [patch 1/2] input: introduce a tougher i8042.reset 2009-02-05 3:16 ` [patch 1/2] input: introduce a tougher i8042.reset Arjan van de Ven @ 2009-02-05 21:52 ` Andrew Morton 0 siblings, 0 replies; 18+ messages in thread From: Andrew Morton @ 2009-02-05 21:52 UTC (permalink / raw) To: Arjan van de Ven; +Cc: linux-input, arjan, linux-kernel On Wed, 4 Feb 2009 19:16:31 -0800 Arjan van de Ven <arjan@infradead.org> wrote: > Some touchpads don't reset right the first time (MSI Wind U-100 for > example). This patch will retry the reset up to 5 times. Sigh, real life sucks. I wonder what the windows driver does. > In addition, this patch also adds a module parameter to not treat > reset failures as fatal to the usage of the device. This prevents > a touchpad failure from also disabling the keyboard.... > Is there any reason why we shouldn't just do this all the time? IOW, is there any benefit in marking the 8042 as dead? ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 1/2] input: introduce a tougher i8042.reset @ 2009-02-05 21:52 ` Andrew Morton 0 siblings, 0 replies; 18+ messages in thread From: Andrew Morton @ 2009-02-05 21:52 UTC (permalink / raw) Cc: linux-input, arjan, linux-kernel On Wed, 4 Feb 2009 19:16:31 -0800 Arjan van de Ven <arjan@infradead.org> wrote: > Some touchpads don't reset right the first time (MSI Wind U-100 for > example). This patch will retry the reset up to 5 times. Sigh, real life sucks. I wonder what the windows driver does. > In addition, this patch also adds a module parameter to not treat > reset failures as fatal to the usage of the device. This prevents > a touchpad failure from also disabling the keyboard.... > Is there any reason why we shouldn't just do this all the time? IOW, is there any benefit in marking the 8042 as dead? ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 1/2] input: introduce a tougher i8042.reset 2009-02-05 21:52 ` Andrew Morton (?) @ 2009-02-06 0:35 ` Arjan van de Ven -1 siblings, 0 replies; 18+ messages in thread From: Arjan van de Ven @ 2009-02-06 0:35 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-input, linux-kernel On Thu, 5 Feb 2009 13:52:29 -0800 Andrew Morton <akpm@linux-foundation.org> wrote: > On Wed, 4 Feb 2009 19:16:31 -0800 > Arjan van de Ven <arjan@infradead.org> wrote: > > > Some touchpads don't reset right the first time (MSI Wind U-100 for > > example). This patch will retry the reset up to 5 times. > > Sigh, real life sucks. I wonder what the windows driver does. I have no idea; but this worked for me. I bet the windows driver just retries as well. > > > In addition, this patch also adds a module parameter to not treat > > reset failures as fatal to the usage of the device. This prevents > > a touchpad failure from also disabling the keyboard.... > > > > Is there any reason why we shouldn't just do this all the time? > > IOW, is there any benefit in marking the 8042 as dead? if it really is not there, then the kernel later will stall talking to it.... for the "normal" headless server case. At least I suppose. The input people need to jump in on this one.. I didn't want to do a mass behavior change on something this fragile. -- Arjan van de Ven Intel Open Source Technology Centre For development, discussion and tips for power savings, visit http://www.lesswatts.org ^ permalink raw reply [flat|nested] 18+ messages in thread
* [patch 2/2] input: add a DMI table for the i8042.reset option; make MSI Wind U-100 work 2009-02-05 3:15 [patch 0/2] Make the touchpad on the MSI Wind netbook work Arjan van de Ven 2009-02-05 3:16 ` [patch 1/2] input: introduce a tougher i8042.reset Arjan van de Ven @ 2009-02-05 3:17 ` Arjan van de Ven 2009-02-06 0:21 ` Andrew Morton 2009-02-10 20:25 ` [patch 0/2] Make the touchpad on the MSI Wind netbook work Pavel Machek 2009-02-11 1:45 ` Matthew Garrett 3 siblings, 1 reply; 18+ messages in thread From: Arjan van de Ven @ 2009-02-05 3:17 UTC (permalink / raw) To: linux-input; +Cc: Arjan van de Ven, linux-kernel, akpm From: Arjan van de Ven <arjan@linux.intel.com> Subject: input: add a DMI table for the i8042.reset option; make MSI Wind U-100 work There are several DMI tables in the i8042 (keyboard) driver already, but not one for the i8042.reset option. This patch adds such an option (which also sets the nonfatal flag so that if the reset fails, the keyboard still works). Two users for this table are added as well, the MSI Wind U-100 and the LG X110. The MSI Wind also needs to be in the "don't trust the pnp data" for the touchpad to work on my machine. Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> --- linux-2.6.28/drivers/input/serio/i8042-x86ia64io.h.org 2009-02-01 18:31:29.000000000 -0800 +++ linux-2.6.28/drivers/input/serio/i8042-x86ia64io.h 2009-02-01 18:35:26.000000000 -0800 @@ -378,6 +378,13 @@ static struct dmi_system_id __initdata i DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"), }, }, + { + .ident = "MSI Wind U-100", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "U-100"), + DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), + }, + }, { } }; #endif @@ -448,6 +455,25 @@ static struct dmi_system_id __initdata i { } }; +static struct dmi_system_id __initdata i8042_dmi_reset_table[] = { + { + .ident = "MSI Wind U-100", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "U-100"), + DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), + }, + }, + { + .ident = "LG Electronics X110", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "X110"), + DMI_MATCH(DMI_BOARD_VENDOR, "LG Electronics Inc."), + }, + }, + { } +}; + + #endif /* CONFIG_X86 */ #ifdef CONFIG_PNP @@ -564,6 +583,11 @@ static int __init i8042_pnp_init(void) i8042_nopnp = 1; #endif + if (dmi_check_system(i8042_dmi_reset_table)) { + i8042_reset = 1; + i8042_nonfatal = 1; + } + if (i8042_nopnp) { printk(KERN_INFO "i8042: PNP detection disabled\n"); return 0; -- Arjan van de Ven Intel Open Source Technology Centre For development, discussion and tips for power savings, visit http://www.lesswatts.org ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 2/2] input: add a DMI table for the i8042.reset option; make MSI Wind U-100 work 2009-02-05 3:17 ` [patch 2/2] input: add a DMI table for the i8042.reset option; make MSI Wind U-100 work Arjan van de Ven @ 2009-02-06 0:21 ` Andrew Morton 0 siblings, 0 replies; 18+ messages in thread From: Andrew Morton @ 2009-02-06 0:21 UTC (permalink / raw) To: Arjan van de Ven; +Cc: linux-input, arjan, linux-kernel On Wed, 4 Feb 2009 19:17:28 -0800 Arjan van de Ven <arjan@infradead.org> wrote: > There are several DMI tables in the i8042 (keyboard) driver already, > but not one for the i8042.reset option. This patch adds such an option > (which also sets the nonfatal flag so that if the reset fails, the keyboard > still works). > > Two users for this table are added as well, the MSI Wind U-100 and the > LG X110. The MSI Wind also needs to be in the "don't trust the pnp data" > for the touchpad to work on my machine. x86_64 allnoconfig: drivers/input/serio/i8042-x86ia64io.h:458: warning: 'i8042_dmi_reset_table' defined but not used From: Andrew Morton <akpm@linux-foundation.org> drivers/input/serio/i8042-x86ia64io.h:458: warning: 'i8042_dmi_reset_table' defined but not used Fix this by moving both i8042_dmi_nopnp_tablep[] and i8042_dmi_reset_table[] into a section which requires CONFIG_PNP and CONFIG_X86. Give their usage sites the same treatment. Cc: Arjan van de Ven <arjan@linux.intel.com> Cc: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- drivers/input/serio/i8042-x86ia64io.h | 79 +++++++++++------------- 1 file changed, 39 insertions(+), 40 deletions(-) diff -puN drivers/input/serio/i8042-x86ia64io.h~input-add-a-dmi-table-for-the-i8042reset-option-make-msi-wind-u-100-work-fix drivers/input/serio/i8042-x86ia64io.h --- a/drivers/input/serio/i8042-x86ia64io.h~input-add-a-dmi-table-for-the-i8042reset-option-make-msi-wind-u-100-work-fix +++ a/drivers/input/serio/i8042-x86ia64io.h @@ -369,26 +369,6 @@ static struct dmi_system_id __initdata i { } }; -#ifdef CONFIG_PNP -static struct dmi_system_id __initdata i8042_dmi_nopnp_table[] = { - { - .ident = "Intel MBO Desktop D845PESV", - .matches = { - DMI_MATCH(DMI_BOARD_NAME, "D845PESV"), - DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"), - }, - }, - { - .ident = "MSI Wind U-100", - .matches = { - DMI_MATCH(DMI_BOARD_NAME, "U-100"), - DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), - }, - }, - { } -}; -#endif - /* * Some Wistron based laptops need us to explicitly enable the 'Dritek * keyboard extension' to make their extra keys start generating scancodes. @@ -455,25 +435,6 @@ static struct dmi_system_id __initdata i { } }; -static struct dmi_system_id __initdata i8042_dmi_reset_table[] = { - { - .ident = "MSI Wind U-100", - .matches = { - DMI_MATCH(DMI_BOARD_NAME, "U-100"), - DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), - }, - }, - { - .ident = "LG Electronics X110", - .matches = { - DMI_MATCH(DMI_BOARD_NAME, "X110"), - DMI_MATCH(DMI_BOARD_VENDOR, "LG Electronics Inc."), - }, - }, - { } -}; - - #endif /* CONFIG_X86 */ #ifdef CONFIG_PNP @@ -492,6 +453,44 @@ static int i8042_pnp_aux_irq; static char i8042_pnp_kbd_name[32]; static char i8042_pnp_aux_name[32]; +#ifdef CONFIG_X86 +static struct dmi_system_id __initdata i8042_dmi_nopnp_table[] = { + { + .ident = "Intel MBO Desktop D845PESV", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "D845PESV"), + DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"), + }, + }, + { + .ident = "MSI Wind U-100", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "U-100"), + DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), + }, + }, + { } +}; + +static struct dmi_system_id __initdata i8042_dmi_reset_table[] = { + { + .ident = "MSI Wind U-100", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "U-100"), + DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), + }, + }, + { + .ident = "LG Electronics X110", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "X110"), + DMI_MATCH(DMI_BOARD_VENDOR, "LG Electronics Inc."), + }, + }, + { } +}; +#endif + static int i8042_pnp_kbd_probe(struct pnp_dev *dev, const struct pnp_device_id *did) { if (pnp_port_valid(dev, 0) && pnp_port_len(dev, 0) == 1) @@ -588,12 +587,12 @@ static int __init i8042_pnp_init(void) #ifdef CONFIG_X86 if (dmi_check_system(i8042_dmi_nopnp_table)) i8042_nopnp = 1; -#endif if (dmi_check_system(i8042_dmi_reset_table)) { i8042_reset = 1; i8042_nonfatal = 1; } +#endif if (i8042_nopnp) { printk(KERN_INFO "i8042: PNP detection disabled\n"); _ ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 2/2] input: add a DMI table for the i8042.reset option; make MSI Wind U-100 work @ 2009-02-06 0:21 ` Andrew Morton 0 siblings, 0 replies; 18+ messages in thread From: Andrew Morton @ 2009-02-06 0:21 UTC (permalink / raw) Cc: linux-input, arjan, linux-kernel On Wed, 4 Feb 2009 19:17:28 -0800 Arjan van de Ven <arjan@infradead.org> wrote: > There are several DMI tables in the i8042 (keyboard) driver already, > but not one for the i8042.reset option. This patch adds such an option > (which also sets the nonfatal flag so that if the reset fails, the keyboard > still works). > > Two users for this table are added as well, the MSI Wind U-100 and the > LG X110. The MSI Wind also needs to be in the "don't trust the pnp data" > for the touchpad to work on my machine. x86_64 allnoconfig: drivers/input/serio/i8042-x86ia64io.h:458: warning: 'i8042_dmi_reset_table' defined but not used From: Andrew Morton <akpm@linux-foundation.org> drivers/input/serio/i8042-x86ia64io.h:458: warning: 'i8042_dmi_reset_table' defined but not used Fix this by moving both i8042_dmi_nopnp_tablep[] and i8042_dmi_reset_table[] into a section which requires CONFIG_PNP and CONFIG_X86. Give their usage sites the same treatment. Cc: Arjan van de Ven <arjan@linux.intel.com> Cc: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- drivers/input/serio/i8042-x86ia64io.h | 79 +++++++++++------------- 1 file changed, 39 insertions(+), 40 deletions(-) diff -puN drivers/input/serio/i8042-x86ia64io.h~input-add-a-dmi-table-for-the-i8042reset-option-make-msi-wind-u-100-work-fix drivers/input/serio/i8042-x86ia64io.h --- a/drivers/input/serio/i8042-x86ia64io.h~input-add-a-dmi-table-for-the-i8042reset-option-make-msi-wind-u-100-work-fix +++ a/drivers/input/serio/i8042-x86ia64io.h @@ -369,26 +369,6 @@ static struct dmi_system_id __initdata i { } }; -#ifdef CONFIG_PNP -static struct dmi_system_id __initdata i8042_dmi_nopnp_table[] = { - { - .ident = "Intel MBO Desktop D845PESV", - .matches = { - DMI_MATCH(DMI_BOARD_NAME, "D845PESV"), - DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"), - }, - }, - { - .ident = "MSI Wind U-100", - .matches = { - DMI_MATCH(DMI_BOARD_NAME, "U-100"), - DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), - }, - }, - { } -}; -#endif - /* * Some Wistron based laptops need us to explicitly enable the 'Dritek * keyboard extension' to make their extra keys start generating scancodes. @@ -455,25 +435,6 @@ static struct dmi_system_id __initdata i { } }; -static struct dmi_system_id __initdata i8042_dmi_reset_table[] = { - { - .ident = "MSI Wind U-100", - .matches = { - DMI_MATCH(DMI_BOARD_NAME, "U-100"), - DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), - }, - }, - { - .ident = "LG Electronics X110", - .matches = { - DMI_MATCH(DMI_BOARD_NAME, "X110"), - DMI_MATCH(DMI_BOARD_VENDOR, "LG Electronics Inc."), - }, - }, - { } -}; - - #endif /* CONFIG_X86 */ #ifdef CONFIG_PNP @@ -492,6 +453,44 @@ static int i8042_pnp_aux_irq; static char i8042_pnp_kbd_name[32]; static char i8042_pnp_aux_name[32]; +#ifdef CONFIG_X86 +static struct dmi_system_id __initdata i8042_dmi_nopnp_table[] = { + { + .ident = "Intel MBO Desktop D845PESV", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "D845PESV"), + DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"), + }, + }, + { + .ident = "MSI Wind U-100", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "U-100"), + DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), + }, + }, + { } +}; + +static struct dmi_system_id __initdata i8042_dmi_reset_table[] = { + { + .ident = "MSI Wind U-100", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "U-100"), + DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), + }, + }, + { + .ident = "LG Electronics X110", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "X110"), + DMI_MATCH(DMI_BOARD_VENDOR, "LG Electronics Inc."), + }, + }, + { } +}; +#endif + static int i8042_pnp_kbd_probe(struct pnp_dev *dev, const struct pnp_device_id *did) { if (pnp_port_valid(dev, 0) && pnp_port_len(dev, 0) == 1) @@ -588,12 +587,12 @@ static int __init i8042_pnp_init(void) #ifdef CONFIG_X86 if (dmi_check_system(i8042_dmi_nopnp_table)) i8042_nopnp = 1; -#endif if (dmi_check_system(i8042_dmi_reset_table)) { i8042_reset = 1; i8042_nonfatal = 1; } +#endif if (i8042_nopnp) { printk(KERN_INFO "i8042: PNP detection disabled\n"); _ ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 0/2] Make the touchpad on the MSI Wind netbook work 2009-02-05 3:15 [patch 0/2] Make the touchpad on the MSI Wind netbook work Arjan van de Ven 2009-02-05 3:16 ` [patch 1/2] input: introduce a tougher i8042.reset Arjan van de Ven 2009-02-05 3:17 ` [patch 2/2] input: add a DMI table for the i8042.reset option; make MSI Wind U-100 work Arjan van de Ven @ 2009-02-10 20:25 ` Pavel Machek 2009-02-10 22:00 ` Rafael J. Wysocki 2009-02-10 23:06 ` Arjan van de Ven 2009-02-11 1:45 ` Matthew Garrett 3 siblings, 2 replies; 18+ messages in thread From: Pavel Machek @ 2009-02-10 20:25 UTC (permalink / raw) To: Arjan van de Ven; +Cc: linux-input, linux-kernel, akpm On Wed 2009-02-04 19:15:40, Arjan van de Ven wrote: > Hi, > > A MSI Wind (100) netbook landed on my desk with the comment "touchpad > doesn't work in Linux but works in XP". > > It turns out that there are a 2 separate issues with this netbook that > needed fixing > > 1) The touchpad requires the equivalent of "i8042.reset", which resets > the controller before probing. (This is done via a DMI quirk in patch > 2/2) > > 2) About half the time, the reset will fail the first time. In the > current code, this is fatal and then also disables the keyboard in > addition to the touchpad. Ungood. Patch 1 makes the kernel retry the > reset upto five times before giving up (it seems the 2nd or 3rd time > succeed for me), and also adds an option to not make such a failure > fatal to the keyboard. > > I don't think this is a regression, but it is pretty nasty behavior > (the machine is useless without) so it could be a 2.6.29 candidate... Well, that beast was selling with linux preloaded, no? Or was it another msi wind? In such case I'd expect old kernel to work... or maybe some reasonable workaround somewhere... -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 0/2] Make the touchpad on the MSI Wind netbook work 2009-02-10 20:25 ` [patch 0/2] Make the touchpad on the MSI Wind netbook work Pavel Machek @ 2009-02-10 22:00 ` Rafael J. Wysocki 2009-02-11 1:00 ` Jiri Kosina 2009-02-10 23:06 ` Arjan van de Ven 1 sibling, 1 reply; 18+ messages in thread From: Rafael J. Wysocki @ 2009-02-10 22:00 UTC (permalink / raw) To: Pavel Machek; +Cc: Arjan van de Ven, linux-input, linux-kernel, akpm On Tuesday 10 February 2009, Pavel Machek wrote: > On Wed 2009-02-04 19:15:40, Arjan van de Ven wrote: > > Hi, > > > > A MSI Wind (100) netbook landed on my desk with the comment "touchpad > > doesn't work in Linux but works in XP". > > > > It turns out that there are a 2 separate issues with this netbook that > > needed fixing > > > > 1) The touchpad requires the equivalent of "i8042.reset", which resets > > the controller before probing. (This is done via a DMI quirk in patch > > 2/2) > > > > 2) About half the time, the reset will fail the first time. In the > > current code, this is fatal and then also disables the keyboard in > > addition to the touchpad. Ungood. Patch 1 makes the kernel retry the > > reset upto five times before giving up (it seems the 2nd or 3rd time > > succeed for me), and also adds an option to not make such a failure > > fatal to the keyboard. > > > > I don't think this is a regression, but it is pretty nasty behavior > > (the machine is useless without) so it could be a 2.6.29 candidate... > > Well, that beast was selling with linux preloaded, no? Or was it > another msi wind? In such case I'd expect old kernel to work... or > maybe some reasonable workaround somewhere... In fact I have an MSI Wind and the touchpad is works on it just fine with the current mainline. Perhaps this one is just another MSI Wind. What model is it? Rafael ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 0/2] Make the touchpad on the MSI Wind netbook work 2009-02-10 22:00 ` Rafael J. Wysocki @ 2009-02-11 1:00 ` Jiri Kosina 2009-02-11 1:13 ` Arjan van de Ven 2009-02-11 9:50 ` Rafael J. Wysocki 0 siblings, 2 replies; 18+ messages in thread From: Jiri Kosina @ 2009-02-11 1:00 UTC (permalink / raw) To: Rafael J. Wysocki Cc: Pavel Machek, Arjan van de Ven, linux-input, linux-kernel, akpm On Tue, 10 Feb 2009, Rafael J. Wysocki wrote: > > Well, that beast was selling with linux preloaded, no? Or was it > > another msi wind? In such case I'd expect old kernel to work... or > > maybe some reasonable workaround somewhere... > In fact I have an MSI Wind and the touchpad is works on it just fine with the > current mainline. > Perhaps this one is just another MSI Wind. What model is it? >From what I have heard there are different models of MSI Wind out there, with different set of hardware configurations. Arjan, Rafael, could you please provide the dmidecode outputs for the working and non-working systems, so that we can see what are the differences? Thanks, -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 0/2] Make the touchpad on the MSI Wind netbook work 2009-02-11 1:00 ` Jiri Kosina @ 2009-02-11 1:13 ` Arjan van de Ven 2009-02-11 1:18 ` Jiri Kosina 2009-02-11 9:50 ` Rafael J. Wysocki 1 sibling, 1 reply; 18+ messages in thread From: Arjan van de Ven @ 2009-02-11 1:13 UTC (permalink / raw) To: Jiri Kosina Cc: Rafael J. Wysocki, Pavel Machek, linux-input, linux-kernel, akpm On Wed, 11 Feb 2009 02:00:21 +0100 (CET) Jiri Kosina <jkosina@suse.cz> wrote: > On Tue, 10 Feb 2009, Rafael J. Wysocki wrote: > > > > Well, that beast was selling with linux preloaded, no? Or was it > > > another msi wind? In such case I'd expect old kernel to work... > > > or maybe some reasonable workaround somewhere... > > In fact I have an MSI Wind and the touchpad is works on it just > > fine with the current mainline. > > Perhaps this one is just another MSI Wind. What model is it? > > >From what I have heard there are different models of MSI Wind out > >there, > with different set of hardware configurations. > > Arjan, Rafael, could you please provide the dmidecode outputs for the > working and non-working systems, so that we can see what are the > differences? does this matter for the patch ? -- Arjan van de Ven Intel Open Source Technology Centre For development, discussion and tips for power savings, visit http://www.lesswatts.org ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 0/2] Make the touchpad on the MSI Wind netbook work 2009-02-11 1:13 ` Arjan van de Ven @ 2009-02-11 1:18 ` Jiri Kosina 0 siblings, 0 replies; 18+ messages in thread From: Jiri Kosina @ 2009-02-11 1:18 UTC (permalink / raw) To: Arjan van de Ven Cc: Rafael J. Wysocki, Pavel Machek, linux-input, linux-kernel, akpm On Tue, 10 Feb 2009, Arjan van de Ven wrote: > > > From what I have heard there are different models of MSI Wind out > > > there, with different set of hardware configurations. > > Arjan, Rafael, could you please provide the dmidecode outputs for the > > working and non-working systems, so that we can see what are the > > differences? > does this matter for the patch ? Only in a very minor way -- if the board name in the DMI is the same, we could avoid performing the extra resets when not needed by specifying a different DMI match criteria. -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 0/2] Make the touchpad on the MSI Wind netbook work 2009-02-11 1:00 ` Jiri Kosina 2009-02-11 1:13 ` Arjan van de Ven @ 2009-02-11 9:50 ` Rafael J. Wysocki 1 sibling, 0 replies; 18+ messages in thread From: Rafael J. Wysocki @ 2009-02-11 9:50 UTC (permalink / raw) To: Jiri Kosina Cc: Pavel Machek, Arjan van de Ven, linux-input, linux-kernel, akpm [-- Attachment #1: Type: text/plain, Size: 783 bytes --] On Wednesday 11 February 2009, Jiri Kosina wrote: > On Tue, 10 Feb 2009, Rafael J. Wysocki wrote: > > > > Well, that beast was selling with linux preloaded, no? Or was it > > > another msi wind? In such case I'd expect old kernel to work... or > > > maybe some reasonable workaround somewhere... > > In fact I have an MSI Wind and the touchpad is works on it just fine with the > > current mainline. > > Perhaps this one is just another MSI Wind. What model is it? > > From what I have heard there are different models of MSI Wind out there, > with different set of hardware configurations. > > Arjan, Rafael, could you please provide the dmidecode outputs for the > working and non-working systems, so that we can see what are the > differences? Attached. Thanks, Rafael [-- Attachment #2: wind-dmidecode.log --] [-- Type: text/x-log, Size: 12591 bytes --] # dmidecode 2.9 SMBIOS 2.4 present. 45 structures occupying 1626 bytes. Table at 0x3F607010. Handle 0x0000, DMI type 0, 24 bytes BIOS Information Vendor: American Megatrends Inc. Version: 4.6.3 Release Date: 06/26/2008 Address: 0xF0000 Runtime Size: 64 kB ROM Size: 1024 kB Characteristics: PCI is supported BIOS is upgradeable BIOS shadowing is allowed ESCD support is available Boot from CD is supported Selectable boot is supported BIOS ROM is socketed EDD is supported 5.25"/1.2 MB floppy services are supported (int 13h) 3.5"/720 KB floppy services are supported (int 13h) 3.5"/2.88 MB floppy services are supported (int 13h) Print screen service is supported (int 5h) 8042 keyboard services are supported (int 9h) Serial services are supported (int 14h) Printer services are supported (int 17h) CGA/mono video services are supported (int 10h) ACPI is supported LS-120 boot is supported ATAPI Zip drive boot is supported BIOS boot specification is supported Targeted content distribution is supported BIOS Revision: 4.6 Handle 0x0001, DMI type 1, 27 bytes System Information Manufacturer: MICRO-STAR INTERNATIONAL CO., LTD Product Name: U-100 Version: Ver.001 Serial Number: FFFFFFFF UUID: 00000000-0000-0000-0000-001D925AD702 Wake-up Type: Power Switch SKU Number: To be filled by O.E.M. Family: To be filled by O.E.M. Handle 0x0002, DMI type 2, 15 bytes Base Board Information Manufacturer: MICRO-STAR INTERNATIONAL CO., LTD Product Name: U-100 Version: Ver.001 Serial Number: FFFFFFFF Asset Tag: To be filled by O.E.M. Features: Board is a hosting board Board is replaceable Location In Chassis: To be filled by O.E.M. Chassis Handle: 0x0003 Type: Motherboard Contained Object Handles: 0 Handle 0x0003, DMI type 3, 21 bytes Chassis Information Manufacturer: MICRO-STAR INTERNATIONAL CO., LTD Type: Desktop Lock: Present Version: Ver.001 Serial Number: FFFFFFFF Asset Tag: To Be Filled By O.E.M. Boot-up State: Safe Power Supply State: Safe Thermal State: Safe Security Status: None OEM Information: 0x00000000 Height: Unspecified Number Of Power Cords: 1 Contained Elements: 0 Handle 0x0004, DMI type 4, 35 bytes Processor Information Socket Designation: CPU 1 Type: Central Processor Family: Pentium M Manufacturer: Intel ID: C2 06 01 00 FF FB E9 BF Signature: Type 0, Family 6, Model 28, Stepping 2 Flags: FPU (Floating-point unit on-chip) VME (Virtual mode extension) DE (Debugging extension) PSE (Page size extension) TSC (Time stamp counter) MSR (Model specific registers) PAE (Physical address extension) MCE (Machine check exception) CX8 (CMPXCHG8 instruction supported) APIC (On-chip APIC hardware supported) SEP (Fast system call) MTRR (Memory type range registers) PGE (Page global enable) MCA (Machine check architecture) CMOV (Conditional move instruction supported) PAT (Page attribute table) CLFSH (CLFLUSH instruction supported) DS (Debug store) ACPI (ACPI supported) MMX (MMX technology supported) FXSR (Fast floating-point save and restore) SSE (Streaming SIMD extensions) SSE2 (Streaming SIMD extensions 2) SS (Self-snoop) HTT (Hyper-threading technology) TM (Thermal monitor supported) PBE (Pending break enabled) Version: Intel(R) Atom(TM) CPU N270 @ 1.60GH Voltage: 3.3 V 2.9 V External Clock: 533 MHz Max Speed: 4000 MHz Current Speed: 1599 MHz Status: Populated, Enabled Upgrade: Other L1 Cache Handle: 0x0005 L2 Cache Handle: 0x0006 L3 Cache Handle: Not Provided Serial Number: To Be Filled By O.E.M. Asset Tag: To Be Filled By O.E.M. Part Number: To Be Filled By O.E.M. Handle 0x0005, DMI type 7, 19 bytes Cache Information Socket Designation: L1-Cache Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back Location: Internal Installed Size: 24 KB Maximum Size: 24 KB Supported SRAM Types: Other Installed SRAM Type: Other Speed: Unknown Error Correction Type: None System Type: Unified Associativity: Other Handle 0x0006, DMI type 7, 19 bytes Cache Information Socket Designation: L2-Cache Configuration: Enabled, Not Socketed, Level 2 Operational Mode: Varies With Memory Address Location: Internal Installed Size: 512 KB Maximum Size: 512 KB Supported SRAM Types: Other Installed SRAM Type: Other Speed: Unknown Error Correction Type: None System Type: Unified Associativity: 8-way Set-associative Handle 0x0007, DMI type 126, 19 bytes Inactive Handle 0x0008, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J1A1 Internal Connector Type: None External Reference Designator: PS2Mouse External Connector Type: PS/2 Port Type: Mouse Port Handle 0x0009, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J1A1 Internal Connector Type: None External Reference Designator: Keyboard External Connector Type: PS/2 Port Type: Keyboard Port Handle 0x000A, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J2A1 Internal Connector Type: None External Reference Designator: TV Out External Connector Type: Mini Centronics Type-14 Port Type: Other Handle 0x000B, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J2A2A Internal Connector Type: None External Reference Designator: COM A External Connector Type: DB-9 male Port Type: Serial Port 16550A Compatible Handle 0x000C, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J2A2B Internal Connector Type: None External Reference Designator: Video External Connector Type: DB-15 female Port Type: Video Port Handle 0x000D, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J3A1 Internal Connector Type: None External Reference Designator: USB1 External Connector Type: Access Bus (USB) Port Type: USB Handle 0x000E, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J3A1 Internal Connector Type: None External Reference Designator: USB2 External Connector Type: Access Bus (USB) Port Type: USB Handle 0x000F, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J3A1 Internal Connector Type: None External Reference Designator: USB3 External Connector Type: Access Bus (USB) Port Type: USB Handle 0x0010, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J5A1 Internal Connector Type: None External Reference Designator: LAN External Connector Type: RJ-45 Port Type: Network Port Handle 0x0011, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J5A1 Internal Connector Type: None External Reference Designator: USB4 External Connector Type: Access Bus (USB) Port Type: USB Handle 0x0012, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J5A1 Internal Connector Type: None External Reference Designator: USB5 External Connector Type: Access Bus (USB) Port Type: USB Handle 0x0013, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J1E1 - ITP Internal Connector Type: Other External Reference Designator: Not Specified External Connector Type: None Port Type: Other Handle 0x0014, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J8J2 - SATA 0 Internal Connector Type: Other External Reference Designator: Not Specified External Connector Type: None Port Type: Other Handle 0x0015, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J7H1 - SATA 1 Internal Connector Type: Other External Reference Designator: Not Specified External Connector Type: None Port Type: Other Handle 0x0016, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J3C1 - CPU FAN Internal Connector Type: Other External Reference Designator: Not Specified External Connector Type: None Port Type: Other Handle 0x0017, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J3C1 - CPU FAN Internal Connector Type: Other External Reference Designator: Not Specified External Connector Type: None Port Type: Other Handle 0x0018, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J4J1 - MAIN POWER Internal Connector Type: Other External Reference Designator: Not Specified External Connector Type: None Port Type: Other Handle 0x0019, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J6J1 - ITP Internal Connector Type: Other External Reference Designator: Not Specified External Connector Type: None Port Type: Other Handle 0x001A, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J7J1 - IDE Internal Connector Type: On Board IDE External Reference Designator: Not Specified External Connector Type: None Port Type: Other Handle 0x001B, DMI type 9, 13 bytes System Slot Information Designation: J6C1 Type: x16 PCI Express Current Usage: Available Length: Long ID: 0 Characteristics: 3.3 V is provided Opening is shared PME signal is supported Handle 0x001C, DMI type 9, 13 bytes System Slot Information Designation: J7C1 Type: x1 PCI Express Current Usage: In Use Length: Short ID: 1 Characteristics: 3.3 V is provided Opening is shared PME signal is supported Handle 0x001D, DMI type 9, 13 bytes System Slot Information Designation: J8C1 Type: x1 PCI Express Current Usage: In Use Length: Short ID: 2 Characteristics: 3.3 V is provided Opening is shared PME signal is supported Handle 0x001E, DMI type 9, 13 bytes System Slot Information Designation: J8B1 Type: 32-bit PCI Current Usage: Available Length: Short ID: 3 Characteristics: 3.3 V is provided Opening is shared PME signal is supported Handle 0x001F, DMI type 9, 13 bytes System Slot Information Designation: J9B1 Type: 32-bit PCI Current Usage: Available Length: Short ID: 4 Characteristics: 3.3 V is provided Opening is shared PME signal is supported Handle 0x0020, DMI type 10, 6 bytes On Board Device Information Type: Video Status: Enabled Description: To Be Filled By O.E.M. Handle 0x0021, DMI type 10, 6 bytes On Board Device Information Type: <OUT OF SPEC> Status: Enabled Description: To Be Filled By O.E.M. Handle 0x0022, DMI type 11, 5 bytes OEM Strings String 1: To Be Filled By O.E.M. Handle 0x0023, DMI type 12, 5 bytes System Configuration Options Option 1: To Be Filled By O.E.M. Handle 0x0024, DMI type 13, 22 bytes BIOS Language Information Installable Languages: 1 en|US|iso8859-1 Currently Installed Language: en|US|iso8859-1 Handle 0x0025, DMI type 16, 15 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: None Maximum Capacity: 2048 GB Error Information Handle: Not Provided Number Of Devices: 2 Handle 0x0026, DMI type 19, 15 bytes Memory Array Mapped Address Starting Address: 0x00000000000 Ending Address: 0x000000003FF Range Size: 1 kB Physical Array Handle: 0x0025 Partition Width: 0 Handle 0x0027, DMI type 17, 27 bytes Memory Device Array Handle: 0x0025 Error Information Handle: Not Provided Total Width: Unknown Data Width: 64 bits Size: Unknown Form Factor: DIMM Set: Unknown Locator: DIMM0 Bank Locator: BANK0 Type: DDR2 Type Detail: Synchronous Speed: Unknown Manufacturer: Manufacturer0 Serial Number: SerNum0 Asset Tag: AssetTagNum0 Part Number: PartNum0 Handle 0x0028, DMI type 20, 19 bytes Memory Device Mapped Address Starting Address: 0x00000000000 Ending Address: 0x000000003FF Range Size: 1 kB Physical Device Handle: 0x0027 Memory Array Mapped Address Handle: 0x0026 Partition Row Position: 1 Handle 0x0029, DMI type 17, 27 bytes Memory Device Array Handle: 0x0025 Error Information Handle: Not Provided Total Width: Unknown Data Width: 64 bits Size: Unknown Form Factor: DIMM Set: Unknown Locator: DIMM1 Bank Locator: BANK1 Type: DDR2 Type Detail: Synchronous Speed: Unknown Manufacturer: Manufacturer1 Serial Number: SerNum1 Asset Tag: AssetTagNum1 Part Number: PartNum1 Handle 0x002A, DMI type 20, 19 bytes Memory Device Mapped Address Starting Address: 0x00000000000 Ending Address: 0x000000003FF Range Size: 1 kB Physical Device Handle: 0x0029 Memory Array Mapped Address Handle: 0x0026 Partition Row Position: 1 Handle 0x002B, DMI type 32, 20 bytes System Boot Information Status: No errors detected Handle 0x002C, DMI type 127, 4 bytes End Of Table ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 0/2] Make the touchpad on the MSI Wind netbook work 2009-02-10 20:25 ` [patch 0/2] Make the touchpad on the MSI Wind netbook work Pavel Machek 2009-02-10 22:00 ` Rafael J. Wysocki @ 2009-02-10 23:06 ` Arjan van de Ven 1 sibling, 0 replies; 18+ messages in thread From: Arjan van de Ven @ 2009-02-10 23:06 UTC (permalink / raw) To: Pavel Machek; +Cc: linux-input, linux-kernel, akpm On Tue, 10 Feb 2009 21:25:58 +0100 Pavel Machek <pavel@suse.cz> wrote: > On Wed 2009-02-04 19:15:40, Arjan van de Ven wrote: > > Hi, > > > > A MSI Wind (100) netbook landed on my desk with the comment > > "touchpad doesn't work in Linux but works in XP". > > > > It turns out that there are a 2 separate issues with this netbook > > that needed fixing > > > > 1) The touchpad requires the equivalent of "i8042.reset", which > > resets the controller before probing. (This is done via a DMI quirk > > in patch 2/2) > > > > 2) About half the time, the reset will fail the first time. In the > > current code, this is fatal and then also disables the keyboard in > > addition to the touchpad. Ungood. Patch 1 makes the kernel retry the > > reset upto five times before giving up (it seems the 2nd or 3rd time > > succeed for me), and also adds an option to not make such a failure > > fatal to the keyboard. > > > > I don't think this is a regression, but it is pretty nasty behavior > > (the machine is useless without) so it could be a 2.6.29 > > candidate... > > Well, that beast was selling with linux preloaded, no? Or was it > another msi wind? In such case I'd expect old kernel to work... or > maybe some reasonable workaround somewhere... afaik the newer ones have a different touchpad > -- Arjan van de Ven Intel Open Source Technology Centre For development, discussion and tips for power savings, visit http://www.lesswatts.org ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 0/2] Make the touchpad on the MSI Wind netbook work 2009-02-05 3:15 [patch 0/2] Make the touchpad on the MSI Wind netbook work Arjan van de Ven ` (2 preceding siblings ...) 2009-02-10 20:25 ` [patch 0/2] Make the touchpad on the MSI Wind netbook work Pavel Machek @ 2009-02-11 1:45 ` Matthew Garrett 2009-02-11 12:17 ` Jiri Kosina 3 siblings, 1 reply; 18+ messages in thread From: Matthew Garrett @ 2009-02-11 1:45 UTC (permalink / raw) To: Arjan van de Ven; +Cc: linux-input, linux-kernel, akpm Could https://lists.ubuntu.com/archives/kernel-team/2009-February/004335.html be related? It seems quite plausible that we want to do this on all hardware. -- Matthew Garrett | mjg59@srcf.ucam.org ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 0/2] Make the touchpad on the MSI Wind netbook work 2009-02-11 1:45 ` Matthew Garrett @ 2009-02-11 12:17 ` Jiri Kosina 2009-02-11 13:28 ` Andy Whitcroft 0 siblings, 1 reply; 18+ messages in thread From: Jiri Kosina @ 2009-02-11 12:17 UTC (permalink / raw) To: Matthew Garrett Cc: Arjan van de Ven, linux-input, linux-kernel, Andrew Morton, Andy Whitcroft On Wed, 11 Feb 2009, Matthew Garrett wrote: > https://lists.ubuntu.com/archives/kernel-team/2009-February/004335.html > be related? It seems quite plausible that we want to do this on all > hardware. Actually I have also hit this on several machines. Dmitry, I would propose to take Andy's patch (maybe even for 2.6.29?), it would save us a lot of bugreports in the future. -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [patch 0/2] Make the touchpad on the MSI Wind netbook work 2009-02-11 12:17 ` Jiri Kosina @ 2009-02-11 13:28 ` Andy Whitcroft 0 siblings, 0 replies; 18+ messages in thread From: Andy Whitcroft @ 2009-02-11 13:28 UTC (permalink / raw) To: Jiri Kosina Cc: Matthew Garrett, Arjan van de Ven, linux-input, linux-kernel, Andrew Morton On Wed, Feb 11, 2009 at 01:17:02PM +0100, Jiri Kosina wrote: > On Wed, 11 Feb 2009, Matthew Garrett wrote: > > > https://lists.ubuntu.com/archives/kernel-team/2009-February/004335.html > > be related? It seems quite plausible that we want to do this on all > > hardware. > > Actually I have also hit this on several machines. Dmitry, I would propose > to take Andy's patch (maybe even for 2.6.29?), it would save us a lot of > bugreports in the future. Yes I was about to push this upstream. I was supprised we had not seen any other reports of it, seems that we have all been seeing it and not realised. Including the patch inline for those who prefer to avoid links. -apw >From cce152ae74a5084c7e3dffc25032d43908a5fa77 Mon Sep 17 00:00:00 2001 From: Andy Whitcroft <apw@canonical.com> Date: Mon, 2 Feb 2009 16:32:25 +0000 Subject: [PATCH 1/1] psmouse/synaptics: ensure we reset the device on resume When resuming from suspend newer Synaptics touchpads do not recover correctly. Analysis of the resume sequence as applied in Linux was compared to that of other operating systems. This indicated that the other OSs were resetting the mouse before attempting to detect it (for all Synaptics touchpads, old and new). Applying this same modification fixes these newer Synaptics touchpads and brings the driver into line with common OS reset behaviour. This patch adds this reset by default providing a module option to restore the previous non-reset behaviour: psmouse.synaptics_resume_reset=N Also a message is emmitted on resume hinting as to how to fix a broken touchpad. Signed-off-by: Andy Whitcroft <apw@canonical.com> --- drivers/input/mouse/synaptics.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c index d349c4a..5b01c14 100644 --- a/drivers/input/mouse/synaptics.c +++ b/drivers/input/mouse/synaptics.c @@ -60,11 +60,21 @@ static int synaptics_mode_cmd(struct psmouse *psmouse, unsigned char mode) return 0; } +static int synaptics_resume_reset = 1; +module_param(synaptics_resume_reset, bool, 0); +MODULE_PARM_DESC(synaptics_resume_reset, + "Enable reset on resume for Synaptics"); + int synaptics_detect(struct psmouse *psmouse, int set_properties) { struct ps2dev *ps2dev = &psmouse->ps2dev; unsigned char param[4]; + if (synaptics_resume_reset) { + printk(KERN_CRIT "WARNING: synaptics was reset on resume, see synaptics_resume_reset if you have trouble on resume\n"); + psmouse_reset(psmouse); + } + param[0] = 0; ps2_command(ps2dev, param, PSMOUSE_CMD_SETRES); -- 1.6.1.2.419.g0d87e ^ permalink raw reply related [flat|nested] 18+ messages in thread
end of thread, other threads:[~2009-02-11 13:28 UTC | newest] Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-02-05 3:15 [patch 0/2] Make the touchpad on the MSI Wind netbook work Arjan van de Ven 2009-02-05 3:16 ` [patch 1/2] input: introduce a tougher i8042.reset Arjan van de Ven 2009-02-05 21:52 ` Andrew Morton 2009-02-05 21:52 ` Andrew Morton 2009-02-06 0:35 ` Arjan van de Ven 2009-02-05 3:17 ` [patch 2/2] input: add a DMI table for the i8042.reset option; make MSI Wind U-100 work Arjan van de Ven 2009-02-06 0:21 ` Andrew Morton 2009-02-06 0:21 ` Andrew Morton 2009-02-10 20:25 ` [patch 0/2] Make the touchpad on the MSI Wind netbook work Pavel Machek 2009-02-10 22:00 ` Rafael J. Wysocki 2009-02-11 1:00 ` Jiri Kosina 2009-02-11 1:13 ` Arjan van de Ven 2009-02-11 1:18 ` Jiri Kosina 2009-02-11 9:50 ` Rafael J. Wysocki 2009-02-10 23:06 ` Arjan van de Ven 2009-02-11 1:45 ` Matthew Garrett 2009-02-11 12:17 ` Jiri Kosina 2009-02-11 13:28 ` Andy Whitcroft
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.