All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/2] QCA6390 enable failure debugging changes
@ 2024-04-14 11:57 Zijun Hu
  2024-04-14 11:57 ` [PATCH v1 1/2] Bluetooth: qca: Dump more config info for debugging Zijun Hu
  2024-04-14 11:57 ` [PATCH v1 2/2] Bluetooth: qca: Fix QCA6390 enable failure after reboot or disable Zijun Hu
  0 siblings, 2 replies; 8+ messages in thread
From: Zijun Hu @ 2024-04-14 11:57 UTC (permalink / raw)
  To: luiz.dentz, wt; +Cc: linux-bluetooth

This patch series are to debug below QCA6390 issue:
QCA6390 bluetooth doesn't work after warm boot or disable/reenable
https://lore.kernel.org/linux-bluetooth/31bb6e18-ecee-49b3-87d7-50ab53e07447@penguintechs.org

Zijun Hu (2):
  Bluetooth: qca: Dump more config info for debugging
  Bluetooth: qca: Fix QCA6390 enable failure after reboot or disable

 drivers/bluetooth/hci_qca.c | 78 +++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 72 insertions(+), 6 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v1 1/2] Bluetooth: qca: Dump more config info for debugging
  2024-04-14 11:57 [PATCH v1 0/2] QCA6390 enable failure debugging changes Zijun Hu
@ 2024-04-14 11:57 ` Zijun Hu
  2024-04-14 14:48   ` QCA6390 enable failure debugging changes bluez.test.bot
  2024-04-14 11:57 ` [PATCH v1 2/2] Bluetooth: qca: Fix QCA6390 enable failure after reboot or disable Zijun Hu
  1 sibling, 1 reply; 8+ messages in thread
From: Zijun Hu @ 2024-04-14 11:57 UTC (permalink / raw)
  To: luiz.dentz, wt; +Cc: linux-bluetooth, Zijun Hu

Dump more config info for debugging.

Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
---
 drivers/bluetooth/hci_qca.c | 67 +++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 64 insertions(+), 3 deletions(-)

diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index ecbc52eaf101..b61ca9828284 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -1883,8 +1883,12 @@ static int qca_setup(struct hci_uart *hu)
 		soc_name = "wcn7850";
 		break;
 
+	case QCA_QCA6390:
+		soc_name = "QCA6390";
+		break;
+
 	default:
-		soc_name = "ROME/QCA6390";
+		soc_name = "ROME";
 	}
 	bt_dev_info(hdev, "setting up %s", soc_name);
 
@@ -2281,18 +2285,33 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 	if (!qcadev)
 		return -ENOMEM;
 
+#ifdef CONFIG_GPIOLIB
+	BT_INFO("%s: CONFIG_GPIOLIB is defined", __func__);
+#else
+	BT_INFO("%s: CONFIG_GPIOLIB is Undefined", __func__);
+#endif
+
 	qcadev->serdev_hu.serdev = serdev;
 	data = device_get_match_data(&serdev->dev);
 	serdev_device_set_drvdata(serdev, qcadev);
 	device_property_read_string(&serdev->dev, "firmware-name",
 					 &qcadev->firmware_name);
+	if (qcadev->firmware_name)
+		BT_INFO("%s: firmware-name is \"%s\"", __func__, qcadev->firmware_name);
+
 	device_property_read_u32(&serdev->dev, "max-speed",
 				 &qcadev->oper_speed);
+	BT_INFO("%s: max-speed(%d)", __func__, qcadev->oper_speed);
 	if (!qcadev->oper_speed)
 		BT_DBG("UART will pick default operating speed");
 
 	qcadev->bdaddr_property_broken = device_property_read_bool(&serdev->dev,
 			"qcom,local-bd-address-broken");
+	BT_INFO("%s: bdaddr_property_broken(%d)", __func__, (int)qcadev->bdaddr_property_broken);
+	if (data) {
+		BT_INFO("%s: soc_type(%d)", __func__, (int)data->soc_type);
+		BT_INFO("%s: capabilities(%#x)", __func__, data->capabilities);
+	}
 
 	if (data)
 		qcadev->btsoc_type = data->soc_type;
@@ -2320,11 +2339,29 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 			BT_ERR("Failed to init regulators:%d", err);
 			return err;
 		}
+		{
+			int i;
+
+			BT_INFO("%s: num_vregs(%d)", __func__, (int)data->num_vregs);
+			for (i = 0; i < data->num_vregs; i++)
+				BT_INFO("%s: %d regulator %s I(%duA) is %p",
+					__func__, i,
+					qcadev->bt_power->vreg_bulk[i].supply,
+					data->vregs[i].load_uA,
+					qcadev->bt_power->vreg_bulk[i].consumer);
+		}
+
 
 		qcadev->bt_power->vregs_on = false;
 
 		qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable",
 					       GPIOD_OUT_LOW);
+		if (IS_ERR(qcadev->bt_en))
+			BT_ERR("%s: Get enable gpio ERROR", __func__);
+		else if (qcadev->bt_en)
+			BT_INFO("%s: Got enable gpio(%d) ", __func__, desc_to_gpio(qcadev->bt_en));
+		else
+			BT_INFO("%s: qcadev->bt_en(nullptr)", __func__);
 		if (IS_ERR(qcadev->bt_en) &&
 		    (data->soc_type == QCA_WCN6750 ||
 		     data->soc_type == QCA_WCN6855)) {
@@ -2333,7 +2370,14 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 		}
 
 		qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl",
-					       GPIOD_IN);
+							  GPIOD_IN);
+		if (IS_ERR(qcadev->sw_ctrl))
+			BT_ERR("%s: Get sw_ctrl gpio ERROR", __func__);
+		else if (qcadev->sw_ctrl)
+			BT_INFO("%s: Got sw_ctrl gpio(%d) ", __func__,
+				desc_to_gpio(qcadev->sw_ctrl));
+		else
+			BT_INFO("%s: qcadev->sw_ctrl(nullptr)", __func__);
 		if (IS_ERR(qcadev->sw_ctrl) &&
 		    (data->soc_type == QCA_WCN6750 ||
 		     data->soc_type == QCA_WCN6855 ||
@@ -2341,6 +2385,10 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 			dev_warn(&serdev->dev, "failed to acquire SW_CTRL gpio\n");
 
 		qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL);
+		if (IS_ERR(qcadev->susclk))
+			BT_ERR("%s: Get clock ERROR", __func__);
+		else
+			BT_INFO("%s: susclk(%p)", __func__, qcadev->susclk);
 		if (IS_ERR(qcadev->susclk)) {
 			dev_err(&serdev->dev, "failed to acquire clk\n");
 			return PTR_ERR(qcadev->susclk);
@@ -2355,13 +2403,24 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 
 	default:
 		qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable",
-					       GPIOD_OUT_LOW);
+							GPIOD_OUT_LOW);
+		if (IS_ERR(qcadev->bt_en))
+			BT_ERR("%s: default Get enable gpio ERROR", __func__);
+		else if (qcadev->bt_en)
+			BT_INFO("%s: default Got enable gpio(%d) ",
+				__func__, desc_to_gpio(qcadev->bt_en));
+		else
+			BT_INFO("%s: default qcadev->bt_en(nullptr)", __func__);
 		if (IS_ERR(qcadev->bt_en)) {
 			dev_warn(&serdev->dev, "failed to acquire enable gpio\n");
 			power_ctrl_enabled = false;
 		}
 
 		qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL);
+		if (IS_ERR(qcadev->susclk))
+			BT_ERR("%s: default Get clock ERROR", __func__);
+		else
+			BT_INFO("%s: default susclk(%p)", __func__, qcadev->susclk);
 		if (IS_ERR(qcadev->susclk)) {
 			dev_warn(&serdev->dev, "failed to acquire clk\n");
 			return PTR_ERR(qcadev->susclk);
@@ -2384,6 +2443,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 
 	hdev = qcadev->serdev_hu.hdev;
 
+	BT_INFO("%s: power_ctrl_enabled(%d)", __func__, (int)power_ctrl_enabled);
 	if (power_ctrl_enabled) {
 		set_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks);
 		hdev->shutdown = qca_power_off;
@@ -2448,6 +2508,7 @@ static void qca_serdev_shutdown(struct device *dev)
 		    !test_bit(HCI_RUNNING, &hdev->flags))
 			return;
 
+		BT_INFO("%s: Start to send EDL_RESET_REQ", __func__);
 		serdev_device_write_flush(serdev);
 		ret = serdev_device_write_buf(serdev, ibs_wake_cmd,
 					      sizeof(ibs_wake_cmd));
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v1 2/2] Bluetooth: qca: Fix QCA6390 enable failure after reboot or disable
  2024-04-14 11:57 [PATCH v1 0/2] QCA6390 enable failure debugging changes Zijun Hu
  2024-04-14 11:57 ` [PATCH v1 1/2] Bluetooth: qca: Dump more config info for debugging Zijun Hu
@ 2024-04-14 11:57 ` Zijun Hu
  2024-04-15 10:12   ` [PATCH v2] " Zijun Hu
  1 sibling, 1 reply; 8+ messages in thread
From: Zijun Hu @ 2024-04-14 11:57 UTC (permalink / raw)
  To: luiz.dentz, wt; +Cc: linux-bluetooth, Zijun Hu

Fix QCA6390 enable failure after reboot or disable.

Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
---
 drivers/bluetooth/hci_qca.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index b61ca9828284..d390d68a831a 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -2499,14 +2499,19 @@ static void qca_serdev_shutdown(struct device *dev)
 	struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev);
 	struct hci_uart *hu = &qcadev->serdev_hu;
 	struct hci_dev *hdev = hu->hdev;
-	struct qca_data *qca = hu->priv;
 	const u8 ibs_wake_cmd[] = { 0xFD };
 	const u8 edl_reset_soc_cmd[] = { 0x01, 0x00, 0xFC, 0x01, 0x05 };
 
 	if (qcadev->btsoc_type == QCA_QCA6390) {
-		if (test_bit(QCA_BT_OFF, &qca->flags) ||
-		    !test_bit(HCI_RUNNING, &hdev->flags))
+		if (test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
+			BT_INFO("%s: Don't need to send EDL_RESET_REQ", __func__);
 			return;
+		}
+
+		if (hci_dev_test_flag(hdev, HCI_SETUP)) {
+			BT_INFO("%s: Don't send EDL_RESET_REQ due to NOT setup ", __func__);
+			return;
+		}
 
 		BT_INFO("%s: Start to send EDL_RESET_REQ", __func__);
 		serdev_device_write_flush(serdev);
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* RE: QCA6390 enable failure debugging changes
  2024-04-14 11:57 ` [PATCH v1 1/2] Bluetooth: qca: Dump more config info for debugging Zijun Hu
@ 2024-04-14 14:48   ` bluez.test.bot
  0 siblings, 0 replies; 8+ messages in thread
From: bluez.test.bot @ 2024-04-14 14:48 UTC (permalink / raw)
  To: linux-bluetooth, quic_zijuhu

[-- Attachment #1: Type: text/plain, Size: 2312 bytes --]

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=844357

---Test result---

Test Summary:
CheckPatch                    PASS      0.96 seconds
GitLint                       PASS      0.37 seconds
SubjectPrefix                 PASS      0.16 seconds
BuildKernel                   PASS      29.31 seconds
CheckAllWarning               PASS      31.69 seconds
CheckSparse                   PASS      36.62 seconds
CheckSmatch                   FAIL      33.23 seconds
BuildKernel32                 PASS      27.34 seconds
TestRunnerSetup               PASS      495.97 seconds
TestRunner_l2cap-tester       PASS      20.09 seconds
TestRunner_iso-tester         PASS      31.99 seconds
TestRunner_bnep-tester        PASS      4.53 seconds
TestRunner_mgmt-tester        PASS      108.20 seconds
TestRunner_rfcomm-tester      PASS      7.09 seconds
TestRunner_sco-tester         PASS      14.63 seconds
TestRunner_ioctl-tester       PASS      7.30 seconds
TestRunner_mesh-tester        PASS      5.56 seconds
TestRunner_smp-tester         PASS      6.53 seconds
TestRunner_userchan-tester    PASS      4.77 seconds
IncrementalBuild              PASS      31.05 seconds

Details
##############################
Test: CheckSmatch - FAIL
Desc: Run smatch tool with source
Output:

Segmentation fault (core dumped)
make[4]: *** [scripts/Makefile.build:244: net/bluetooth/hci_core.o] Error 139
make[4]: *** Deleting file 'net/bluetooth/hci_core.o'
make[3]: *** [scripts/Makefile.build:485: net/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:485: net] Error 2
make[2]: *** Waiting for unfinished jobs....
Segmentation fault (core dumped)
make[4]: *** [scripts/Makefile.build:244: drivers/bluetooth/bcm203x.o] Error 139
make[4]: *** Deleting file 'drivers/bluetooth/bcm203x.o'
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:485: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:485: drivers] Error 2
make[1]: *** [/github/workspace/src/src/Makefile:1919: .] Error 2
make: *** [Makefile:240: __sub-make] Error 2


---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2] Bluetooth: qca: Fix QCA6390 enable failure after reboot or disable
  2024-04-14 11:57 ` [PATCH v1 2/2] Bluetooth: qca: Fix QCA6390 enable failure after reboot or disable Zijun Hu
@ 2024-04-15 10:12   ` Zijun Hu
  2024-04-15 10:36     ` [v2] " bluez.test.bot
  2024-04-17 15:04     ` [PATCH v3] " Zijun Hu
  0 siblings, 2 replies; 8+ messages in thread
From: Zijun Hu @ 2024-04-15 10:12 UTC (permalink / raw)
  To: luiz.dentz; +Cc: linux-bluetooth, Zijun Hu

Fix QCA6390 enable failure after reboot or disable.

Fixes: 56d074d26c58 ("Bluetooth: hci_qca: don't use IS_ERR_OR_NULL() with gpiod_get_optional()")
Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
---
Changes v1 -> v2
 Revert commit 56d074d26c58

 drivers/bluetooth/hci_qca.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index b61ca9828284..d8a6d6b1bbea 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -2362,7 +2362,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 			BT_INFO("%s: Got enable gpio(%d) ", __func__, desc_to_gpio(qcadev->bt_en));
 		else
 			BT_INFO("%s: qcadev->bt_en(nullptr)", __func__);
-		if (IS_ERR(qcadev->bt_en) &&
+		if (IS_ERR_OR_NULL(qcadev->bt_en) &&
 		    (data->soc_type == QCA_WCN6750 ||
 		     data->soc_type == QCA_WCN6855)) {
 			dev_err(&serdev->dev, "failed to acquire BT_EN gpio\n");
@@ -2378,7 +2378,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 				desc_to_gpio(qcadev->sw_ctrl));
 		else
 			BT_INFO("%s: qcadev->sw_ctrl(nullptr)", __func__);
-		if (IS_ERR(qcadev->sw_ctrl) &&
+		if (IS_ERR_OR_NULL(qcadev->sw_ctrl) &&
 		    (data->soc_type == QCA_WCN6750 ||
 		     data->soc_type == QCA_WCN6855 ||
 		     data->soc_type == QCA_WCN7850))
@@ -2404,7 +2404,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 	default:
 		qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable",
 							GPIOD_OUT_LOW);
-		if (IS_ERR(qcadev->bt_en))
+		if (IS_ERR_OR_NULL(qcadev->bt_en))
 			BT_ERR("%s: default Get enable gpio ERROR", __func__);
 		else if (qcadev->bt_en)
 			BT_INFO("%s: default Got enable gpio(%d) ",
@@ -2499,14 +2499,19 @@ static void qca_serdev_shutdown(struct device *dev)
 	struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev);
 	struct hci_uart *hu = &qcadev->serdev_hu;
 	struct hci_dev *hdev = hu->hdev;
-	struct qca_data *qca = hu->priv;
 	const u8 ibs_wake_cmd[] = { 0xFD };
 	const u8 edl_reset_soc_cmd[] = { 0x01, 0x00, 0xFC, 0x01, 0x05 };
 
 	if (qcadev->btsoc_type == QCA_QCA6390) {
-		if (test_bit(QCA_BT_OFF, &qca->flags) ||
-		    !test_bit(HCI_RUNNING, &hdev->flags))
+		if (test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
+			BT_INFO("%s: Don't need to send EDL_RESET_REQ", __func__);
+			return;
+		}
+
+		if (hci_dev_test_flag(hdev, HCI_SETUP)) {
+			BT_INFO("%s: Don't send EDL_RESET_REQ due to NOT setup ", __func__);
 			return;
+		}
 
 		BT_INFO("%s: Start to send EDL_RESET_REQ", __func__);
 		serdev_device_write_flush(serdev);
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* RE: [v2] Bluetooth: qca: Fix QCA6390 enable failure after reboot or disable
  2024-04-15 10:12   ` [PATCH v2] " Zijun Hu
@ 2024-04-15 10:36     ` bluez.test.bot
  2024-04-17 15:04     ` [PATCH v3] " Zijun Hu
  1 sibling, 0 replies; 8+ messages in thread
From: bluez.test.bot @ 2024-04-15 10:36 UTC (permalink / raw)
  To: linux-bluetooth, quic_zijuhu

[-- Attachment #1: Type: text/plain, Size: 557 bytes --]

This is an automated email and please do not reply to this email.

Dear Submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
While preparing the CI tests, the patches you submitted couldn't be applied to the current HEAD of the repository.

----- Output -----

error: patch failed: drivers/bluetooth/hci_qca.c:2362
error: drivers/bluetooth/hci_qca.c: patch does not apply
hint: Use 'git am --show-current-patch' to see the failed patch

Please resolve the issue and submit the patches again.


---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v3] Bluetooth: qca: Fix QCA6390 enable failure after reboot or disable
  2024-04-15 10:12   ` [PATCH v2] " Zijun Hu
  2024-04-15 10:36     ` [v2] " bluez.test.bot
@ 2024-04-17 15:04     ` Zijun Hu
  2024-04-17 15:14       ` [v3] " bluez.test.bot
  1 sibling, 1 reply; 8+ messages in thread
From: Zijun Hu @ 2024-04-17 15:04 UTC (permalink / raw)
  To: luiz.dentz; +Cc: linux-bluetooth, wt, Zijun Hu

Fix QCA6390 enable failure after reboot or disable.

it is a debugging change and don't merge.

Fixes: 56d074d26c58 ("Bluetooth: hci_qca: don't use IS_ERR_OR_NULL() with gpiod_get_optional()")
Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
---
Changes v2 -> v3
 - Fix Reverting the 56d074d26c58 error
Changes v1 -> v2
 - Revert part of 56d074d26c58

 drivers/bluetooth/hci_qca.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index b61ca9828284..f58bce5448ee 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -2362,7 +2362,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 			BT_INFO("%s: Got enable gpio(%d) ", __func__, desc_to_gpio(qcadev->bt_en));
 		else
 			BT_INFO("%s: qcadev->bt_en(nullptr)", __func__);
-		if (IS_ERR(qcadev->bt_en) &&
+		if (IS_ERR_OR_NULL(qcadev->bt_en) &&
 		    (data->soc_type == QCA_WCN6750 ||
 		     data->soc_type == QCA_WCN6855)) {
 			dev_err(&serdev->dev, "failed to acquire BT_EN gpio\n");
@@ -2378,7 +2378,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 				desc_to_gpio(qcadev->sw_ctrl));
 		else
 			BT_INFO("%s: qcadev->sw_ctrl(nullptr)", __func__);
-		if (IS_ERR(qcadev->sw_ctrl) &&
+		if (IS_ERR_OR_NULL(qcadev->sw_ctrl) &&
 		    (data->soc_type == QCA_WCN6750 ||
 		     data->soc_type == QCA_WCN6855 ||
 		     data->soc_type == QCA_WCN7850))
@@ -2411,7 +2411,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 				__func__, desc_to_gpio(qcadev->bt_en));
 		else
 			BT_INFO("%s: default qcadev->bt_en(nullptr)", __func__);
-		if (IS_ERR(qcadev->bt_en)) {
+		if (IS_ERR_OR_NULL(qcadev->bt_en)) {
 			dev_warn(&serdev->dev, "failed to acquire enable gpio\n");
 			power_ctrl_enabled = false;
 		}
@@ -2499,14 +2499,19 @@ static void qca_serdev_shutdown(struct device *dev)
 	struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev);
 	struct hci_uart *hu = &qcadev->serdev_hu;
 	struct hci_dev *hdev = hu->hdev;
-	struct qca_data *qca = hu->priv;
 	const u8 ibs_wake_cmd[] = { 0xFD };
 	const u8 edl_reset_soc_cmd[] = { 0x01, 0x00, 0xFC, 0x01, 0x05 };
 
 	if (qcadev->btsoc_type == QCA_QCA6390) {
-		if (test_bit(QCA_BT_OFF, &qca->flags) ||
-		    !test_bit(HCI_RUNNING, &hdev->flags))
+		if (test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
+			BT_INFO("%s: Don't need to send EDL_RESET_REQ", __func__);
 			return;
+		}
+
+		if (hci_dev_test_flag(hdev, HCI_SETUP)) {
+			BT_INFO("%s: Don't send EDL_RESET_REQ due to NOT setup ", __func__);
+			return;
+		}
 
 		BT_INFO("%s: Start to send EDL_RESET_REQ", __func__);
 		serdev_device_write_flush(serdev);
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* RE: [v3] Bluetooth: qca: Fix QCA6390 enable failure after reboot or disable
  2024-04-17 15:04     ` [PATCH v3] " Zijun Hu
@ 2024-04-17 15:14       ` bluez.test.bot
  0 siblings, 0 replies; 8+ messages in thread
From: bluez.test.bot @ 2024-04-17 15:14 UTC (permalink / raw)
  To: linux-bluetooth, quic_zijuhu

[-- Attachment #1: Type: text/plain, Size: 557 bytes --]

This is an automated email and please do not reply to this email.

Dear Submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
While preparing the CI tests, the patches you submitted couldn't be applied to the current HEAD of the repository.

----- Output -----

error: patch failed: drivers/bluetooth/hci_qca.c:2362
error: drivers/bluetooth/hci_qca.c: patch does not apply
hint: Use 'git am --show-current-patch' to see the failed patch

Please resolve the issue and submit the patches again.


---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-04-17 15:14 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-14 11:57 [PATCH v1 0/2] QCA6390 enable failure debugging changes Zijun Hu
2024-04-14 11:57 ` [PATCH v1 1/2] Bluetooth: qca: Dump more config info for debugging Zijun Hu
2024-04-14 14:48   ` QCA6390 enable failure debugging changes bluez.test.bot
2024-04-14 11:57 ` [PATCH v1 2/2] Bluetooth: qca: Fix QCA6390 enable failure after reboot or disable Zijun Hu
2024-04-15 10:12   ` [PATCH v2] " Zijun Hu
2024-04-15 10:36     ` [v2] " bluez.test.bot
2024-04-17 15:04     ` [PATCH v3] " Zijun Hu
2024-04-17 15:14       ` [v3] " bluez.test.bot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.