On Thursday 12 July 2012 11:25:13 Simon Glass wrote:
> +void lcd_sync(void)
> +{
> +     /*
> +      * flush_dcache_range() is declared in common.h but it seems that some
> +      * architectures do not actually implement it. Is there a way to find
> +      * out whether it exists? For now, ARM is safe.
> +      */
> +#ifdef CONFIG_ARM
> +     int line_length;
> +
> +     if (lcd_flush_dcache)
> +             flush_dcache_range((u32)lcd_base,
> +                     (u32)(lcd_base + lcd_get_size(&line_length)));
> +#endif
> +}

hmm, i think this should be more fine grained

>       /* Clear the last one */
>       memset (CONSOLE_ROW_LAST, COLOR_MASK(lcd_color_bg), CONSOLE_ROW_SIZE);
> +     lcd_sync();
>  }

this requires only updating one row and not the entire display right ?  so we 
should only flush that one line.  seems like other parts suffer similar over-
flushing behavior.

> +/**
> + * Set whether we need to flush the dcache when changing the LCD image.
> + * This defaults to off.

i wonder if this default is correct.  perhaps it should default to 1 since 
setting up custom memory maps to disable cache is fairly specially.
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to