We currenly have several outside repositorys, we need to verify where and how the source will be handled.

IBM HDAPS Source Download

Additional Files

Jens Axboe's HD park script. The normal usage is ./head_park /dev/hda
You can download it from Here


ibm_hdaps-dave-0.01 07/05/2005
Main First release after being worked from the versions.

ibm_hdaps-dave-0.02 on 07/07/2005
- introduce __get_latch() helper
- move debugging printk into __wait_latch(), to centralize it
- introduce a spinlock to protect all port I/O to the device
- check for T42 return value from 0x1611
- reorganize the wait loop
- modify mod_timer() interfaces to something that Nish (who works on kernel janitor tasks) said would be easier to clean up in the future
- make lots of things static

ibm_hdaps-0.03 08/24/2005
- Redid read() to make it simpler and more intuitive behavior. The previous throttling and use of offsets was insane. The new read() does no throttling and always returns exactly one complete structure.
- Added sysfs files for all configuration points, allowing both show and store, and the x/y position.
- Redid mousdev_enable/mousedev_disable, adding working disable support, into a single mousedev file. Read or write one or zero to enable/disable.
- Redid the structure. No __packed__ attribute. Better ordering for a naturally aligned layout. Moved it to a header.
- sparse annotations.
- remove some of the printks.
- open the device in nonseekable mode.
- better global variable names.
- rename the module and device node to hdaps.
- use likely/unlikely.
- copy_to_user's return value needs to be checked and respected.
- Updated and fixed Makefile.
- Fixed all remaining TODO items (except the 'absolute input event driver' -- need to discuss that).
- Add lots of comments.
- Coding style and other misc. cleanup./
- Other bug fixes.

ibm_hdaps-0.04 08/24/2005
- Remove all of the device node stuff.
- Remove "x" and "y" sysfs files.
- Add "temp", "position", and "variance" file.
- Sleep for only 100us, not 500us. The IBM doc says 50us works, but the old driver used 500us. My original from scratch driver used 100us and it worked, but that was only a guess. The shorter, the better, so let's try this.
- Add resume support (Murillo Bernardes).
- Add complete device model support (Murillo Bernardes).
- Use spinlocks in accelerometer_init, if for nothing else than to disable preemption.
- fix "make install" if the install path does not exist (Colin Leroy).
- Rename hdaps_mousedev_fuzz to hdaps_mousedev_threshold and the sysfs file from fuzz to mousedev_threshold.
- Cleanup the printk()'s.
- Remove hdaps.h
- Other stuff I am forgetting.

ibm_hdaps-0.05 08/25/2005
- add module parameter "mousedev" to enable the input device on module load (Murillo Bernardes)
- always calibrate on input device enable
- fix sleep-while-atomic due to msleep in accelerometer_init()
- fix double-lock-acquire in accelerometer_init()
- calibrate sysfs file should be 0200, not 0644
- rename "poll_interval_ms" to "mousedev_poll_ms"
- more unlikely() directives.
- misc. stuff

ibm_hdaps-0.06 08/25/2005
- some misc. cleanup, particularly in accelerometer_init(), and a reduction from a 100s (bug!) to a 4s total wait.
- In the user-space tool, there was one small but important change: I flipped how we calculate (x,y), before we subtracted the calibrated base from the read values, now we subtract the read values from the calibrated base. This is, obviously, the right way to do it but it means that THE OUTPUT FROM PIVOT IS GOING TO BE INVERTED FROM NOW ON.

ibm-hdaps-bsd-0.1 on 08/16/2005
- Tested with FreeBSD 7.0 CURRENT
- IBM Thinkpad T42 M1G

For your Distro

Gentoo Ebuild