From: Mark Chen Date: Wed, 12 Jan 2022 07:39:13 +0000 (+0800) Subject: Bluetooth: mt7921s: fix bus hang with wrong privilege X-Git-Tag: v5.17.2~678 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=323fe673d92d43bbc34f958d222b401335a0e2c3;p=thirdparty%2Fkernel%2Fstable.git Bluetooth: mt7921s: fix bus hang with wrong privilege [ Upstream commit 752aea58489fd42f5c54dc50cb098d19e486ae61 ] According to chip hw flow, mt7921s need to re-acquire privilege again before normal running. Otherwise, the bus may be stuck in an abnormal status. Fixes: c603bf1f94d0 ("Bluetooth: btmtksdio: add MT7921s Bluetooth support") Co-developed-by: Sean Wang Signed-off-by: Sean Wang Signed-off-by: Mark Chen Signed-off-by: Marcel Holtmann Signed-off-by: Sasha Levin --- diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c index d4e2541a48735..c05578b52d33d 100644 --- a/drivers/bluetooth/btmtksdio.c +++ b/drivers/bluetooth/btmtksdio.c @@ -872,6 +872,15 @@ static int btmtksdio_setup(struct hci_dev *hdev) err = mt79xx_setup(hdev, fwname); if (err < 0) return err; + + err = btmtksdio_fw_pmctrl(bdev); + if (err < 0) + return err; + + err = btmtksdio_drv_pmctrl(bdev); + if (err < 0) + return err; + break; case 0x7663: case 0x7668: