Bug#562052: Correctly identify touchpads

Dmitry Torokhov dmitry.torokhov at gmail.com
Sun Jan 10 12:01:20 PST 2010


On Sun, Jan 10, 2010 at 03:27:02PM +0300, Michael Tokarev wrote:
> Dmitry Torokhov wrote:
> > On Sun, Jan 10, 2010 at 02:01:08AM +0300, Michael Tokarev wrote:
> >> Dmitry Torokhov wrote:
> >> []
> >>>>> This is exactly what happens, to me and to the original bug reporter --
> >>>>> we both are running 32bit userspace and 64bit kernel.
> >> []
> >>> Does the following patch fixes it for you guys?
> >> No, Dmitry, it does not.  It's buggy.
> >>
> >> With this patch applied, the bits are all completely wrong.
> >>
> []
> > Doh, amazing what min/max mixup will do. The patch below should fix
> > that.
> 
> With the fixup applied on top of previous patch, the whole thing
> appears to work correctly.  2.6.32-amd64:

Great! Thank you very much for testing.

> 
> 32bit grep:
> /sys/devices/platform/i8042/serio4/input/input6/capabilities# grep . *
> abs:11000003
> ev:b
> ff:0
> key:6420 0 7000f 0 0 0 0 0 0 0 0
> led:0
> msc:0
> rel:0
> snd:0
> sw:0
> 
> 64bit grep:
> /sys/devices/platform/i8042/serio4/input/input6/capabilities# ~/grep . *
> abs:11000003
> ev:b
> ff:0
> key:6420 7000f 0 0 0 0
> led:0
> msc:0
> rel:0
> snd:0
> sw:0
> 
> A few questions still:
> 
> o I think the 'key' attribute used to be shorter previously, eliminating
>   unnecessary trailing zeros, but it is not anymore.  Just curious.

No, you can only eliminate leading zeroes, otherwise how would you know
which is the starting bit?

> 
> o How about other systems such as sparc 32/64 or power 32/64?  I'm not
>   sure the patch is endian-clean.

I believe it is endian clean because I am using shifts to get dwords out
of u64 instead of trying to address them directly (which would require
different handling on LE vs. BE).

Thanks.

-- 
Dmitry


More information about the hal mailing list