aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/platform
diff options
context:
space:
mode:
authorLee, Chun-Yi <joeyli.kernel@gmail.com>2011-10-06 07:06:13 -0400
committerMatthew Garrett <mjg@redhat.com>2011-10-24 10:52:42 -0400
commit1d1fc8a75fec3a2b29cc5864d45c5d03048f62e0 (patch)
tree45a1f891ff9a7287b26079c0adebe52f03154445 /drivers/platform
parent1fbc01a7b0f2cf5dc375ecde3833df2fbbfdc812 (diff)
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')
-rw-r--r--drivers/platform/x86/acer-wmi.c7
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;
206static int force_series; 206static int force_series;
207static bool ec_raw_mode; 207static bool ec_raw_mode;
208static bool has_type_aa; 208static bool has_type_aa;
209static u16 commun_func_bitmap;
209 210
210module_param(mailled, int, 0444); 211module_param(mailled, int, 0444);
211module_param(brightness, int, 0444); 212module_param(brightness, int, 0444);
@@ -955,10 +956,7 @@ static acpi_status wmid3_set_device_status(u32 value, u16 device)
955 struct wmid3_gds_input_param params = { 956 struct wmid3_gds_input_param params = {
956 .function_num = 0x1, 957 .function_num = 0x1,
957 .hotkey_number = 0x01, 958 .hotkey_number = 0x01,
958 .devices = ACER_WMID3_GDS_WIRELESS | 959 .devices = commun_func_bitmap,
959 ACER_WMID3_GDS_THREEG |
960 ACER_WMID3_GDS_WIMAX |
961 ACER_WMID3_GDS_BLUETOOTH,
962 }; 960 };
963 struct acpi_buffer input = { 961 struct acpi_buffer input = {
964 sizeof(struct wmid3_gds_input_param), 962 sizeof(struct wmid3_gds_input_param),
@@ -1062,6 +1060,7 @@ static void type_aa_dmi_decode(const struct dmi_header *header, void *dummy)
1062 1060
1063 pr_info("Function bitmap for Communication Button: 0x%x\n", 1061 pr_info("Function bitmap for Communication Button: 0x%x\n",
1064 type_aa->commun_func_bitmap); 1062 type_aa->commun_func_bitmap);
1063 commun_func_bitmap = type_aa->commun_func_bitmap;
1065 1064
1066 if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_WIRELESS) 1065 if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_WIRELESS)
1067 interface->capability |= ACER_CAP_WIRELESS; 1066 interface->capability |= ACER_CAP_WIRELESS;