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

Clinton Sprain clintonsprain at gmail.com
Tue Apr 29 16:07:27 PDT 2014


Couple things:

- Is your approach because we aren't sure if there are bcm5974 or appletouch devices lurking somewhere between 0x223-0x229 or 0x22c-0x22f? If so, I think we should err on the side of appletouch and go with my original suggestion. Appletouch defaults on a bcm5974 device are much more usable than bcm5974 defaults on an appletouch device.

- If you still feel your approach is better, I believe it needs to go after the "{0x05ac, 0x223, PRODUCT_ANY, MODEL_UNIBODY_MACBOOK}" line instead of before; the device qualifies for both lines and my testing indicates the last qualifying line takes precedence. Alternatively we could nix the ambiguity and just do something like:

     {0x0002, 0x0007, 0x0007, MODEL_SYNAPTICS},
     {0x0002, 0x0008, 0x0008, MODEL_ALPS},
     {0x05ac, PRODUCT_ANY, 0x222, MODEL_APPLETOUCH},
+    {0x05ac, 0x223, 0x228, MODEL_UNIBODY_MACBOOK},
+    {0x05ac, 0x229, 0x22b, MODEL_APPLETOUCH},
+    {0x05ac, 0x22c, PRODUCT_ANY, MODEL_UNIBODY_MACBOOK},
-    {0x05ac, 0x223, PRODUCT_ANY, MODEL_UNIBODY_MACBOOK},
     {0x0002, 0x000e, 0x000e, MODEL_ELANTECH},
     {0x0, 0x0, 0x0, 0x0}

This also makes it easier to understand at a glance.

Thanks,
- Clinton

On 04/29/2014 12:28 AM, Peter Hutterer wrote:
> 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