On 04/10/18 17:25, Tony Lindgren wrote:
* Andreas Kemnade <andreas@xxxxxxxxxxxx> [181004 05:56]:
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.
Since the order is first disable all autoidles, then disable selected
and then enable all, we need to either change that order or add
a usecount. Since it is done only in init, we could think about changing
order.
These patches look OK to me, assuming Tero will review them more
closely.
There is no locking whatsoever in the autoidle counting atm, that must
be fixed otherwise you get races.
It seems we should just provide a generic interface for
clk_allow_autoidle() and clk_deny_autoidle()? Otherwise we'll
be forever stuck with pdata callbacks it seems.
The TI clock driver is actually providing these APIs, so that should be
fine. I don't think there is any use / need for pdata callbacks atm, it
just happens hwmod core is calling these at the moment which might have
confused you.
-Tero
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki