From: kernel test robot <lkp@intel.com>
To: Shuai Zhang <quic_shuaz@quicinc.com>,
linux-bluetooth@vger.kernel.org, linux-arm-msm@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, quic_bt@quicinc.com,
Shuai Zhang <quic_shuaz@quicinc.com>
Subject: Re: [PATCH v4 1/4] driver: bluetooth: hci_qca: fix ssr fail when BT_EN is pulled up by hw
Date: Sat, 16 Aug 2025 02:48:31 +0800 [thread overview]
Message-ID: <202508160256.bnZz7iPY-lkp@intel.com> (raw)
In-Reply-To: <20250814124704.2531811-2-quic_shuaz@quicinc.com>
Hi Shuai,
kernel test robot noticed the following build errors:
[auto build test ERROR on bluetooth-next/master]
[also build test ERROR on bluetooth/master linus/master v6.17-rc1 next-20250815]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Shuai-Zhang/driver-bluetooth-hci_qca-fix-ssr-fail-when-BT_EN-is-pulled-up-by-hw/20250814-205127
base: https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git master
patch link: https://lore.kernel.org/r/20250814124704.2531811-2-quic_shuaz%40quicinc.com
patch subject: [PATCH v4 1/4] driver: bluetooth: hci_qca: fix ssr fail when BT_EN is pulled up by hw
config: arc-allmodconfig (https://download.01.org/0day-ci/archive/20250816/202508160256.bnZz7iPY-lkp@intel.com/config)
compiler: arc-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250816/202508160256.bnZz7iPY-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202508160256.bnZz7iPY-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from include/linux/kernel.h:23,
from drivers/bluetooth/hci_qca.c:18:
drivers/bluetooth/hci_qca.c: In function 'qca_hw_error':
>> drivers/bluetooth/hci_qca.c:1664:60: error: 'struct hci_dev' has no member named 'quirks'
1664 | if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
| ^~
include/linux/bitops.h:44:44: note: in definition of macro 'bitop'
44 | __builtin_constant_p((uintptr_t)(addr) != (uintptr_t)NULL) && \
| ^~~~
drivers/bluetooth/hci_qca.c:1664:14: note: in expansion of macro 'test_bit'
1664 | if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
| ^~~~~~~~
>> drivers/bluetooth/hci_qca.c:1664:60: error: 'struct hci_dev' has no member named 'quirks'
1664 | if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
| ^~
include/linux/bitops.h:45:23: note: in definition of macro 'bitop'
45 | (uintptr_t)(addr) != (uintptr_t)NULL && \
| ^~~~
drivers/bluetooth/hci_qca.c:1664:14: note: in expansion of macro 'test_bit'
1664 | if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
| ^~~~~~~~
>> drivers/bluetooth/hci_qca.c:1664:60: error: 'struct hci_dev' has no member named 'quirks'
1664 | if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
| ^~
include/linux/bitops.h:46:57: note: in definition of macro 'bitop'
46 | __builtin_constant_p(*(const unsigned long *)(addr))) ? \
| ^~~~
drivers/bluetooth/hci_qca.c:1664:14: note: in expansion of macro 'test_bit'
1664 | if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
| ^~~~~~~~
>> drivers/bluetooth/hci_qca.c:1664:60: error: 'struct hci_dev' has no member named 'quirks'
1664 | if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
| ^~
include/linux/bitops.h:47:24: note: in definition of macro 'bitop'
47 | const##op(nr, addr) : op(nr, addr))
| ^~~~
drivers/bluetooth/hci_qca.c:1664:14: note: in expansion of macro 'test_bit'
1664 | if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
| ^~~~~~~~
>> drivers/bluetooth/hci_qca.c:1664:60: error: 'struct hci_dev' has no member named 'quirks'
1664 | if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
| ^~
include/linux/bitops.h:47:39: note: in definition of macro 'bitop'
47 | const##op(nr, addr) : op(nr, addr))
| ^~~~
drivers/bluetooth/hci_qca.c:1664:14: note: in expansion of macro 'test_bit'
1664 | if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
| ^~~~~~~~
vim +1664 drivers/bluetooth/hci_qca.c
1609
1610 static void qca_hw_error(struct hci_dev *hdev, u8 code)
1611 {
1612 struct hci_uart *hu = hci_get_drvdata(hdev);
1613 struct qca_data *qca = hu->priv;
1614
1615 set_bit(QCA_SSR_TRIGGERED, &qca->flags);
1616 set_bit(QCA_HW_ERROR_EVENT, &qca->flags);
1617 bt_dev_info(hdev, "mem_dump_status: %d", qca->memdump_state);
1618
1619 if (qca->memdump_state == QCA_MEMDUMP_IDLE) {
1620 /* If hardware error event received for other than QCA
1621 * soc memory dump event, then we need to crash the SOC
1622 * and wait here for 8 seconds to get the dump packets.
1623 * This will block main thread to be on hold until we
1624 * collect dump.
1625 */
1626 set_bit(QCA_MEMDUMP_COLLECTION, &qca->flags);
1627 qca_send_crashbuffer(hu);
1628 qca_wait_for_dump_collection(hdev);
1629 } else if (qca->memdump_state == QCA_MEMDUMP_COLLECTING) {
1630 /* Let us wait here until memory dump collected or
1631 * memory dump timer expired.
1632 */
1633 bt_dev_info(hdev, "waiting for dump to complete");
1634 qca_wait_for_dump_collection(hdev);
1635 }
1636
1637 mutex_lock(&qca->hci_memdump_lock);
1638 if (qca->memdump_state != QCA_MEMDUMP_COLLECTED) {
1639 bt_dev_err(hu->hdev, "clearing allocated memory due to memdump timeout");
1640 hci_devcd_abort(hu->hdev);
1641 if (qca->qca_memdump) {
1642 kfree(qca->qca_memdump);
1643 qca->qca_memdump = NULL;
1644 }
1645 qca->memdump_state = QCA_MEMDUMP_TIMEOUT;
1646 cancel_delayed_work(&qca->ctrl_memdump_timeout);
1647 }
1648 mutex_unlock(&qca->hci_memdump_lock);
1649
1650 if (qca->memdump_state == QCA_MEMDUMP_TIMEOUT ||
1651 qca->memdump_state == QCA_MEMDUMP_COLLECTED) {
1652 cancel_work_sync(&qca->ctrl_memdump_evt);
1653 skb_queue_purge(&qca->rx_memdump_q);
1654 }
1655
1656 /*
1657 * If the BT chip's bt_en pin is connected to a 3.3V power supply via
1658 * hardware and always stays high, driver cannot control the bt_en pin.
1659 * As a result, during SSR(SubSystem Restart), QCA_SSR_TRIGGERED and
1660 * QCA_IBS_DISABLED flags cannot be cleared, which leads to a reset
1661 * command timeout.
1662 * Add an msleep delay to ensure controller completes the SSR process.
1663 */
> 1664 if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
1665 clear_bit(QCA_SSR_TRIGGERED, &qca->flags);
1666 clear_bit(QCA_IBS_DISABLED, &qca->flags);
1667 msleep(50);
1668 }
1669
1670 clear_bit(QCA_HW_ERROR_EVENT, &qca->flags);
1671 }
1672
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-08-15 18:49 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-14 12:47 [PATCH v4 0/4] Fix SSR(SubSystem Restart) issues caused by BT_EN being pulled up by hardware Shuai Zhang
2025-08-14 12:47 ` [PATCH v4 1/4] driver: bluetooth: hci_qca: fix ssr fail when BT_EN is pulled up by hw Shuai Zhang
2025-08-14 13:28 ` Fix SSR(SubSystem Restart) issues caused by BT_EN being pulled up by hardware bluez.test.bot
2025-08-15 18:48 ` kernel test robot [this message]
2025-08-15 21:48 ` [PATCH v4 1/4] driver: bluetooth: hci_qca: fix ssr fail when BT_EN is pulled up by hw Dmitry Baryshkov
2025-08-19 3:34 ` Shuai Zhang
2025-08-14 12:47 ` [PATCH v4 2/4] driver: bluetooth: hci_qca: fix host IBS state after SSR Shuai Zhang
2025-08-15 21:50 ` Dmitry Baryshkov
2025-08-19 3:38 ` Shuai Zhang
2025-08-19 7:51 ` Dmitry Baryshkov
2025-08-14 12:47 ` [PATCH v4 3/4] driver: bluetooth: hci_qca: Multiple triggers of SSR only generate one coredump file Shuai Zhang
2025-08-14 12:47 ` [PATCH v4 4/4] driver: bluetooth: hci_qca: SSR(SubSystem Restart)process failed due to tx_idle_timer timeout Shuai Zhang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202508160256.bnZz7iPY-lkp@intel.com \
--to=lkp@intel.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=quic_bt@quicinc.com \
--cc=quic_shuaz@quicinc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox