258 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			258 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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 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 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.
 | 
						|
 | 
						|
 acpi4asus-user@lists.sourceforge.net
 | 
						|
 http://sourceforge.net/projects/acpi4asus
 | 
						|
 |