Re: [PATCH] clocksource: timer-ti-dm: Drop bogus omap_dm_timer_of_set_source()
From: Tony Lindgren
Date: Sat Apr 25 2020 - 10:51:33 EST
* Lokesh Vutla <lokeshvutla@xxxxxx> [200425 09:15]:
> Hi Tony, Suman,
>
> On 13/02/20 11:05 AM, Suman Anna wrote:
> > The function omap_dm_timer_of_set_source() was originally added in
> > commit 31a7448f4fa8a ("ARM: OMAP: dmtimer: Add clock source from DT"),
> > and is designed to set a clock source from DT using the clocks property
> > of a timer node. This design choice is okay for clk provider nodes but
> > otherwise is a bad design as typically the clocks property is used to
> > specify the functional clocks for a device, and not its parents.
> >
> > The timer nodes now all define a timer functional clock after the
> > conversion to ti-sysc and the new clkctrl layout, and this results
> > in an attempt to set the same functional clock as its parent when a
> > consumer driver attempts to acquire any of these timers in the
> > omap_dm_timer_prepare() function. This was masked and worked around
> > in commit 983a5a43ec25 ("clocksource: timer-ti-dm: Fix pwm dmtimer
> > usage of fck reparenting"). Fix all of this by simply dropping the
> > entire function.
> >
> > Any DT configuration of clock sources should be achieved using
> > assigned-clocks and assigned-clock-parents properties provided
> > by the Common Clock Framework.
> >
> > Cc: Tony Lindgren <tony@xxxxxxxxxxx>
> > Cc: Tero Kristo <t-kristo@xxxxxx>
> > Cc: Neil Armstrong <narmstrong@xxxxxxxxxxxx>
> > Cc: H. Nikolaus Schaller <hns@xxxxxxxxxxxxx>
> > Cc: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>
> > Cc: Keerthy <j-keerthy@xxxxxx>
> > Cc: Ladislav Michl <ladis@xxxxxxxxxxxxxx>
> > Cc: Pavel Machek <pavel@xxxxxx>
> > Cc: Sebastian Reichel <sre@xxxxxxxxxx>
> > Signed-off-by: Suman Anna <s-anna@xxxxxx>
> > ---
> > Hi Tony,
> >
> > Do you have the history of why the 32 KHz source is set as parent during
> > prepare? One of the current side-affects of this patch is that now instead
> > of bailing out, the 32 KHz source is set, and consumers will still need
> > to select their appropriate parent. Dropping that call should actually
> > allow us to select the parents in the consumer nodes in dts files using
> > the assigned-clocks and assigned-clock-parents properties. I prefer to
> > drop it if you do not foresee any issues. For now, I do not anticipate
> > any issues with omap-pwm-dmtimer with this patch.
> >
>
> Sorry to bring up an old thread. But ping on this question by Suman. prepare()
> is over writing any parent set by DT to 32KHz. Is it possible to know why
> prepare is doing it? If there is no proper reason can we drop this setting all
> together?
For devicetree configured machines we should just configure the source
clock with assigned-clock-parents as there may be device specific need
for a specific source. So yeah, I'm all for dropping that code for device
tree booting machines. For the old omap1 devices, the clock code still
needs to configure it probably.
The reason why the 32k source is the default is that it's always on and
works for power management unlike the system clock which may be shut off
during idle.
Regards,
Tony