On Mon, Nov 6, 2023 at 12:33 PM Doug Anderson <dianders@xxxxxxxxxxxx> wrote: > > Hi, > > On Mon, Nov 6, 2023 at 12:27 PM Hsin-Yi Wang <hsinyi@xxxxxxxxxxxx> wrote: > > > > diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c > > index 0fb439b5efb1..54dbbdf62ec0 100644 > > --- a/drivers/gpu/drm/panel/panel-edp.c > > +++ b/drivers/gpu/drm/panel/panel-edp.c > > @@ -594,8 +594,20 @@ static int panel_edp_get_modes(struct drm_panel *panel, > > p->detected_panel != ERR_PTR(-EINVAL) && > > p->detected_panel->override_edid_mode; > > > > - /* probe EDID if a DDC bus is available */ > > - if (p->ddc) { > > + /* > > + * If both edid and hard-coded modes exists, only add hard-coded modes > > + * to avoid multiple preferred modes. > > + */ > > + if (p->desc->num_timings || p->desc->num_modes) { > > + /* > > + * Add hard-coded panel modes. Don't call this if there are no > > + * timings and no modes (the generic edp-panel case) because it > > + * will clobber the display_info that was already set by > > + * drm_add_edid_modes(). > > + */ > > + num += panel_edp_get_non_edid_modes(p, connector); > > + } else if (p->ddc) { > > + /* probe EDID if a DDC bus is available */ > > As per discussion in v2, I think if you have the "ddc" you still want > to fetch the EDID, you just don't want to add the modes from the EDID. > This will mean that the EDID is present in sysfs if userspace wants to > look at it for whatever reason. > Ack. Will update this. > -Doug