]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
driver: bluetooth: hci_qca:fix unable to load the BT driver
authorShuai Zhang <quic_shuaz@quicinc.com>
Mon, 9 Jun 2025 10:55:00 +0000 (18:55 +0800)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 20 Jun 2025 15:55:03 +0000 (11:55 -0400)
Some modules have BT_EN enabled via a hardware pull-up,
meaning it is not defined in the DTS and is not controlled
through the power sequence. In such cases, fall through
to follow the legacy flow.

Signed-off-by: Shuai Zhang <quic_shuaz@quicinc.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
drivers/bluetooth/hci_qca.c

index 5fe5879881f59d1875759b06ddf38f95727d1c01..3ec0be496820eff8a4860df730e6796ae8eb1363 100644 (file)
@@ -2392,10 +2392,17 @@ static int qca_serdev_probe(struct serdev_device *serdev)
                         */
                        qcadev->bt_power->pwrseq = devm_pwrseq_get(&serdev->dev,
                                                                   "bluetooth");
-                       if (IS_ERR(qcadev->bt_power->pwrseq))
-                               return PTR_ERR(qcadev->bt_power->pwrseq);
 
-                       break;
+                       /*
+                        * Some modules have BT_EN enabled via a hardware pull-up,
+                        * meaning it is not defined in the DTS and is not controlled
+                        * through the power sequence. In such cases, fall through
+                        * to follow the legacy flow.
+                        */
+                       if (IS_ERR(qcadev->bt_power->pwrseq))
+                               qcadev->bt_power->pwrseq = NULL;
+                       else
+                               break;
                }
                fallthrough;
        case QCA_WCN3950: