diff options
| author | Wu, Josh <[email protected]> | 2014-05-19 19:51:27 +0800 |
|---|---|---|
| committer | Andreas Bießmann <[email protected]> | 2014-06-14 18:07:02 +0200 |
| commit | b137bd8c8d75062719c2fe2880205f8b707a89a8 (patch) | |
| tree | 540a04b9550554e99cd3aee75d32cd7a74fe5663 /drivers | |
| parent | 5ae0e38278ad3becfc9a0a6bfc5ab8c531ccd621 (diff) | |
video: atmel_hlcdfb: enable dcache support
To support dcache, we need flush DMA descriptor buffer before enable lcd
DMA.
Also we need call lcd_set_flush_dcache(1) to make lcd driver flush the
lcd buffer if there is any change.
Cc: Anatolij Gustschin <[email protected]>
Signed-off-by: Josh Wu <[email protected]>
Acked-by: Anatolij Gustschin <[email protected]>
Signed-off-by: Andreas Bießmann <[email protected]>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/video/atmel_hlcdfb.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/video/atmel_hlcdfb.c b/drivers/video/atmel_hlcdfb.c index bb4d7d8c147..935ae42a9c8 100644 --- a/drivers/video/atmel_hlcdfb.c +++ b/drivers/video/atmel_hlcdfb.c @@ -171,6 +171,9 @@ void lcd_ctrl_init(void *lcdbase) | LCDC_BASECTRL_DMAIEN | LCDC_BASECTRL_DFETCH; desc->next = (u32)desc; + /* Flush the DMA descriptor if we enabled dcache */ + flush_dcache_range((u32)desc, (u32)desc + sizeof(*desc)); + lcdc_writel(®s->lcdc_baseaddr, desc->address); lcdc_writel(®s->lcdc_basectrl, desc->control); lcdc_writel(®s->lcdc_basenext, desc->next); @@ -194,4 +197,7 @@ void lcd_ctrl_init(void *lcdbase) lcdc_writel(®s->lcdc_lcden, value | LCDC_LCDEN_PWMEN); while (!(lcdc_readl(®s->lcdc_lcdsr) & LCDC_LCDSR_PWMSTS)) udelay(1); + + /* Enable flushing if we enabled dcache */ + lcd_set_flush_dcache(1); } |
