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>
index | next in thread | previous in thread | raw e-mail
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 écrit : > > > 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 button 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 against 8.0, and I see that I will need to adapt to the new USB stack. I'm very keen 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 tell 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.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?426bed110908191416q35cf8613ue912b741d6285f1c>
