]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
dmaengine: apple-admac: Keep upper bits of REG_BUS_WIDTH
authorHector Martin <marcan@marcan.st>
Sun, 29 Oct 2023 17:07:04 +0000 (18:07 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Mar 2024 12:34:47 +0000 (13:34 +0100)
commit43ee59fa01c8a1e8ce46b9248c678ba6f739681a
tree6942dcff7b8c24e75f3d6990eb5cd6b16510cda1
parent5babeec518c24d42d834228c3f115e66897667ae
dmaengine: apple-admac: Keep upper bits of REG_BUS_WIDTH

[ Upstream commit 306f5df81fcc89b462fbeb9dbe26d9a8ad7c7582 ]

For RX channels, REG_BUS_WIDTH seems to default to a value of 0xf00, and
macOS preserves the upper bits when setting the configuration in the
lower ones. If we reset the upper bits to 0, this causes framing errors
on suspend/resume (the data stream "tears" and channels get swapped
around). Keeping the upper bits untouched, like the macOS driver does,
fixes this issue.

Signed-off-by: Hector Martin <marcan@marcan.st>
Reviewed-by: Martin Povišer <povik+lin@cutebit.org>
Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
Link: https://lore.kernel.org/r/20231029170704.82238-1-povik+lin@cutebit.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/dma/apple-admac.c