Subject: [PATCH 2/2] ARM: OMAP4: DSS hwmods: Add OCPIF_SWSUP_IDLE to all DSS L3 slave interfaces

From: [email-masked] (Cousson, Benoit)
Date: Fri, 13 Apr 2012 10:43:22 +0200

On 4/13/2012 10:01 AM, Archit Taneja wrote:
> The clock for all DSS L3 slave interfaces had been recently changed to
> "dss_fck" from "l3_div_ck". "dss_fck" is an optional clock in DSS clock domain
> which can't autoidle when enabled.
>
> Add OCPIF_SWSUP_IDLE flag to all the L3 slave interfaces used by DSS hwmods so
> that clock is explicitly enabled and disabled by software. Without this,
> "dss_fck" would be left as enabled and the OMAP4 device won't idle even when
> DSS is not in use.

Yeah, that was done on purpose with Tomi knowning well that limitation.

The issue was mainly due to the lack of proper parent / child 
relationship between the DSS (the whole subsystem) and the DSS children 
at that time.

I think that Tomi posted a series to fix that for 3.4. So if we ensure 
that every DSS IPs are children of the DSS, then pm_runtime will always 
ensure that the DSS will be enabled each time a submodule is used.

So the right fix is to put back the proper iclk (l3_div) to the DSS 
instead of the dss_fck.

The current OMAP4 DSS clock setup is clearly a hack that should be fixed.

Regards,
Benoit