So, the promised update on getting acer_acpi upstream.

1) The generic WMI-to-ACPI mapping driver to go upstream will now be written by me.

My current work on this driver has already been integrated into the 0.10 RC releases - I will continue to backport my WMI work to acer_acpi (where possible and practical) until it gets accepted upstream.

2) The ‘upstream’ acer_acpi will likely be renamed acer-wmi, so as to:

i) Make it clear that acer_acpi is the out of tree version, and avoid any confusion with the in tree (acer-wmi) driver - as once acer-wmi is accepted upstream, development work will cease on the out-of-tree acer_acpi - I will maintain and bugfix it only for older kernels. The recommended path will be to upgrade to the latest stable kernel with acer-wmi (or nag your distribution to update their kernel).

iii) acer-wmi will now call the WMI driver (acer_acpi will call its own internal copy)

iv) The use of the -acpi name is being deprecated by the “next generation” of laptop drivers (sony-laptop, asus-laptop). Whilst I have considered the “acer-laptop” name, I feel it is inappropriate, since we are only driving the WMI based laptops, not all Acer laptops.

The acer_acpi name is also inappropriate, because as of 0.10 RC, acer_acpi is not really an ACPI driver anymore - it has bits of ACPI in it, but WMI is the “true” ACPI driver, whilst acer_acpi is now a platform driver[1] that just calls into WMI to do the ACPI bits for it.

(WMI has a defined ACPI interface device (PNP0C14) by Microsoft, so acer_acpi cannot claim the WMI-ACPI device for itself. Otherwise, if someone else wanted to write another Linux driver against WMI-ACPI, it would be a race between this driver and the other ones to claim PNP0C14. So instead, we will have just one WMI driver, which claims PNP0C14, and then other drivers just call into WMI to access the WMI-ACPI functionality.

(This is in contrast to other laptop vendors, who just define their own out-of-spec devices, so Linux drivers for them can claim these ACPI devices and drive them, since nothing else will).

3) The following from acer_acpi will _not_ be present in acer-wmi:

i) proc interface - PITA to maintain, and upstream will not accept new /proc interfaces for ACPI. The sysfs interface + subsystem integration is the future.

ii) Extra keys toggling - As per my discussions with the input subsystem maintainer, this belongs in i8042.c, not acer-wmi.

iii) Fan override - I’m not entirely comfortable submitting this straight away. I’d prefer to get acer-wmi in, then consider re-adding this later.

[1] A ‘platform’ driver, in the Linux kernel, to quote from Documentation/driver-model/platform.txt:

“This pseudo-bus is used to connect devices on busses with minimal infrastructure [..]; as opposed to large formally specified ones like PCI or USB.”

Comments (0) Posted by Carlos Corbacho on Monday, October 29th, 2007