Re: [PATCH v3 3/3] arm: omap_hwmod disable ick autoidling when a hwmod requires that

Andreas Kemnade
2019-01-18T17:22:11Z

[-- Attachment #1: Type: text/plain, Size: 1880 bytes --]

Hi,

On Fri, 18 Jan 2019 07:48:07 -0800
Tony Lindgren <tony@atomide.com> wrote:

> Hi,
>
> * Andreas Kemnade <andreas@kemnade.info> [190116 22:04]:
> > Deny autoidle for hwmods with the OCPIF_SWSUP_IDLE flag,
> > that makes hwmods working properly which cannot handle
> > autoidle properly in lower power states.
>
> Sorry if I'm still missing something :)
>
> But doesn't this now block autoidle for all modules
> with OCPIF_SWSUP_IDLE even if they work just fine with
> autoidle?

According to the code comments, it was just meant for that.
if (os->flags & OCPIF_SWSUP_IDLE) {
- /* XXX omap_iclk_deny_idle(c); */
+ /*

I guess there are workarounds for the other modules in place,
or critical situations were not found yet.
The other affected module is e.g. DSS. And we had some trouble
in initialisation order for omap3 in the past and did some
quirks. Probably we also fixed issues in reality caused by
having the autoidle bit set.
That flags also causes the iclk being enabled/disabled
manually.

Did you see any regressions? The patch is now 3 month old
and nobody complained. I checked module idlest bits and did
not see any changes.

>
> I think what you want to do is keep clocks enabled
> while in use?
>
> If so, how about using HWMOD_CLKDM_NOAUTO:
>
> "HWMOD_CLKDM_NOAUTO: Allows the hwmod's clockdomain to
> be prevented from entering HW_AUTO while hwmod is
> active."

That is about iclk. I think we should have clear wording here
between all the idle things.
>
> > Affected is e. g. the omap_hdq.
>
> Have you already tried what happens if you just tag
> omap_hdq with HWMOD_CLKDM_NOAUTO?
>
Well, I am just happy with having that single bit cleared.
But having two flags for the same things makes no sense to me.

Regards,
Andreas

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]