[PATCH] clocksource/drivers/timer-ti-dm: Fix suspend and resume for am3 and am4

Tony Lindgren tony at atomide.com
Wed Jul 15 13:32:11 EDT 2020


* Grygorii Strashko <grygorii.strashko at ti.com> [200715 10:17]:
> On 13/07/2020 19:26, Tony Lindgren wrote:
> > @@ -653,8 +679,8 @@ static int __init dmtimer_clocksource_init(struct device_node *np)
> >   	dev->mask = CLOCKSOURCE_MASK(32);
> >   	dev->flags = CLOCK_SOURCE_IS_CONTINUOUS;
> > -	if (of_device_is_compatible(np, "ti,am33xx") ||
> > -	    of_device_is_compatible(np, "ti,am43")) {
> > +	/* Unlike for clockevent, legacy code sets suspend only for am4 */
> > +	if (of_machine_is_compatible("ti,am43")) {
> >   		dev->suspend = dmtimer_clocksource_suspend;
> >   		dev->resume = dmtimer_clocksource_resume;
> >   	}
> > 
> 
> It might be better to use SOC_BUS infra here, which is available on OMAP platforms by default,
> instead if DT. What do you think?

Well we have time_init() run very early, and some SoCs have only external
timers. So timer-ti-dm-systimer must be initialized early. And I think
soc_device_match() depends on soc_bus_register() that runs later at
core_initcall().

If you are thinking of something else, or we can use soc_device_match()
early, sure :) But sounds like that change should be a separate patch
then.

The reason for why we need to check for the SoC, we have the compatible
for ti,am335x-timer already in use on am3/4 and dm814x, so we can't use
TIMER_OF_DECLARE alone here.

Regards,

Tony



More information about the linux-arm-kernel mailing list