[PATCH xf86-input-synaptics] Fix product ID cutoff for MODEL_APPLETOUCH/MODEL_UNIBODY_MACBOOK

Peter Hutterer peter.hutterer at who-t.net
Mon Apr 28 22:28:17 PDT 2014


On Mon, Apr 21, 2014 at 10:20:19PM -0500, Clinton Sprain wrote:
> Macbook 3,1, Macbook 4,1 (not Air). First reported in Ubuntu 13.10 from what I've seen. This makes sense as the problematic change appears to have been introduced between 1.6.3 and 1.7.1, which was the version jump between 13.04 and 13.10.
> 
> http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/src/synaptics.c?id=0e222876d7da7acbaaf955c2e7b7efdf3549bde9
> 
> http://launchpadlibrarian.net/145837828/xserver-xorg-input-synaptics_1.6.3-0ubuntu1.1_1.7.1-0ubuntu1.diff.gz
> 
> See also:
> http://lists.x.org/archives/xorg/2014-February/056386.html
> 
> https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/1246215
> 
> My Macbook 3,1 reports as 0x229. Around the web I've seen devices report
> as 0x22a that also use the old appletouch kernel driver. This is what I'm
> basing the shift on. You could potentially check the actual kernel driver
> being used instead (appletouch vs bcm5974) and load defaults based on that,
> but this would likely be a nontrivial change.

the kernel drivers say that 0x230 and above is bcm5974 and anything below
0x223 is appletouch. In between there's 0x229, 0x22a and 0x22b for the
MacBook3,1, which your device falls into.
Based on that, this diff should work:

diff --git a/src/eventcomm.c b/src/eventcomm.c
index 0a6ea48..f97390e 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -337,6 +337,7 @@ static struct model_lookup_t model_lookup_table[] = {
     {0x0002, 0x0007, 0x0007, MODEL_SYNAPTICS},
     {0x0002, 0x0008, 0x0008, MODEL_ALPS},
     {0x05ac, PRODUCT_ANY, 0x222, MODEL_APPLETOUCH},
+    {0x05ac, 0x229, 0x22b, MODEL_APPLETOUCH},
     {0x05ac, 0x223, PRODUCT_ANY, MODEL_UNIBODY_MACBOOK},
     {0x0002, 0x000e, 0x000e, MODEL_ELANTECH},
     {0x0, 0x0, 0x0, 0x0}

Can you give this a try?

Cheers,
   Peter

> 
> As for why it hasn't caused much of a fuss, the bug only hit the *buntus about 6 months ago and technically-apt users will often figure out how to work around it with synclient etc. I'd expect this to affect more people in the near future as Apple begins to drop support for the versions of OS X these devices are capable of running, and more users begin to migrate, many of whom won't be as technically-apt as early adopters.
> 
> - Clinton
> 
> On 04/21/2014 08:30 PM, Peter Hutterer wrote:
> > On Sat, Apr 19, 2014 at 10:23:00PM -0500, Clinton Sprain wrote:
> >> A handful of Macbooks are being tagged as MODEL_UNIBODY_MACBOOKs when they
> >> should not be. This causes the default sensitivity to be very low for them,
> >> making the touchpad very difficult to use. This change moves the product ID
> >> cutoff so those devices fall into the old bucket again.
> > 
> > just to confirm: which one of those do you have or did you see the bug
> > reported on? Looking at the kernel's ID collection this change only affects
> > first-gen macbook airs and should've been an issue for roughly two years
> > already.
> > 
> > Which again makes me wonder: what change exposed this bug recently? 
> > 
> > Cheers,
> >    Peter
> > 
> >>  src/eventcomm.c | 4 ++--
> >>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/src/eventcomm.c b/src/eventcomm.c
> >> index 858efeb..405eeb9 100644
> >> --- a/src/eventcomm.c
> >> +++ b/src/eventcomm.c
> >> @@ -305,8 +305,8 @@ struct model_lookup_t {
> >>  static struct model_lookup_t model_lookup_table[] = {
> >>      {0x0002, 0x0007, 0x0007, MODEL_SYNAPTICS},
> >>      {0x0002, 0x0008, 0x0008, MODEL_ALPS},
> >> -    {0x05ac, PRODUCT_ANY, 0x222, MODEL_APPLETOUCH},
> >> -    {0x05ac, 0x223, PRODUCT_ANY, MODEL_UNIBODY_MACBOOK},
> >> +    {0x05ac, PRODUCT_ANY, 0x22f, MODEL_APPLETOUCH},
> >> +    {0x05ac, 0x230, PRODUCT_ANY, MODEL_UNIBODY_MACBOOK},
> >>      {0x0002, 0x000e, 0x000e, MODEL_ELANTECH},
> >>      {0x0, 0x0, 0x0, 0x0}
> >>  };
> >> -- 
> >> 1.9.1


More information about the xorg-devel mailing list