Bluetooth: btmtksdio: fix resume failure
authorSean Wang <sean.wang@mediatek.com>
Wed, 1 Dec 2021 18:02:47 +0000 (02:02 +0800)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 3 Dec 2021 21:09:59 +0000 (22:09 +0100)
btmtksdio have to rely on MMC_PM_KEEP_POWER in pm_flags to avoid that
SDIO power is being shut off during the device is in suspend. That fixes
the SDIO command fails to access the bus after the device is resumed.

Fixes: 7f3c563c575e7 ("Bluetooth: btmtksdio: Add runtime PM support to SDIO based Bluetooth")
Co-developed-by: Mark-yw Chen <mark-yw.chen@mediatek.com>
Signed-off-by: Mark-yw Chen <mark-yw.chen@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/btmtksdio.c

index fc6317e519e9d7ad76130a0fb4a823d2eb73e2c9..14340474524051aa55f4d321a3c4c130fb684137 100644 (file)
@@ -1065,6 +1065,8 @@ static int btmtksdio_runtime_suspend(struct device *dev)
        if (!test_bit(BTMTKSDIO_FUNC_ENABLED, &bdev->tx_state))
                return 0;
 
+       sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER);
+
        sdio_claim_host(bdev->func);
 
        sdio_writel(bdev->func, C_FW_OWN_REQ_SET, MTK_REG_CHLPCR, &err);