diff options
author | Lee, Chun-Yi <joeyli.kernel@gmail.com> | 2011-10-06 13:06:13 +0200 |
---|---|---|
committer | Matthew Garrett <mjg@redhat.com> | 2011-10-24 16:52:42 +0200 |
commit | 1d1fc8a75fec3a2b29cc5864d45c5d03048f62e0 (patch) | |
tree | 45a1f891ff9a7287b26079c0adebe52f03154445 /drivers/platform/x86/acer-wmi.c | |
parent | acer-wmi: check the existence of internal wireless device when set capability (diff) | |
download | linux-1d1fc8a75fec3a2b29cc5864d45c5d03048f62e0.tar.xz linux-1d1fc8a75fec3a2b29cc5864d45c5d03048f62e0.zip |
acer-wmi: replaced the hard coded bitmap by the communication devices bitmap from SMBIOS
Before set communication devices state, we need query out all devices state to set
the states bitmap. That will be better use the devices bitmap in SMBIOS type Aah
instead of hardcode in driver.
Tested on Acer Travelmate 8572.
Cc: Carlos Corbacho <carlos@strangeworlds.co.uk>
Cc: Matthew Garrett <mjg@redhat.com>
Cc: Dmitry Torokhov <dtor@mail.ru>
Cc: Corentin Chary <corentincj@iksaif.net>
Cc: Thomas Renninger <trenn@suse.de>
Signed-off-by: Lee, Chun-Yi <jlee@suse.com>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Diffstat (limited to 'drivers/platform/x86/acer-wmi.c')
-rw-r--r-- | drivers/platform/x86/acer-wmi.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index ca52639af2d1..b848277171a4 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -206,6 +206,7 @@ static int threeg = -1; static int force_series; static bool ec_raw_mode; static bool has_type_aa; +static u16 commun_func_bitmap; module_param(mailled, int, 0444); module_param(brightness, int, 0444); @@ -955,10 +956,7 @@ static acpi_status wmid3_set_device_status(u32 value, u16 device) struct wmid3_gds_input_param params = { .function_num = 0x1, .hotkey_number = 0x01, - .devices = ACER_WMID3_GDS_WIRELESS | - ACER_WMID3_GDS_THREEG | - ACER_WMID3_GDS_WIMAX | - ACER_WMID3_GDS_BLUETOOTH, + .devices = commun_func_bitmap, }; struct acpi_buffer input = { sizeof(struct wmid3_gds_input_param), @@ -1062,6 +1060,7 @@ static void type_aa_dmi_decode(const struct dmi_header *header, void *dummy) pr_info("Function bitmap for Communication Button: 0x%x\n", type_aa->commun_func_bitmap); + commun_func_bitmap = type_aa->commun_func_bitmap; if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_WIRELESS) interface->capability |= ACER_CAP_WIRELESS; |