On 05/09/2025 10:40, Zhangchao Zhang wrote: > Makes the platform Bluetooth to be reset by hardware pin, > it provides two methods to do it for mediatek controller, > and it has been tested locally many times and can reset normally. > > When an exception occurs, resetting Bluetooth by hardware pin > is more stable than resetting Bluetooth by software. > If the corresponding pin is not found in dts, > bluetooth can also be reset successfully. > > Co-developed: Hao Qin <hao.qin@xxxxxxxxxxxx> > Co-developed: Chris Lu <chris.lu@xxxxxxxxxxxx> > Co-developed: Jiande Lu <jiande.lu@xxxxxxxxxxxx> > Signed-off-by: Zhangchao Zhang <ot_zhangchao.zhang@xxxxxxxxxxxx> > --- > drivers/bluetooth/btmtk.c | 32 ++++++++++++++++++++++++++++++++ > 1 file changed, 32 insertions(+) > > diff --git a/drivers/bluetooth/btmtk.c b/drivers/bluetooth/btmtk.c > index 4390fd571dbd..29d6a93f255d 100644 > --- a/drivers/bluetooth/btmtk.c > +++ b/drivers/bluetooth/btmtk.c > @@ -6,6 +6,8 @@ > #include <linux/firmware.h> > #include <linux/usb.h> > #include <linux/iopoll.h> > +#include <linux/gpio/consumer.h> > +#include <linux/of.h> > #include <linux/unaligned.h> > > #include <net/bluetooth/bluetooth.h> > @@ -359,11 +361,41 @@ int btmtk_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr) > } > EXPORT_SYMBOL_GPL(btmtk_set_bdaddr); > > +static int btmtk_hw_gpio_reset(struct hci_dev *hdev, struct btmtk_data *reset_work) > +{ > + struct gpio_desc *reset_gpio; > + > + /* Find device node*/ > + hdev->dev.of_node = of_find_compatible_node(NULL, NULL, "mediatek,mt7925-bluetooth"); Nothing improved. You just keep ignoring comments. NAK Best regards, Krzysztof