mbox series

[0/2] mach-omap2: handle autoidle denial

Message ID 20181004203817.22101-1-andreas@kemnade.info (mailing list archive)
Headers show
Series mach-omap2: handle autoidle denial | expand

Message

Andreas Kemnade Oct. 4, 2018, 8:38 p.m. UTC
On the gta04 with a dm3730 omap_hdq does not work properly when the
device enters lower power states. Idling uart1 and 2 is enough
to show up that problem, if there are no other things enabled.
Further research reveals that hdq iclk must not be turned off during
transfers, also according to the TRM. That fact is also correctly described
in the flags but the code to handle that is incomplete.

To handle multiple users of a single ick, autoidle is disabled
when a user of that ick requires that (has the OCPIF_SWSUP_IDLE))

Changes since the RFC version:
- mutex lock for autoidle changes
- deny_idle/allow_idle calls moved to clock enable/disable of the
  individual modules

Andreas Kemnade (2):
  clk: ti: add a usecount for autoidle
  arm: omap_hwmod disable ick autoidling when a hwmod requires that

 arch/arm/mach-omap2/omap_hwmod.c | 16 ++++++++++++----
 drivers/clk/ti/autoidle.c        | 32 ++++++++++++++++++++++++--------
 include/linux/clk/ti.h           |  1 +
 3 files changed, 37 insertions(+), 12 deletions(-)

Comments

Andreas Kemnade Nov. 8, 2018, 6 a.m. UTC | #1
ping.

..after stumbling again about that problem during testing with 4.20-rc1.
will retest it there.

On Thu,  4 Oct 2018 22:38:15 +0200
Andreas Kemnade <andreas@kemnade.info> wrote:

> On the gta04 with a dm3730 omap_hdq does not work properly when the
> device enters lower power states. Idling uart1 and 2 is enough
> to show up that problem, if there are no other things enabled.
> Further research reveals that hdq iclk must not be turned off during
> transfers, also according to the TRM. That fact is also correctly described
> in the flags but the code to handle that is incomplete.
> 
> To handle multiple users of a single ick, autoidle is disabled
> when a user of that ick requires that (has the OCPIF_SWSUP_IDLE))
> 
> Changes since the RFC version:
> - mutex lock for autoidle changes
> - deny_idle/allow_idle calls moved to clock enable/disable of the
>   individual modules
> 
> Andreas Kemnade (2):
>   clk: ti: add a usecount for autoidle
>   arm: omap_hwmod disable ick autoidling when a hwmod requires that
> 
>  arch/arm/mach-omap2/omap_hwmod.c | 16 ++++++++++++----
>  drivers/clk/ti/autoidle.c        | 32 ++++++++++++++++++++++++--------
>  include/linux/clk/ti.h           |  1 +
>  3 files changed, 37 insertions(+), 12 deletions(-)
> 
> -- 
> 2.11.0
> 
>