Date: Thu, 20 Aug 2009 05:16:10 +0800 From: Rohit Grover <rgrover1@gmail.com> To: Patrick Lamaiziere <patfbsd@davenulle.org> Cc: freebsd-drivers@freebsd.org Subject: Re: introducing a FreeBSD driver for the Apple Touchpad; and a few questions.. Message-ID: <426bed110908191416q35cf8613ue912b741d6285f1c@mail.gmail.com> In-Reply-To: <20090819194426.3bf401d9@baby-jane.lamaiziere.net> References: <426bed110908190616m21d39e9bm95a60f624b831418@mail.gmail.com> <20090819194426.3bf401d9@baby-jane.lamaiziere.net>
next in thread | previous in thread | raw e-mail | index | archive | help
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 that is with a mouse-button at the bottom of the touch-sensitive area. The butto= n 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 right 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 agains= t 8.0, and I see that I will need to adapt to the new USB stack. I'm very kee= n 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. Th= e 'ums' driver, which is what I am replacing, also uses splx(). Could you tel= l me which giant lock I am using in my code? Is there any documentation I can refer to for SMP synchronization under FreeBSD? regards, Rohit.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?426bed110908191416q35cf8613ue912b741d6285f1c>