aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/platform/x86/dell-laptop.c
diff options
context:
space:
mode:
authorMario Limonciello <superm1@ubuntu.com>2010-02-09 17:41:03 -0500
committerMatthew Garrett <mjg@redhat.com>2010-02-25 11:50:48 -0500
commite5fefd0c8c4e6bd11742625230d1c5026e2afb35 (patch)
tree265f628bc42b9644d8c40ebd93412ee46acaaf36 /drivers/platform/x86/dell-laptop.c
parentec1722a21491e4c354bc3bbc704fef9a8fa811fb (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.c46
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
86static 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
86static void __init parse_da_table(const struct dmi_header *dm) 126static 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];