Re: [PATCH 2/3] ARM: bus: da8xx-syscfg: new driver

From: Laurent Pinchart
Date: Thu Oct 20 2016 - 14:06:01 EST


Hi Kevin,

On Thursday 20 Oct 2016 09:57:51 Kevin Hilman wrote:
> Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> writes:
> > On Wednesday 19 Oct 2016 10:26:57 Bartosz Golaszewski wrote:
> >> 2016-10-18 22:49 GMT+02:00 Laurent Pinchart:
> >>> On Monday 17 Oct 2016 18:30:49 Bartosz Golaszewski wrote:
> >>>> Create the driver for the da8xx System Configuration and implement
> >>>> support for writing to the three Master Priority registers.
> >>>>
> >>>> Signed-off-by: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>
> >>
> >> [snip]
> >>
> >>>> +
> >>>> +Documentation:
> >>>> +OMAP-L138 (DA850) - http://www.ti.com/lit/ug/spruh82c/spruh82c.pdf
> >>>> +
> >>>> +Required properties:
> >>>> +
> >>>> +- compatible: "ti,da850-syscfg"
> >>>
> >>> Don't you need a reg property ?
> >>
> >> Yes, Kevin already pointed that out. I'll add it in v2. Same for [1/3].
> >>
> >>>> +Optional properties:
> >>>> +
> >>>> +The below properties are used to specify the priority of master
> >>>> peripherals.
> >>>> +They must be between 0-7 where 0 is the highest priority and 7 is the
> >>>> lowest.
> >>>> +
> >>>> +- ti,pri-arm-i: ARM_I port priority.
> >>>> +
> >>>> +- ti,pri-arm-d: ARM_D port priority.
> >>>> +
> >>>> +- ti,pri-upp: uPP port priority.
> >>>> +
> >>>> +- ti,pri-sata: SATA port priority.
> >>>> +
> >>>> +- ti,pri-pru0: PRU0 port priority.
> >>>> +
> >>>> +- ti,pri-pru1: PRU1 port priority.
> >>>> +
> >>>> +- ti,pri-edma30tc0: EDMA3_0_TC0 port priority.
> >>>> +
> >>>> +- ti,pri-edma30tc1: EDMA3_0_TC1 port priority.
> >>>> +
> >>>> +- ti,pri-edma31tc0: EDMA3_1_TC0 port priority.
> >>>> +
> >>>> +- ti,pri-vpif-dma-0: VPIF DMA0 port priority.
> >>>> +
> >>>> +- ti,pri-vpif-dma-1: VPIF DMA1 port priority.
> >>>> +
> >>>> +- ti,pri-emac: EMAC port priority.
> >>>> +
> >>>> +- ti,pri-usb0cfg: USB0 CFG port priority.
> >>>> +
> >>>> +- ti,pri-usb0cdma: USB0 CDMA port priority.
> >>>> +
> >>>> +- ti,pri-uhpi: HPI port priority.
> >>>> +
> >>>> +- ti,pri-usb1: USB1 port priority.
> >>>> +
> >>>> +- ti,pri-lcdc: LCDC port priority.
> >>>
> >>> I'm afraid this looks more like system configuration than hardware
> >>> description to me.
> >>
> >> While you're certainly right, this approach is already implemented in
> >> several other memory and bus drivers and it was also suggested by
> >> Sekhar in one of the tilcdc rev1 threads. There's also no real
> >> alternative that I know of.
> >
> > The fact that other drivers get it wrong is no excuse for copying them :-)
>
> What exactly is "wrong" with the way other drivers are doing it?
>
> I'm sure there may be other ideas, and possibly some better ones, but
> that doesn't make it wrong, and doesn't change he fact that the kernel
> has existing drivers SoC-bus-specific system performance knobs like
> this.

It's not the drivers I'm concerned about, but the DT bindings. The proposed DT
binding contains a large number of properties that don't describe the hardware
but contain configuration data. If they're accepted you'll have to carry them
forward forever, while they should be controlled in a more flexible way.

> >>> There was a BoF session about how to support this kind of performance
> >>> knobs at ELCE last week:
> >>> https://openiotelceurope2016.sched.org/event/7rss/bof-linux-device-perf
> >>> ormance-framework-michael-turquette-baylibre :-)
> >>
> >> Unfortunately it was just a discussion about potential approaches -
> >> there's no code yet.
> >
> > Patches are welcome ;-)
>
> Any generic perf framework will have to build on the HW-specifics of
> individual busses, so IMO, the lack of a generic performance
> framework/knobs should not be a reason to block the inclusion of any
> bus-specific knobs.
>
> I guess this ultimately would go though arm-soc, so I've added Arnd &
> Olof to the thread.

--
Regards,

Laurent Pinchart