|
@@ -426,7 +426,9 @@ static void atmel_hlcdc_init(struct udevice *dev)
|
|
|
writel(~0UL, ®s->lcdc_baseidr);
|
|
|
|
|
|
/* Setup the DMA descriptor, this descriptor will loop to itself */
|
|
|
- desc = (struct lcd_dma_desc *)(uc_plat->base - 16);
|
|
|
+ desc = memalign(CONFIG_SYS_CACHELINE_SIZE, sizeof(*desc));
|
|
|
+ if (!desc)
|
|
|
+ return;
|
|
|
|
|
|
desc->address = (u32)uc_plat->base;
|
|
|
|
|
@@ -436,7 +438,9 @@ static void atmel_hlcdc_init(struct udevice *dev)
|
|
|
desc->next = (u32)desc;
|
|
|
|
|
|
/* Flush the DMA descriptor if we enabled dcache */
|
|
|
- flush_dcache_range((u32)desc, (u32)desc + sizeof(*desc));
|
|
|
+ flush_dcache_range((u32)desc,
|
|
|
+ ALIGN(((u32)desc + sizeof(*desc)),
|
|
|
+ CONFIG_SYS_CACHELINE_SIZE));
|
|
|
|
|
|
writel(desc->address, ®s->lcdc_baseaddr);
|
|
|
writel(desc->control, ®s->lcdc_basectrl);
|