Re: Apple Trackpad driver

From: Hans Petter Selasky <hps_at_bitfrost.no>
Date: Thu, 30 Jan 2014 07:46:30 +0100
Hi Huang,

On 01/30/14 06:56, Huang Wen Hui wrote:
> Hans,
>
> Thanks for you take care of it and commit it! I found two problems:
>
> 1. The selection is not expected when selection with 2 fingers sometimes.
> 2.  Unexpected scrolling when Click with 2 fingers.
>
> This patch can fix that. The var "n" modify to "ntouch"  seems to be
> necessary.
>

Right, but aren't we then accessing non-initialised sc->pos_x[] data ?

Because if ntouch == 2, n can be less than or equal to 2, due to 
continue in for-loop above. What is the purpose of the "n" variable?

Can you explain?

-		if (n == 2) {
+		if (ntouch == 2) {
  			sc->distance = max(sc->distance, max(
  			    abs(sc->pos_x[0] - sc->pos_x[1]),
  			    abs(sc->pos_y[0] - sc->pos_y[1])));

--HPS

>
> Cheers,
> Huang Wen Hui
>
>
> 2014-01-29 Hans Petter Selasky <hps_at_bitfrost.no>
>
>> On 01/29/14 09:49, Lundberg, Johannes wrote:
>>
>>> Hi
>>>
>>> I tested the driver on a 2012 Macbook Air 11" and it works great! Good
>>> job!
>>>
>>> Is there a way to disable click-by-touch? I always preferred clicking with
>>> the physical button that is built in to the pad.
>>>
>>>
>> Hi,
>>
>> I've added an "#if 0" around the 1 finger tap code until further. Maybe
>> this feature can be tunable?
>>
>> I fixed the code style, added some range checks and cleared some buffer
>> issues.
>>
>> When you assign a signed value to an unsigned variable, you should range
>> check it, because the sign might cause an overflow when you use it later on.
>>
>> int8_t x = -1;
>>
>> uint32_t t = x;
>>
>> "t" is now "0xffffffffU" and not "255".
>>
>> Tested the code on my MacBookPro. Hope I didn't break anything. If so,
>> send a patch to freebsd-usb.
>>
>> http://svnweb.freebsd.org/changeset/base/261260
>>
>> To get the touchpad working with Xorg, I needed to re-compile HALD with
>> the attached patch.
>>
>> kwm: Can you get the attached patch into ports?
>>
>> Auto-loading of wsp via devd will be done later. Simply need to
>> re-generate usb.conf in /etc ...
>>
>> --HPS
>>
>>
>>
>>
>> _______________________________________________
>> freebsd-current_at_freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
Received on Thu Jan 30 2014 - 05:45:40 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:46 UTC