Dan, On 10/22/19 6:37 PM, Dan Murphy wrote: > Jacek > > On 10/18/19 4:56 PM, Jacek Anaszewski wrote: >> On 10/18/19 11:48 PM, Jacek Anaszewski wrote: >>> Dan, >> + ret = lp5xx_parse_channel_child(child, cfg, i); >>> I went into details of this parsing and finally came up with >>> the code which is a bit greater in size, but IMHO cleaner. >>> Note changes in variable naming. It is not even compile-tested. >>> >>> static int lp55xx_parse_common_child(struct device_node *np, >>> struct lp55xx_led_config *cfg, >>> int led_number, int *chan_nr) >>> { >>> int ret; >>> >>> of_property_read_string(np, "chan-name", >>> &cfg[led_number].name); >>> of_property_read_u8(np, "led-cur", >>> &cfg[led_number].led_current); >>> of_property_read_u8(np, "max-cur", >>> &cfg[led_number].max_current); >>> >>> ret = of_property_read_u32(np, "reg", chan_nr); >>> if (ret) >>> return ret; >>> >>> if (chan_nr < 0 || chan_nr > cfg->max_chan_nr) /* side note: >>> new >>> max_chan_nr property needed in cfg */ >>> return -EINVAL; >>> >>> return 0; >>> } >>> >>> static int lp55xx_parse_mutli_led_child(struct device_node *np, >>> struct lp55xx_led_config *cfg, >>> int child_number, >>> int color_number) >>> { >>> int chan_nr, color_id; >>> >>> ret = lp55xx_parse_common_child(child, cfg, child_number, >>> color_number, >>> &chan_nr); >>> if (ret) >>> return ret; >>> >>> ret = of_property_read_u32(child, "color", &color_id); >>> if (ret) >>> return ret; >>> >>> cfg[child_number].color_components[color_number].color_id = >>> color_id; >>> cfg[child_number].color_components[color_number].output_num = >>> chan_nr; >>> set_bit(color_id, &cfg[child_number].available_colors); >>> >>> return 0; >>> } >>> >>> staitc int lp55xx_parse_mutli_led(struct device_node *np, >>> struct lp55xx_led_config *cfg, >>> int child_number) >>> { >>> struct device_node *child; >>> int num_colors = 0, i = 0; >> s/, i = 0// >> >>> for_each_child_of_node(np, child) { >>> ret = lp55xx_parse_mutli_led_child(child, cfg, >>> num_colors, >>> child_number, i)) >> Replace above call with below: >> >> ret = lp55xx_parse_mutli_led_child(child, cfg, child_number, num_colors); >> > I applied your DT parser patch from the v13 series. Which eliminates > this comment correct? Yes, it contains this fix. -- Best regards, Jacek Anaszewski