@@ -396,6 +396,14 @@ static int pwrseq_qcom_wcn_probe(struct platform_device *pdev)
return dev_err_probe(dev, PTR_ERR(ctx->bt_gpio),
"Failed to get the Bluetooth enable GPIO\n");
+ /*
+ * FIXME: This should actually be GPIOD_OUT_LOW. The driver model can
+ * correctly handle provider <-> consumer dependencies but there is a
+ * known issue with Qcom PCIe controllers where, if the device is
+ * powered off abrubtly (without controller driver noticing), the PCIe
+ * link moves to link down state. Until the link-down handling is
+ * addressed in the controller driver, we need to keep this workaround.
+ */
ctx->wlan_gpio = devm_gpiod_get_optional(dev, "wlan-enable",
GPIOD_ASIS);
if (IS_ERR(ctx->wlan_gpio))