lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.18 458/879] Bluetooth: btmtksdio: fix the reset takes too long
    Date
    From: Sean Wang <sean.wang@mediatek.com>

    [ Upstream commit baabb7f530e8a3f0085d12f4ea0bada4115515d3 ]

    Sending WMT command during the reset in progress is invalid and would get
    no response from firmware until the reset is complete, so we ignore the WMT
    command here to resolve the issue which causes the whole reset process
    taking too long.

    Fixes: 8fafe702253d ("Bluetooth: mt7921s: support bluetooth reset mechanism")
    Co-developed-by: Yake Yang <yake.yang@mediatek.com>
    Signed-off-by: Yake Yang <yake.yang@mediatek.com>
    Signed-off-by: Sean Wang <sean.wang@mediatek.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/bluetooth/btmtksdio.c | 5 +++++
    1 file changed, 5 insertions(+)

    diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c
    index 5d13c1f61bd3..d6700efcfe8c 100644
    --- a/drivers/bluetooth/btmtksdio.c
    +++ b/drivers/bluetooth/btmtksdio.c
    @@ -1189,6 +1189,10 @@ static int btmtksdio_shutdown(struct hci_dev *hdev)
    */
    pm_runtime_get_sync(bdev->dev);

    + /* wmt command only works until the reset is complete */
    + if (test_bit(BTMTKSDIO_HW_RESET_ACTIVE, &bdev->tx_state))
    + goto ignore_wmt_cmd;
    +
    /* Disable the device */
    wmt_params.op = BTMTK_WMT_FUNC_CTRL;
    wmt_params.flag = 0;
    @@ -1202,6 +1206,7 @@ static int btmtksdio_shutdown(struct hci_dev *hdev)
    return err;
    }

    +ignore_wmt_cmd:
    pm_runtime_put_noidle(bdev->dev);
    pm_runtime_disable(bdev->dev);

    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-08 03:36    [W:4.101 / U:0.664 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site