Re: [PATCH v3 9/9] auxdisplay: Add driver for MAX695x 7-segment LED controllers

From: Geert Uytterhoeven
Date: Mon Feb 26 2024 - 12:11:43 EST


Hi Andy,

On Mon, Feb 26, 2024 at 5:17 PM Andy Shevchenko
<andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
> On Mon, Feb 26, 2024 at 05:01:46PM +0100, Geert Uytterhoeven wrote:
> > On Mon, Feb 19, 2024 at 6:03 PM Andy Shevchenko
> > <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
> > > Add initial driver for the MAX6958 and MAX6959 7-segment LED
> > > controllers.
>
> > LGTM, so
> > Reviewed-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
>
> Thanks, but see below.
>
> ...
>
> > > + u8 buf[4];
> > > +
> > > + /* Map segments according to datasheet */
> > > + buf[0] = bitrev8(map_to_seg7(&map->map.seg7, *s++)) >> 1;
> > > + buf[1] = bitrev8(map_to_seg7(&map->map.seg7, *s++)) >> 1;
> > > + buf[2] = bitrev8(map_to_seg7(&map->map.seg7, *s++)) >> 1;
> > > + buf[3] = bitrev8(map_to_seg7(&map->map.seg7, *s++)) >> 1;
> >
> > for (unsigned int i = 0; i < linedisp->num_chars; i++) { ... }
> >
> > > +
> > > + regmap_bulk_write(priv->regmap, REG_DIGIT(0), buf, ARRAY_SIZE(buf));
> >
> > linedisp->num_chars
>
> Maybe, but then we probably want to synchronize the 4 there and here as we
> can't have VLA on stack.

You can still keep the maximum buf[4], so no VLA needed?

>
> > > +}
>
> ...
>
> > > + ret = linedisp_register(&priv->linedisp, dev, 4, &max6959_linedisp_ops);
> >
> > + device_property_read_u32(dev, "display-width-chars", ...) handling.
>
> Not sure it should be part of this series.

Fair enough, so please go ahead without.

Even "display-width-chars" might not cover all cases, as a board
may use any subset of the 4 DIGn signals, even in any order...

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68korg

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds