ALSA: cs5535audio: Fix invalid endian conversion
commit 69756930f2de0457d51db7d505a1e4f40e9fd116 upstream. One place in cs5535audio_build_dma_packets() does an extra conversion via cpu_to_le32(); namely jmpprd_addr is passed to setup_prd() ops, which writes the value via cs_writel(). That is, the callback does the conversion by itself, and we don't need to convert beforehand. This patch fixes that bogus conversion. Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
fe4740d8be
commit
eeb2943acc
@ -67,9 +67,9 @@ struct cs5535audio_dma_ops {
|
||||
};
|
||||
|
||||
struct cs5535audio_dma_desc {
|
||||
u32 addr;
|
||||
u16 size;
|
||||
u16 ctlreserved;
|
||||
__le32 addr;
|
||||
__le16 size;
|
||||
__le16 ctlreserved;
|
||||
};
|
||||
|
||||
struct cs5535audio_dma {
|
||||
|
@ -158,8 +158,8 @@ static int cs5535audio_build_dma_packets(struct cs5535audio *cs5535au,
|
||||
lastdesc->addr = cpu_to_le32((u32) dma->desc_buf.addr);
|
||||
lastdesc->size = 0;
|
||||
lastdesc->ctlreserved = cpu_to_le16(PRD_JMP);
|
||||
jmpprd_addr = cpu_to_le32(lastdesc->addr +
|
||||
(sizeof(struct cs5535audio_dma_desc)*periods));
|
||||
jmpprd_addr = (u32)dma->desc_buf.addr +
|
||||
sizeof(struct cs5535audio_dma_desc) * periods;
|
||||
|
||||
dma->substream = substream;
|
||||
dma->period_bytes = period_bytes;
|
||||
|
Loading…
x
Reference in New Issue
Block a user