Re: [PATCH 1/2] dt-bindings: ufs: qcom: allow 'dma-coherent' property

From: Rob Herring
Date: Mon Dec 05 2022 - 17:35:31 EST


On Mon, Dec 05, 2022 at 02:12:48PM +0100, Johan Hovold wrote:
> On Mon, Dec 05, 2022 at 06:30:48PM +0530, Manivannan Sadhasivam wrote:
> > On Mon, Dec 05, 2022 at 01:27:34PM +0100, Johan Hovold wrote:
> > > On Mon, Dec 05, 2022 at 05:50:18PM +0530, Manivannan Sadhasivam wrote:
> > > > On Mon, Dec 05, 2022 at 01:07:16PM +0100, Johan Hovold wrote:
> > > > > On Mon, Dec 05, 2022 at 05:29:06PM +0530, Manivannan Sadhasivam wrote:
> > > > > > On Mon, Dec 05, 2022 at 11:08:36AM +0100, Johan Hovold wrote:
> > > > > > > UFS controllers may be cache coherent and must be marked as such in the
> > > > > > > devicetree to avoid data corruption.

Typically, you'd only be doing unnecessary cache flushes without it
rather than getting data corruption. However, it is possible this
property triggers other system setup or something that would cause
problems if not setup right.

> > > > > > >
> > > > > > > This is specifically needed on recent Qualcomm platforms like SC8280XP.
> > > > > > >
> > > > > > > Signed-off-by: Johan Hovold <johan+linaro@xxxxxxxxxx>
>
> > > > > Yes, it would be a valid, but it will only be added to the DTs of SoCs
> > > > > that actually require it. No need to re-encode the dtsi in the binding.
> > > > >
> > > >
> > > > But if you make a property valid in the binding then it implies that anyone
> > > > could add it to DTS which is wrong. You should make this property valid for
> > > > SoCs that actually support it.
> > >
> > > No, it's not wrong.
> > >
> > > Note that the binding only requires 'compatible' and 'regs', all other
> > > properties are optional, and you could, for example, add a
> > > 'reset' property to a node for a device which does not have a reset
> > > without the DT validation failing.
> > >
> >
> > Then what is the point of devicetree validation using bindings?
>
> You're still making sure that no properties are added that are not
> documented, number of clocks, names of clocks, etc.

The schema can never be 100%. If it was, then we could practically just
generate the DT.

IMO, 'dma-coherent' is bit special. I'd say it is valid on any DMA
capable device node, but there's not any generic way to determine that.
So it has to be explicit in a device binding.

Rob