Re: [PATCH 2/3] drm/etnaviv: Don't ignore errors on getting clocks

From: Russell King - ARM Linux admin
Date: Thu May 14 2020 - 04:53:18 EST


On Thu, May 14, 2020 at 10:40:58AM +0200, Lucas Stach wrote:
> Am Donnerstag, den 14.05.2020, 09:27 +0100 schrieb Russell King - ARM Linux admin:
> > On Thu, May 14, 2020 at 10:18:02AM +0200, Lucas Stach wrote:
> > > Am Mittwoch, den 13.05.2020, 23:41 -0300 schrieb Fabio Estevam:
> > > > On Wed, May 13, 2020 at 2:09 PM Fabio Estevam <festevam@xxxxxxxxx> wrote:
> > > >
> > > > > The binding doc Documentation/devicetree/bindings/gpu/vivante,gc.yaml
> > > > > says that only the 'reg' clock could be optional, the others are
> > > > > required.
> > > >
> > > > arch/arm/boot/dts/dove.dtsi only uses the 'core' clock.
> > > > arch/arm/boot/dts/stm32mp157.dtsi uses 'bus' and 'core'
> > > >
> > > > Maybe the binding needs to be updated and it seems that using
> > > > devm_clk_get_optional() like you propose is safe.
> > >
> > > The binding is correct as-is. We want to require those clocks to be
> > > present, but the dove DT was added before the binding was finalized, so
> > > the driver still treats the clocks as optional to not break
> > > compatibility with old DTs. Maybe this warrants a comment in the
> > > code...
> >
> > The binding doc in mainline says:
> >
> > clocks:
> > items:
> > - description: AXI/master interface clock
> > - description: GPU core clock
> > - description: Shader clock (only required if GPU has feature PIPE_3D)
> > - description: AHB/slave interface clock (only required if GPU can gate slave interface independently)
> > minItems: 1
> > maxItems: 4
> >
> > clock-names:
> > items:
> > enum: [ bus, core, shader, reg ]
> > minItems: 1
> > maxItems: 4
> >
> > which looks correct to me - and means that Dove is compliant with that.
>
> The YAML binding actually did loose something in translation here,
> which I didn't notice. Previously all those clocks were listed under
> "Required properties", with the exceptions listed in parenthesis. So
> the Dove GPU, which is a combined 2D/3D core should have axi, core and
> shader clocks specified.

That may be your desire, but that is impossible without knowing that
(a) it has the clocks
(b) what those clocks are connected to

I guess we could "make something up" but as DT is supposed to describe
hardware, I don't see how we can satisfy that and your requirement.

The only thing that is known from the documentation is that there is
one clock for the GPU on Dove.

--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 10.2Mbps down 587kbps up