123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- Sony Notebook Control Driver (SNC) Readme
- -----------------------------------------
- Copyright (C) 2004- 2005 Stelian Pop <stelian@popies.net>
- Copyright (C) 2007 Mattia Dongili <malattia@linux.it>
- This mini-driver drives the SNC and SPIC device present in the ACPI BIOS of the
- Sony Vaio laptops. This driver mixes both devices functions under the same
- (hopefully consistent) interface. This also means that the sonypi driver is
- obsoleted by sony-laptop now.
- Fn keys (hotkeys):
- ------------------
- Some models report hotkeys through the SNC or SPIC devices, such events are
- reported both through the ACPI subsystem as acpi events and through the INPUT
- subsystem. See the logs of acpid or /proc/acpi/event and
- /proc/bus/input/devices to find out what those events are and which input
- devices are created by the driver. Additionally, loading the driver with the
- debug option will report all events in the kernel log.
- Backlight control:
- ------------------
- If your laptop model supports it, you will find sysfs files in the
- /sys/class/backlight/sony/
- directory. You will be able to query and set the current screen
- brightness:
- brightness get/set screen brightness (an integer
- between 0 and 7)
- actual_brightness reading from this file will query the HW
- to get real brightness value
- max_brightness the maximum brightness value
- Platform specific:
- ------------------
- Loading the sony-laptop module will create a
- /sys/devices/platform/sony-laptop/
- directory populated with some files.
- You then read/write integer values from/to those files by using
- standard UNIX tools.
- The files are:
- brightness_default screen brightness which will be set
- when the laptop will be rebooted
- cdpower power on/off the internal CD drive
- audiopower power on/off the internal sound card
- lanpower power on/off the internal ethernet card
- (only in debug mode)
- bluetoothpower power on/off the internal bluetooth device
- fanspeed get/set the fan speed
- Note that some files may be missing if they are not supported
- by your particular laptop model.
- Example usage:
- # echo "1" > /sys/devices/platform/sony-laptop/brightness_default
- sets the lowest screen brightness for the next and later reboots,
- # echo "8" > /sys/devices/platform/sony-laptop/brightness_default
- sets the highest screen brightness for the next and later reboots,
- # cat /sys/devices/platform/sony-laptop/brightness_default
- retrieves the value.
- # echo "0" > /sys/devices/platform/sony-laptop/audiopower
- powers off the sound card,
- # echo "1" > /sys/devices/platform/sony-laptop/audiopower
- powers on the sound card.
- RFkill control:
- ---------------
- More recent Vaio models expose a consistent set of ACPI methods to
- control radio frequency emitting devices. If you are a lucky owner of
- such a laptop you will find the necessary rfkill devices under
- /sys/class/rfkill. Check those starting with sony-* in
- # grep . /sys/class/rfkill/*/{state,name}
- Development:
- ------------
- If you want to help with the development of this driver (and
- you are not afraid of any side effects doing strange things with
- your ACPI BIOS could have on your laptop), load the driver and
- pass the option 'debug=1'.
- REPEAT: DON'T DO THIS IF YOU DON'T LIKE RISKY BUSINESS.
- In your kernel logs you will find the list of all ACPI methods
- the SNC device has on your laptop.
- * For new models you will see a long list of meaningless method names,
- reading the DSDT table source should reveal that:
- (1) the SNC device uses an internal capability lookup table
- (2) SN00 is used to find values in the lookup table
- (3) SN06 and SN07 are used to call into the real methods based on
- offsets you can obtain iterating the table using SN00
- (4) SN02 used to enable events.
- Some values in the capability lookup table are more or less known, see
- the code for all sony_call_snc_handle calls, others are more obscure.
- * For old models you can see the GCDP/GCDP methods used to pwer on/off
- the CD drive, but there are others and they are usually different from
- model to model.
- I HAVE NO IDEA WHAT THOSE METHODS DO.
- The sony-laptop driver creates, for some of those methods (the most
- current ones found on several Vaio models), an entry under
- /sys/devices/platform/sony-laptop, just like the 'cdpower' one.
- You can create other entries corresponding to your own laptop methods by
- further editing the source (see the 'sony_nc_values' table, and add a new
- entry to this table with your get/set method names using the
- SNC_HANDLE_NAMES macro).
- Your mission, should you accept it, is to try finding out what
- those entries are for, by reading/writing random values from/to those
- files and find out what is the impact on your laptop.
- Should you find anything interesting, please report it back to me,
- I will not disavow all knowledge of your actions :)
- See also http://www.linux.it/~malattia/wiki/index.php/Sony_drivers for other
- useful info.
- Bugs/Limitations:
- -----------------
- * This driver is not based on official documentation from Sony
- (because there is none), so there is no guarantee this driver
- will work at all, or do the right thing. Although this hasn't
- happened to me, this driver could do very bad things to your
- laptop, including permanent damage.
- * The sony-laptop and sonypi drivers do not interact at all. In the
- future, sonypi will be removed and replaced by sony-laptop.
- * spicctrl, which is the userspace tool used to communicate with the
- sonypi driver (through /dev/sonypi) is deprecated as well since all
- its features are now available under the sysfs tree via sony-laptop.
|