Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Sep 2009 08:55:17 +0000
From:      "Paul B. Mahol" <onemda@gmail.com>
To:        Rohit Grover <rgrover1@gmail.com>
Cc:        freebsd-drivers@freebsd.org
Subject:   Re: introducing a FreeBSD driver for the Apple Touchpad; and a few  questions..
Message-ID:  <3a142e750909020155t584be8fck34596e715f4a466c@mail.gmail.com>
In-Reply-To: <426bed110908191416q35cf8613ue912b741d6285f1c@mail.gmail.com>
References:  <426bed110908190616m21d39e9bm95a60f624b831418@mail.gmail.com> <20090819194426.3bf401d9@baby-jane.lamaiziere.net> <426bed110908191416q35cf8613ue912b741d6285f1c@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 8/19/09, Rohit Grover <rgrover1@gmail.com> wrote:
> On Thu, Aug 20, 2009 at 1:44 AM, Patrick Lamaiziere
> <patfbsd@davenulle.org>wrote:
>
>> Le Wed, 19 Aug 2009 21:16:06 +0800,
>> Rohit Grover <rgrover1@gmail.com> a =E9crit :
>>
>> > I have developed a driver for the Touchpad device on Apple Macbooks.
>> > Mine is a Macbook 3,1, and I run FreeBSD7.2
>>
>> Cool! Shall it work on a MacBookPro 3,1?
>
>
> Please give it a try. The number of Y sensors on a MacBookPro might be
> different. On my MacBook, I've got 20 X sensors and 10 Y sensors; but tha=
t
> is with a mouse-button at the bottom of the touch-sensitive area. The but=
ton
> has been replaced with additional touchpad surface in the MacBookPro. So =
it
> will require a bit of experimentation, and even some reverse-engineering.
> The key to interpreting data from the device is atp_read_sensors(). That
> might have to change to support newer models.
>
> If someone is willing to contribute with testing, I can create a version =
of
> the driver which logs additional detail to help us with the reverse
> engineering.
>
>
>> Do you plan a version to the new usb stack on 8.0?
>>
>
> Certainly. I can't yet run 8.0 on my MacBook. ACPI panics the kernel righ=
t
> at the beginning of boot, and even if I disable ACPI, the kernel is still
> unable to mount the root partition. I have tried compiling my driver agai=
nst
> 8.0, and I see that I will need to adapt to the new USB stack. I'm very k=
een
> on moving to 8.0 once it can boot on my laptop. I'd be happy to maintain
> support for multiple versions of FreeBSD.
>
>
>>
>> > For my algorithms, I would like to allocate memory dynamically out of
>> > a small pool of fixed sized structures. I have read a bit about UMA;
>> > is UMA a good alternative for managing a small pool (~20) of buffers
>> > (of around 20 bytes in size)?
>>
>> I'm not sure for this, IMHO UMA does not care about the size of the
>> buffers, and malloc uses UMA for the allocation.
>>
>
> But is UMA a very heavy-weight approach to managing a small pool of fixed
> sized buffers whose total footprint is under 512 bytes?
>
>
>> I've read a bit the source, you should not use spl on 7.x, they are
>> no-ops. Instead use some mutexes. And you should not use the giant lock.
>>
>
> Thanks for pointing this out. I will research the use of SMP primitives. =
The
> 'ums' driver, which is what I am replacing, also uses splx(). Could you t=
ell
> me which giant lock I am using in my code? Is there any documentation I c=
an
> refer to for SMP synchronization under FreeBSD?

mutex(9)

> regards,
> Rohit.
> _______________________________________________
> freebsd-drivers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-drivers
> To unsubscribe, send any mail to "freebsd-drivers-unsubscribe@freebsd.org=
"
>


--=20
Paul



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3a142e750909020155t584be8fck34596e715f4a466c>