summaryrefslogtreecommitdiffstats
path: root/drivers/platform/x86/asus-wmi.h
diff options
context:
space:
mode:
authorAceLan Kao <acelan.kao@canonical.com>2012-03-20 09:53:08 +0100
committerMatthew Garrett <mjg@redhat.com>2012-03-26 21:05:41 +0200
commitc87992d1fa51a6a3d8f0e980ca4d2bdec7e78a17 (patch)
treec702643e69183fcc5cb5f5b8b4f1e429ff1366fb /drivers/platform/x86/asus-wmi.h
parentsamsung-laptop: cleanup return type: mode_t vs umode_t (diff)
downloadlinux-c87992d1fa51a6a3d8f0e980ca4d2bdec7e78a17.tar.xz
linux-c87992d1fa51a6a3d8f0e980ca4d2bdec7e78a17.zip
asus-wmi: add scalar board brightness adj. support
Some ASUS ET2012E/I All-in-One machines that use a scalar board to control the brightness, and they only accept brightness up and down command. So, I introduced a get_scalar_command() function to pass the command to the scalar board through WMI. Besides, we have to store the brightness value locally, for we need the old value to know the brightness value is increasing or decreasing. BTW, since there is no way to retrieve the actual brightness(it would be a fixed value), and the max brightness value would be fixed to 1, so we have to keep passing the brightness up/down command when we reached the max brightness value or 0. Signed-off-by: AceLan Kao <acelan.kao@canonical.com> Signed-off-by: Corentin Chary <corentin.chary@gmail.com> Signed-off-by: Matthew Garrett <mjg@redhat.com>
Diffstat (limited to 'drivers/platform/x86/asus-wmi.h')
-rw-r--r--drivers/platform/x86/asus-wmi.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/platform/x86/asus-wmi.h b/drivers/platform/x86/asus-wmi.h
index 8147c10161cc..ac7dd4eaebd0 100644
--- a/drivers/platform/x86/asus-wmi.h
+++ b/drivers/platform/x86/asus-wmi.h
@@ -35,9 +35,14 @@ struct module;
struct key_entry;
struct asus_wmi;
+struct quirk_entry {
+ bool hotplug_wireless;
+ bool scalar_panel_brightness;
+};
+
struct asus_wmi_driver {
- bool hotplug_wireless;
int wapf;
+ int brightness;
const char *name;
struct module *owner;
@@ -47,13 +52,14 @@ struct asus_wmi_driver {
const struct key_entry *keymap;
const char *input_name;
const char *input_phys;
+ struct quirk_entry *quirks;
/* Returns new code, value, and autorelease values in arguments.
* Return ASUS_WMI_KEY_IGNORE in code if event should be ignored. */
void (*key_filter) (struct asus_wmi_driver *driver, int *code,
unsigned int *value, bool *autorelease);
int (*probe) (struct platform_device *device);
- void (*quirks) (struct asus_wmi_driver *driver);
+ void (*detect_quirks) (struct asus_wmi_driver *driver);
struct platform_driver platform_driver;
struct platform_device *platform_device;