Message ID | 20240722092428.24499-3-lvzhaoxiong@huaqin.corp-partner.google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Modify the method of obtaining porch parameters | expand |
Hi, On Mon, Jul 22, 2024 at 2:24 AM Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com> 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
diff --git a/drivers/gpu/drm/panel/panel-boe-th101mb31ig002-28a.c b/drivers/gpu/drm/panel/panel-boe-th101mb31ig002-28a.c index d4e4abd103bb..8e5edda32731 100644 --- a/drivers/gpu/drm/panel/panel-boe-th101mb31ig002-28a.c +++ b/drivers/gpu/drm/panel/panel-boe-th101mb31ig002-28a.c @@ -16,6 +16,7 @@ #include <drm/drm_mipi_dsi.h> #include <drm/drm_modes.h> #include <drm/drm_panel.h> +#include <drm/drm_probe_helper.h> struct boe_th101mb31ig002; @@ -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; }
Use public functions( drm_connector_helper_get_modes_fixed()) to get porch parameters. Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com> --- Changes between V3 and V2: - 1. Keep bpc settings and drm_connector_set_panel_orientation() function.. v2: https://lore.kernel.org/all/20240716121112.14435-3-lvzhaoxiong@huaqin.corp-partner.google.com/ --- .../drm/panel/panel-boe-th101mb31ig002-28a.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-)