diff options
| author | Corentin Chary <corentin.chary@gmail.com> | 2012-03-20 04:53:13 -0400 |
|---|---|---|
| committer | Matthew Garrett <mjg@redhat.com> | 2012-03-26 15:05:49 -0400 |
| commit | 7a61d0207465e41b7dbe3a25f628ddef24572c6f (patch) | |
| tree | 7db480395c0668f64d94a5656f8b4d2e730c514c /drivers/platform | |
| parent | c55d995dd3cebffdeb2b7eff8acc813c56d62c97 (diff) | |
eeepc-wmi: split et2012 specific hacks
Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Diffstat (limited to 'drivers/platform')
| -rw-r--r-- | drivers/platform/x86/eeepc-wmi.c | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c index 0bb0aaf43aba..656761380342 100644 --- a/drivers/platform/x86/eeepc-wmi.c +++ b/drivers/platform/x86/eeepc-wmi.c | |||
| @@ -109,26 +109,32 @@ static struct quirk_entry quirk_asus_et2012_type3 = { | |||
| 109 | 109 | ||
| 110 | static struct quirk_entry *quirks; | 110 | static struct quirk_entry *quirks; |
| 111 | 111 | ||
| 112 | static void et2012_quirks(void) | ||
| 113 | { | ||
| 114 | const struct dmi_device *dev = NULL; | ||
| 115 | char oemstring[30]; | ||
| 116 | |||
| 117 | while ((dev = dmi_find_device(DMI_DEV_TYPE_OEM_STRING, NULL, dev))) { | ||
| 118 | if (sscanf(dev->name, "AEMS%24c", oemstring) == 1) { | ||
| 119 | if (oemstring[18] == '1') | ||
| 120 | quirks = &quirk_asus_et2012_type1; | ||
| 121 | else if (oemstring[18] == '3') | ||
| 122 | quirks = &quirk_asus_et2012_type3; | ||
| 123 | break; | ||
| 124 | } | ||
| 125 | } | ||
| 126 | } | ||
| 127 | |||
| 112 | static int dmi_matched(const struct dmi_system_id *dmi) | 128 | static int dmi_matched(const struct dmi_system_id *dmi) |
| 113 | { | 129 | { |
| 114 | char *model; | 130 | char *model; |
| 131 | |||
| 115 | quirks = dmi->driver_data; | 132 | quirks = dmi->driver_data; |
| 116 | 133 | ||
| 117 | model = (char *)dmi->matches[1].substr; | 134 | model = (char *)dmi->matches[1].substr; |
| 118 | if (unlikely(strncmp(model, "ET2012", 6) == 0)) { | 135 | if (unlikely(strncmp(model, "ET2012", 6) == 0)) |
| 119 | const struct dmi_device *dev = NULL; | 136 | et2012_quirks(); |
| 120 | char oemstring[30]; | 137 | |
| 121 | while ((dev = dmi_find_device(DMI_DEV_TYPE_OEM_STRING, | ||
| 122 | NULL, dev))) { | ||
| 123 | if (sscanf(dev->name, "AEMS%24c", oemstring) == 1) { | ||
| 124 | if (oemstring[18] == '1') | ||
| 125 | quirks = &quirk_asus_et2012_type1; | ||
| 126 | else if (oemstring[18] == '3') | ||
| 127 | quirks = &quirk_asus_et2012_type3; | ||
| 128 | break; | ||
| 129 | } | ||
| 130 | } | ||
| 131 | } | ||
| 132 | return 1; | 138 | return 1; |
| 133 | } | 139 | } |
| 134 | 140 | ||
