Messages in this thread | | | Subject | Re: [PATCH v14 13/19] leds: lp55xx: Add multicolor framework support to lp55xx | From | Dan Murphy <> | Date | Fri, 25 Oct 2019 12:57:23 -0500 |
| |
Jacek
On 10/22/19 12:41 PM, Jacek Anaszewski wrote: > 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. > OK I added your patch and it broke a lot of the DT parsing for the LP55xx.
I would prefer to stick with the original code without having to re-write this again.
Dan
| |