aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/wl1271_debugfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/wl12xx/wl1271_debugfs.c')
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_debugfs.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_debugfs.c b/drivers/net/wireless/wl12xx/wl1271_debugfs.c
index 4eaf40c5756..8d7588ca68f 100644
--- a/drivers/net/wireless/wl12xx/wl1271_debugfs.c
+++ b/drivers/net/wireless/wl12xx/wl1271_debugfs.c
@@ -241,10 +241,12 @@ static ssize_t gpio_power_read(struct file *file, char __user *user_buf,
241 size_t count, loff_t *ppos) 241 size_t count, loff_t *ppos)
242{ 242{
243 struct wl1271 *wl = file->private_data; 243 struct wl1271 *wl = file->private_data;
244 bool state = test_bit(WL1271_FLAG_GPIO_POWER, &wl->flags);
245
244 int res; 246 int res;
245 char buf[10]; 247 char buf[10];
246 248
247 res = scnprintf(buf, sizeof(buf), "%d\n", wl->gpio_power); 249 res = scnprintf(buf, sizeof(buf), "%d\n", state);
248 250
249 return simple_read_from_buffer(user_buf, count, ppos, buf, res); 251 return simple_read_from_buffer(user_buf, count, ppos, buf, res);
250} 252}
@@ -274,8 +276,13 @@ static ssize_t gpio_power_write(struct file *file,
274 goto out; 276 goto out;
275 } 277 }
276 278
277 wl->set_power(!!value); 279 if (value) {
278 wl->gpio_power = !!value; 280 wl->set_power(true);
281 set_bit(WL1271_FLAG_GPIO_POWER, &wl->flags);
282 } else {
283 wl->set_power(false);
284 clear_bit(WL1271_FLAG_GPIO_POWER, &wl->flags);
285 }
279 286
280out: 287out:
281 mutex_unlock(&wl->mutex); 288 mutex_unlock(&wl->mutex);