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)
committerVinod Koul <vkoul@kernel.org>
Fri, 24 Nov 2023 13:27:56 +0000 (18:57 +0530)
commit306f5df81fcc89b462fbeb9dbe26d9a8ad7c7582
tree6e44c1ca78926c92585b0d47193fbf346c3b8b83
parent375ff42c4c9825c19a53b9095ae4b3337cc83442
dmaengine: apple-admac: Keep upper bits of REG_BUS_WIDTH

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>
drivers/dma/apple-admac.c