diff mbox

[2/3] ARM: OMAP4: hwmod data: do not enable or reset the AESS during kernel init

Message ID 1357304526-21557-3-git-send-email-s-guiriec@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sebastien Guiriec Jan. 4, 2013, 1:02 p.m. UTC
The AESS on OMAP4 has additional register on top of SYS_CONFIG for
auto gatting configuration. In order to avoid running clock after
boot up we should avoid to enable and reset the module during boot up.

Audio driver will be in charge of configuring the addition register.

At its core, this patch is a workaround for an OMAP hardware problem.
It should be possible to configure the OMAP with good default reset
configuration of AESS IP for auto gatting mode.

Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Paul Walmsley Jan. 4, 2013, 6:35 p.m. UTC | #1
Hi Sebastien

On Fri, 4 Jan 2013, Sebastien Guiriec wrote:

> The AESS on OMAP4 has additional register on top of SYS_CONFIG for
> auto gatting configuration. In order to avoid running clock after
> boot up we should avoid to enable and reset the module during boot up.
> 
> Audio driver will be in charge of configuring the addition register.
> 
> At its core, this patch is a workaround for an OMAP hardware problem.
> It should be possible to configure the OMAP with good default reset
> configuration of AESS IP for auto gatting mode.
> 
> Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>

What do you think about a slightly modified and updated version of:

http://www.mail-archive.com/linux-omap@vger.kernel.org/msg69853.html

?  That way we can reset the IP block at startup, like most of our other 
IP blocks, to avoid previous OS and bootloader dependencies.


- Paul
Sebastien Guiriec Jan. 4, 2013, 8:27 p.m. UTC | #2
On 01/04/2013 07:35 PM, Paul Walmsley wrote:
> Hi Sebastien
>
> On Fri, 4 Jan 2013, Sebastien Guiriec wrote:
>
>> The AESS on OMAP4 has additional register on top of SYS_CONFIG for
>> auto gatting configuration. In order to avoid running clock after
>> boot up we should avoid to enable and reset the module during boot up.
>>
>> Audio driver will be in charge of configuring the addition register.
>>
>> At its core, this patch is a workaround for an OMAP hardware problem.
>> It should be possible to configure the OMAP with good default reset
>> configuration of AESS IP for auto gatting mode.
>>
>> Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
>
> What do you think about a slightly modified and updated version of:
>
> http://www.mail-archive.com/linux-omap@vger.kernel.org/msg69853.html

This solution is the better. I was thinking that Tony reject this 
callback (but I realize that I miss the second series long time back).

Paul,
Do you want me to rebase this version and update the serie or are you 
handle it?

>
> ?  That way we can reset the IP block at startup, like most of our other
> IP blocks, to avoid previous OS and bootloader dependencies.

Yes can be useful.

>
>
> - Paul
>
Paul Walmsley Jan. 7, 2013, 8:12 a.m. UTC | #3
Hi

On Fri, 4 Jan 2013, Sebastien Guiriec wrote:

> Paul,
> Do you want me to rebase this version and update the serie or are you handle
> it?

Sure, it would be great if you could take this over and test it and 
repost.

You might find the 'aess_reset_devel_3.9' branch at 
git://git.pwsan.com/linux-2.6 useful.  It's a forward port of some of the 
3.5-rc work.  It's only compile-tested, so you might need to tweak it to 
get it to work.


- Paul
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index b340a4e..26d6cde 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -346,6 +346,14 @@  static struct omap_hwmod omap44xx_aess_hwmod = {
 	.name		= "aess",
 	.class		= &omap44xx_aess_hwmod_class,
 	.clkdm_name	= "abe_clkdm",
+	/*
+	 * AESS has an internal register on top of SYS_CONFIG for
+	 * AUTO GATTING mode. Unfortunately the reset value of this
+	 * register is not set correctly. So until AESS driver is not
+	 * probe we should not try to control the module during boot up.
+	 * Audio driver will handle the additional register configuration.
+	 */
+	.flags		= HWMOD_NO_SETUP_RESET,
 	.mpu_irqs	= omap44xx_aess_irqs,
 	.sdma_reqs	= omap44xx_aess_sdma_reqs,
 	.main_clk	= "aess_fck",