Re: Synaptics touchpad on Dell Vostro V13

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

 



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.
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

  Powered by Linux