diff mbox series

[v3,2/2] drm/panel: boe-th101mb31ig002 : using drm_connector_helper_get_modes_fixed()

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

Commit Message

Zhaoxiong Lv July 22, 2024, 9:24 a.m. UTC
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(-)

Comments

Doug Anderson July 22, 2024, 5:39 p.m. UTC | #1
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 mbox series

Patch

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;
 }