On Tue, Apr 21, 2020 at 07:29:32PM +0200, H. Nikolaus Schaller wrote: > > > Am 21.04.2020 um 16:15 schrieb Tony Lindgren : > > > > * Maxime Ripard [200421 11:22]: > >> On Tue, Apr 21, 2020 at 11:57:33AM +0200, Philipp Rossak wrote: > >>> I had a look on genpd and I'm not really sure if that fits. > >>> > >>> It is basically some bit that verify that the clocks should be enabled or > >>> disabled. > >> > >> No, it can do much more than that. It's a framework to control the SoCs power > >> domains, so clocks might be a part of it, but most of the time it's going to be > >> about powering up a particular device. > > > > Note that on omaps there are actually SoC module specific registers. > > Ah, I see. This is of course a difference that the TI glue logic has > its own registers in the same address range as the sgx and this can't > be easily handled by a common sgx driver. > > This indeed seems to be unique with omap. > > > And there can be multiple devices within a single target module on > > omaps. So the extra dts node and device is justified there. > > > > For other SoCs, the SGX clocks are probably best handled directly > > in pvr-drv.c PM runtime functions unless a custom hardware wrapper > > with SoC specific registers exists. > > That is why we need to evaluate what the better strategy is. > > So we have > a) omap which has a custom wrapper around the sgx > b) others without, i.e. an empty (or pass-through) wrapper > > Which one do we make the "standard" and which one the "exception"? > What are good reasons for either one? > > > I am currently in strong favour of a) being standard because it > makes the pvr-drv.c simpler and really generic (independent of > wrapping into any SoC). > > This will likely avoid problems if we find more SoC with yet another > scheme how the SGX clocks are wrapped. > > It also allows to handle different number of clocks (A31 seems to > need 4, Samsung, A83 and JZ4780 one) without changing the sgx bindings > or making big lists of conditionals. This variance would be handled > outside the sgx core bindings and driver. I disagree. Every other GPU binding and driver is handling that just fine, and the SGX is not special in any case here. Maxime