Hi, On Mon, Apr 21, 2025 at 4:37 AM Zhengqiao Xia <xiazhengq...@huaqin.corp-partner.google.com> wrote: > > BOE NE140WUM-N6S EDID: > edid-decode (hex): > > 00 ff ff ff ff ff ff 00 09 e5 73 0d 00 00 00 00 > 32 22 01 04 a5 1e 13 78 07 13 45 a6 54 4d a0 27 > 0c 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 > 01 01 01 01 01 01 03 3e 80 a0 70 b0 48 40 30 20 > 36 00 2e bc 10 00 00 1a 00 00 00 fd 00 1e 78 99 > 99 20 01 0a 20 20 20 20 20 20 00 00 00 fc 00 4e > 45 31 34 30 57 55 4d 2d 4e 36 53 0a 00 00 00 00 > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 45 > > 70 20 79 02 00 22 00 14 33 d8 04 85 7f 07 9f 00 > 2f 00 1f 00 af 04 47 00 02 00 05 00 81 00 13 72 > 1a 00 00 03 01 1e 78 00 00 5a 4a 5a 4a 78 00 00 > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ad 90 > > Signed-off-by: Zhengqiao Xia <xiazhengq...@huaqin.corp-partner.google.com> > --- > drivers/gpu/drm/panel/panel-edp.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/panel/panel-edp.c > b/drivers/gpu/drm/panel/panel-edp.c > index 958d260cda8a..92844ab4cb9c 100644 > --- a/drivers/gpu/drm/panel/panel-edp.c > +++ b/drivers/gpu/drm/panel/panel-edp.c > @@ -1757,6 +1757,13 @@ static const struct panel_delay delay_200_500_e80_d50 > = { > .disable = 50, > }; > > +static const struct panel_delay delay_200_500_e80_p2e80 = { > + .hpd_absent = 200, > + .unprepare = 500, > + .enable = 80, > + .prepare_to_enable = 80, > +};
Unless I'm mistaken, you don't need to add this timing. See the docs for `prepare_to_enable`, where the relationship between the `enable` and `prepare_to_enable` delay is documented. Specifically, see: * In other words: * prepare() * ... * // do fixed prepare delay * // wait for HPD GPIO if applicable * // start counting for prepare_to_enable * * enable() * // do fixed enable delay * // enforce prepare_to_enable min time Given that the fixed delay is 80 ms in your timings it seems impossible to ever need the `prepare_to_enable` delay. ...so you can just leave the `prepare_to_enable` off, which means you can just use `delay_200_500_e80` like many of the other BOE panels. > + > static const struct panel_delay delay_80_500_e50 = { > .hpd_absent = 80, > .unprepare = 500, > @@ -1916,6 +1923,7 @@ static const struct edp_panel_entry edp_panels[] = { > EDP_PANEL_ENTRY('B', 'O', 'E', 0x09c3, &delay_200_500_e50, > "NT116WHM-N21,836X2"), > EDP_PANEL_ENTRY('B', 'O', 'E', 0x094b, &delay_200_500_e50, > "NT116WHM-N21"), > EDP_PANEL_ENTRY('B', 'O', 'E', 0x0951, &delay_200_500_e80, > "NV116WHM-N47"), > + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0d73, &delay_200_500_e80_p2e80, > "NE140WUM-N6S"), > EDP_PANEL_ENTRY('B', 'O', 'E', 0x095f, &delay_200_500_e50, > "NE135FBM-N41 v8.1"), Please sort. 0x0d73 does not come between 0x0951 and 0x095f.