]> err.no Git - linux-2.6/commitdiff
acer-wmi: Add EC quirk for Fujitsu Siemens Amilo Li 1718
authorCarlos Corbacho <carlos@strangeworlds.co.uk>
Sat, 21 Jun 2008 08:09:38 +0000 (09:09 +0100)
committerAndi Kleen <andi@basil.nowhere.org>
Wed, 16 Jul 2008 21:27:02 +0000 (23:27 +0200)
This laptop needs a different EC quirk from the standard Acer one to read
the wireless status.

Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
drivers/misc/acer-wmi.c

index e35825f7e7bae5bf664c89728542ee7e82123440..5b7c5fcd5af73e7230f6160121a9548693d22e7c 100644 (file)
@@ -212,6 +212,10 @@ static struct quirk_entry quirk_medion_md_98300 = {
        .wireless = 1,
 };
 
+static struct quirk_entry quirk_fujitsu_amilo_li_1718 = {
+       .wireless = 2,
+};
+
 static struct dmi_system_id acer_quirks[] = {
        {
                .callback = dmi_matched,
@@ -321,6 +325,15 @@ static struct dmi_system_id acer_quirks[] = {
                },
                .driver_data = &quirk_acer_travelmate_2490,
        },
+       {
+               .callback = dmi_matched,
+               .ident = "Fujitsu Siemens Amilo Li 1718",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Li 1718"),
+               },
+               .driver_data = &quirk_fujitsu_amilo_li_1718,
+       },
        {
                .callback = dmi_matched,
                .ident = "Medion MD 98300",
@@ -416,6 +429,12 @@ struct wmi_interface *iface)
                                return AE_ERROR;
                        *value = result & 0x1;
                        return AE_OK;
+               case 2:
+                       err = ec_read(0x71, &result);
+                       if (err)
+                               return AE_ERROR;
+                       *value = result & 0x1;
+                       return AE_OK;
                default:
                        err = ec_read(0xA, &result);
                        if (err)