|
@@ -83,6 +83,46 @@ static const struct dmi_system_id __initdata dell_device_table[] = {
|
|
|
{ }
|
|
|
};
|
|
|
|
|
|
+static struct dmi_system_id __devinitdata dell_blacklist[] = {
|
|
|
+ /* Supported by compal-laptop */
|
|
|
+ {
|
|
|
+ .ident = "Dell Mini 9",
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 910"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ident = "Dell Mini 10",
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1010"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ident = "Dell Mini 10v",
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1011"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ident = "Dell Inspiron 11z",
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1110"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ident = "Dell Mini 12",
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1210"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {}
|
|
|
+};
|
|
|
+
|
|
|
static void __init parse_da_table(const struct dmi_header *dm)
|
|
|
{
|
|
|
/* Final token is a terminator, so we don't want to copy it */
|
|
@@ -237,6 +277,12 @@ static int __init dell_setup_rfkill(void)
|
|
|
int status;
|
|
|
int ret;
|
|
|
|
|
|
+ if (dmi_check_system(dell_blacklist)) {
|
|
|
+ printk(KERN_INFO "dell-laptop: Blacklisted hardware detected - "
|
|
|
+ "not enabling rfkill\n");
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
memset(&buffer, 0, sizeof(struct calling_interface_buffer));
|
|
|
dell_send_request(&buffer, 17, 11);
|
|
|
status = buffer.output[1];
|