[RFC] [PATCH v2] OMAP: DMA: Fix omapfb/lcdc on Amstrad Delta broken when PM set

Janusz Krzysztofik jkrzyszt at tis.icnet.pl
Tue Nov 3 15:04:07 EST 2009


Tuesday 03 November 2009 20:24:38 Janusz Krzysztofik napisał(a):
> If there are still no comments, especially on the bug possible impact on
> other OMAP1510 boards (or even OMAP1610 with internal LCD controller), then
> Tony, please apply it as is. Until it is accepted, I am stuck with new
> ams_delta_defconfig.

Tony,
Sorry, I've not checked for new mail before posting this one and missed your 
acceptance for my idea of fixing all omap1510, not only ams_delta. If there 
are no more comments, I'll submit v3 with cpu_is_omap1510() replacing 
machine_is_ams_delta().

Thanks,
Janusz

> --- linux-2.6.32-rc5/arch/arm/plat-omap/dma.c.orig	2009-10-16
> 02:41:50.000000000 +0200 +++
> linux-2.6.32-rc5/arch/arm/plat-omap/dma.c	2009-11-03 20:15:35.000000000
> +0100 @@ -30,6 +30,7 @@
>  #include <linux/irq.h>
>  #include <linux/io.h>
>
> +#include <asm/mach-types.h>
>  #include <asm/system.h>
>  #include <mach/hardware.h>
>  #include <mach/dma.h>
> @@ -1110,6 +1111,14 @@ int omap_dma_running(void)
>  {
>  	int lch;
>
> +	/*
> +	 * On Amstrad Delta, the OMAP internal LCD controller will start the
> +	 * transfer when it gets enabled, so assume DMA running if LCD enabled.
> +	 */
> +	if (machine_is_ams_delta())
> +		if (omap_readw(0xfffec000 + 0x00) & (1 << 0))
> +			return 1;
> +
>  	/* Check if LCD DMA is running */
>  	if (cpu_is_omap16xx())
>  		if (omap_readw(OMAP1610_DMA_LCD_CCR) & OMAP_DMA_CCR_EN)





More information about the linux-arm-kernel mailing list