summaryrefslogtreecommitdiff
path: root/drivers/platform/x86/asus-laptop.c
AgeCommit message (Collapse)AuthorFilesLines
2010-02-28asus-laptop: fix style problems reported by checkpath.plCorentin Chary1-47/+47
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: use device_create_file() instead of platform_groupCorentin Chary1-82/+84
There is two reason to do that: - we don't want a "gps" file if the model doesn't have a gps - we don't want to use global variables anymore Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: clean led codeCorentin Chary1-120/+115
Remove all "templates" and add a generic struct asus_led instead. Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: add gps rfkillCorentin Chary1-7/+58
The rfkill subsystem will enable gps by default. Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: set initial lcd stateCorentin Chary1-0/+2
There is no way to find the initial lcd state. A quick workaround is to set it "on" by default. Anyway this feature is scheduled for removal. Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
2010-02-28asus-laptop: leds, remove dead code and fix asus_led_exit()/asus_led_init()Corentin Chary1-17/+14
These bug where introduced in "asus-laptop: code movement". Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
2010-02-28asus-laptop: add backlight changes notificationsCorentin Chary1-2/+27
We don't want to send KEY_BRIGHTNESSDOWN or KEY_BRIGHTNESSUP because it would be a lie to tell userspace that we want to change the brightness while it's actually done by the firmware. Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: add bluetooth keys found on M9VCorentin Chary1-0/+2
Reported by Andrey F. Ilchuk Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: switch to sparse keymap libraryCorentin Chary1-141/+67
This patch is based on Dmitry Torokhov's patch with some modifications and cleanups. Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: rename wireless_status to wlan_status to avoid confusionCorentin Chary1-5/+5
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: add error check for write_acpi_int callsCorentin Chary1-8/+25
Also add to helpers for bluetooth and wlan. Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: stop using ASUS_HANDLE and use relative methods insteadCorentin Chary1-111/+129
Stop using ASUS_HANDLE because most of the time it is not needed. This macro was introduced to display_get and lcd_switch which are not part of the interface provided by Asus, and are scheduled for removal. Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: rename function talking directly to acpi with asus_xxx schemeCorentin Chary1-19/+19
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: removing read_status/store_status/write_status and asus->statusCorentin Chary1-57/+24
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: stop using read_status for lcdCorentin Chary1-17/+20
(anyway lcd code is scheduled for removal) Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: stop using read_status and store_status for GPSCorentin Chary1-21/+35
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: stop using read_status for bluetooth and wlanCorentin Chary1-26/+29
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: code movementCorentin Chary1-217/+223
The asus-laptop driver implements a number of interfaces like the backlight class driver. This change makes it easier to examine the implementation of one interface at at a time, without having to search through the file to find init() and exit() functions etc. Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: callbacks should use "driver data" parameter or fieldCorentin Chary1-153/+209
(Changelog stolen from Alan's patch for eeepc-laptop, but this patch does the same thing for asus-laptop) Callback methods should not refer to a variable like "asus" (formally "hotk"). Instead, they should extract the data they need either from a "driver data" parameter, or the "driver data" field of the object which they operate on. The "asus" variable can then be removed. In practice, drivers under "drivers/platform" can get away without using driver data, because it doesn't make sense to have more than one instance of them. However this makes it harder to review them for correctness. This is especially true for core ACPI developers who have not previously been exposed to this anti-pattern :-). This will serve as an example of best practice for new driver writers (whether they find it themselves, or have it pointed out during review :-). Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: move backlight and dsdt info inside asus_laptop structCorentin Chary1-39/+30
Prepare the use of "driver data" for callbacks. Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: revise namesCorentin Chary1-110/+111
asus-laptop now does a lot more than just hotkeys. Replace the "hotk" names used throughout the driver with some slightly more appropriate names. The actual strings used in kernel messages and sysfs are left unchanged. Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: change initialization orderCorentin Chary1-189/+180
Clean asus-laptop initialization to match new eeepc-laptop code. Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: remove unecessary hotk != NULL checkCorentin Chary1-4/+1
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: use tabs to indent macros and remove unused onesCorentin Chary1-29/+22
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: simplify write_acpi_intCorentin Chary1-11/+16
We only need a buffer for "INIT". Adds write_acpi_init_ret for it. Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: no need to check argument of set_brightness()Corentin Chary1-8/+2
We already tell the backlight class our maximum brightness value; it will validate the user requested values for us. Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2010-02-28asus-laptop: add wireless and bluetooth status parameterCorentin Chary1-2/+17
These to parameter allow to set the status of wlan and bluetooth device when the module load. On some models, the device will always be down on boot, so the default behavior is to always enable these devices. Signed-off-by: Corentin Chary <corentincj@iksaif.net>
2009-12-16asus-laptop: change light sens default values.Corentin Chary1-2/+2
The light sensor disable brightness key and /sys/class/backlight/ control. There was a lot of report from users who didn't understand why they couldn't change their brightness, including: https://bugs.launchpad.net/bugs/222171 https://bugzilla.novell.com/show_bug.cgi?id=514747 http://bugzilla.kernel.org/show_bug.cgi?id=13671 http://bugzilla.kernel.org/show_bug.cgi?id=14432 Now the light sensor is disabled, and if the user want to enable it, the level should be ok. The funny thing is that comments where ok, not code. Cc: stable@kernel.org Cc: Thomas Renninger <trenn@suse.de> Cc: Peter Küppers <peter-mailbox@web.de> Cc: Michael Franzl <michaelfranzl@gmx.at> Cc: Ian Turner <vectro@vectro.org> Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-12-09asus-laptop: Add wlan switch found on V6VCorentin Chary1-0/+1
Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-12-09asus-laptop: add Lenovo SL hotkey supportIke Panhc1-0/+8
Lenovo SL series laptop has a very similar DSDT with Asus laptops. We can easily have the extra ACPI function support with little modification in asus-laptop.c Here is the hotkey enablement for Lenovo SL series laptop. This patch will enable the following hotkey: - Volumn Up - Volumn Down - Mute - Screen Lock (Fn+F2) - Battery Status (Fn+F3) - WLAN switch (Fn+F5) - Video output switch (Fn+F7) - Touchpad switch (Fn+F8) - Screen Magnifier (Fn+Space) The following function of Lenovo SL laptop is still need to be enabled: - Hotkey: KEY_SUSPEND (Fn+F4), KEY_SLEEP (Fn+F12), Dock Eject (Fn+F9) - Rfkill for bluetooth and wlan - LenovoCare LED - Hwmon for fan speed - Fingerprint scanner - Active Protection System Signed-off-by: Ike Panhc <ike.pan@canonical.com> Signed-off-by: Len Brown <len.brown@intel.com>
2009-12-09asus-laptop: use KEY_F13 to map "Disable Touchpad" eventCorentin Chary1-1/+1
The same key is used in toshiba-laptop, and there is no reserved key for that. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-12-09asus-laptop: set acpi_driver.ownerAlan Jenkins1-0/+1
The owner field provides the link between drivers and modules in sysfs, but no ACPI driver was setting it. After setting the owner field, we can see which module provides which driver and vice versa by looking at /sys/bus/acpi/driver/*/module and /sys/module/*/drivers/acpi:*. Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk> Signed-off-by: Len Brown <len.brown@intel.com>
2009-12-09asus-laptop: Remove uneccesary acpi_disabled checkAlan Jenkins1-3/+0
acpi_bus_register_driver() already checks acpi_disabled, so acpi bus drivers don't need to. Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk> Signed-off-by: Len Brown <len.brown@intel.com>
2009-12-09asus-laptop: Remove redundant NULL checksAlan Jenkins1-6/+0
The acpi device callbacks add, start, remove, suspend and resume can never be called with a NULL acpi_device. Each callsite in acpi/scan.c has to dereference the device in order to get the ops structure, e.g. struct acpi_device *acpi_dev = to_acpi_device(dev); struct acpi_driver *acpi_drv = acpi_dev->driver; if (acpi_drv && acpi_drv->ops.suspend) return acpi_drv->ops.suspend(acpi_dev, state); Remove all checks for acpi_dev == NULL within these callbacks. Also remove the checks for acpi_driver_data(acpi_dev) == NULL. None of these checks could fail unless the driver does something strange (which none of them do), the acpi core did something terribly wrong, or we have a memory corruption issue. If this does happen then it's best to dereference the pointer and crash noisily. Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk> Signed-off-by: Len Brown <len.brown@intel.com>
2009-08-29asus-laptop: Fix coding style for commentsCorentin Chary1-45/+63
Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-08-28asus-laptop: Add "calculator" hotkeyCorentin Chary1-0/+1
Found on UX50V. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-08-28asus-laptop: Add suport for another "Media" keyCorentin Chary1-0/+1
Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-08-28asus-laptop: handle keyboard backlight keysCorentin Chary1-0/+2
Add support for the Fn+F3/Fn+F4 keys and map them as KEY_KBDILLUMUP and KEY_KBDILLUMDOWN. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-08-28asus-laptop: Add support for Keyboard backlightCorentin Chary1-2/+77
Add support for keyboard backlight found in Asus U50VG. The SMC driver for the Apples does it via LED. To be consistent with that we create /sys/class/leds/asus::kbd_backlight/ to control the keyboard backlight. SLKB and GLKB are used to get/set the backlight. On the U50VG is supports 4 brightness level, but this may change with other models. SLKB take a 8 bit integer where the higher bit is used to toggle the backlight, and the over 7 bits control the brightness level. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-08-28asus-laptop: set maximum led brightnessCorentin Chary1-6/+7
Set the right maximum brightness which is one, because they can only be on or off. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-08-28asus-laptop: Map X50R hotkeysCorentin Chary1-0/+3
Map some new hotkeys found on X50R. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-08-28asus-laptop: Add *_led_get() functionsCorentin Chary1-0/+8
Add support for getting led brightness directly from the hardware. Currently we don't need it, but it is needed to support keyboard backlight/led. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-08-28asus-laptop: Show HRWS in infos and fix output formatCorentin Chary1-2/+12
Show HRWS in /sys/platform/devices/asus-laptop/infos. HRWS is a bitfield used to get information about Hardware available in the laptop. Also change sprintf format from 0x%04x to %#x. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-06-24asus-laptop: use pr_fmt and pr_<level>Corentin Chary1-24/+26
Convert the unusual printk(ASUS_<level> uses to the more standard pr_fmt and pr_<level>(. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-06-24asus-laptop: platform dev as parent for led and backlightCorentin Chary1-21/+19
Makes asus-laptop platform device the parent device of backlight and led classes. With this patch, leds and backlight are also available in /sys/devices/platform/asus-laptop/ like thinkpad_acpi. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-06-18ACPI: asus-laptop: use .notify method instead of installing handler directlyBjorn Helgaas1-18/+5
This patch adds a .notify() method. The presence of .notify() causes Linux/ACPI to manage event handlers and notify handlers on our behalf, so we don't have to install and remove them ourselves. This driver apparently relies on seeing ALL notify events, not just device-specific ones (because it used ACPI_ALL_NOTIFY). We use the ACPI_DRIVER_ALL_NOTIFY_EVENTS driver flag to request all events. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com> CC: Corentin Chary <corentincj@iksaif.net> CC: acpi4asus-user@lists.sourceforge.net Signed-off-by: Len Brown <len.brown@intel.com>
2009-05-14asus-laptop: fix input keycodeCorentin Chary1-3/+3
KEY_STOP is now KEY_STOPCD It's the correct key to stop a media BTN_EXTRA is now KEY_SCREENLOCK: The laptop manual tells us that this key is for screenlock KEY_TV is now KEY_PROG1 So it can be reported to X server Ref: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/361505 Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-03-16asus-laptop: restore acpi_generate_proc_event()Corentin Chary1-1/+4
Restore acpi_generate_proc_event() for backward compatibility with old acpi scripts. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-01-20asus-laptop: fix label indentationCorentin Chary1-8/+8
Fix the label indentation Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>
2009-01-20asus-laptop: hotkeys via the generic input interfaceCorentin Chary1-1/+154
This patch is based on eeepc-laptop.c and the patchs from Nicolas Trangez and Daniel Nascimento (mainly for the keymap). Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Len Brown <len.brown@intel.com>