Re: [PATCH 2/2] OPP: Disallow "opp-hz" property without a corresponding clk

From: Dmitry Baryshkov
Date: Wed Nov 15 2023 - 03:44:09 EST


On Wed, 15 Nov 2023 at 09:55, Manivannan Sadhasivam
<manivannan.sadhasivam@xxxxxxxxxx> wrote:
>
> + Dmitry
>
> On Wed, Nov 15, 2023 at 12:02:01PM +0530, Viresh Kumar wrote:
> > On 11-10-23, 11:18, Viresh Kumar wrote:
> > > On 16-02-23, 12:17, Manivannan Sadhasivam wrote:
> > > > Sorry for the delay. I've submitted the dts changes [1] to handle the CPU clocks
> > > > for the rest of the Qcom SoCs.
> > > >
> > > > For the Qcom GPUs, I've CCed Rob Clark who is the maintainer.
> > > >
> > > > Rob, here is the background on the issue that is being discussed in this
> > > > thread:
> > > >
> > > > Viresh submitted a series [2] back in July to improve the OPP framework, but
> > > > that ended up breaking cpufreq on multiple Qcom SoCs. After investigation, it
> > > > was found that the series was expecting the clocks supplied to the OPP end
> > > > devices like CPUs/GPUs to be modeled in DT. But on Qcom platforms even though
> > > > the clocks for these nodes are supplied by a separate entity, like CPUFreq
> > > > (EPSS/OSM) for CPUs and GMU for GPUs, there was no clock property present in
> > > > the respective nodes. And these nodes are using OPP table to switch frequencies
> > > > dynamically.
> > > >
> > > > While the series was merged with a hack that still allows the OPP nodes without
> > > > clock property in DT, we came to an agreement that the clock hierarchy should
> > > > be modeled properly.
> > > >
> > > > So I submitted a series [3] that added clock provider support to cpufreq driver
> > > > and sourced the clock from cpufreq node to CPU nodes in DT.
> > > >
> > > > Likewise, it should be handled for the adreno GPUs whose clock is managed by
> > > > GMU on newer SoCs. Can you take a look at this?
> > >
> > > Any update on this ?
> >
> > Mani,
> >
> > Ping.
> >
>
> Dmitry, can you please look into this? Please read my above reply to Rob
> to get the background.

The issue is that we don't have an actual clock that corresponds to
the GPU frequency. Not even a read-only one.
Can we get away by manually setting config_clocks()?

Also could you please remind me, can we sleep inside the config_clks() callback?

--
With best wishes
Dmitry