public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8] Bluetooth: mediatek: add gpio pin to reset bt
@ 2025-09-25  9:20 Zhangchao Zhang
  2025-09-25  9:54 ` [v8] " bluez.test.bot
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Zhangchao Zhang @ 2025-09-25  9:20 UTC (permalink / raw)
  To: Marcel Holtmann, Matthias Brugger, Luiz Von Dentz,
	AngeloGioacchino Del Regno
  Cc: Krzysztof Kozlowski, Sean Wang, Deren Wu, Chris Lu, Hao Qin,
	linux-bluetooth, linux-kernel, linux-arm-kernel, linux-mediatek,
	Zhangchao Zhang

Support the platform Bluetooth to be reset by hardware pin,
when a Bluetooth exception occurs, attempt to reset the
Bluetooth module using the hardware reset pin, as this
method is generally more stable and reliable than a
software reset. If the hardware reset pin is not specified
in the device tree, fall back to the existing software
reset mechanism to ensure backward compatibility.

Co-developed: Sean Wang <Sean.Wang@mediatek.com>
Co-developed: Hao Qin <hao.qin@mediatek.com>
Co-developed: Chris Lu <chris.lu@mediatek.com>
Signed-off-by: Zhangchao Zhang <ot_zhangchao.zhang@mediatek.com>

V7-->V8 modifications:
-Currently, the universal reset GPIO can be found by configuring DTS.
   USB bus can get the device node and reset GPIO in the probe phase.
   It is fully compatible with other vendors' methods of getting reset
   GPIO. Therefore, the previous complex methods of adding the compatible
   string in btmtk.c to get GPIO is discarded. Abi files and yaml files
   are no longer needed. When a Bluetooth exception occurs, the existence
   of GPIO will be determined first. This change improves the robustness
   of Bluetooth recovery on platforms that support hardware reset, while
   maintaining support for platforms that do not.

V6-->V7 modifications:
-Change the gpio_direction_output interface to the gpiod_set_value_cansleep
   and gpiod_put interface.
-Remove the schedule_delayed_work asynchronous operation.
-Delete the #gpio-cell attribute in the yaml file, remove the #gpio-cell
   in the required field, and simplify the contents of the descriptions.

V5-->V6 modifications:
-Add specific revisions in the changes from v4 to v5.
-Add hardware pin title and descriptions to dt-binding submission
   information.
-Modify the title descriptions in the dt-binding file.
-Add 7925 what is it.
-Wrap the descriptions of MT7925 chip uses the USB bus appropriately.
-Change the compatible string to mediatek,mt7925-bluetooth in
   the dt-binding file and driver code.
-Drop gpio-controlelr properties in the dt-binding file.
-Modify the descriptions of the reset-gpios
   properties in the dt-binding file.
-Change the node information of reset-gpios in bluetooth
   from high level valid to low level valid.

V4-->V5 modifications:
-Correct the spelling error of word provides mentioned in V1.
-Drop the xhci0 node and status property in the dt-binding file.
-Modify the bt_reset tag node to bluetooth in the dt-binding file.
-Add #gpio-cell descriptions to properties, nodes and requests.
-Make a separate patch for the changes to dt-binding.

V3-->V4 modifications:
-Modify submission information why use hardware pin to reset Bluetooth.
-Write historical commit information into the cover letter.
-Modify dt binding format information and
   the explanation text in the dt-binding file.

V2-->V3 modifications:
-Changed the capitalization of co-developer names,
   using the correct capitalization of abbreviations and full
   name, and corrected obvious spelling errors.
-Add a revision history.
-Remove the "BT Driver" in the prefix.
-Add the bt-binding document, include inforamtion related to reset
   pin and compatibility matching.
-Add a comment before the schedule_delayed_work function call,
   although schedule_delayed_work is asynchronous, there is no risk.
   Even if it is not completed within 200ms, it will only postpone
   the subsequent probe and will not have any impact.
-Add a comment before the btmtk_reset_by_gpio function call,
   if the compatibility filed or pin cannot be found in the dts
   files, it can still reset bluetooth using software reset.

V2 modifications:
-Modify gpio to GPIO, SW to software,
   and fix other obvious spelling errors.
---
 drivers/bluetooth/btusb.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index ef44817cad34..fcf90442a2fd 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -2745,6 +2745,19 @@ static int btusb_mtk_reset(struct hci_dev *hdev, void *rst_data)
 	btusb_stop_traffic(data);
 	usb_kill_anchored_urbs(&data->tx_anchor);
 
+	/* Toggle the hard reset line. The MediaTek device is going to
+	 * yank itself off the USB and then replug. The cleanup is handled
+	 * correctly on the way out (standard USB disconnect), and the new
+	 * device is detected cleanly and bound to the driver again like
+	 * it should be.
+	 */
+	if (data->rest_gpio) {
+		gpiod_set_value_cansleep(data->reset_gpio, 1);
+		msleep(200);
+		gpiod_set_value_cansleep(data->reset_gpio, 0);
+		return 0;
+	}
+
 	err = btmtk_usb_subsys_reset(hdev, btmtk_data->dev_id);
 
 	usb_queue_reset_device(data->intf);
-- 
2.45.2


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

* RE: [v8] Bluetooth: mediatek: add gpio pin to reset bt
  2025-09-25  9:20 [PATCH v8] Bluetooth: mediatek: add gpio pin to reset bt Zhangchao Zhang
@ 2025-09-25  9:54 ` bluez.test.bot
  2025-09-25 22:55 ` [PATCH v8] " kernel test robot
  2025-09-26  0:43 ` Krzysztof Kozlowski
  2 siblings, 0 replies; 4+ messages in thread
From: bluez.test.bot @ 2025-09-25  9:54 UTC (permalink / raw)
  To: linux-bluetooth, ot_zhangchao.zhang

[-- Attachment #1: Type: text/plain, Size: 10965 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=1006078

---Test result---

Test Summary:
CheckPatch                    PENDING   0.51 seconds
GitLint                       PENDING   0.31 seconds
SubjectPrefix                 PASS      0.07 seconds
BuildKernel                   FAIL      21.38 seconds
CheckAllWarning               FAIL      23.61 seconds
CheckSparse                   FAIL      25.93 seconds
BuildKernel32                 FAIL      21.24 seconds
TestRunnerSetup               FAIL      458.89 seconds
TestRunner_l2cap-tester       FAIL      0.09 seconds
TestRunner_iso-tester         FAIL      0.09 seconds
TestRunner_bnep-tester        FAIL      0.09 seconds
TestRunner_mgmt-tester        FAIL      0.09 seconds
TestRunner_rfcomm-tester      FAIL      0.09 seconds
TestRunner_sco-tester         FAIL      0.09 seconds
TestRunner_ioctl-tester       FAIL      0.09 seconds
TestRunner_mesh-tester        FAIL      0.09 seconds
TestRunner_smp-tester         FAIL      0.09 seconds
TestRunner_userchan-tester    FAIL      0.09 seconds
IncrementalBuild              PENDING   0.82 seconds

Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:

##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:

##############################
Test: BuildKernel - FAIL
Desc: Build Kernel for Bluetooth
Output:

drivers/bluetooth/btusb.c: In function ‘btusb_mtk_reset’:
drivers/bluetooth/btusb.c:2792:12: error: ‘struct btusb_data’ has no member named ‘rest_gpio’; did you mean ‘reset_gpio’?
 2792 |  if (data->rest_gpio) {
      |            ^~~~~~~~~
      |            reset_gpio
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/btusb.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: CheckAllWarning - FAIL
Desc: Run linux kernel with all warning enabled
Output:

drivers/bluetooth/btusb.c: In function ‘btusb_mtk_reset’:
drivers/bluetooth/btusb.c:2792:12: error: ‘struct btusb_data’ has no member named ‘rest_gpio’; did you mean ‘reset_gpio’?
 2792 |  if (data->rest_gpio) {
      |            ^~~~~~~~~
      |            reset_gpio
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/btusb.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: CheckSparse - FAIL
Desc: Run sparse tool with linux kernel
Output:

net/bluetooth/af_bluetooth.c:248:25: warning: context imbalance in 'bt_accept_enqueue' - different lock contexts for basic block
net/bluetooth/hci_core.c:85:9: warning: context imbalance in '__hci_dev_get' - different lock contexts for basic block
net/bluetooth/hci_core.c: note: in included file (through include/linux/notifier.h, include/linux/memory_hotplug.h, include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, include/linux/radix-tree.h, ...):
./include/linux/srcu.h:400:9: warning: context imbalance in 'hci_dev_put_srcu' - unexpected unlock
net/bluetooth/hci_event.c: note: in included file (through include/net/bluetooth/hci_core.h):
./include/net/bluetooth/hci.h:2658:47: warning: array of flexible structures
./include/net/bluetooth/hci.h:2744:43: warning: array of flexible structures
drivers/bluetooth/hci_ag6xx.c:257:24: warning: restricted __le32 degrades to integer
drivers/bluetooth/hci_mrvl.c:170:23: warning: restricted __le16 degrades to integer
drivers/bluetooth/hci_mrvl.c:203:23: warning: restricted __le16 degrades to integer
drivers/bluetooth/btusb.c: In function ‘btusb_mtk_reset’:
drivers/bluetooth/btusb.c:2792:12: error: ‘struct btusb_data’ has no member named ‘rest_gpio’; did you mean ‘reset_gpio’?
 2792 |  if (data->rest_gpio) {
      |            ^~~~~~~~~
      |            reset_gpio
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/btusb.o] Error 1
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
net/bluetooth/hci_codec.c: note: in included file:
./include/net/bluetooth/hci_core.h:153:35: warning: array of flexible structures
net/bluetooth/sco.c: note: in included file:
./include/net/bluetooth/hci_core.h:153:35: warning: array of flexible structures
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: BuildKernel32 - FAIL
Desc: Build 32bit Kernel for Bluetooth
Output:

drivers/bluetooth/btusb.c: In function ‘btusb_mtk_reset’:
drivers/bluetooth/btusb.c:2792:12: error: ‘struct btusb_data’ has no member named ‘rest_gpio’; did you mean ‘reset_gpio’?
 2792 |  if (data->rest_gpio) {
      |            ^~~~~~~~~
      |            reset_gpio
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/btusb.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: TestRunnerSetup - FAIL
Desc: Setup kernel and bluez for test-runner
Output:
Kernel: 
drivers/bluetooth/btusb.c: In function ‘btusb_mtk_reset’:
drivers/bluetooth/btusb.c:2792:12: error: ‘struct btusb_data’ has no member named ‘rest_gpio’; did you mean ‘reset_gpio’?
 2792 |  if (data->rest_gpio) {
      |            ^~~~~~~~~
      |            reset_gpio
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/btusb.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: TestRunner_l2cap-tester - FAIL
Desc: Run l2cap-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_iso-tester - FAIL
Desc: Run iso-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_bnep-tester - FAIL
Desc: Run bnep-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_mgmt-tester - FAIL
Desc: Run mgmt-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_rfcomm-tester - FAIL
Desc: Run rfcomm-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_sco-tester - FAIL
Desc: Run sco-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_ioctl-tester - FAIL
Desc: Run ioctl-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_mesh-tester - FAIL
Desc: Run mesh-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_smp-tester - FAIL
Desc: Run smp-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_userchan-tester - FAIL
Desc: Run userchan-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:



---
Regards,
Linux Bluetooth


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

* Re: [PATCH v8] Bluetooth: mediatek: add gpio pin to reset bt
  2025-09-25  9:20 [PATCH v8] Bluetooth: mediatek: add gpio pin to reset bt Zhangchao Zhang
  2025-09-25  9:54 ` [v8] " bluez.test.bot
@ 2025-09-25 22:55 ` kernel test robot
  2025-09-26  0:43 ` Krzysztof Kozlowski
  2 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-09-25 22:55 UTC (permalink / raw)
  To: Zhangchao Zhang, Marcel Holtmann, Matthias Brugger,
	Luiz Von Dentz, AngeloGioacchino Del Regno
  Cc: oe-kbuild-all, Krzysztof Kozlowski, Sean Wang, Deren Wu, Chris Lu,
	Hao Qin, linux-bluetooth, linux-kernel, linux-arm-kernel,
	linux-mediatek, Zhangchao Zhang

Hi Zhangchao,

kernel test robot noticed the following build errors:

[auto build test ERROR on bluetooth/master]
[also build test ERROR on bluetooth-next/master linus/master v6.17-rc7 next-20250925]
[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/Zhangchao-Zhang/Bluetooth-mediatek-add-gpio-pin-to-reset-bt/20250925-172508
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git master
patch link:    https://lore.kernel.org/r/20250925092058.16648-1-ot_zhangchao.zhang%40mediatek.com
patch subject: [PATCH v8] Bluetooth: mediatek: add gpio pin to reset bt
config: sh-randconfig-001-20250926 (https://download.01.org/0day-ci/archive/20250926/202509260623.nZX7ipvc-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250926/202509260623.nZX7ipvc-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/202509260623.nZX7ipvc-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/bluetooth/btusb.c: In function 'btusb_mtk_reset':
>> drivers/bluetooth/btusb.c:2769:19: error: 'struct btusb_data' has no member named 'rest_gpio'; did you mean 'reset_gpio'?
    2769 |         if (data->rest_gpio) {
         |                   ^~~~~~~~~
         |                   reset_gpio


vim +2769 drivers/bluetooth/btusb.c

  2740	
  2741	static int btusb_mtk_reset(struct hci_dev *hdev, void *rst_data)
  2742	{
  2743		struct btusb_data *data = hci_get_drvdata(hdev);
  2744		struct btmtk_data *btmtk_data = hci_get_priv(hdev);
  2745		int err;
  2746	
  2747		/* It's MediaTek specific bluetooth reset mechanism via USB */
  2748		if (test_and_set_bit(BTMTK_HW_RESET_ACTIVE, &btmtk_data->flags)) {
  2749			bt_dev_err(hdev, "last reset failed? Not resetting again");
  2750			return -EBUSY;
  2751		}
  2752	
  2753		err = usb_autopm_get_interface(data->intf);
  2754		if (err < 0)
  2755			return err;
  2756	
  2757		/* Release MediaTek ISO data interface */
  2758		btusb_mtk_release_iso_intf(hdev);
  2759	
  2760		btusb_stop_traffic(data);
  2761		usb_kill_anchored_urbs(&data->tx_anchor);
  2762	
  2763		/* Toggle the hard reset line. The MediaTek device is going to
  2764		 * yank itself off the USB and then replug. The cleanup is handled
  2765		 * correctly on the way out (standard USB disconnect), and the new
  2766		 * device is detected cleanly and bound to the driver again like
  2767		 * it should be.
  2768		 */
> 2769		if (data->rest_gpio) {
  2770			gpiod_set_value_cansleep(data->reset_gpio, 1);
  2771			msleep(200);
  2772			gpiod_set_value_cansleep(data->reset_gpio, 0);
  2773			return 0;
  2774		}
  2775	
  2776		err = btmtk_usb_subsys_reset(hdev, btmtk_data->dev_id);
  2777	
  2778		usb_queue_reset_device(data->intf);
  2779		clear_bit(BTMTK_HW_RESET_ACTIVE, &btmtk_data->flags);
  2780	
  2781		return err;
  2782	}
  2783	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

* Re: [PATCH v8] Bluetooth: mediatek: add gpio pin to reset bt
  2025-09-25  9:20 [PATCH v8] Bluetooth: mediatek: add gpio pin to reset bt Zhangchao Zhang
  2025-09-25  9:54 ` [v8] " bluez.test.bot
  2025-09-25 22:55 ` [PATCH v8] " kernel test robot
@ 2025-09-26  0:43 ` Krzysztof Kozlowski
  2 siblings, 0 replies; 4+ messages in thread
From: Krzysztof Kozlowski @ 2025-09-26  0:43 UTC (permalink / raw)
  To: Zhangchao Zhang
  Cc: Marcel Holtmann, Matthias Brugger, Luiz Von Dentz,
	AngeloGioacchino Del Regno, Sean Wang, Deren Wu, Chris Lu,
	Hao Qin, linux-bluetooth, linux-kernel, linux-arm-kernel,
	linux-mediatek

On Thu, 25 Sept 2025 at 18:21, Zhangchao Zhang
<ot_zhangchao.zhang@mediatek.com> wrote:
>
> Support the platform Bluetooth to be reset by hardware pin,
> when a Bluetooth exception occurs, attempt to reset the
> Bluetooth module using the hardware reset pin, as this
> method is generally more stable and reliable than a
> software reset. If the hardware reset pin is not specified
> in the device tree, fall back to the existing software
> reset mechanism to ensure backward compatibility.
>
> Co-developed: Sean Wang <Sean.Wang@mediatek.com>
> Co-developed: Hao Qin <hao.qin@mediatek.com>
> Co-developed: Chris Lu <chris.lu@mediatek.com>

Wrong chain. Follow submitting patches.

> Signed-off-by: Zhangchao Zhang <ot_zhangchao.zhang@mediatek.com>
>
> V7-->V8 modifications:
> -Currently, the universal reset GPIO can be found by configuring DTS.
>    USB bus can get the device node and reset GPIO in the probe phase.
>    It is fully compatible with other vendors' methods of getting reset
>    GPIO. Therefore, the previous complex methods of adding the compatible
>    string in btmtk.c to get GPIO is discarded. Abi files and yaml files
>    are no longer needed. When a Bluetooth exception occurs, the existence
>    of GPIO will be determined first. This change improves the robustness
>    of Bluetooth recovery on platforms that support hardware reset, while
>    maintaining support for platforms that do not.


You didn't even bother to compile this code, which is obvious from the diff.

I think you don't understand how patches and Git work, but these are
prerequisites for submitting your work here.

Please share how this passed your internal review - four people had to
write this code which doesn't even compile.

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

end of thread, other threads:[~2025-09-26  0:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-25  9:20 [PATCH v8] Bluetooth: mediatek: add gpio pin to reset bt Zhangchao Zhang
2025-09-25  9:54 ` [v8] " bluez.test.bot
2025-09-25 22:55 ` [PATCH v8] " kernel test robot
2025-09-26  0:43 ` Krzysztof Kozlowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox