From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Herring Subject: Re: [PATCH V7 2/3] OPP: Allow multiple OPP tables to be passed via DT Date: Wed, 17 Jun 2015 08:47:35 -0500 Message-ID: References: <263c128844f5a3c9280c8be71f6c9eb1869a5188.1433434659.git.viresh.kumar@linaro.org> <20150617133314.GB15153@linux> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: In-Reply-To: <20150617133314.GB15153@linux> Sender: linux-pm-owner@vger.kernel.org To: Viresh Kumar , Stephen Boyd Cc: Rafael Wysocki , "linaro-kernel@lists.linaro.org" , "linux-pm@vger.kernel.org" , Arnd Bergmann , Nishanth Menon , Mark Brown , Mike Turquette , Grant Likely , Olof Johansson , Sudeep Holla , "devicetree@vger.kernel.org" , Viswanath Puttagunta , Lucas Stach , Thomas Petazzoni , "linux-arm-kernel@lists.infradead.org" , Thomas Abraham , Abhilash Kesavan , Kevin Hilman , Santosh Shilimkar List-Id: devicetree@vger.kernel.org On Wed, Jun 17, 2015 at 8:33 AM, Viresh Kumar wrote: > On 17-06-15, 08:23, Rob Herring wrote: >> > + operating-points-v2 = <&cpu0_opp_table_slow>, <&cpu0_opp_table_fast>; >> >> You've made a fundamental change here in that this can now be a list >> of phandles. There should be some description on what a list means >> (merge the tables?, select one?). > > Did you miss the description I wrote few lines earlier or are you > asking for something else? This is what I wrote earlier: > >> > +Devices may want to choose OPP tables at runtime and so can provide a list of >> > +phandles here. But only *one* of them should be chosen at runtime. > > So, clearly only ONE of the tables should be used. Yes, never mind. > >> I think this needs to have a defined order and the platform should >> know what that is. For example, if you read the efuses and decide you >> need the "slow" table, you know to pick the first entry. Then you >> don't need opp-name. Does that work for QCom? > > Why forcing on the order here? For example, consider a case where the > platform can have four tables, A B C D. Now DT is free to pass all > four or just a subset of those. Like, for some boards table B doesn't > stand valid. And so it may wanna pass just A C D. And so keeping these > tables in order is going to break for sure. Flexibility is probably > better in this case. Defined order is a key part of DT bindings. We solve the variable length problem with name lists associated with variable length property like: operating-point-names = "slow", "fast"; I'm not a fan of doing this if we can avoid it, but we should at least follow the same pattern. Don't send me a patch with that yet, I want to hear from Stephen. You can also use "status" to disable specific tables rather than removing from the list. Rob From mboxrd@z Thu Jan 1 00:00:00 1970 From: robherring2@gmail.com (Rob Herring) Date: Wed, 17 Jun 2015 08:47:35 -0500 Subject: [PATCH V7 2/3] OPP: Allow multiple OPP tables to be passed via DT In-Reply-To: <20150617133314.GB15153@linux> References: <263c128844f5a3c9280c8be71f6c9eb1869a5188.1433434659.git.viresh.kumar@linaro.org> <20150617133314.GB15153@linux> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Wed, Jun 17, 2015 at 8:33 AM, Viresh Kumar wrote: > On 17-06-15, 08:23, Rob Herring wrote: >> > + operating-points-v2 = <&cpu0_opp_table_slow>, <&cpu0_opp_table_fast>; >> >> You've made a fundamental change here in that this can now be a list >> of phandles. There should be some description on what a list means >> (merge the tables?, select one?). > > Did you miss the description I wrote few lines earlier or are you > asking for something else? This is what I wrote earlier: > >> > +Devices may want to choose OPP tables at runtime and so can provide a list of >> > +phandles here. But only *one* of them should be chosen at runtime. > > So, clearly only ONE of the tables should be used. Yes, never mind. > >> I think this needs to have a defined order and the platform should >> know what that is. For example, if you read the efuses and decide you >> need the "slow" table, you know to pick the first entry. Then you >> don't need opp-name. Does that work for QCom? > > Why forcing on the order here? For example, consider a case where the > platform can have four tables, A B C D. Now DT is free to pass all > four or just a subset of those. Like, for some boards table B doesn't > stand valid. And so it may wanna pass just A C D. And so keeping these > tables in order is going to break for sure. Flexibility is probably > better in this case. Defined order is a key part of DT bindings. We solve the variable length problem with name lists associated with variable length property like: operating-point-names = "slow", "fast"; I'm not a fan of doing this if we can avoid it, but we should at least follow the same pattern. Don't send me a patch with that yet, I want to hear from Stephen. You can also use "status" to disable specific tables rather than removing from the list. Rob