Hi, On Mon, Jul 22, 2024 at 2:24 AM Zhaoxiong Lv <lvzhaoxiong@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote: > > @@ -313,29 +314,15 @@ static int boe_th101mb31ig002_get_modes(struct drm_panel *panel, > struct boe_th101mb31ig002, > panel); > const struct drm_display_mode *desc_mode = ctx->desc->modes; > - struct drm_display_mode *mode; > - > - mode = drm_mode_duplicate(connector->dev, desc_mode); > - if (!mode) { > - dev_err(panel->dev, "Failed to add mode %ux%u@%u\n", > - desc_mode->hdisplay, desc_mode->vdisplay, > - drm_mode_vrefresh(desc_mode)); > - return -ENOMEM; > - } > - > - drm_mode_set_name(mode); > > connector->display_info.bpc = 8; > - connector->display_info.width_mm = mode->width_mm; > - connector->display_info.height_mm = mode->height_mm; > - > /* > * TODO: Remove once all drm drivers call > * drm_connector_set_orientation_from_panel() > */ > drm_connector_set_panel_orientation(connector, ctx->orientation); > > - drm_mode_probed_add(connector, mode); > + drm_connector_helper_get_modes_fixed(connector, desc_mode); > > return 1; Don't always return 1. This should be: return drm_connector_helper_get_modes_fixed(connector, desc_mode); ...so if it fails to add a mode then you'll return 0. -Doug