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é

Reply via email to