Re: [linux-sunxi] Re: [PATCH v2] arm64: dts: allwinner: h6: Use dummy regulator for Tanix TX6

From: ClÃment PÃron
Date: Tue Apr 28 2020 - 12:23:49 EST


Hi Robin,

On Tue, 28 Apr 2020 at 17:21, Robin Murphy <robin.murphy@xxxxxxx> wrote:
>
> On 2020-04-28 3:26 pm, ClÃment PÃron wrote:
> > Tanix TX6 has a fixed regulator. As DVFS is instructed to change
> > voltage to meet OPP table, the DVFS is not working as expected.
>
> Hmm, isn't that really a bug in the DVFS code? I guess it's just blindly
> propagating -EINVAL from the fixed regulators not implementing
> set_voltage, but AFAICS it has no real excuse not to be cleverer and
> still allow switching frequency as long as the voltage *is* high enough
> for the given OPP. I wonder how well it works if the regulator is
> programmable but shared with other consumers... that case probably can't
> be hacked around in DT.

Like you, I thought that the DVFS was clever enough to understand this
but guess not..

Maybe they are some cases where you don't want to leave the voltage high and
reduce the frequency. But I don't know such case.

Regards,
Clement




>
> Robin.
>
> > Avoid to introduce a new dedicated OPP Table where voltage are
> > equals to the fixed regulator as it will only duplicate all the OPPs.
> > Instead remove the fixed regulator so the DVFS framework will create
> > dummy regulator and will have the same behavior.
> >
> > Add some comments to explain this in the device-tree.
> >
> > Reported-by: Piotr Oniszczuk <warpme@xxxxx>
> > Fixes: add1e27fb703 ("arm64: dts: allwinner: h6: Enable CPU opp tables for Tanix TX6")
> > Signed-off-by: ClÃment PÃron <peron.clem@xxxxxxxxx>
> > ---
> > .../boot/dts/allwinner/sun50i-h6-tanix-tx6.dts | 18 ++++++++++++++++--
> > 1 file changed, 16 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts
> > index be81330db14f..3e96fcb317ea 100644
> > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts
> > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts
> > @@ -48,7 +48,15 @@
> > };
> >
> > &cpu0 {
> > - cpu-supply = <&reg_vdd_cpu_gpu>;
> > + /*
> > + * Don't specify the CPU regulator, as it's a fixed
> > + * regulator DVFS will not work as it is intructed
> > + * to reach a voltage which can't be reached.
> > + * Not specifying a regulator will create a dummy
> > + * regulator allowing all OPPs.
> > + *
> > + * cpu-supply = <&reg_vdd_cpu_gpu>;
> > + */
> > };
> >
> > &de {
> > @@ -68,7 +76,13 @@
> > };
> >
> > &gpu {
> > - mali-supply = <&reg_vdd_cpu_gpu>;
> > + /*
> > + * Don't specify the GPU regulator, see comment
> > + * above for the CPU supply.
> > + *
> > + * mali-supply = <&reg_vdd_cpu_gpu>;
> > + */
> > +
> > status = "okay";
> > };
> >
> >
>
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe@xxxxxxxxxxxxxxxxx
> To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/98246e5d-ebef-bcb5-f0b8-d74b3834b835%40arm.com.