linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH v4 2/2] Bluetooth: btusb: Support Bluetooth Reset for Mediatek Chip(MT7921)
       [not found] ` <20210701194243.5449-2-mark-yw.chen@mediatek.com>
@ 2021-07-22 14:03   ` Marcel Holtmann
  2021-07-27 15:16     ` Mark-YW Chen (陳揚文)
  0 siblings, 1 reply; 2+ messages in thread
From: Marcel Holtmann @ 2021-07-22 14:03 UTC (permalink / raw)
  To: "Mark-YW Chen (陳揚文)"
  Cc: Johan Hedberg, chris.lu, will-cy.lee, Sean Wang,
	Bluetooth Kernel Mailing List, linux-mediatek, open list,
	michaelfsun, shawnku, jemele, apusaka

Hi Mark,

> When the firmware hang or command no response, driver can reset the
> bluetooth mcu via USB to recovery it. The reset steps as follows.
> 
> 1. Cancel USB transfer requests before reset.
> 2. It use speicific USB HW Register to reset Bluetooth MCU, at the
>   same time, the USB Endpoint0 still keep alive.
> 3. Poll the USB HW register until reset is completed by Endpoint0.
> 4. To recovery unexpected USB state and behavior during resetting the
>   Bluetooth MCU, the driver need to reset the USB device for MT7921.
> 5. After the reset is completed, the Bluetooth MCU need to re-setup,
>   such as download patch, power-on sequence and etc.
> 
> Signed-off-by: mark-yw.chen <mark-yw.chen@mediatek.com>
> ---
> drivers/bluetooth/btusb.c | 127 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 127 insertions(+)
> 
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index b1249b664981..122a928ebcb5 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -3076,6 +3076,17 @@ static int btusb_shutdown_intel_new(struct hci_dev *hdev)
> 	return 0;
> }
> 
> +/* UHW CR mapping */
> +#define BT_MISC			0x70002510
> +#define BT_SUBSYS_RST		0x70002610
> +#define UDMA_INT_STA_BT		0x74000024
> +#define UDMA_INT_STA_BT1	0x74000308
> +#define BT_WDT_STATUS		0x740003A0
> +#define EP_RST_OPT		0x74011890
> +#define EP_RST_IN_OUT_OPT	0x00010001
> +#define BT_RST_DONE		0x00000100
> +#define BT_RESET_WAIT_MS	100
> +#define BT_RESET_NUM_TRIES	10

you need to prefix these with MTK since otherwise we get confused.

And we need to work towards abstracting the vendor specific position out of btusb.c (and I include the Intel part here as well). The btusb.c is getting overloaded with vendor stuff.

Regards

Marcel


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

* RE: [PATCH v4 2/2] Bluetooth: btusb: Support Bluetooth Reset for Mediatek Chip(MT7921)
  2021-07-22 14:03   ` [PATCH v4 2/2] Bluetooth: btusb: Support Bluetooth Reset for Mediatek Chip(MT7921) Marcel Holtmann
@ 2021-07-27 15:16     ` Mark-YW Chen (陳揚文)
  0 siblings, 0 replies; 2+ messages in thread
From: Mark-YW Chen (陳揚文) @ 2021-07-27 15:16 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Johan Hedberg, Chris Lu (陸稚泓),
	Will-CY Lee (李政穎),
	Sean Wang, Bluetooth Kernel Mailing List, linux-mediatek,
	open list, michaelfsun, shawnku, jemele, apusaka

Hi Marcel,

> And we need to work towards abstracting the vendor specific position out of btusb.c (and I include the Intel part here as well). The btusb.c is getting overloaded with vendor stuff.
I agree with your comment, The vendor should create the vendor.c for their specific behavior.

First, I add the prefix into these patches.
After these patches merged, we will create the btmtk.c to handle Mediatek stuff.

With best regards,
Mark

-----Original Message-----
From: Marcel Holtmann [mailto:marcel@holtmann.org]
Sent: Thursday, July 22, 2021 10:04 PM
To: Mark-YW Chen (陳揚文)
Cc: Johan Hedberg; Chris Lu (陸稚泓); Will-CY Lee (李政穎); Sean Wang; Bluetooth Kernel Mailing List; linux-mediatek@lists.infradead.org; open list; michaelfsun@google.com; shawnku@google.com; jemele@google.com; apusaka@google.com
Subject: Re: [PATCH v4 2/2] Bluetooth: btusb: Support Bluetooth Reset for Mediatek Chip(MT7921)

Hi Mark,

> When the firmware hang or command no response, driver can reset the
> bluetooth mcu via USB to recovery it. The reset steps as follows.
>
> 1. Cancel USB transfer requests before reset.
> 2. It use speicific USB HW Register to reset Bluetooth MCU, at the
>   same time, the USB Endpoint0 still keep alive.
> 3. Poll the USB HW register until reset is completed by Endpoint0.
> 4. To recovery unexpected USB state and behavior during resetting the
>   Bluetooth MCU, the driver need to reset the USB device for MT7921.
> 5. After the reset is completed, the Bluetooth MCU need to re-setup,
>   such as download patch, power-on sequence and etc.
>
> Signed-off-by: mark-yw.chen <mark-yw.chen@mediatek.com>
> ---
> drivers/bluetooth/btusb.c | 127 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 127 insertions(+)
>
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index b1249b664981..122a928ebcb5 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -3076,6 +3076,17 @@ static int btusb_shutdown_intel_new(struct hci_dev *hdev)
>       return 0;
> }
>
> +/* UHW CR mapping */
> +#define BT_MISC                      0x70002510
> +#define BT_SUBSYS_RST                0x70002610
> +#define UDMA_INT_STA_BT              0x74000024
> +#define UDMA_INT_STA_BT1     0x74000308
> +#define BT_WDT_STATUS                0x740003A0
> +#define EP_RST_OPT           0x74011890
> +#define EP_RST_IN_OUT_OPT    0x00010001
> +#define BT_RST_DONE          0x00000100
> +#define BT_RESET_WAIT_MS     100
> +#define BT_RESET_NUM_TRIES   10

you need to prefix these with MTK since otherwise we get confused.

And we need to work towards abstracting the vendor specific position out of btusb.c (and I include the Intel part here as well). The btusb.c is getting overloaded with vendor stuff.

Regards

Marcel


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

end of thread, other threads:[~2021-07-27 15:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20210701194243.5449-1-mark-yw.chen@mediatek.com>
     [not found] ` <20210701194243.5449-2-mark-yw.chen@mediatek.com>
2021-07-22 14:03   ` [PATCH v4 2/2] Bluetooth: btusb: Support Bluetooth Reset for Mediatek Chip(MT7921) Marcel Holtmann
2021-07-27 15:16     ` Mark-YW Chen (陳揚文)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).