Mattia Dongili | ab5bd20 | 2007-02-08 20:16:41 +0100 | [diff] [blame] | 1 | Sony Notebook Control Driver (SNC) Readme |
| 2 | ----------------------------------------- |
| 3 | Copyright (C) 2004- 2005 Stelian Pop <stelian@popies.net> |
| 4 | Copyright (C) 2007 Mattia Dongili <malattia@linux.it> |
| 5 | |
| 6 | This mini-driver drives the SNC device present in the ACPI BIOS of |
| 7 | the Sony Vaio laptops. |
| 8 | |
| 9 | It gives access to some extra laptop functionalities. In its current |
| 10 | form, this driver let the user set or query the screen brightness |
| 11 | through the backlight subsystem and remove/apply power to some devices. |
| 12 | |
| 13 | Backlight control: |
| 14 | ------------------ |
| 15 | If your laptop model supports it, you will find sysfs files in the |
| 16 | /sys/class/backlight/sony/ |
| 17 | directory. You will be able to query and set the current screen |
| 18 | brightness: |
| 19 | brightness get/set screen brightness (an iteger |
| 20 | between 0 and 7) |
| 21 | actual_brightness reading from this file will query the HW |
| 22 | to get real brightness value |
| 23 | max_brightness the maximum brightness value |
| 24 | |
| 25 | |
| 26 | Platform specific: |
| 27 | ------------------ |
| 28 | Loading the sony-laptop module will create a |
| 29 | /sys/devices/platform/sony-laptop/ |
| 30 | directory populated with some files. |
| 31 | |
| 32 | You then read/write integer values from/to those files by using |
| 33 | standard UNIX tools. |
| 34 | |
| 35 | The files are: |
| 36 | brightness_default screen brightness which will be set |
| 37 | when the laptop will be rebooted |
| 38 | cdpower power on/off the internal CD drive |
| 39 | audiopower power on/off the internal sound card |
| 40 | lanpower power on/off the internal ethernet card |
| 41 | (only in debug mode) |
| 42 | |
| 43 | Note that some files may be missing if they are not supported |
| 44 | by your particular laptop model. |
| 45 | |
| 46 | Example usage: |
| 47 | # echo "1" > /sys/devices/platform/sony-laptop/brightness_default |
| 48 | sets the lowest screen brightness for the next and later reboots, |
| 49 | # echo "8" > /sys/devices/platform/sony-laptop/brightness_default |
| 50 | sets the highest screen brightness for the next and later reboots, |
| 51 | # cat /sys/devices/platform/sony-laptop/brightness_default |
| 52 | retrieves the value. |
| 53 | |
| 54 | # echo "0" > /sys/devices/platform/sony-laptop/audiopower |
| 55 | powers off the sound card, |
| 56 | # echo "1" > /sys/devices/platform/sony-laptop/audiopower |
| 57 | powers on the sound card. |
| 58 | |
| 59 | Development: |
| 60 | ------------ |
| 61 | |
| 62 | If you want to help with the development of this driver (and |
| 63 | you are not afraid of any side effects doing strange things with |
| 64 | your ACPI BIOS could have on your laptop), load the driver and |
| 65 | pass the option 'debug=1'. |
| 66 | |
| 67 | REPEAT: DON'T DO THIS IF YOU DON'T LIKE RISKY BUSINESS. |
| 68 | |
| 69 | In your kernel logs you will find the list of all ACPI methods |
| 70 | the SNC device has on your laptop. You can see the GCDP/GCDP methods |
| 71 | used to pwer on/off the CD drive, but there are others. |
| 72 | |
| 73 | I HAVE NO IDEA WHAT THOSE METHODS DO. |
| 74 | |
| 75 | The sony-laptop driver creates, for some of those methods (the most |
| 76 | current ones found on several Vaio models), an entry under |
| 77 | /sys/devices/platform/sony-laptop, just like the 'cdpower' one. |
| 78 | You can create other entries corresponding to your own laptop methods by |
| 79 | further editing the source (see the 'sony_acpi_values' table, and add a new |
| 80 | entry to this table with your get/set method names using the |
| 81 | HANDLE_NAMES macro). |
| 82 | |
| 83 | Your mission, should you accept it, is to try finding out what |
| 84 | those entries are for, by reading/writing random values from/to those |
| 85 | files and find out what is the impact on your laptop. |
| 86 | |
| 87 | Should you find anything interesting, please report it back to me, |
| 88 | I will not disavow all knowledge of your actions :) |
| 89 | |
| 90 | Bugs/Limitations: |
| 91 | ----------------- |
| 92 | |
| 93 | * This driver is not based on official documentation from Sony |
| 94 | (because there is none), so there is no guarantee this driver |
| 95 | will work at all, or do the right thing. Although this hasn't |
| 96 | happened to me, this driver could do very bad things to your |
| 97 | laptop, including permanent damage. |
| 98 | |
| 99 | * The sony-laptop and sonypi drivers do not interact at all. In the |
| 100 | future, sonypi could use sony-laptop to do (part of) its business. |
| 101 | |
| 102 | * spicctrl, which is the userspace tool used to communicate with the |
| 103 | sonypi driver (through /dev/sonypi) does not try to use the |
| 104 | sony-laptop driver. In the future, spicctrl could try sonypi first, |
| 105 | and if it isn't present, try sony-laptop instead. |
| 106 | |