diff options
Diffstat (limited to 'drivers/platform')
-rw-r--r-- | drivers/platform/x86/acer-wmi.c | 3 | ||||
-rw-r--r-- | drivers/platform/x86/eeepc-laptop.c | 8 | ||||
-rw-r--r-- | drivers/platform/x86/hp-wmi.c | 4 | ||||
-rw-r--r-- | drivers/platform/x86/thinkpad_acpi.c | 31 |
4 files changed, 18 insertions, 28 deletions
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index b618fa51db2d..09a503e5da6a 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c | |||
@@ -988,7 +988,6 @@ static struct rfkill *acer_rfkill_register(struct device *dev, | |||
988 | char *name, u32 cap) | 988 | char *name, u32 cap) |
989 | { | 989 | { |
990 | int err; | 990 | int err; |
991 | u32 state; | ||
992 | struct rfkill *rfkill_dev; | 991 | struct rfkill *rfkill_dev; |
993 | 992 | ||
994 | rfkill_dev = rfkill_alloc(name, dev, type, | 993 | rfkill_dev = rfkill_alloc(name, dev, type, |
@@ -996,8 +995,6 @@ static struct rfkill *acer_rfkill_register(struct device *dev, | |||
996 | (void *)(unsigned long)cap); | 995 | (void *)(unsigned long)cap); |
997 | if (!rfkill_dev) | 996 | if (!rfkill_dev) |
998 | return ERR_PTR(-ENOMEM); | 997 | return ERR_PTR(-ENOMEM); |
999 | get_u32(&state, cap); | ||
1000 | rfkill_set_sw_state(rfkill_dev, !state); | ||
1001 | 998 | ||
1002 | err = rfkill_register(rfkill_dev); | 999 | err = rfkill_register(rfkill_dev); |
1003 | if (err) { | 1000 | if (err) { |
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c index 1208d0cedd15..03bf522bd7ab 100644 --- a/drivers/platform/x86/eeepc-laptop.c +++ b/drivers/platform/x86/eeepc-laptop.c | |||
@@ -675,8 +675,8 @@ static int eeepc_hotk_add(struct acpi_device *device) | |||
675 | if (!ehotk->eeepc_wlan_rfkill) | 675 | if (!ehotk->eeepc_wlan_rfkill) |
676 | goto wlan_fail; | 676 | goto wlan_fail; |
677 | 677 | ||
678 | rfkill_set_global_sw_state(RFKILL_TYPE_WLAN, | 678 | rfkill_set_sw_state(ehotk->eeepc_wlan_rfkill, |
679 | get_acpi(CM_ASL_WLAN) != 1); | 679 | get_acpi(CM_ASL_WLAN) != 1); |
680 | result = rfkill_register(ehotk->eeepc_wlan_rfkill); | 680 | result = rfkill_register(ehotk->eeepc_wlan_rfkill); |
681 | if (result) | 681 | if (result) |
682 | goto wlan_fail; | 682 | goto wlan_fail; |
@@ -693,8 +693,8 @@ static int eeepc_hotk_add(struct acpi_device *device) | |||
693 | if (!ehotk->eeepc_bluetooth_rfkill) | 693 | if (!ehotk->eeepc_bluetooth_rfkill) |
694 | goto bluetooth_fail; | 694 | goto bluetooth_fail; |
695 | 695 | ||
696 | rfkill_set_global_sw_state(RFKILL_TYPE_BLUETOOTH, | 696 | rfkill_set_sw_state(ehotk->eeepc_bluetooth_rfkill, |
697 | get_acpi(CM_ASL_BLUETOOTH) != 1); | 697 | get_acpi(CM_ASL_BLUETOOTH) != 1); |
698 | result = rfkill_register(ehotk->eeepc_bluetooth_rfkill); | 698 | result = rfkill_register(ehotk->eeepc_bluetooth_rfkill); |
699 | if (result) | 699 | if (result) |
700 | goto bluetooth_fail; | 700 | goto bluetooth_fail; |
diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c index 8d931145cbfa..16fffe44e333 100644 --- a/drivers/platform/x86/hp-wmi.c +++ b/drivers/platform/x86/hp-wmi.c | |||
@@ -422,7 +422,6 @@ static int __init hp_wmi_bios_setup(struct platform_device *device) | |||
422 | RFKILL_TYPE_WLAN, | 422 | RFKILL_TYPE_WLAN, |
423 | &hp_wmi_rfkill_ops, | 423 | &hp_wmi_rfkill_ops, |
424 | (void *) 0); | 424 | (void *) 0); |
425 | rfkill_set_sw_state(wifi_rfkill, hp_wmi_wifi_state()); | ||
426 | err = rfkill_register(wifi_rfkill); | 425 | err = rfkill_register(wifi_rfkill); |
427 | if (err) | 426 | if (err) |
428 | goto register_wifi_error; | 427 | goto register_wifi_error; |
@@ -433,8 +432,6 @@ static int __init hp_wmi_bios_setup(struct platform_device *device) | |||
433 | RFKILL_TYPE_BLUETOOTH, | 432 | RFKILL_TYPE_BLUETOOTH, |
434 | &hp_wmi_rfkill_ops, | 433 | &hp_wmi_rfkill_ops, |
435 | (void *) 1); | 434 | (void *) 1); |
436 | rfkill_set_sw_state(bluetooth_rfkill, | ||
437 | hp_wmi_bluetooth_state()); | ||
438 | err = rfkill_register(bluetooth_rfkill); | 435 | err = rfkill_register(bluetooth_rfkill); |
439 | if (err) | 436 | if (err) |
440 | goto register_bluetooth_error; | 437 | goto register_bluetooth_error; |
@@ -445,7 +442,6 @@ static int __init hp_wmi_bios_setup(struct platform_device *device) | |||
445 | RFKILL_TYPE_WWAN, | 442 | RFKILL_TYPE_WWAN, |
446 | &hp_wmi_rfkill_ops, | 443 | &hp_wmi_rfkill_ops, |
447 | (void *) 2); | 444 | (void *) 2); |
448 | rfkill_set_sw_state(wwan_rfkill, hp_wmi_wwan_state()); | ||
449 | err = rfkill_register(wwan_rfkill); | 445 | err = rfkill_register(wwan_rfkill); |
450 | if (err) | 446 | if (err) |
451 | goto register_wwan_err; | 447 | goto register_wwan_err; |
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c index cfcafa4e9473..86e958539f46 100644 --- a/drivers/platform/x86/thinkpad_acpi.c +++ b/drivers/platform/x86/thinkpad_acpi.c | |||
@@ -1168,21 +1168,6 @@ static int __init tpacpi_new_rfkill(const enum tpacpi_rfk_id id, | |||
1168 | 1168 | ||
1169 | BUG_ON(id >= TPACPI_RFK_SW_MAX || tpacpi_rfkill_switches[id]); | 1169 | BUG_ON(id >= TPACPI_RFK_SW_MAX || tpacpi_rfkill_switches[id]); |
1170 | 1170 | ||
1171 | initial_sw_status = (tp_rfkops->get_status)(); | ||
1172 | if (initial_sw_status < 0) { | ||
1173 | printk(TPACPI_ERR | ||
1174 | "failed to read initial state for %s, error %d; " | ||
1175 | "will turn radio off\n", name, initial_sw_status); | ||
1176 | } else { | ||
1177 | initial_sw_state = (initial_sw_status == TPACPI_RFK_RADIO_OFF); | ||
1178 | if (set_default) { | ||
1179 | /* try to set the initial state as the default for the | ||
1180 | * rfkill type, since we ask the firmware to preserve | ||
1181 | * it across S5 in NVRAM */ | ||
1182 | rfkill_set_global_sw_state(rfktype, initial_sw_state); | ||
1183 | } | ||
1184 | } | ||
1185 | |||
1186 | atp_rfk = kzalloc(sizeof(struct tpacpi_rfk), GFP_KERNEL); | 1171 | atp_rfk = kzalloc(sizeof(struct tpacpi_rfk), GFP_KERNEL); |
1187 | if (atp_rfk) | 1172 | if (atp_rfk) |
1188 | atp_rfk->rfkill = rfkill_alloc(name, | 1173 | atp_rfk->rfkill = rfkill_alloc(name, |
@@ -1200,8 +1185,20 @@ static int __init tpacpi_new_rfkill(const enum tpacpi_rfk_id id, | |||
1200 | atp_rfk->id = id; | 1185 | atp_rfk->id = id; |
1201 | atp_rfk->ops = tp_rfkops; | 1186 | atp_rfk->ops = tp_rfkops; |
1202 | 1187 | ||
1203 | rfkill_set_states(atp_rfk->rfkill, initial_sw_state, | 1188 | initial_sw_status = (tp_rfkops->get_status)(); |
1204 | tpacpi_rfk_check_hwblock_state()); | 1189 | if (initial_sw_status < 0) { |
1190 | printk(TPACPI_ERR | ||
1191 | "failed to read initial state for %s, error %d\n", | ||
1192 | name, initial_sw_status); | ||
1193 | } else { | ||
1194 | initial_sw_state = (initial_sw_status == TPACPI_RFK_RADIO_OFF); | ||
1195 | if (set_default) { | ||
1196 | /* try to keep the initial state, since we ask the | ||
1197 | * firmware to preserve it across S5 in NVRAM */ | ||
1198 | rfkill_set_sw_state(atp_rfk->rfkill, initial_sw_state); | ||
1199 | } | ||
1200 | } | ||
1201 | rfkill_set_hw_state(atp_rfk->rfkill, tpacpi_rfk_check_hwblock_state()); | ||
1205 | 1202 | ||
1206 | res = rfkill_register(atp_rfk->rfkill); | 1203 | res = rfkill_register(atp_rfk->rfkill); |
1207 | if (res < 0) { | 1204 | if (res < 0) { |