diff options
author | Mario Limonciello <superm1@ubuntu.com> | 2010-02-09 17:41:03 -0500 |
---|---|---|
committer | Matthew Garrett <mjg@redhat.com> | 2010-02-25 11:50:48 -0500 |
commit | e5fefd0c8c4e6bd11742625230d1c5026e2afb35 (patch) | |
tree | 265f628bc42b9644d8c40ebd93412ee46acaaf36 /drivers/platform/x86/dell-laptop.c | |
parent | ec1722a21491e4c354bc3bbc704fef9a8fa811fb (diff) |
dell-laptop: Blacklist machines not supporting dell-laptop
The Mini family doesn't support smbios 17,11 although it reports it does.
Signed-off-by: Mario Limonciello <superm1@ubuntu.com>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Diffstat (limited to 'drivers/platform/x86/dell-laptop.c')
-rw-r--r-- | drivers/platform/x86/dell-laptop.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c index 81213e815400..d8b1b39aa9db 100644 --- a/drivers/platform/x86/dell-laptop.c +++ b/drivers/platform/x86/dell-laptop.c | |||
@@ -83,6 +83,46 @@ static const struct dmi_system_id __initdata dell_device_table[] = { | |||
83 | { } | 83 | { } |
84 | }; | 84 | }; |
85 | 85 | ||
86 | static struct dmi_system_id __devinitdata dell_blacklist[] = { | ||
87 | /* Supported by compal-laptop */ | ||
88 | { | ||
89 | .ident = "Dell Mini 9", | ||
90 | .matches = { | ||
91 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
92 | DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 910"), | ||
93 | }, | ||
94 | }, | ||
95 | { | ||
96 | .ident = "Dell Mini 10", | ||
97 | .matches = { | ||
98 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
99 | DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1010"), | ||
100 | }, | ||
101 | }, | ||
102 | { | ||
103 | .ident = "Dell Mini 10v", | ||
104 | .matches = { | ||
105 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
106 | DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1011"), | ||
107 | }, | ||
108 | }, | ||
109 | { | ||
110 | .ident = "Dell Inspiron 11z", | ||
111 | .matches = { | ||
112 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
113 | DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1110"), | ||
114 | }, | ||
115 | }, | ||
116 | { | ||
117 | .ident = "Dell Mini 12", | ||
118 | .matches = { | ||
119 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
120 | DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1210"), | ||
121 | }, | ||
122 | }, | ||
123 | {} | ||
124 | }; | ||
125 | |||
86 | static void __init parse_da_table(const struct dmi_header *dm) | 126 | static void __init parse_da_table(const struct dmi_header *dm) |
87 | { | 127 | { |
88 | /* Final token is a terminator, so we don't want to copy it */ | 128 | /* Final token is a terminator, so we don't want to copy it */ |
@@ -237,6 +277,12 @@ static int __init dell_setup_rfkill(void) | |||
237 | int status; | 277 | int status; |
238 | int ret; | 278 | int ret; |
239 | 279 | ||
280 | if (dmi_check_system(dell_blacklist)) { | ||
281 | printk(KERN_INFO "dell-laptop: Blacklisted hardware detected - " | ||
282 | "not enabling rfkill\n"); | ||
283 | return 0; | ||
284 | } | ||
285 | |||
240 | memset(&buffer, 0, sizeof(struct calling_interface_buffer)); | 286 | memset(&buffer, 0, sizeof(struct calling_interface_buffer)); |
241 | dell_send_request(&buffer, 17, 11); | 287 | dell_send_request(&buffer, 17, 11); |
242 | status = buffer.output[1]; | 288 | status = buffer.output[1]; |