]> www.infradead.org Git - users/hch/configfs.git/commitdiff
power: sequencing: qcom-wcn: set the wlan-enable GPIO to output
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Fri, 23 Aug 2024 11:55:00 +0000 (13:55 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Sat, 31 Aug 2024 19:32:19 +0000 (21:32 +0200)
Commit a9aaf1ff88a8 ("power: sequencing: request the WLAN enable GPIO
as-is") broke WLAN on boards on which the wlan-enable GPIO enabling the
wifi module isn't in output mode by default. We need to set direction to
output while retaining the value that was already set to keep the ath
module on if it's already started.

Fixes: a9aaf1ff88a8 ("power: sequencing: request the WLAN enable GPIO as-is")
Link: https://lore.kernel.org/r/20240823115500.37280-1-brgl@bgdev.pl
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/power/sequencing/pwrseq-qcom-wcn.c

index d786cbf1b2cd647afb33033ecc93d7aa11ce9e0c..700879474abf257c3dd56858a4bfec594792a648 100644 (file)
@@ -288,6 +288,13 @@ static int pwrseq_qcom_wcn_probe(struct platform_device *pdev)
                return dev_err_probe(dev, PTR_ERR(ctx->wlan_gpio),
                                     "Failed to get the WLAN enable GPIO\n");
 
+       /*
+        * Set direction to output but keep the current value in order to not
+        * disable the WLAN module accidentally if it's already powered on.
+        */
+       gpiod_direction_output(ctx->wlan_gpio,
+                              gpiod_get_value_cansleep(ctx->wlan_gpio));
+
        ctx->clk = devm_clk_get_optional(dev, NULL);
        if (IS_ERR(ctx->clk))
                return dev_err_probe(dev, PTR_ERR(ctx->clk),