aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/platform
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/platform')
-rw-r--r--drivers/platform/x86/sony-laptop.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
index f9f68e0e7344..afdbdaaf80cb 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -1041,6 +1041,9 @@ static int sony_nc_resume(struct acpi_device *device)
1041 sony_backlight_update_status(sony_backlight_device) < 0) 1041 sony_backlight_update_status(sony_backlight_device) < 0)
1042 printk(KERN_WARNING DRV_PFX "unable to restore brightness level\n"); 1042 printk(KERN_WARNING DRV_PFX "unable to restore brightness level\n");
1043 1043
1044 /* re-read rfkill state */
1045 sony_nc_rfkill_update();
1046
1044 return 0; 1047 return 0;
1045} 1048}
1046 1049
@@ -1078,6 +1081,8 @@ static int sony_nc_setup_rfkill(struct acpi_device *device,
1078 struct rfkill *rfk; 1081 struct rfkill *rfk;
1079 enum rfkill_type type; 1082 enum rfkill_type type;
1080 const char *name; 1083 const char *name;
1084 int result;
1085 bool hwblock;
1081 1086
1082 switch (nc_type) { 1087 switch (nc_type) {
1083 case SONY_WIFI: 1088 case SONY_WIFI:
@@ -1105,6 +1110,10 @@ static int sony_nc_setup_rfkill(struct acpi_device *device,
1105 if (!rfk) 1110 if (!rfk)
1106 return -ENOMEM; 1111 return -ENOMEM;
1107 1112
1113 sony_call_snc_handle(0x124, 0x200, &result);
1114 hwblock = !(result & 0x1);
1115 rfkill_set_hw_state(rfk, hwblock);
1116
1108 err = rfkill_register(rfk); 1117 err = rfkill_register(rfk);
1109 if (err) { 1118 if (err) {
1110 rfkill_destroy(rfk); 1119 rfkill_destroy(rfk);