aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattia Dongili <malattia@linux.it>2009-04-12 07:26:31 -0400
committerLen Brown <len.brown@intel.com>2009-04-23 23:57:34 -0400
commit53005a0a1b53bda5810c45efe3025d1884aa6bb3 (patch)
tree92d21390d90df7f0146b6db017cc55a0dfff686e
parentc35d4b3532ed3e2076fb14c25385cf6cef41cc69 (diff)
sony-laptop: always try to unblock rfkill on load
This fixes an inconsistent behaviour when loading the driver with the switch on or off. In the former case you would also need to soft unblock the switch via the sysfs file entries to really disable rfkill, in the latter you wouldn't. Signed-off-by: Mattia Dongili <malattia@linux.it> Cc: Matthias Welwarsky <matze@welwarsky.de> Acked-by: Matthew Garrett <mjg@redhat.com> Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--drivers/platform/x86/sony-laptop.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
index d93cff656c99..552958545f94 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -1103,8 +1103,11 @@ static int sony_nc_setup_wifi_rfkill(struct acpi_device *device)
1103 err = rfkill_register(sony_wifi_rfkill); 1103 err = rfkill_register(sony_wifi_rfkill);
1104 if (err) 1104 if (err)
1105 rfkill_free(sony_wifi_rfkill); 1105 rfkill_free(sony_wifi_rfkill);
1106 else 1106 else {
1107 sony_rfkill_devices[SONY_WIFI] = sony_wifi_rfkill; 1107 sony_rfkill_devices[SONY_WIFI] = sony_wifi_rfkill;
1108 sony_nc_rfkill_set(sony_wifi_rfkill->data,
1109 RFKILL_STATE_UNBLOCKED);
1110 }
1108 return err; 1111 return err;
1109} 1112}
1110 1113
@@ -1125,8 +1128,11 @@ static int sony_nc_setup_bluetooth_rfkill(struct acpi_device *device)
1125 err = rfkill_register(sony_bluetooth_rfkill); 1128 err = rfkill_register(sony_bluetooth_rfkill);
1126 if (err) 1129 if (err)
1127 rfkill_free(sony_bluetooth_rfkill); 1130 rfkill_free(sony_bluetooth_rfkill);
1128 else 1131 else {
1129 sony_rfkill_devices[SONY_BLUETOOTH] = sony_bluetooth_rfkill; 1132 sony_rfkill_devices[SONY_BLUETOOTH] = sony_bluetooth_rfkill;
1133 sony_nc_rfkill_set(sony_bluetooth_rfkill->data,
1134 RFKILL_STATE_UNBLOCKED);
1135 }
1130 return err; 1136 return err;
1131} 1137}
1132 1138
@@ -1146,8 +1152,11 @@ static int sony_nc_setup_wwan_rfkill(struct acpi_device *device)
1146 err = rfkill_register(sony_wwan_rfkill); 1152 err = rfkill_register(sony_wwan_rfkill);
1147 if (err) 1153 if (err)
1148 rfkill_free(sony_wwan_rfkill); 1154 rfkill_free(sony_wwan_rfkill);
1149 else 1155 else {
1150 sony_rfkill_devices[SONY_WWAN] = sony_wwan_rfkill; 1156 sony_rfkill_devices[SONY_WWAN] = sony_wwan_rfkill;
1157 sony_nc_rfkill_set(sony_wwan_rfkill->data,
1158 RFKILL_STATE_UNBLOCKED);
1159 }
1151 return err; 1160 return err;
1152} 1161}
1153 1162
@@ -1167,8 +1176,11 @@ static int sony_nc_setup_wimax_rfkill(struct acpi_device *device)
1167 err = rfkill_register(sony_wimax_rfkill); 1176 err = rfkill_register(sony_wimax_rfkill);
1168 if (err) 1177 if (err)
1169 rfkill_free(sony_wimax_rfkill); 1178 rfkill_free(sony_wimax_rfkill);
1170 else 1179 else {
1171 sony_rfkill_devices[SONY_WIMAX] = sony_wimax_rfkill; 1180 sony_rfkill_devices[SONY_WIMAX] = sony_wimax_rfkill;
1181 sony_nc_rfkill_set(sony_wimax_rfkill->data,
1182 RFKILL_STATE_UNBLOCKED);
1183 }
1172 return err; 1184 return err;
1173} 1185}
1174 1186