mbox series

[v3,0/3] mach-omap2: handle autoidle denial

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

Message

Andreas Kemnade Jan. 16, 2019, 10:04 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 v3:
- replace CLK_IS_BASIC

Changes v2:
- uses spinlocks instead of mutexes
- invert counter logic
- check whether clock type is basic

Depends on: clk: ti: get rid of CLK_IS_BASIC

Andreas Kemnade (3):
  clk: ti: add a usecount for autoidle
  clk: ti: check clock type before doing autoidle ops
  arm: omap_hwmod disable ick autoidling when a hwmod requires that

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

Comments

Tony Lindgren Jan. 21, 2019, 7:58 p.m. UTC | #1
* Andreas Kemnade <andreas@kemnade.info> [190116 14:04]:
> 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 v3:
> - replace CLK_IS_BASIC
> 
> Changes v2:
> - uses spinlocks instead of mutexes
> - invert counter logic
> - check whether clock type is basic

For this series it's best to merge it all via the
clock tree along with the related clock patches:

Acked-by: Tony Lindgren <tony@atomide.com>
Andreas Kemnade Feb. 9, 2019, 6:53 p.m. UTC | #2
On Mon, 21 Jan 2019 11:58:03 -0800
Tony Lindgren <tony@atomide.com> wrote:

> * Andreas Kemnade <andreas@kemnade.info> [190116 14:04]:
> > 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 v3:
> > - replace CLK_IS_BASIC
> > 
> > Changes v2:
> > - uses spinlocks instead of mutexes
> > - invert counter logic
> > - check whether clock type is basic  
> 
> For this series it's best to merge it all via the
> clock tree along with the related clock patches:
> 
> Acked-by: Tony Lindgren <tony@atomide.com>
> 
hmm, this is stalled. Have I missed any new objections?

Regards,
Andreas
Tero Kristo Feb. 15, 2019, 7:19 p.m. UTC | #3
On 09/02/2019 20:53, Andreas Kemnade wrote:
> On Mon, 21 Jan 2019 11:58:03 -0800
> Tony Lindgren <tony@atomide.com> wrote:
> 
>> * Andreas Kemnade <andreas@kemnade.info> [190116 14:04]:
>>> 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 v3:
>>> - replace CLK_IS_BASIC
>>>
>>> Changes v2:
>>> - uses spinlocks instead of mutexes
>>> - invert counter logic
>>> - check whether clock type is basic
>>
>> For this series it's best to merge it all via the
>> clock tree along with the related clock patches:
>>
>> Acked-by: Tony Lindgren <tony@atomide.com>
>>
> hmm, this is stalled. Have I missed any new objections?

Sorry, I've just been pretty busy as usual, queued up for 5.1 now, thanks.

-Tero
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki