--- ideapad_laptop.c.orig 2010-08-18 13:35:36.087735426 +0200 +++ ideapad_laptop.c 2010-08-19 20:06:59.762979357 +0200 @@ -279,11 +279,19 @@ if (read_method_int(adevice->handle, "_CFG", &cfg)) return -ENODEV; + printk(KERN_INFO "ideapad_acpi_add(): cfg=0x%x\n", cfg); + for (i = IDEAPAD_DEV_CAMERA; i < IDEAPAD_DEV_KILLSW; i++) { - if (test_bit(ideapad_rfk_data[i].cfgbit, (unsigned long *)&cfg)) + if (test_bit(ideapad_rfk_data[i].cfgbit, (unsigned long *)&cfg)) { devs_present[i] = 1; - else - devs_present[i] = 0; + printk(KERN_INFO "ideapad_acpi_add(): found: %s\n", ideapad_rfk_data[i].name); + } else { + if(ideapad_rfk_data[i].type == RFKILL_TYPE_BLUETOOTH) { + devs_present[i] = 1; + printk(KERN_INFO "ideapad_acpi_add(): forced: %s\n", ideapad_rfk_data[i].name); + } else + devs_present[i] = 0; + } } /* The hardware switch is always present */