On Thu, Jun 2, 2022 at 3:57 PM Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > On Thu, Jun 2, 2022 at 2:07 PM szuni chen <szunichen@xxxxxxxxx> wrote: > > Andy Shevchenko <andy.shevchenko@xxxxxxxxx> 於 2022年6月1日 週三 下午5:57寫道: > > > On Tue, May 31, 2022 at 1:32 PM ChiaEn Wu <peterwu.pub@xxxxxxxxx> wrote: ... > > > > + const char * const states[] = { "off", "keep", "on" }; > > > > + const char *str; > > > > + int ret; > > > > + > > > > + if (!fwnode_property_read_string(init_data->fwnode, > > > > + "default-state", &str)) { > > > > + ret = match_string(states, ARRAY_SIZE(states), str); > > > > + if (ret < 0) > > > > + ret = STATE_OFF; > > > > + > > > > + led->default_state = ret; > > > > + } > > > > > > fwnode_property_match_string()? > > Sorry, but I think the use of this function is different from my target. > > I want to read the string of the "default-state" property and figure > > out if the string is in the states array. > > But the fwnode_property_match_string aimed to figure out if the state > > in the property array. > > One is a property array and another one is a state array. > > Ah, indeed. Nevertheless you may reduce the code base by doing like > the following (I wonder what your code do if there is no default-state > property): > > led->default_state = STATE_OFF; // it's by default off since > kzalloc(), so I don't see why we need this line at all. > > fwnode_property_read_string(init_data->fwnode, "default-state", &str); > ret = match_string(states, ARRAY_SIZE(states), str); > if (ret >= 0) > led->default_state = ret; Missed change const char *str = states[STATE_OFF]; -- With Best Regards, Andy Shevchenko