mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 02:39:48 +00:00
![Erik Waling](/assets/img/avatar_default.png)
Newer Sony VAIO models (VGN-S480, VGN-S460, VGN-S3XP etc) use a new method to initialize the SPIC device. The new way to initialize (and disable) the device comes directly from the AML code in the _CRS, _SRS and _DIS methods from the DSDT table. This patch adds support for the new models. Signed-off-by: Erik Waling <erikw@acc.umu.se> Signed-off-by: Stelian Pop <stelian@popies.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
152 lines
6.2 KiB
Text
152 lines
6.2 KiB
Text
Sony Programmable I/O Control Device Driver Readme
|
|
--------------------------------------------------
|
|
Copyright (C) 2001-2004 Stelian Pop <stelian@popies.net>
|
|
Copyright (C) 2001-2002 Alcôve <www.alcove.com>
|
|
Copyright (C) 2001 Michael Ashley <m.ashley@unsw.edu.au>
|
|
Copyright (C) 2001 Junichi Morita <jun1m@mars.dti.ne.jp>
|
|
Copyright (C) 2000 Takaya Kinjo <t-kinjo@tc4.so-net.ne.jp>
|
|
Copyright (C) 2000 Andrew Tridgell <tridge@samba.org>
|
|
|
|
This driver enables access to the Sony Programmable I/O Control Device which
|
|
can be found in many Sony Vaio laptops. Some newer Sony laptops (seems to be
|
|
limited to new FX series laptops, at least the FX501 and the FX702) lack a
|
|
sonypi device and are not supported at all by this driver.
|
|
|
|
It will give access (through a user space utility) to some events those laptops
|
|
generate, like:
|
|
- jogdial events (the small wheel on the side of Vaios)
|
|
- capture button events (only on Vaio Picturebook series)
|
|
- Fn keys
|
|
- bluetooth button (only on C1VR model)
|
|
- programmable keys, back, help, zoom, thumbphrase buttons, etc.
|
|
(when available)
|
|
|
|
Those events (see linux/sonypi.h) can be polled using the character device node
|
|
/dev/sonypi (major 10, minor auto allocated or specified as a option).
|
|
A simple daemon which translates the jogdial movements into mouse wheel events
|
|
can be downloaded at: <http://popies.net/sonypi/>
|
|
|
|
Another option to intercept the events is to get them directly through the
|
|
input layer.
|
|
|
|
This driver supports also some ioctl commands for setting the LCD screen
|
|
brightness and querying the batteries charge information (some more
|
|
commands may be added in the future).
|
|
|
|
This driver can also be used to set the camera controls on Picturebook series
|
|
(brightness, contrast etc), and is used by the video4linux driver for the
|
|
Motion Eye camera.
|
|
|
|
Please note that this driver was created by reverse engineering the Windows
|
|
driver and the ACPI BIOS, because Sony doesn't agree to release any programming
|
|
specs for its laptops. If someone convinces them to do so, drop me a note.
|
|
|
|
Driver options:
|
|
---------------
|
|
|
|
Several options can be passed to the sonypi driver using the standard
|
|
module argument syntax (<param>=<value> when passing the option to the
|
|
module or sonypi.<param>=<value> on the kernel boot line when sonypi is
|
|
statically linked into the kernel). Those options are:
|
|
|
|
minor: minor number of the misc device /dev/sonypi,
|
|
default is -1 (automatic allocation, see /proc/misc
|
|
or kernel logs)
|
|
|
|
camera: if you have a PictureBook series Vaio (with the
|
|
integrated MotionEye camera), set this parameter to 1
|
|
in order to let the driver access to the camera
|
|
|
|
fnkeyinit: on some Vaios (C1VE, C1VR etc), the Fn key events don't
|
|
get enabled unless you set this parameter to 1.
|
|
Do not use this option unless it's actually necessary,
|
|
some Vaio models don't deal well with this option.
|
|
This option is available only if the kernel is
|
|
compiled without ACPI support (since it conflicts
|
|
with it and it shouldn't be required anyway if
|
|
ACPI is already enabled).
|
|
|
|
verbose: set to 1 to print unknown events received from the
|
|
sonypi device.
|
|
set to 2 to print all events received from the
|
|
sonypi device.
|
|
|
|
compat: uses some compatibility code for enabling the sonypi
|
|
events. If the driver worked for you in the past
|
|
(prior to version 1.5) and does not work anymore,
|
|
add this option and report to the author.
|
|
|
|
mask: event mask telling the driver what events will be
|
|
reported to the user. This parameter is required for
|
|
some Vaio models where the hardware reuses values
|
|
used in other Vaio models (like the FX series who does
|
|
not have a jogdial but reuses the jogdial events for
|
|
programmable keys events). The default event mask is
|
|
set to 0xffffffff, meaning that all possible events
|
|
will be tried. You can use the following bits to
|
|
construct your own event mask (from
|
|
drivers/char/sonypi.h):
|
|
SONYPI_JOGGER_MASK 0x0001
|
|
SONYPI_CAPTURE_MASK 0x0002
|
|
SONYPI_FNKEY_MASK 0x0004
|
|
SONYPI_BLUETOOTH_MASK 0x0008
|
|
SONYPI_PKEY_MASK 0x0010
|
|
SONYPI_BACK_MASK 0x0020
|
|
SONYPI_HELP_MASK 0x0040
|
|
SONYPI_LID_MASK 0x0080
|
|
SONYPI_ZOOM_MASK 0x0100
|
|
SONYPI_THUMBPHRASE_MASK 0x0200
|
|
SONYPI_MEYE_MASK 0x0400
|
|
SONYPI_MEMORYSTICK_MASK 0x0800
|
|
SONYPI_BATTERY_MASK 0x1000
|
|
SONYPI_WIRELESS_MASK 0x2000
|
|
|
|
useinput: if set (which is the default) two input devices are
|
|
created, one which interprets the jogdial events as
|
|
mouse events, the other one which acts like a
|
|
keyboard reporting the pressing of the special keys.
|
|
|
|
Module use:
|
|
-----------
|
|
|
|
In order to automatically load the sonypi module on use, you can put those
|
|
lines in your /etc/modprobe.conf file:
|
|
|
|
alias char-major-10-250 sonypi
|
|
options sonypi minor=250
|
|
|
|
This supposes the use of minor 250 for the sonypi device:
|
|
|
|
# mknod /dev/sonypi c 10 250
|
|
|
|
Bugs:
|
|
-----
|
|
|
|
- several users reported that this driver disables the BIOS-managed
|
|
Fn-keys which put the laptop in sleeping state, or switch the
|
|
external monitor on/off. There is no workaround yet, since this
|
|
driver disables all APM management for those keys, by enabling the
|
|
ACPI management (and the ACPI core stuff is not complete yet). If
|
|
you have one of those laptops with working Fn keys and want to
|
|
continue to use them, don't use this driver.
|
|
|
|
- some users reported that the laptop speed is lower (dhrystone
|
|
tested) when using the driver with the fnkeyinit parameter. I cannot
|
|
reproduce it on my laptop and not all users have this problem.
|
|
This happens because the fnkeyinit parameter enables the ACPI
|
|
mode (but without additional ACPI control, like processor
|
|
speed handling etc). Use ACPI instead of APM if it works on your
|
|
laptop.
|
|
|
|
- sonypi lacks the ability to distinguish between certain key
|
|
events on some models.
|
|
|
|
- some models with the nvidia card (geforce go 6200 tc) uses a
|
|
different way to adjust the backlighting of the screen. There
|
|
is a userspace utility to adjust the brightness on those models,
|
|
which can be downloaded from
|
|
http://www.acc.umu.se/~erikw/program/smartdimmer-0.1.tar.bz2
|
|
|
|
- since all development was done by reverse engineering, there is
|
|
_absolutely no guarantee_ that this driver will not crash your
|
|
laptop. Permanently.
|