| ================== | 
 | Asus Laptop Extras | 
 | ================== | 
 |  | 
 | Version 0.1 | 
 |  | 
 | August 6, 2009 | 
 |  | 
 | Corentin Chary <[email protected]> | 
 | http://acpi4asus.sf.net/ | 
 |  | 
 |  This driver provides support for extra features of ACPI-compatible ASUS laptops. | 
 |  It may also support some MEDION, JVC or VICTOR laptops (such as MEDION 9675 or | 
 |  VICTOR XP7210 for example). It makes all the extra buttons generate input | 
 |  events (like keyboards). | 
 |  | 
 |  On some models adds support for changing the display brightness and output, | 
 |  switching the LCD backlight on and off, and most importantly, allows you to | 
 |  blink those fancy LEDs intended for reporting mail and wireless status. | 
 |  | 
 | This driver supersedes the old asus_acpi driver. | 
 |  | 
 | Requirements | 
 | ------------ | 
 |  | 
 |   Kernel 2.6.X sources, configured for your computer, with ACPI support. | 
 |   You also need CONFIG_INPUT and CONFIG_ACPI. | 
 |  | 
 | Status | 
 | ------ | 
 |  | 
 |  The features currently supported are the following (see below for | 
 |  detailed description): | 
 |  | 
 |  - Fn key combinations | 
 |  - Bluetooth enable and disable | 
 |  - Wlan enable and disable | 
 |  - GPS enable and disable | 
 |  - Video output switching | 
 |  - Ambient Light Sensor on and off | 
 |  - LED control | 
 |  - LED Display control | 
 |  - LCD brightness control | 
 |  - LCD on and off | 
 |  | 
 |  A compatibility table by model and feature is maintained on the web | 
 |  site, http://acpi4asus.sf.net/. | 
 |  | 
 | Usage | 
 | ----- | 
 |  | 
 |   Try "modprobe asus-laptop". Check your dmesg (simply type dmesg). You should | 
 |   see some lines like this : | 
 |  | 
 |       Asus Laptop Extras version 0.42 | 
 |         - L2D model detected. | 
 |  | 
 |   If it is not the output you have on your laptop, send it (and the laptop's | 
 |   DSDT) to me. | 
 |  | 
 |   That's all, now, all the events generated by the hotkeys of your laptop | 
 |   should be reported via netlink events. You can check with | 
 |   "acpi_genl monitor" (part of the acpica project). | 
 |  | 
 |   Hotkeys are also reported as input keys (like keyboards) you can check | 
 |   which key are supported using "xev" under X11. | 
 |  | 
 |   You can get information on the version of your DSDT table by reading the | 
 |   /sys/devices/platform/asus-laptop/infos entry. If you have a question or a | 
 |   bug report to do, please include the output of this entry. | 
 |  | 
 | LEDs | 
 | ---- | 
 |  | 
 |   You can modify LEDs be echoing values to `/sys/class/leds/asus/*/brightness`:: | 
 |  | 
 |     echo 1 >  /sys/class/leds/asus::mail/brightness | 
 |  | 
 |   will switch the mail LED on. | 
 |  | 
 |   You can also know if they are on/off by reading their content and use | 
 |   kernel triggers like disk-activity or heartbeat. | 
 |  | 
 | Backlight | 
 | --------- | 
 |  | 
 |   You can control lcd backlight power and brightness with | 
 |   /sys/class/backlight/asus-laptop/. Brightness Values are between 0 and 15. | 
 |  | 
 | Wireless devices | 
 | ---------------- | 
 |  | 
 |   You can turn the internal Bluetooth adapter on/off with the bluetooth entry | 
 |   (only on models with Bluetooth). This usually controls the associated LED. | 
 |   Same for Wlan adapter. | 
 |  | 
 | Display switching | 
 | ----------------- | 
 |  | 
 |   Note: the display switching code is currently considered EXPERIMENTAL. | 
 |  | 
 |   Switching works for the following models: | 
 |  | 
 |     - L3800C | 
 |     - A2500H | 
 |     - L5800C | 
 |     - M5200N | 
 |     - W1000N (albeit with some glitches) | 
 |     - M6700R | 
 |     - A6JC | 
 |     - F3J | 
 |  | 
 |   Switching doesn't work for the following: | 
 |  | 
 |     - M3700N | 
 |     - L2X00D (locks the laptop under certain conditions) | 
 |  | 
 |   To switch the displays, echo values from 0 to 15 to | 
 |   /sys/devices/platform/asus-laptop/display. The significance of those values | 
 |   is as follows: | 
 |  | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | Bin   | Val | DVI | TV  | CRT | LCD | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 0000  |   0 |     |     |     |     | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 0001  |   1 |     |     |     |  X  | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 0010  |   2 |     |     |  X  |     | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 0011  |   3 |     |     |  X  |  X  | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 0100  |   4 |     |  X  |     |     | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 0101  |   5 |     |  X  |     | X   | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 0110  |   6 |     |  X  |  X  |     | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 0111  |   7 |     |  X  |  X  |  X  | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 1000  |   8 |  X  |     |     |     | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 1001  |   9 |  X  |     |     |  X  | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 1010  |  10 |  X  |     |  X  |     | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 1011  |  11 |  X  |     |  X  |  X  | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 1100  |  12 |  X  |  X  |     |     | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 1101  |  13 |  X  |  X  |     |  X  | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 1110  |  14 |  X  |  X  |  X  |     | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |   | 1111  |  15 |  X  |  X  |  X  |  X  | | 
 |   +-------+-----+-----+-----+-----+-----+ | 
 |  | 
 |   In most cases, the appropriate displays must be plugged in for the above | 
 |   combinations to work. TV-Out may need to be initialized at boot time. | 
 |  | 
 |   Debugging: | 
 |  | 
 |   1) Check whether the Fn+F8 key: | 
 |  | 
 |      a) does not lock the laptop (try a boot with noapic / nolapic if it does) | 
 |      b) generates events (0x6n, where n is the value corresponding to the | 
 |         configuration above) | 
 |      c) actually works | 
 |  | 
 |      Record the disp value at every configuration. | 
 |   2) Echo values from 0 to 15 to /sys/devices/platform/asus-laptop/display. | 
 |      Record its value, note any change. If nothing changes, try a broader range, | 
 |      up to 65535. | 
 |   3) Send ANY output (both positive and negative reports are needed, unless your | 
 |      machine is already listed above) to the acpi4asus-user mailing list. | 
 |  | 
 |   Note: on some machines (e.g. L3C), after the module has been loaded, only 0x6n | 
 |   events are generated and no actual switching occurs. In such a case, a line | 
 |   like:: | 
 |  | 
 |     echo $((10#$arg-60)) > /sys/devices/platform/asus-laptop/display | 
 |  | 
 |   will usually do the trick ($arg is the 0000006n-like event passed to acpid). | 
 |  | 
 |   Note: there is currently no reliable way to read display status on xxN | 
 |   (Centrino) models. | 
 |  | 
 | LED display | 
 | ----------- | 
 |  | 
 |   Some models like the W1N have a LED display that can be used to display | 
 |   several items of information. | 
 |  | 
 |   LED display works for the following models: | 
 |  | 
 |     - W1000N | 
 |     - W1J | 
 |  | 
 |   To control the LED display, use the following:: | 
 |  | 
 |     echo 0x0T000DDD > /sys/devices/platform/asus-laptop/ | 
 |  | 
 |   where T control the 3 letters display, and DDD the 3 digits display, | 
 |   according to the tables below:: | 
 |  | 
 |          DDD (digits) | 
 |          000 to 999 = display digits | 
 |          AAA        = --- | 
 |          BBB to FFF = turn-off | 
 |  | 
 |          T  (type) | 
 |          0 = off | 
 |          1 = dvd | 
 |          2 = vcd | 
 |          3 = mp3 | 
 |          4 = cd | 
 |          5 = tv | 
 |          6 = cpu | 
 |          7 = vol | 
 |  | 
 |   For example "echo 0x01000001 >/sys/devices/platform/asus-laptop/ledd" | 
 |   would display "DVD001". | 
 |  | 
 | Driver options | 
 | -------------- | 
 |  | 
 |  Options can be passed to the asus-laptop driver using the standard | 
 |  module argument syntax (<param>=<value> when passing the option to the | 
 |  module or asus-laptop.<param>=<value> on the kernel boot line when | 
 |  asus-laptop is statically linked into the kernel). | 
 |  | 
 | 	     wapf: WAPF defines the behavior of the Fn+Fx wlan key | 
 | 		   The significance of values is yet to be found, but | 
 | 		   most of the time: | 
 |  | 
 | 		   - 0x0 should do nothing | 
 | 		   - 0x1 should allow to control the device with Fn+Fx key. | 
 | 		   - 0x4 should send an ACPI event (0x88) while pressing the Fn+Fx key | 
 | 		   - 0x5 like 0x1 or 0x4 | 
 |  | 
 |  The default value is 0x1. | 
 |  | 
 | Unsupported models | 
 | ------------------ | 
 |  | 
 |  These models will never be supported by this module, as they use a completely | 
 |  different mechanism to handle LEDs and extra stuff (meaning we have no clue | 
 |  how it works): | 
 |  | 
 |  - ASUS A1300 (A1B), A1370D | 
 |  - ASUS L7300G | 
 |  - ASUS L8400 | 
 |  | 
 | Patches, Errors, Questions | 
 | -------------------------- | 
 |  | 
 |  I appreciate any success or failure | 
 |  reports, especially if they add to or correct the compatibility table. | 
 |  Please include the following information in your report: | 
 |  | 
 |  - Asus model name | 
 |  - a copy of your ACPI tables, using the "acpidump" utility | 
 |  - a copy of /sys/devices/platform/asus-laptop/infos | 
 |  - which driver features work and which don't | 
 |  - the observed behavior of non-working features | 
 |  | 
 |  Any other comments or patches are also more than welcome. | 
 |  | 
 |  [email protected] | 
 |  | 
 |  http://sourceforge.net/projects/acpi4asus |