Messages in this thread | | | From | Stephen Warren <> | Date | Wed, 22 Feb 2012 19:53:44 -0800 | Subject | RE: [PATCH 08/20] pinctrl: Assume map table entries can't have a NULL name field |
| |
Dong Aisheng wrote at Wednesday, February 22, 2012 8:57 PM: > On Wed, Feb 22, 2012 at 07:39:42PM -0800, Stephen Warren wrote: > > Dong Aisheng wrote at Wednesday, February 22, 2012 8:35 PM: > > > On Wed, Feb 22, 2012 at 10:05:20AM -0800, Stephen Warren wrote: ... > > > > regulator_get(dev, id) requires id != NULL. > > > > > > > > clk_get(dev, con_id) requires con_id != NULL in order to match a clock > > > > that has a non-NULL con_id defined (although clocks with a NULL con_id > > > > are also legal, in which case, the con_id parameter to clk_get is > > > > ignored) > > > > > > > > So pinctrl_get(dev, state) requiring state != NULL seems consistent > > > > with existing practice. > > > > > > Yes, it's true if given all map entries have a name. > > > > > > Now i'm intend to the way you mentioned at: > > > https://lkml.org/lkml/2012/2/21/213 > > > > > > And i agree with the way you said: > > > If we continue to allow NULL names, I think we should change that to: > > > if name: > > > match = map->name && !strcmp(name, map->name) > > > else: > > > match = !map->name > > > > > > And i think allowing map name to be NULL will make life easy for those > > > devices who do not support multi states. > > > > It does make it a little convenient for board files, but isn't really > > practical to implement for device-tree unless we modify the binding to > > have something that means "no name". I'd rather not allow more options > > in the binding though. > > > > What's wrong with writing e.g. PINCTRL_DEFAULT instead of NULL when calling > > pinctrl_get() or pinctrl_lookup_state() though? Given pinctrl.h having: > > > > #define PINCTRL_DEFAULT "default" > > First, map writer needs know this logic.
Sure, but that's always true; you need to know the state name in all cases. And this requirement seems extremely trivial for a map writer to implement.
> Second, all as you said: > > > > > every mapping table entry has a name and drivers (or device tree bindings) > > > > define what that name must be, so why shouldn't drivers be required to > > > > request that specific name, and experience an error if the mapping table > > > > author didn't create that name? > > if want to keep align with regulator and clock, > i just feel a little that it does not make too much sense to > internally convert NULL to "default", right?
I'm hoping that we don't do this internal conversion. The rules I'd like are:
* Every mapping table entry must include a non-NULL name field.
* Every call to pinctrl_get()/pinctrl_lookup_state() must pass a non-NULL name ----------==========----------==========----------==========----------==========-- nvpublic
| |