]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - net/rfkill/rfkill-gpio.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
[mirror_ubuntu-artful-kernel.git] / net / rfkill / rfkill-gpio.c
index 9c4a5eb91cbfd6cb806bee19b3a269abc406d6c1..14c98e48f261ee49656eabb198d62648890b63b3 100644 (file)
@@ -45,17 +45,14 @@ static int rfkill_gpio_set_power(void *data, bool blocked)
 {
        struct rfkill_gpio_data *rfkill = data;
 
-       if (blocked) {
-               gpiod_set_value(rfkill->shutdown_gpio, 0);
-               gpiod_set_value(rfkill->reset_gpio, 0);
-               if (!IS_ERR(rfkill->clk) && rfkill->clk_enabled)
-                       clk_disable(rfkill->clk);
-       } else {
-               if (!IS_ERR(rfkill->clk) && !rfkill->clk_enabled)
-                       clk_enable(rfkill->clk);
-               gpiod_set_value(rfkill->reset_gpio, 1);
-               gpiod_set_value(rfkill->shutdown_gpio, 1);
-       }
+       if (!blocked && !IS_ERR(rfkill->clk) && !rfkill->clk_enabled)
+               clk_enable(rfkill->clk);
+
+       gpiod_set_value_cansleep(rfkill->shutdown_gpio, !blocked);
+       gpiod_set_value_cansleep(rfkill->reset_gpio, !blocked);
+
+       if (blocked && !IS_ERR(rfkill->clk) && rfkill->clk_enabled)
+               clk_disable(rfkill->clk);
 
        rfkill->clk_enabled = blocked;