Re: [PATCH v4 14/14] video: leds: backlight: lm3533: Support getting LED sources from DT

Svyatoslav Ryhel <[email protected]>
Newsgroups org.kernel.vger.linux-fbdev,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel,org.kernel.vger.linux-leds
Message-ID <CAPVz0n0m+i7wexfC0BWwvdOuJxDk_=x+EpxEbNmoHN1AsEmfNg@mail.gmail.com>
вт, 9 черв. 2026 р. о 22:23 Andy Shevchenko <[email protected]> пише:
>
> On Sat, Jun 06, 2026 at 07:57:38AM +0300, Svyatoslav Ryhel wrote:
> > Add Control Bank to HVLED/LVLED muxing support based on the led-sources
> > defined in the device tree.
>
> ...
>
> >  static int lm3533_led_setup(struct lm3533_led *led)
> >  {
> > -     int ret;
> > +     u32 output_cfg_shift = 0;
>
> No need to assign the default to this.
>

This is a personal preference, compiler will optimize it if this is not needed.

> > +     u32 output_cfg_val = 0;
> > +     u32 output_cfg_mask = 0;
> > +     int ret, i;
>
> No need to add 'i'.
>

This is personal preference as well. There is no strict rule that
iteration variable must be defined strictly in the for loop.

> > +     if (led->num_leds) {
> > +             for (i = 0; i < led->num_leds; i++) {
>
>                 for (unsigned int i = 0; i < led->num_leds; i++) {
>
> > +                     if (led->leds[i] >= LM3533_LVCTRLBANK_MAX)
> > +                             continue;
> > +
> > +                     output_cfg_shift = led->leds[i] * 2;
> > +                     output_cfg_val |= led->id << output_cfg_shift;
> > +                     output_cfg_mask |= OUTPUT_LVLED_MASK << output_cfg_shift;
> > +             }
> > +
> > +             /* LVLED1, LVLED2 and LVLED3 */
> > +             ret = regmap_update_bits(led->regmap, LM3533_REG_OUTPUT_CONF1,
> > +                                      output_cfg_mask << OUTPUT_CONF1_SHIFT,
> > +                                      output_cfg_val << OUTPUT_CONF1_SHIFT);
> > +             if (ret)
> > +                     return ret;
> > +
> > +             /* LVLED4 and LVLED5 */
> > +             ret = regmap_update_bits(led->regmap, LM3533_REG_OUTPUT_CONF2,
> > +                                      output_cfg_mask >> OUTPUT_CONF2_SHIFT,
> > +                                      output_cfg_val >> OUTPUT_CONF2_SHIFT);
> > +             if (ret)
> > +                     return ret;
> > +     }
>
> ...
>
> > +     if (led->num_leds > 0) {
> > +             ret = device_property_read_u32_array(&pdev->dev, "led-sources",
> > +                                                  led->leds, led->num_leds);
> > +             if (ret) {
> > +                     dev_err(&pdev->dev, "failed to get led-sources\n");
> > +                     goto err_deregister;
> > +             }
> > +     }
>
> This and other pieces may benefit from local variable
>
>         struct device *dev = &pdev->dev;
>
> defined at the top of the function.
>

Yes, but this would require an additional patch, which I will not add
to this already overinflated series.

> ...
>
> >  static int lm3533_bl_setup(struct lm3533_bl *bl)
>
> As per above.
>
> --
> With Best Regards,
> Andy Shevchenko
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.