mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
174 lines
6.0 KiB
174 lines
6.0 KiB
========================================= |
|
Sony Notebook Control Driver (SNC) Readme |
|
========================================= |
|
|
|
- Copyright (C) 2004- 2005 Stelian Pop <[email protected]> |
|
- Copyright (C) 2007 Mattia Dongili <[email protected]> |
|
|
|
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 /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. |
|
|
|
The "scancodes" passed to the input system (that can be remapped with udev) |
|
are indexes to the table "sony_laptop_input_keycode_map" in the sony-laptop.c |
|
module. For example the "FN/E" key combination (EJECTCD on some models) |
|
generates the scancode 20 (0x14). |
|
|
|
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.
|
|
|