Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7507f39c authored by Jassi Brar's avatar Jassi Brar Committed by Ben Dooks
Browse files

ARM: S3C64XX: DMA: Make src and dst transfer size same



Some devices don't seem to work if the source and desitnation transfer
widths are not same. For example, SPI dma xfers, with 8bits/word,
don't work without this patch.

Signed-off-by: default avatarJassi Brar <jassi.brar@samsung.com>
Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
parent 6d0b8627
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -151,8 +151,6 @@ static void s3c64xx_dma_fill_lli(struct s3c2410_dma_chan *chan,
		src = chan->dev_addr;
		dst = data;
		control0 = PL080_CONTROL_SRC_AHB2;
		control0 |= (u32)chan->hw_width << PL080_CONTROL_SWIDTH_SHIFT;
		control0 |= 2 << PL080_CONTROL_DWIDTH_SHIFT;
		control0 |= PL080_CONTROL_DST_INCR;
		break;

@@ -160,8 +158,6 @@ static void s3c64xx_dma_fill_lli(struct s3c2410_dma_chan *chan,
		src = data;
		dst = chan->dev_addr;
		control0 = PL080_CONTROL_DST_AHB2;
		control0 |= (u32)chan->hw_width << PL080_CONTROL_DWIDTH_SHIFT;
		control0 |= 2 << PL080_CONTROL_SWIDTH_SHIFT;
		control0 |= PL080_CONTROL_SRC_INCR;
		break;
	default:
@@ -173,6 +169,8 @@ static void s3c64xx_dma_fill_lli(struct s3c2410_dma_chan *chan,
	control1 = size >> chan->hw_width;	/* size in no of xfers */
	control0 |= PL080_CONTROL_PROT_SYS;	/* always in priv. mode */
	control0 |= PL080_CONTROL_TC_IRQ_EN;	/* always fire IRQ */
	control0 |= (u32)chan->hw_width << PL080_CONTROL_DWIDTH_SHIFT;
	control0 |= (u32)chan->hw_width << PL080_CONTROL_SWIDTH_SHIFT;

	lli->src_addr = src;
	lli->dst_addr = dst;