Asus Laptop Extras

Version 0.1
August 6, 2009

Corentin Chary <corentincj@iksaif.net>
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 standard
 ACPI events that go through /proc/acpi/events and 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 supercedes 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 in your /proc/acpi/event entry. You can check with
  "acpi_listen".

  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 ide-disk 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 disabling CONFIG_X86_UP_APIC or 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.

 acpi4asus-user@lists.sourceforge.net
 http://sourceforge.net/projects/acpi4asus

