Hi Neil,
On Wed, 29 Oct 2025 21:45:24 +0100
Neil Armstrong <[email protected]> wrote:
...
> > +
> > +static const struct drm_display_mode ltk028qv25byl_mode = {
> > + .hdisplay = 240,
> > + .hsync_start = 240 + 120,
> > + .hsync_end = 240 + 120 + 4,
> > + .htotal = 240 + 120 + 4 + 120,
> > + .vdisplay = 320,
> > + .vsync_start = 320 + 8,
> > + .vsync_end = 320 + 8 + 2,
> > + .vtotal = 320 + 8 + 2 + 6,
> > + .clock = 10000000 / 1000,
>
> Usually we calculate the clock from the mode parameters, won't it work here ?
>
The panel has an internal oscillator an the data transfer need to be sync with
this oscillator.
10M pixel per sec is the value set by the vendor.
I tried to use a value based on other mode parameters such as
(240 + 120 + 4 + 120) * (320 + 8 + 2 + 6) * 60 / 1000
and it didn't work. I also tried ' ... * 90 / 1000) and ' ... * 100 / 1000)
without better results.
I can add a comment if you want in the next iteration to spot the value:
--- 8< ---
.clock = 10000000 / 1000, /* 10 Mbps, internal panel
oscillator */
--- 8< ---
Let me know.
...
> > + ctx->iovcc = devm_regulator_get(dev, "iovcc");
> > + if (IS_ERR(ctx->iovcc))
> > + return dev_err_probe(dev, PTR_ERR(ctx->iovcc),
> > + "Failed to get iovcc regulator\n");
>
> Can you switch to devm_regulator_bulk_get_const() ?
Yes, I will do that in the next iteration.
Best regards,
Hervé