[PATCH] compal-laptop.c: added JHL90, battery & hwmon interface

From: Roald Frederickx
Date: Mon Apr 05 2010 - 15:14:32 EST

Dear kernel developers,

On February the fourth I have contacted Cezary Jackiewicz regarding a
(large) addition to the compal-laptop driver (he is listed in the
maintainers file as the person to contact). However I still haven't
received any reply to date. I have recently checked the github commits
on this driver and I saw some activity during February and March. I
have patched my original addition to the driver to reflect the changes
that were made to the driver in the meantime. This mail is sent to all
the people that were involved in those github commits (excluding
Linus) and to the kernel mailing list.

About the additions:

The driver now supports the Compal JHL90 (which I use) and it has some
added features. The biggest novelties are a battery interface
(power_supply) and a temperature and fan control interface (hmwon).

Much of the original code of the old features is still there, but I've
changed some names to keep the naming more coherent with the added

This is my first kernel patch, so I'm new to this. I've added my name
and email address as an author (I'm willing to respond to questions,
and/or to test future versions on a JHL90 platform). I also bumped up
the version number to 0.2.7 as this is quite a big change.

Some technical stuff about the new driver:

NOTE: First of all, I'm not sure if the extra features also work on
the other Compal boards. If it turns out they only work on the JHL90,
then the driver can easily be altered to only enable them if the DMI
detection find such a board. (I can make those changes, should this be

I've noticed a quirk in my fan controller. I have to re-send the
wanted pwm-level to the controller every so often. If I don't do this,
the fanspeed will slowly rise until after a couple of minutes it's at
full speed. (Note that every normal userland application will probably
update the pwm-level every so often anyway, based on temperature
readings, so this might not be an issue in practice) If this turns out
to be a problem with all the controllers, maybe we should implement a
kernel timer and have the driver re-send the pwm level every XX
seconds to make this transparent to userspace? (However, I couldn't
immediately find a way to do this *cleanly*.)

Additional information can be found in the source comments.

Lastly: the code. I've just inserted the entire source code. A diff
wouldn't be of much use given the amount of code that was altered and
added. It's attached as a bzipped tarball containing two files:
compal-laptop.c and the advised README.

Kind regards,

Roald Frederickx

Attachment: compal-laptop.tar.bz2
Description: BZip2 compressed data