All of lore.kernel.org
 help / color / mirror / Atom feed
* Synaptics touchpad on Dell Vostro V13
@ 2010-12-14 14:56 Jiri Kosina
  2010-12-14 17:00 ` Dmitry Torokhov
  0 siblings, 1 reply; 17+ messages in thread
From: Jiri Kosina @ 2010-12-14 14:56 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input, linux-kernel

Hi Dmitry,

I have a bugreport about Synaptics touchpad not working as proper 
Synaptics, but only being detected as standard PS/2.

Looking at the i8042.debug output, the device is clearly buggy, as it 
doesn't identify itself by 0x47 when queried:

	91 -> i8042 (command) [58]
	e8 -> i8042 (parameter) [58]
	fa <- i8042 (interrupt, 3, 12) [59]
	91 -> i8042 (command) [59]
	00 -> i8042 (parameter) [59]
	fa <- i8042 (interrupt, 3, 12) [59]
	91 -> i8042 (command) [59]
	e8 -> i8042 (parameter) [59]
	fa <- i8042 (interrupt, 3, 12) [60]
	91 -> i8042 (command) [60]
	00 -> i8042 (parameter) [60]
	fa <- i8042 (interrupt, 3, 12) [61]
	91 -> i8042 (command) [61]
	e8 -> i8042 (parameter) [61]
	fa <- i8042 (interrupt, 3, 12) [61]
	91 -> i8042 (command) [61]
	00 -> i8042 (parameter) [61]
	fa <- i8042 (interrupt, 3, 12) [62]
	91 -> i8042 (command) [62]
	e8 -> i8042 (parameter) [62]
	fa <- i8042 (interrupt, 3, 12) [63]
	91 -> i8042 (command) [63]
	00 -> i8042 (parameter) [63]
	fa <- i8042 (interrupt, 3, 12) [64]
	91 -> i8042 (command) [64]
	e9 -> i8042 (parameter) [64]
	fa <- i8042 (interrupt, 3, 12) [64]

... and here we time out after approximately 0.5s. nomux doesn't really 
fix it, we start getting a lot of timeouts on i8042 with that.

Apparently the device works with Synaptics driver in Other OS(TM) though. 
Do you have any idea what they might be doing differently so that they 
make the touchpad identify itself properly?

https://bugzilla.kernel.org/show_bug.cgi?id=15416 seems to be related BTW.

Thanks,

-- 
Jiri Kosina
SUSE Labs, Novell Inc.

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

* Re: Synaptics touchpad on Dell Vostro V13
  2010-12-14 14:56 Synaptics touchpad on Dell Vostro V13 Jiri Kosina
@ 2010-12-14 17:00 ` Dmitry Torokhov
  2010-12-15 22:51   ` Jiri Kosina
  0 siblings, 1 reply; 17+ messages in thread
From: Dmitry Torokhov @ 2010-12-14 17:00 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: linux-input, linux-kernel

On Tue, Dec 14, 2010 at 03:56:56PM +0100, Jiri Kosina wrote:
> Hi Dmitry,
> 
> I have a bugreport about Synaptics touchpad not working as proper 
> Synaptics, but only being detected as standard PS/2.
> 
> Looking at the i8042.debug output, the device is clearly buggy, as it 
> doesn't identify itself by 0x47 when queried:
> 
> 	91 -> i8042 (command) [58]
> 	e8 -> i8042 (parameter) [58]
> 	fa <- i8042 (interrupt, 3, 12) [59]
> 	91 -> i8042 (command) [59]
> 	00 -> i8042 (parameter) [59]
> 	fa <- i8042 (interrupt, 3, 12) [59]
> 	91 -> i8042 (command) [59]
> 	e8 -> i8042 (parameter) [59]
> 	fa <- i8042 (interrupt, 3, 12) [60]
> 	91 -> i8042 (command) [60]
> 	00 -> i8042 (parameter) [60]
> 	fa <- i8042 (interrupt, 3, 12) [61]
> 	91 -> i8042 (command) [61]
> 	e8 -> i8042 (parameter) [61]
> 	fa <- i8042 (interrupt, 3, 12) [61]
> 	91 -> i8042 (command) [61]
> 	00 -> i8042 (parameter) [61]
> 	fa <- i8042 (interrupt, 3, 12) [62]
> 	91 -> i8042 (command) [62]
> 	e8 -> i8042 (parameter) [62]
> 	fa <- i8042 (interrupt, 3, 12) [63]
> 	91 -> i8042 (command) [63]
> 	00 -> i8042 (parameter) [63]
> 	fa <- i8042 (interrupt, 3, 12) [64]
> 	91 -> i8042 (command) [64]
> 	e9 -> i8042 (parameter) [64]
> 	fa <- i8042 (interrupt, 3, 12) [64]
> 
> ... and here we time out after approximately 0.5s. nomux doesn't really 
> fix it, we start getting a lot of timeouts on i8042 with that.
> 
> Apparently the device works with Synaptics driver in Other OS(TM) though. 
> Do you have any idea what they might be doing differently so that they 
> make the touchpad identify itself properly?

Hi Jiri,

Do you have the device in your possession? If so can you check if the
driver installed in Other OS uses active multiplexing? I think you can
infer whether it does or not by looking at the pointer properties - I
think it would "Synaptics Blah at port X" or something like that...

Also you could try combining nomux with reset and see if it makes any
sense...

Thanks.

-- 
Dmitry

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

* Re: Synaptics touchpad on Dell Vostro V13
  2010-12-14 17:00 ` Dmitry Torokhov
@ 2010-12-15 22:51   ` Jiri Kosina
  2010-12-15 23:23     ` Dmitry Torokhov
  0 siblings, 1 reply; 17+ messages in thread
From: Jiri Kosina @ 2010-12-15 22:51 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input, linux-kernel

On Tue, 14 Dec 2010, Dmitry Torokhov wrote:

> > I have a bugreport about Synaptics touchpad not working as proper 
> > Synaptics, but only being detected as standard PS/2.
> > 
> > Looking at the i8042.debug output, the device is clearly buggy, as it 
> > doesn't identify itself by 0x47 when queried:
> > 
> > 	91 -> i8042 (command) [58]
> > 	e8 -> i8042 (parameter) [58]
> > 	fa <- i8042 (interrupt, 3, 12) [59]
> > 	91 -> i8042 (command) [59]
> > 	00 -> i8042 (parameter) [59]
> > 	fa <- i8042 (interrupt, 3, 12) [59]
> > 	91 -> i8042 (command) [59]
> > 	e8 -> i8042 (parameter) [59]
> > 	fa <- i8042 (interrupt, 3, 12) [60]
> > 	91 -> i8042 (command) [60]
> > 	00 -> i8042 (parameter) [60]
> > 	fa <- i8042 (interrupt, 3, 12) [61]
> > 	91 -> i8042 (command) [61]
> > 	e8 -> i8042 (parameter) [61]
> > 	fa <- i8042 (interrupt, 3, 12) [61]
> > 	91 -> i8042 (command) [61]
> > 	00 -> i8042 (parameter) [61]
> > 	fa <- i8042 (interrupt, 3, 12) [62]
> > 	91 -> i8042 (command) [62]
> > 	e8 -> i8042 (parameter) [62]
> > 	fa <- i8042 (interrupt, 3, 12) [63]
> > 	91 -> i8042 (command) [63]
> > 	00 -> i8042 (parameter) [63]
> > 	fa <- i8042 (interrupt, 3, 12) [64]
> > 	91 -> i8042 (command) [64]
> > 	e9 -> i8042 (parameter) [64]
> > 	fa <- i8042 (interrupt, 3, 12) [64]
> > 
> > ... and here we time out after approximately 0.5s. nomux doesn't really 
> > fix it, we start getting a lot of timeouts on i8042 with that.
> > 
> > Apparently the device works with Synaptics driver in Other OS(TM) though. 
> > Do you have any idea what they might be doing differently so that they 
> > make the touchpad identify itself properly?
> 
> Hi Jiri,
> 
> Do you have the device in your possession? If so can you check if the
> driver installed in Other OS uses active multiplexing? I think you can
> infer whether it does or not by looking at the pointer properties - I
> think it would "Synaptics Blah at port X" or something like that...

Unfortunately I don't have the hardware myself, it's only bugreport that 
reached me. I will check this, thanks.

> Also you could try combining nomux with reset and see if it makes any
> sense...

Yes, I have already had the reporter to do this, but that's even better -- 
a lot of commands time out, as you can see below

 20 -> i8042 (command) [0]
 47 <- i8042 (return) [0]
 20 -> i8042 (command) [0]
 47 <- i8042 (return) [0]
 60 -> i8042 (command) [0]
 56 -> i8042 (parameter) [0]
 d3 -> i8042 (command) [0]
 5a -> i8042 (parameter) [0]
 5a <- i8042 (return) [0]
 a7 -> i8042 (command) [0]
 20 -> i8042 (command) [0]
 76 <- i8042 (return) [0]
 a8 -> i8042 (command) [0]
 20 -> i8042 (command) [0]
 56 <- i8042 (return) [0]
 60 -> i8042 (command) [0]
 56 -> i8042 (parameter) [0]
 d3 -> i8042 (command) [0]
 a5 -> i8042 (parameter) [0]
 a5 <- i8042 (aux_test_irq, aux) [1]
 60 -> i8042 (command) [1]
 74 -> i8042 (parameter) [1]
 60 -> i8042 (command) [1]
 56 -> i8042 (parameter) [1]
 60 -> i8042 (command) [1]
 47 -> i8042 (parameter) [1]
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
 f2 -> i8042 (kbd-data) [1]
 fa <- i8042 (interrupt, 0, 1, timeout) [1]
 ab <- i8042 (interrupt, 0, 1, timeout) [1]
 83 <- i8042 (interrupt, 0, 1, timeout) [1]
 ed -> i8042 (kbd-data) [1]
 fa <- i8042 (interrupt, 0, 1, timeout) [1]
 00 -> i8042 (kbd-data) [1]
 fa <- i8042 (interrupt, 0, 1, timeout) [1]
 f3 -> i8042 (kbd-data) [1]
 fa <- i8042 (interrupt, 0, 1, timeout) [1]
 00 -> i8042 (kbd-data) [1]
 fa <- i8042 (interrupt, 0, 1, timeout) [1]
 f4 -> i8042 (kbd-data) [1]
 fa <- i8042 (interrupt, 0, 1, timeout) [1]
input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
 d4 -> i8042 (command) [2]
 f2 -> i8042 (parameter) [2]
 fa <- i8042 (interrupt, 1, 12, timeout) [2]
 00 <- i8042 (interrupt, 1, 12, timeout) [3]
 60 -> i8042 (command) [3]
 45 -> i8042 (parameter) [3]
 60 -> i8042 (command) [3]
 47 -> i8042 (parameter) [3]
 d4 -> i8042 (command) [3]
 f2 -> i8042 (parameter) [3]
 fa <- i8042 (interrupt, 1, 12, timeout) [4]
 60 -> i8042 (command) [4]
 45 -> i8042 (parameter) [4]
 60 -> i8042 (command) [4]
 47 -> i8042 (parameter) [4]
 00 <- i8042 (interrupt, 1, 12, timeout) [5]

...

 f3 -> i8042 (kbd-data) [6323]
 fa <- i8042 (interrupt, 0, 1, timeout) [6323]
 20 -> i8042 (kbd-data) [6323]
 fa <- i8042 (interrupt, 0, 1, timeout) [6323]
 2d <- i8042 (interrupt, 0, 1, timeout) [10631]
 10 <- i8042 (interrupt, 0, 1, timeout) [10669]
 ad <- i8042 (interrupt, 0, 1, timeout) [10674]
 90 <- i8042 (interrupt, 0, 1, timeout) [10692]
 2f <- i8042 (interrupt, 0, 1, timeout) [10737]
 af <- i8042 (interrupt, 0, 1, timeout) [10760]
 17 <- i8042 (interrupt, 0, 1, timeout) [10922]
 97 <- i8042 (interrupt, 0, 1, timeout) [10945]
 12 <- i8042 (interrupt, 0, 1, timeout) [10998]
 92 <- i8042 (interrupt, 0, 1, timeout) [11025]
 13 <- i8042 (interrupt, 0, 1, timeout) [11317]
 93 <- i8042 (interrupt, 0, 1, timeout) [11345]
 1c <- i8042 (interrupt, 0, 1, timeout) [11422]
 9c <- i8042 (interrupt, 0, 1, timeout) [11449]
 31 <- i8042 (interrupt, 0, 1, timeout) [11672]
 b1 <- i8042 (interrupt, 0, 1, timeout) [11697]
 18 <- i8042 (interrupt, 0, 1, timeout) [11704]
 98 <- i8042 (interrupt, 0, 1, timeout) [11729]
 2f <- i8042 (interrupt, 0, 1, timeout) [11800]
 af <- i8042 (interrupt, 0, 1, timeout) [11821]
 12 <- i8042 (interrupt, 0, 1, timeout) [11842]
 92 <- i8042 (interrupt, 0, 1, timeout) [11866]
 27 <- i8042 (interrupt, 0, 1, timeout) [11951]
 a7 <- i8042 (interrupt, 0, 1, timeout) [11969]
 0e <- i8042 (interrupt, 0, 1, timeout) [12061]
 8e <- i8042 (interrupt, 0, 1, timeout) [12089]
 26 <- i8042 (interrupt, 0, 1, timeout) [12169]
 a6 <- i8042 (interrupt, 0, 1, timeout) [12187]
 26 <- i8042 (interrupt, 0, 1, timeout) [12207]
 a6 <- i8042 (interrupt, 0, 1, timeout) [12227]
 1c <- i8042 (interrupt, 0, 1, timeout) [12428]
 9c <- i8042 (interrupt, 0, 1, timeout) [12456] 

... and a lot of other timeouts.

If the device wouldn't work with Synaptics driver in other OS, I'd just 
claim the device to be broken behind hope and be done with this, but this 
makes me really wonder what they do differently.

Are you aware of any means of i8042 debugging/sniffing facility in the 
other OS that could be used? :)

Thanks,

-- 
Jiri Kosina
SUSE Labs, Novell Inc.

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

* Re: Synaptics touchpad on Dell Vostro V13
  2010-12-15 22:51   ` Jiri Kosina
@ 2010-12-15 23:23     ` Dmitry Torokhov
  2010-12-28 10:28       ` Jiri Kosina
  0 siblings, 1 reply; 17+ messages in thread
From: Dmitry Torokhov @ 2010-12-15 23:23 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: linux-input, linux-kernel

On Wednesday, December 15, 2010 02:51:01 pm Jiri Kosina wrote:
> On Tue, 14 Dec 2010, Dmitry Torokhov wrote:
> > > I have a bugreport about Synaptics touchpad not working as proper
> > > Synaptics, but only being detected as standard PS/2.
> > > 
> > > Looking at the i8042.debug output, the device is clearly buggy, as it
> > > 
> > > doesn't identify itself by 0x47 when queried:
> > > 	91 -> i8042 (command) [58]
> > > 	e8 -> i8042 (parameter) [58]
> > > 	fa <- i8042 (interrupt, 3, 12) [59]
> > > 	91 -> i8042 (command) [59]
> > > 	00 -> i8042 (parameter) [59]
> > > 	fa <- i8042 (interrupt, 3, 12) [59]
> > > 	91 -> i8042 (command) [59]
> > > 	e8 -> i8042 (parameter) [59]
> > > 	fa <- i8042 (interrupt, 3, 12) [60]
> > > 	91 -> i8042 (command) [60]
> > > 	00 -> i8042 (parameter) [60]
> > > 	fa <- i8042 (interrupt, 3, 12) [61]
> > > 	91 -> i8042 (command) [61]
> > > 	e8 -> i8042 (parameter) [61]
> > > 	fa <- i8042 (interrupt, 3, 12) [61]
> > > 	91 -> i8042 (command) [61]
> > > 	00 -> i8042 (parameter) [61]
> > > 	fa <- i8042 (interrupt, 3, 12) [62]
> > > 	91 -> i8042 (command) [62]
> > > 	e8 -> i8042 (parameter) [62]
> > > 	fa <- i8042 (interrupt, 3, 12) [63]
> > > 	91 -> i8042 (command) [63]
> > > 	00 -> i8042 (parameter) [63]
> > > 	fa <- i8042 (interrupt, 3, 12) [64]
> > > 	91 -> i8042 (command) [64]
> > > 	e9 -> i8042 (parameter) [64]
> > > 	fa <- i8042 (interrupt, 3, 12) [64]
> > > 
> > > ... and here we time out after approximately 0.5s. nomux doesn't really
> > > fix it, we start getting a lot of timeouts on i8042 with that.
> > > 
> > > Apparently the device works with Synaptics driver in Other OS(TM)
> > > though. Do you have any idea what they might be doing differently so
> > > that they make the touchpad identify itself properly?
> > 
> > Hi Jiri,
> > 
> > Do you have the device in your possession? If so can you check if the
> > driver installed in Other OS uses active multiplexing? I think you can
> > infer whether it does or not by looking at the pointer properties - I
> > think it would "Synaptics Blah at port X" or something like that...
> 
> Unfortunately I don't have the hardware myself, it's only bugreport that
> reached me. I will check this, thanks.
> 
> > Also you could try combining nomux with reset and see if it makes any
> > sense...
> 
> Yes, I have already had the reporter to do this, but that's even better --
> a lot of commands time out, as you can see below
> 
>  20 -> i8042 (command) [0]
>  47 <- i8042 (return) [0]
>  20 -> i8042 (command) [0]
>  47 <- i8042 (return) [0]
>  60 -> i8042 (command) [0]
>  56 -> i8042 (parameter) [0]
>  d3 -> i8042 (command) [0]
>  5a -> i8042 (parameter) [0]
>  5a <- i8042 (return) [0]
>  a7 -> i8042 (command) [0]
>  20 -> i8042 (command) [0]
>  76 <- i8042 (return) [0]
>  a8 -> i8042 (command) [0]
>  20 -> i8042 (command) [0]
>  56 <- i8042 (return) [0]
>  60 -> i8042 (command) [0]
>  56 -> i8042 (parameter) [0]
>  d3 -> i8042 (command) [0]
>  a5 -> i8042 (parameter) [0]
>  a5 <- i8042 (aux_test_irq, aux) [1]
>  60 -> i8042 (command) [1]
>  74 -> i8042 (parameter) [1]
>  60 -> i8042 (command) [1]
>  56 -> i8042 (parameter) [1]
>  60 -> i8042 (command) [1]
>  47 -> i8042 (parameter) [1]
> serio: i8042 KBD port at 0x60,0x64 irq 1
> serio: i8042 AUX port at 0x60,0x64 irq 12
> mice: PS/2 mouse device common for all mice
>  f2 -> i8042 (kbd-data) [1]
>  fa <- i8042 (interrupt, 0, 1, timeout) [1]
>  ab <- i8042 (interrupt, 0, 1, timeout) [1]
>  83 <- i8042 (interrupt, 0, 1, timeout) [1]
>  ed -> i8042 (kbd-data) [1]
>  fa <- i8042 (interrupt, 0, 1, timeout) [1]
>  00 -> i8042 (kbd-data) [1]
>  fa <- i8042 (interrupt, 0, 1, timeout) [1]
>  f3 -> i8042 (kbd-data) [1]
>  fa <- i8042 (interrupt, 0, 1, timeout) [1]
>  00 -> i8042 (kbd-data) [1]
>  fa <- i8042 (interrupt, 0, 1, timeout) [1]
>  f4 -> i8042 (kbd-data) [1]
>  fa <- i8042 (interrupt, 0, 1, timeout) [1]
> input: AT Translated Set 2 keyboard as
> /devices/platform/i8042/serio0/input/input0 d4 -> i8042 (command) [2]
>  f2 -> i8042 (parameter) [2]
>  fa <- i8042 (interrupt, 1, 12, timeout) [2]
>  00 <- i8042 (interrupt, 1, 12, timeout) [3]
>  60 -> i8042 (command) [3]
>  45 -> i8042 (parameter) [3]
>  60 -> i8042 (command) [3]
>  47 -> i8042 (parameter) [3]
>  d4 -> i8042 (command) [3]
>  f2 -> i8042 (parameter) [3]
>  fa <- i8042 (interrupt, 1, 12, timeout) [4]
>  60 -> i8042 (command) [4]
>  45 -> i8042 (parameter) [4]
>  60 -> i8042 (command) [4]
>  47 -> i8042 (parameter) [4]
>  00 <- i8042 (interrupt, 1, 12, timeout) [5]
> 
> ...
> 
>  f3 -> i8042 (kbd-data) [6323]
>  fa <- i8042 (interrupt, 0, 1, timeout) [6323]
>  20 -> i8042 (kbd-data) [6323]
>  fa <- i8042 (interrupt, 0, 1, timeout) [6323]
>  2d <- i8042 (interrupt, 0, 1, timeout) [10631]
>  10 <- i8042 (interrupt, 0, 1, timeout) [10669]
>  ad <- i8042 (interrupt, 0, 1, timeout) [10674]
>  90 <- i8042 (interrupt, 0, 1, timeout) [10692]
>  2f <- i8042 (interrupt, 0, 1, timeout) [10737]
>  af <- i8042 (interrupt, 0, 1, timeout) [10760]
>  17 <- i8042 (interrupt, 0, 1, timeout) [10922]
>  97 <- i8042 (interrupt, 0, 1, timeout) [10945]
>  12 <- i8042 (interrupt, 0, 1, timeout) [10998]
>  92 <- i8042 (interrupt, 0, 1, timeout) [11025]
>  13 <- i8042 (interrupt, 0, 1, timeout) [11317]
>  93 <- i8042 (interrupt, 0, 1, timeout) [11345]
>  1c <- i8042 (interrupt, 0, 1, timeout) [11422]
>  9c <- i8042 (interrupt, 0, 1, timeout) [11449]
>  31 <- i8042 (interrupt, 0, 1, timeout) [11672]
>  b1 <- i8042 (interrupt, 0, 1, timeout) [11697]
>  18 <- i8042 (interrupt, 0, 1, timeout) [11704]
>  98 <- i8042 (interrupt, 0, 1, timeout) [11729]
>  2f <- i8042 (interrupt, 0, 1, timeout) [11800]
>  af <- i8042 (interrupt, 0, 1, timeout) [11821]
>  12 <- i8042 (interrupt, 0, 1, timeout) [11842]
>  92 <- i8042 (interrupt, 0, 1, timeout) [11866]
>  27 <- i8042 (interrupt, 0, 1, timeout) [11951]
>  a7 <- i8042 (interrupt, 0, 1, timeout) [11969]
>  0e <- i8042 (interrupt, 0, 1, timeout) [12061]
>  8e <- i8042 (interrupt, 0, 1, timeout) [12089]
>  26 <- i8042 (interrupt, 0, 1, timeout) [12169]
>  a6 <- i8042 (interrupt, 0, 1, timeout) [12187]
>  26 <- i8042 (interrupt, 0, 1, timeout) [12207]
>  a6 <- i8042 (interrupt, 0, 1, timeout) [12227]
>  1c <- i8042 (interrupt, 0, 1, timeout) [12428]
>  9c <- i8042 (interrupt, 0, 1, timeout) [12456]
> 
> ... and a lot of other timeouts.

Hmm, and what happens if you force dfl = 0 in i8042_interrupt()? It looks
like controller FW screwed up...

> 
> If the device wouldn't work with Synaptics driver in other OS, I'd just
> claim the device to be broken behind hope and be done with this, but this
> makes me really wonder what they do differently.
> 
> Are you aware of any means of i8042 debugging/sniffing facility in the
> other OS that could be used? :)

KVM + serio_raw but someone needs to write the glue...

-- 
Dmitry

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

* Re: Synaptics touchpad on Dell Vostro V13
  2010-12-15 23:23     ` Dmitry Torokhov
@ 2010-12-28 10:28       ` Jiri Kosina
  2010-12-29  7:44         ` Dmitry Torokhov
  0 siblings, 1 reply; 17+ messages in thread
From: Jiri Kosina @ 2010-12-28 10:28 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input, linux-kernel

On Wed, 15 Dec 2010, Dmitry Torokhov wrote:

> > > > Looking at the i8042.debug output, the device is clearly buggy, as it
> > > > 
> > > > doesn't identify itself by 0x47 when queried:
> > > > 	91 -> i8042 (command) [58]
> > > > 	e8 -> i8042 (parameter) [58]
> > > > 	fa <- i8042 (interrupt, 3, 12) [59]
> > > > 	91 -> i8042 (command) [59]
> > > > 	00 -> i8042 (parameter) [59]
> > > > 	fa <- i8042 (interrupt, 3, 12) [59]
> > > > 	91 -> i8042 (command) [59]
> > > > 	e8 -> i8042 (parameter) [59]
> > > > 	fa <- i8042 (interrupt, 3, 12) [60]
> > > > 	91 -> i8042 (command) [60]
> > > > 	00 -> i8042 (parameter) [60]
> > > > 	fa <- i8042 (interrupt, 3, 12) [61]
> > > > 	91 -> i8042 (command) [61]
> > > > 	e8 -> i8042 (parameter) [61]
> > > > 	fa <- i8042 (interrupt, 3, 12) [61]
> > > > 	91 -> i8042 (command) [61]
> > > > 	00 -> i8042 (parameter) [61]
> > > > 	fa <- i8042 (interrupt, 3, 12) [62]
> > > > 	91 -> i8042 (command) [62]
> > > > 	e8 -> i8042 (parameter) [62]
> > > > 	fa <- i8042 (interrupt, 3, 12) [63]
> > > > 	91 -> i8042 (command) [63]
> > > > 	00 -> i8042 (parameter) [63]
> > > > 	fa <- i8042 (interrupt, 3, 12) [64]
> > > > 	91 -> i8042 (command) [64]
> > > > 	e9 -> i8042 (parameter) [64]
> > > > 	fa <- i8042 (interrupt, 3, 12) [64]
> > > > 
> > > > ... and here we time out after approximately 0.5s. nomux doesn't really
> > > > fix it, we start getting a lot of timeouts on i8042 with that.
> > > > 
> > > > Apparently the device works with Synaptics driver in Other OS(TM)
> > > > though. Do you have any idea what they might be doing differently so
> > > > that they make the touchpad identify itself properly?
> > > 
> > > Do you have the device in your possession? If so can you check if the
> > > driver installed in Other OS uses active multiplexing? I think you can
> > > infer whether it does or not by looking at the pointer properties - I
> > > think it would "Synaptics Blah at port X" or something like that...
> > 
> > Unfortunately I don't have the hardware myself, it's only bugreport that
> > reached me. I will check this, thanks.
> > 
> > > Also you could try combining nomux with reset and see if it makes any
> > > sense...
> > 
> > Yes, I have already had the reporter to do this, but that's even better --
> > a lot of commands time out, as you can see below
> > 
> >  20 -> i8042 (command) [0]
> >  47 <- i8042 (return) [0]
> >  20 -> i8042 (command) [0]
> >  47 <- i8042 (return) [0]
> >  60 -> i8042 (command) [0]
> >  56 -> i8042 (parameter) [0]
> >  d3 -> i8042 (command) [0]
> >  5a -> i8042 (parameter) [0]
> >  5a <- i8042 (return) [0]
> >  a7 -> i8042 (command) [0]
> >  20 -> i8042 (command) [0]
> >  76 <- i8042 (return) [0]
> >  a8 -> i8042 (command) [0]
> >  20 -> i8042 (command) [0]
> >  56 <- i8042 (return) [0]
> >  60 -> i8042 (command) [0]
> >  56 -> i8042 (parameter) [0]
> >  d3 -> i8042 (command) [0]
> >  a5 -> i8042 (parameter) [0]
> >  a5 <- i8042 (aux_test_irq, aux) [1]
> >  60 -> i8042 (command) [1]
> >  74 -> i8042 (parameter) [1]
> >  60 -> i8042 (command) [1]
> >  56 -> i8042 (parameter) [1]
> >  60 -> i8042 (command) [1]
> >  47 -> i8042 (parameter) [1]
> > serio: i8042 KBD port at 0x60,0x64 irq 1
> > serio: i8042 AUX port at 0x60,0x64 irq 12
> > mice: PS/2 mouse device common for all mice
> >  f2 -> i8042 (kbd-data) [1]
> >  fa <- i8042 (interrupt, 0, 1, timeout) [1]
> >  ab <- i8042 (interrupt, 0, 1, timeout) [1]
> >  83 <- i8042 (interrupt, 0, 1, timeout) [1]
> >  ed -> i8042 (kbd-data) [1]
> >  fa <- i8042 (interrupt, 0, 1, timeout) [1]
> >  00 -> i8042 (kbd-data) [1]
> >  fa <- i8042 (interrupt, 0, 1, timeout) [1]
> >  f3 -> i8042 (kbd-data) [1]
> >  fa <- i8042 (interrupt, 0, 1, timeout) [1]
> >  00 -> i8042 (kbd-data) [1]
> >  fa <- i8042 (interrupt, 0, 1, timeout) [1]
> >  f4 -> i8042 (kbd-data) [1]
> >  fa <- i8042 (interrupt, 0, 1, timeout) [1]
> > input: AT Translated Set 2 keyboard as
> > /devices/platform/i8042/serio0/input/input0 d4 -> i8042 (command) [2]
> >  f2 -> i8042 (parameter) [2]
> >  fa <- i8042 (interrupt, 1, 12, timeout) [2]
> >  00 <- i8042 (interrupt, 1, 12, timeout) [3]
> >  60 -> i8042 (command) [3]
> >  45 -> i8042 (parameter) [3]
> >  60 -> i8042 (command) [3]
> >  47 -> i8042 (parameter) [3]
> >  d4 -> i8042 (command) [3]
> >  f2 -> i8042 (parameter) [3]
> >  fa <- i8042 (interrupt, 1, 12, timeout) [4]
> >  60 -> i8042 (command) [4]
> >  45 -> i8042 (parameter) [4]
> >  60 -> i8042 (command) [4]
> >  47 -> i8042 (parameter) [4]
> >  00 <- i8042 (interrupt, 1, 12, timeout) [5]
> > 
> > ...
> > 
> >  f3 -> i8042 (kbd-data) [6323]
> >  fa <- i8042 (interrupt, 0, 1, timeout) [6323]
> >  20 -> i8042 (kbd-data) [6323]
> >  fa <- i8042 (interrupt, 0, 1, timeout) [6323]
> >  2d <- i8042 (interrupt, 0, 1, timeout) [10631]
> >  10 <- i8042 (interrupt, 0, 1, timeout) [10669]
> >  ad <- i8042 (interrupt, 0, 1, timeout) [10674]
> >  90 <- i8042 (interrupt, 0, 1, timeout) [10692]
> >  2f <- i8042 (interrupt, 0, 1, timeout) [10737]
> >  af <- i8042 (interrupt, 0, 1, timeout) [10760]
> >  17 <- i8042 (interrupt, 0, 1, timeout) [10922]
> >  97 <- i8042 (interrupt, 0, 1, timeout) [10945]
> >  12 <- i8042 (interrupt, 0, 1, timeout) [10998]
> >  92 <- i8042 (interrupt, 0, 1, timeout) [11025]
> >  13 <- i8042 (interrupt, 0, 1, timeout) [11317]
> >  93 <- i8042 (interrupt, 0, 1, timeout) [11345]
> >  1c <- i8042 (interrupt, 0, 1, timeout) [11422]
> >  9c <- i8042 (interrupt, 0, 1, timeout) [11449]
> >  31 <- i8042 (interrupt, 0, 1, timeout) [11672]
> >  b1 <- i8042 (interrupt, 0, 1, timeout) [11697]
> >  18 <- i8042 (interrupt, 0, 1, timeout) [11704]
> >  98 <- i8042 (interrupt, 0, 1, timeout) [11729]
> >  2f <- i8042 (interrupt, 0, 1, timeout) [11800]
> >  af <- i8042 (interrupt, 0, 1, timeout) [11821]
> >  12 <- i8042 (interrupt, 0, 1, timeout) [11842]
> >  92 <- i8042 (interrupt, 0, 1, timeout) [11866]
> >  27 <- i8042 (interrupt, 0, 1, timeout) [11951]
> >  a7 <- i8042 (interrupt, 0, 1, timeout) [11969]
> >  0e <- i8042 (interrupt, 0, 1, timeout) [12061]
> >  8e <- i8042 (interrupt, 0, 1, timeout) [12089]
> >  26 <- i8042 (interrupt, 0, 1, timeout) [12169]
> >  a6 <- i8042 (interrupt, 0, 1, timeout) [12187]
> >  26 <- i8042 (interrupt, 0, 1, timeout) [12207]
> >  a6 <- i8042 (interrupt, 0, 1, timeout) [12227]
> >  1c <- i8042 (interrupt, 0, 1, timeout) [12428]
> >  9c <- i8042 (interrupt, 0, 1, timeout) [12456]
> > 
> > ... and a lot of other timeouts.
> 
> Hmm, and what happens if you force dfl = 0 in i8042_interrupt()? It looks
> like controller FW screwed up...

Yeah, that makes the thing work correctly (together with nomux). This all 
is really strange, isn't it? I doubt other OS discards I8042_STR_TIMEOUT 
completely :)

-- 
Jiri Kosina
SUSE Labs, Novell Inc.

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

* Re: Synaptics touchpad on Dell Vostro V13
  2010-12-28 10:28       ` Jiri Kosina
@ 2010-12-29  7:44         ` Dmitry Torokhov
  2010-12-29 12:42           ` Jiri Kosina
  0 siblings, 1 reply; 17+ messages in thread
From: Dmitry Torokhov @ 2010-12-29  7:44 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: linux-input, linux-kernel

On Tue, Dec 28, 2010 at 11:28:48AM +0100, Jiri Kosina wrote:
> On Wed, 15 Dec 2010, Dmitry Torokhov wrote:
> 
> > 
> > Hmm, and what happens if you force dfl = 0 in i8042_interrupt()? It looks
> > like controller FW screwed up...
> 
> Yeah, that makes the thing work correctly (together with nomux). This all 
> is really strange, isn't it? I doubt other OS discards I8042_STR_TIMEOUT 
> completely :)
> 

Looking at the latest bugzilla comment for this laptop it appears
exactly what custome Dell drivers do ;)

Well, another blacklist in i8042 I guess...

-- 
Dmitry

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

* Re: Synaptics touchpad on Dell Vostro V13
  2010-12-29  7:44         ` Dmitry Torokhov
@ 2010-12-29 12:42           ` Jiri Kosina
  2010-12-29 13:59             ` [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13) Jiri Kosina
  0 siblings, 1 reply; 17+ messages in thread
From: Jiri Kosina @ 2010-12-29 12:42 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input, linux-kernel

On Tue, 28 Dec 2010, Dmitry Torokhov wrote:

> > > Hmm, and what happens if you force dfl = 0 in i8042_interrupt()? It looks
> > > like controller FW screwed up...
> > 
> > Yeah, that makes the thing work correctly (together with nomux). This all 
> > is really strange, isn't it? I doubt other OS discards I8042_STR_TIMEOUT 
> > completely :)
> > 
> 
> Looking at the latest bugzilla comment for this laptop it appears
> exactly what custome Dell drivers do ;)

Oh my ...

> Well, another blacklist in i8042 I guess...

Sigh, seems so.

I'll send you patch once I get positive testing feedback.

-- 
Jiri Kosina
SUSE Labs, Novell Inc.

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

* [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13)
  2010-12-29 12:42           ` Jiri Kosina
@ 2010-12-29 13:59             ` Jiri Kosina
  2011-01-03 13:51               ` Jiri Kosina
  0 siblings, 1 reply; 17+ messages in thread
From: Jiri Kosina @ 2010-12-29 13:59 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input, linux-kernel

On Wed, 29 Dec 2010, Jiri Kosina wrote:

> > Well, another blacklist in i8042 I guess...
> 
> Sigh, seems so.
> 
> I'll send you patch once I get positive testing feedback.




From: Jiri Kosina <jkosina@suse.cz>
Subject: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13

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>
---
 drivers/input/serio/i8042-x86ia64io.h |   21 +++++++++++++++++++++
 drivers/input/serio/i8042.c           |    6 +++++-
 2 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
index a5475b5..b04dd27 100644
--- a/drivers/input/serio/i8042-x86ia64io.h
+++ b/drivers/input/serio/i8042-x86ia64io.h
@@ -424,6 +424,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"),
+		},
+	},
 	{ }
 };
 
@@ -545,6 +552,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.
@@ -897,6 +915,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 18db5a8..039037d 100644
--- a/drivers/input/serio/i8042.c
+++ b/drivers/input/serio/i8042.c
@@ -61,6 +61,10 @@ static bool i8042_noloop;
 module_param_named(noloop, i8042_noloop, bool, 0);
 MODULE_PARM_DESC(noloop, "Disable the AUX Loopback command while probing for the AUX port");
 
+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);
@@ -503,7 +507,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.3.1


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

* Re: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13)
  2010-12-29 13:59             ` [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13) Jiri Kosina
@ 2011-01-03 13:51               ` Jiri Kosina
  2011-01-06  1:42                 ` James T. Dickson
  0 siblings, 1 reply; 17+ messages in thread
From: Jiri Kosina @ 2011-01-03 13:51 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input, linux-kernel

On Wed, 29 Dec 2010, Jiri Kosina wrote:

> On Wed, 29 Dec 2010, Jiri Kosina wrote:
> 
> > > Well, another blacklist in i8042 I guess...
> > 
> > Sigh, seems so.
> > 
> > I'll send you patch once I get positive testing feedback.
> 
> 
> 
> 
> From: Jiri Kosina <jkosina@suse.cz>
> Subject: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13
> 
> 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>

Just to be clear -- I have already received positive feedback from the 
bugreporter I had. I have attached the patch for testing to

	https://bugzilla.kernel.org/show_bug.cgi?id=15416

as well, but I already have confirmation from person owning the hardware, 
so I believe it could be applied.

Thanks.

> ---
>  drivers/input/serio/i8042-x86ia64io.h |   21 +++++++++++++++++++++
>  drivers/input/serio/i8042.c           |    6 +++++-
>  2 files changed, 26 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
> index a5475b5..b04dd27 100644
> --- a/drivers/input/serio/i8042-x86ia64io.h
> +++ b/drivers/input/serio/i8042-x86ia64io.h
> @@ -424,6 +424,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"),
> +		},
> +	},
>  	{ }
>  };
>  
> @@ -545,6 +552,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.
> @@ -897,6 +915,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 18db5a8..039037d 100644
> --- a/drivers/input/serio/i8042.c
> +++ b/drivers/input/serio/i8042.c
> @@ -61,6 +61,10 @@ static bool i8042_noloop;
>  module_param_named(noloop, i8042_noloop, bool, 0);
>  MODULE_PARM_DESC(noloop, "Disable the AUX Loopback command while probing for the AUX port");
>  
> +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);
> @@ -503,7 +507,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.3.1
> 
> 

-- 
Jiri Kosina
SUSE Labs, Novell Inc.

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

* Re: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13)
  2011-01-03 13:51               ` Jiri Kosina
@ 2011-01-06  1:42                 ` James T. Dickson
  2011-01-06 10:32                   ` Jiri Kosina
  0 siblings, 1 reply; 17+ messages in thread
From: James T. Dickson @ 2011-01-06  1:42 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: linux-input, linux-kernel, Dmitry Torokhov

I have applied this patch and can report that it has fixed the problem Ubuntu 10.10. 

However, the mouse freezes when a coming out of suspend and the system will not shutdown. 

James Dickson 
 

----- Original Message -----
From: "Jiri Kosina" <jkosina@suse.cz>
To: "Dmitry Torokhov" <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Sent: Monday, January 3, 2011 7:51:48 AM
Subject: Re: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13)

On Wed, 29 Dec 2010, Jiri Kosina wrote:

> On Wed, 29 Dec 2010, Jiri Kosina wrote:
> 
> > > Well, another blacklist in i8042 I guess...
> > 
> > Sigh, seems so.
> > 
> > I'll send you patch once I get positive testing feedback.
> 
> 
> 
> 
> From: Jiri Kosina <jkosina@suse.cz>
> Subject: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13
> 
> 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>

Just to be clear -- I have already received positive feedback from the 
bugreporter I had. I have attached the patch for testing to

	https://bugzilla.kernel.org/show_bug.cgi?id=15416

as well, but I already have confirmation from person owning the hardware, 
so I believe it could be applied.

Thanks.

> ---
>  drivers/input/serio/i8042-x86ia64io.h |   21 +++++++++++++++++++++
>  drivers/input/serio/i8042.c           |    6 +++++-
>  2 files changed, 26 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
> index a5475b5..b04dd27 100644
> --- a/drivers/input/serio/i8042-x86ia64io.h
> +++ b/drivers/input/serio/i8042-x86ia64io.h
> @@ -424,6 +424,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"),
> +		},
> +	},
>  	{ }
>  };
>  
> @@ -545,6 +552,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.
> @@ -897,6 +915,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 18db5a8..039037d 100644
> --- a/drivers/input/serio/i8042.c
> +++ b/drivers/input/serio/i8042.c
> @@ -61,6 +61,10 @@ static bool i8042_noloop;
>  module_param_named(noloop, i8042_noloop, bool, 0);
>  MODULE_PARM_DESC(noloop, "Disable the AUX Loopback command while probing for the AUX port");
>  
> +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);
> @@ -503,7 +507,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.3.1
> 
> 

-- 
Jiri Kosina
SUSE Labs, Novell Inc.
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13)
  2011-01-06  1:42                 ` James T. Dickson
@ 2011-01-06 10:32                   ` Jiri Kosina
  2011-01-06 14:57                     ` James T. Dickson
  0 siblings, 1 reply; 17+ messages in thread
From: Jiri Kosina @ 2011-01-06 10:32 UTC (permalink / raw)
  To: James T. Dickson; +Cc: linux-input, linux-kernel, Dmitry Torokhov

On Wed, 5 Jan 2011, James T. Dickson wrote:

> I have applied this patch and can report that it has fixed the problem Ubuntu 10.10. 

Thanks a lot for reporting back.

> However, the mouse freezes when a coming out of suspend and the system 
> will not shutdown.

And that doesn't happen with the touchpad being only in PS/2 mode, right?

-- 
Jiri Kosina
SUSE Labs, Novell Inc.

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

* Re: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13)
  2011-01-06 10:32                   ` Jiri Kosina
@ 2011-01-06 14:57                     ` James T. Dickson
  2011-01-07 10:06                       ` Jiri Kosina
  0 siblings, 1 reply; 17+ messages in thread
From: James T. Dickson @ 2011-01-06 14:57 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: linux-input, linux-kernel, Dmitry Torokhov

Correct .. Suspend worked fine when the touchpad was a generic mouse.

However, this appears a symptom of the synaptics driver. I was able to overcome it with this script from  https://bugs.launchpad.net/ubuntu/+source/linux/+bug/59867 . 

Placing it in /etc/pm/sleeps.d/ .

#!/bin/sh
#
# Reload the AT keyboard interface.

case "$1" in
        hibernate|suspend)
                rmmod psmouse
                ;;
        thaw|resume)
                modprobe psmouse
                ;;
        *)
                ;;
esac


Also, the inability to shutdown seems to have fixed itself, it is a non issue. 

----- Original Message -----
From: "Jiri Kosina" <jkosina@suse.cz>
To: "James T. Dickson" <james.dickson@jtdata.net>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, "Dmitry Torokhov" <dmitry.torokhov@gmail.com>
Sent: Thursday, January 6, 2011 4:32:22 AM
Subject: Re: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13)

On Wed, 5 Jan 2011, James T. Dickson wrote:

> I have applied this patch and can report that it has fixed the problem Ubuntu 10.10. 

Thanks a lot for reporting back.

> However, the mouse freezes when a coming out of suspend and the system 
> will not shutdown.

And that doesn't happen with the touchpad being only in PS/2 mode, right?

-- 
Jiri Kosina
SUSE Labs, Novell Inc.

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

* Re: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13)
  2011-01-06 14:57                     ` James T. Dickson
@ 2011-01-07 10:06                       ` Jiri Kosina
  2011-01-07 17:28                         ` Dmitry Torokhov
  0 siblings, 1 reply; 17+ messages in thread
From: Jiri Kosina @ 2011-01-07 10:06 UTC (permalink / raw)
  To: James T. Dickson, Dmitry Torokhov; +Cc: linux-input, linux-kernel

On Thu, 6 Jan 2011, James T. Dickson wrote:

> Correct .. Suspend worked fine when the touchpad was a generic mouse.
> 
> However, this appears a symptom of the synaptics driver. I was able to 
> overcome it with this script from 
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/59867 .
> 
> Placing it in /etc/pm/sleeps.d/ .
> 
> #!/bin/sh
> #
> # Reload the AT keyboard interface.
> 
> case "$1" in
>         hibernate|suspend)
>                 rmmod psmouse
>                 ;;
>         thaw|resume)
>                 modprobe psmouse
>                 ;;
>         *)
>                 ;;
> esac

I have already came across reports of this being needed for synaptics 
touchpads on several different machines already, so this seems to be 
rather unrelated problem to me.

Dmitry, what is your current plan with the notimeout thing for V13, 
please? Still .38 material?

Thanks,

-- 
Jiri Kosina
SUSE Labs, Novell Inc.

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

* Re: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13)
  2011-01-07 10:06                       ` Jiri Kosina
@ 2011-01-07 17:28                         ` Dmitry Torokhov
  2011-01-07 22:30                           ` Jiri Kosina
  2011-01-11 13:00                           ` Jiri Kosina
  0 siblings, 2 replies; 17+ messages in thread
From: Dmitry Torokhov @ 2011-01-07 17:28 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: James T. Dickson, linux-input, linux-kernel

On Fri, Jan 07, 2011 at 11:06:41AM +0100, Jiri Kosina wrote:
> On Thu, 6 Jan 2011, James T. Dickson wrote:
> 
> > Correct .. Suspend worked fine when the touchpad was a generic mouse.
> > 
> > However, this appears a symptom of the synaptics driver. I was able to 
> > overcome it with this script from 
> > https://bugs.launchpad.net/ubuntu/+source/linux/+bug/59867 .
> > 
> > Placing it in /etc/pm/sleeps.d/ .
> > 
> > #!/bin/sh
> > #
> > # Reload the AT keyboard interface.
> > 
> > case "$1" in
> >         hibernate|suspend)
> >                 rmmod psmouse
> >                 ;;
> >         thaw|resume)
> >                 modprobe psmouse
> >                 ;;
> >         *)
> >                 ;;
> > esac
> 
> I have already came across reports of this being needed for synaptics 
> touchpads on several different machines already, so this seems to be 
> rather unrelated problem to me.

Right, but it would be nice if we could find the problem...

> 
> Dmitry, what is your current plan with the notimeout thing for V13, 
> please? Still .38 material?

Yeah, especially given that not all V13 seem to suffer from
suspend/resume issue.

-- 
Dmitry

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

* Re: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13)
  2011-01-07 17:28                         ` Dmitry Torokhov
@ 2011-01-07 22:30                           ` Jiri Kosina
  2011-01-11 13:00                           ` Jiri Kosina
  1 sibling, 0 replies; 17+ messages in thread
From: Jiri Kosina @ 2011-01-07 22:30 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: James T. Dickson, linux-input, linux-kernel

On Fri, 7 Jan 2011, Dmitry Torokhov wrote:

> > > Placing it in /etc/pm/sleeps.d/ .
> > > 
> > > #!/bin/sh
> > > #
> > > # Reload the AT keyboard interface.
> > > 
> > > case "$1" in
> > >         hibernate|suspend)
> > >                 rmmod psmouse
> > >                 ;;
> > >         thaw|resume)
> > >                 modprobe psmouse
> > >                 ;;
> > >         *)
> > >                 ;;
> > > esac
> > 
> > I have already came across reports of this being needed for synaptics 
> > touchpads on several different machines already, so this seems to be 
> > rather unrelated problem to me.
> 
> Right, but it would be nice if we could find the problem...

Definitely, working on this is with the original reporter is on my TODO 
list (I don't know yet whether that particular machine is affected or 
not). Will keep you updated.

> > Dmitry, what is your current plan with the notimeout thing for V13, 
> > please? Still .38 material?
> 
> Yeah, especially given that not all V13 seem to suffer from
> suspend/resume issue.

Thanks,

-- 
Jiri Kosina
SUSE Labs, Novell Inc.

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

* Re: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13)
  2011-01-07 17:28                         ` Dmitry Torokhov
  2011-01-07 22:30                           ` Jiri Kosina
@ 2011-01-11 13:00                           ` Jiri Kosina
  2011-01-11 16:37                             ` Dmitry Torokhov
  1 sibling, 1 reply; 17+ messages in thread
From: Jiri Kosina @ 2011-01-11 13:00 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: James T. Dickson, linux-input, linux-kernel

On Fri, 7 Jan 2011, Dmitry Torokhov wrote:

> > Dmitry, what is your current plan with the notimeout thing for V13, 
> > please? Still .38 material?
> 
> Yeah, especially given that not all V13 seem to suffer from
> suspend/resume issue.

Hi Dmitry,

I can see that you applied the patch, thanks.

It seems to be in 'next' branch -- does that mean that it will not go in 
this merge window still?

Thanks!

-- 
Jiri Kosina
SUSE Labs, Novell Inc.

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

* Re: [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13)
  2011-01-11 13:00                           ` Jiri Kosina
@ 2011-01-11 16:37                             ` Dmitry Torokhov
  0 siblings, 0 replies; 17+ messages in thread
From: Dmitry Torokhov @ 2011-01-11 16:37 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: James T. Dickson, linux-input, linux-kernel

On Tue, Jan 11, 2011 at 02:00:27PM +0100, Jiri Kosina wrote:
> On Fri, 7 Jan 2011, Dmitry Torokhov wrote:
> 
> > > Dmitry, what is your current plan with the notimeout thing for V13, 
> > > please? Still .38 material?
> > 
> > Yeah, especially given that not all V13 seem to suffer from
> > suspend/resume issue.
> 
> Hi Dmitry,
> 
> I can see that you applied the patch, thanks.
> 
> It seems to be in 'next' branch -- does that mean that it will not go in 
> this merge window still?
> 

Hi Jiri,

It is in the next because I wanted to start staging 2nd pull before
Linus pulled first one so I used 'next' for that. I will be merging next
and for-linus tonight and it should be in 38-rc1 unless Linus surprises
us.

Thanks.

-- 
Dmitry

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

end of thread, other threads:[~2011-01-11 16:37 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-12-14 14:56 Synaptics touchpad on Dell Vostro V13 Jiri Kosina
2010-12-14 17:00 ` Dmitry Torokhov
2010-12-15 22:51   ` Jiri Kosina
2010-12-15 23:23     ` Dmitry Torokhov
2010-12-28 10:28       ` Jiri Kosina
2010-12-29  7:44         ` Dmitry Torokhov
2010-12-29 12:42           ` Jiri Kosina
2010-12-29 13:59             ` [PATCH] Input: introduce 'notimeout' blacklist for Dell Vostro V13 (was Re: Synaptics touchpad on Dell Vostro V13) Jiri Kosina
2011-01-03 13:51               ` Jiri Kosina
2011-01-06  1:42                 ` James T. Dickson
2011-01-06 10:32                   ` Jiri Kosina
2011-01-06 14:57                     ` James T. Dickson
2011-01-07 10:06                       ` Jiri Kosina
2011-01-07 17:28                         ` Dmitry Torokhov
2011-01-07 22:30                           ` Jiri Kosina
2011-01-11 13:00                           ` Jiri Kosina
2011-01-11 16:37                             ` Dmitry Torokhov

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.