On 26-07-19, 16:15, Saravana Kannan wrote: > Interconnects and interconnect paths quantify their performance levels in > terms of bandwidth and not in terms of frequency. So similar to how we have > frequency based OPP tables in DT and in the OPP framework, we need > bandwidth OPP table support in DT and in the OPP framework. > > So with the DT bindings added in this patch series, the DT for a GPU > that does bandwidth voting from GPU to Cache and GPU to DDR would look > something like this: > > gpu_cache_opp_table: gpu_cache_opp_table { > compatible = "operating-points-v2"; > > gpu_cache_3000: opp-3000 { > opp-peak-KBps = <3000000>; > opp-avg-KBps = <1000000>; > }; > gpu_cache_6000: opp-6000 { > opp-peak-KBps = <6000000>; > opp-avg-KBps = <2000000>; > }; > gpu_cache_9000: opp-9000 { > opp-peak-KBps = <9000000>; > opp-avg-KBps = <9000000>; > }; > }; > > gpu_ddr_opp_table: gpu_ddr_opp_table { > compatible = "operating-points-v2"; > > gpu_ddr_1525: opp-1525 { > opp-peak-KBps = <1525000>; > opp-avg-KBps = <452000>; > }; > gpu_ddr_3051: opp-3051 { > opp-peak-KBps = <3051000>; > opp-avg-KBps = <915000>; > }; > gpu_ddr_7500: opp-7500 { > opp-peak-KBps = <7500000>; > opp-avg-KBps = <3000000>; > }; > }; > > gpu_opp_table: gpu_opp_table { > compatible = "operating-points-v2"; > opp-shared; > > opp-200000000 { > opp-hz = /bits/ 64 <200000000>; > }; > opp-400000000 { > opp-hz = /bits/ 64 <400000000>; > }; > }; > > gpu@7864000 { > ... > operating-points-v2 = <&gpu_opp_table>, <&gpu_cache_opp_table>, <&gpu_ddr_opp_table>; > ... > }; One feedback I missed giving earlier. Will it be possible to get some user code merged along with this ? I want to make sure anything we add ends up getting used. That also helps understanding the problems you are facing in a better way, i.e. with real examples. -- viresh