On 30-04-20, 09:32, Saravana Kannan wrote: > You are missing the point. This is not about aggregation. This is > about OPP voting for bandwidth on a path when the vote can/should be > 0. > > I'll give another example. Say one of the interconnect paths needs to > be voted only when a particular use case is running. Say, the GPU > needs to vote for bandwidth to L3 only when it's running in cache > coherent mode. But it always needs to vote for bandwidth to DDR. With > the way it's written now, OPP is going to force vote a non-zero > bandwidth to L3 even when it can be zero. Wasting power for no good > reason. > > Just let the drivers/device get the bandwidth values from OPP without > forcing them to vote for the bandwidth when they don't need to. Just > because they decide to use OPP to set their clock doesn't mean they > should lose to ability to control their bandwidth in a more > intelligent fashion. They shouldn't use opp_set_rate() in such a scenario. Why should they? opp_set_rate() was introduced to take care of only the simple cases and the complex ones are left for the drivers to handle. For example, they take care of programming multiple regulators (in case of TI), as OPP core can't know the order in which regulators need to be programmed. But for the simple cases, opp core can program everything the way it is presented in DT. -- viresh