]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
mmc: mtk-sd: Clear interrupts when cqe off/disable
authorWenbin Mei <wenbin.mei@mediatek.com>
Thu, 28 Jul 2022 08:00:48 +0000 (16:00 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 5 Sep 2022 08:31:30 +0000 (10:31 +0200)
commit1c137c46d16e33b71ef92daf1882d5443fa2ec93
tree50775f71ecd67f0ea3db3f9128ff1ad480fc8e11
parent1d7df13d223b4bdf52ba51eec15d7161235bdde4
mmc: mtk-sd: Clear interrupts when cqe off/disable

[ Upstream commit cc5d1692600613e72f32af60e27330fe0c79f4fe ]

Currently we don't clear MSDC interrupts when cqe off/disable, which led
to the data complete interrupt will be reserved for the next command.
If the next command with data transfer after cqe off/disable, we process
the CMD ready interrupt and trigger DMA start for data, but the data
complete interrupt is already exists, then SW assume that the data transfer
is complete, SW will trigger DMA stop, but the data may not be transmitted
yet or is transmitting, so we may encounter the following error:
mtk-msdc 11230000.mmc: CMD bus busy detected.

Signed-off-by: Wenbin Mei <wenbin.mei@mediatek.com>
Fixes: 88bd652b3c74 ("mmc: mediatek: command queue support")
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20220728080048.21336-1-wenbin.mei@mediatek.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mmc/host/mtk-sd.c