All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Cc: linux-omap@vger.kernel.org,
	linux-fbdev-devel@lists.sourceforge.net,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3] OMAP: DMA: Fix omapfb/lcdc on OMAP1510 broken when PM set
Date: Mon, 9 Nov 2009 13:14:24 -0800	[thread overview]
Message-ID: <20091109211424.GF23952@atomide.com> (raw)
In-Reply-To: <200911051951.32020.jkrzyszt@tis.icnet.pl>

* Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> [091105 10:52]:
> With CONFIG_PM=y, the omapfb/lcdc device on Amstrad Delta, after initially
> starting correctly, breaks with the following error messages:
> 
> omapfb omapfb: resetting (status 0xffffff96,reset count 1)
> ...
> omapfb omapfb: resetting (status 0xffffff96,reset count 100)
> omapfb omapfb: too many reset attempts, giving up.
> 
> Looking closer at this I have found that it had been broken almost 2 years ago
> with commit 2418996e3b100114edb2ae110d5d4acb928909d2, PM fixes for OMAP1.
> 
> The definite reason for broken omapfb/lcdc behavoiur in PM mode
> appeared to be ARM_IDLECT1:IDLIF_ARM (bit 6) put into idle regardless of LCD
> DMA possibly running. The bit were set based on return value of the
> omap_dma_running() function that did not check for dedicated LCD DMA
> channel status. The patch below fixes this.
> 
> Created against linux-2.6.32-rc6
> 
> Tested on Amstrad Delta
> 
> Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
> 
> ---
> Tuesday 03 November 2009 21:10:48 Tony Lindgren wrote:
> > * Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> [091103 12:05]:
> > > 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().
> >
> > Sounds good to me.
> >
> > Tony
> 
> --- linux-2.6.32-rc6/arch/arm/plat-omap/dma.c.orig	2009-11-03 20:37:49.000000000 +0100
> +++ linux-2.6.32-rc6/arch/arm/plat-omap/dma.c	2009-11-05 19:30:39.000000000 +0100
> @@ -1108,6 +1108,14 @@ int omap_dma_running(void)
>  {
>  	int lch;
>  
> +	/*
> +	 * On OMAP1510, internal LCD controller will start the transfer
> +	 * when it gets enabled, so assume DMA running if LCD enabled.
> +	 */
> +	if (cpu_is_omap1510())
> +		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)

Can you please use some define rather than the 0xfffec000 register
above?

Regards,

Tony

WARNING: multiple messages have this Message-ID (diff)
From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3] OMAP: DMA: Fix omapfb/lcdc on OMAP1510 broken when PM set
Date: Mon, 9 Nov 2009 13:14:24 -0800	[thread overview]
Message-ID: <20091109211424.GF23952@atomide.com> (raw)
In-Reply-To: <200911051951.32020.jkrzyszt@tis.icnet.pl>

* Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> [091105 10:52]:
> With CONFIG_PM=y, the omapfb/lcdc device on Amstrad Delta, after initially
> starting correctly, breaks with the following error messages:
> 
> omapfb omapfb: resetting (status 0xffffff96,reset count 1)
> ...
> omapfb omapfb: resetting (status 0xffffff96,reset count 100)
> omapfb omapfb: too many reset attempts, giving up.
> 
> Looking closer at this I have found that it had been broken almost 2 years ago
> with commit 2418996e3b100114edb2ae110d5d4acb928909d2, PM fixes for OMAP1.
> 
> The definite reason for broken omapfb/lcdc behavoiur in PM mode
> appeared to be ARM_IDLECT1:IDLIF_ARM (bit 6) put into idle regardless of LCD
> DMA possibly running. The bit were set based on return value of the
> omap_dma_running() function that did not check for dedicated LCD DMA
> channel status. The patch below fixes this.
> 
> Created against linux-2.6.32-rc6
> 
> Tested on Amstrad Delta
> 
> Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
> 
> ---
> Tuesday 03 November 2009 21:10:48 Tony Lindgren wrote:
> > * Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> [091103 12:05]:
> > > 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().
> >
> > Sounds good to me.
> >
> > Tony
> 
> --- linux-2.6.32-rc6/arch/arm/plat-omap/dma.c.orig	2009-11-03 20:37:49.000000000 +0100
> +++ linux-2.6.32-rc6/arch/arm/plat-omap/dma.c	2009-11-05 19:30:39.000000000 +0100
> @@ -1108,6 +1108,14 @@ int omap_dma_running(void)
>  {
>  	int lch;
>  
> +	/*
> +	 * On OMAP1510, internal LCD controller will start the transfer
> +	 * when it gets enabled, so assume DMA running if LCD enabled.
> +	 */
> +	if (cpu_is_omap1510())
> +		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)

Can you please use some define rather than the 0xfffec000 register
above?

Regards,

Tony

  reply	other threads:[~2009-11-09 21:14 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-05 18:51 [PATCH v3] OMAP: DMA: Fix omapfb/lcdc on OMAP1510 broken when PM set Janusz Krzysztofik
2009-11-05 18:51 ` Janusz Krzysztofik
2009-11-09 21:14 ` Tony Lindgren [this message]
2009-11-09 21:14   ` Tony Lindgren
2009-11-10  2:50   ` Janusz Krzysztofik
2009-11-10  2:50     ` Janusz Krzysztofik
2009-11-10  2:50     ` Janusz Krzysztofik
2009-11-10  2:50     ` Janusz Krzysztofik
2009-11-11 19:00 ` [APPLIED] " Tony Lindgren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091109211424.GF23952@atomide.com \
    --to=tony@atomide.com \
    --cc=jkrzyszt@tis.icnet.pl \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.