[PATCH] drm/panel: Add Boe Himax8279d MIPI-DSI LCD panel

Sam Ravnborg sam at ravnborg.org
Fri Dec 13 18:33:01 UTC 2019


Hi Jerry.

Thanks!

On Thu, Dec 12, 2019 at 07:52:08PM +0800, Jerry Han wrote:
> Support Boe Himax8279d 8.0" 1200x1920 TFT LCD panel, it is a MIPI DSI
> panel.
> 
> V11:
> - Use the backlight support in drm_panel to simplify the driver (Sam)
...

> - Support Boe Himax8279d 8.0" 1200x1920 TFT LCD panel, it is a MIPI DSI
>     panel.
> 
> Signed-off-by: Jerry Han <jerry.han.hq at gmail.com>
> Reviewed-by: Sam Ravnborg <sam at ravnborg.org>
> Reviewed-by: Derek Basehore <dbasehore at chromium.org>
> Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
> Reported-by: kbuild test robot <lkp at intel.com>
> Cc: Jitao Shi <jitao.shi at mediatek.com>
> Cc: Rock wang <rock_wang at himax.com.cn>
> ---

Applied to drm-misc-next with the following changes:
- fix build in boe_panel_get_modes()
- fix backlight - drm_panel_of_backlight() must be called after
  drm_panel_init()

	Sam

diff --git a/drivers/gpu/drm/panel/panel-boe-himax8279d.c b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
index 3a6ee2069158..74d58ee7d04c 100644
--- a/drivers/gpu/drm/panel/panel-boe-himax8279d.c
+++ b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
@@ -219,26 +219,27 @@ static int boe_panel_enable(struct drm_panel *panel)
 	return 0;
 }
 
-static int boe_panel_get_modes(struct drm_panel *panel)
+static int boe_panel_get_modes(struct drm_panel *panel,
+			       struct drm_connector *connector)
 {
 	struct panel_info *pinfo = to_panel_info(panel);
 	const struct drm_display_mode *m = pinfo->desc->display_mode;
 	struct drm_display_mode *mode;
 
-	mode = drm_mode_duplicate(panel->drm, m);
+	mode = drm_mode_duplicate(connector->dev, m);
 	if (!mode) {
-		DRM_DEV_ERROR(panel->drm->dev, "failed to add mode %ux%u@%u\n",
+		DRM_DEV_ERROR(pinfo->base.dev, "failed to add mode %ux%u@%u\n",
 			      m->hdisplay, m->vdisplay, m->vrefresh);
 		return -ENOMEM;
 	}
 
 	drm_mode_set_name(mode);
 
-	drm_mode_probed_add(panel->connector, mode);
+	drm_mode_probed_add(connector, mode);
 
-	panel->connector->display_info.width_mm = pinfo->desc->width_mm;
-	panel->connector->display_info.height_mm = pinfo->desc->height_mm;
-	panel->connector->display_info.bpc = pinfo->desc->bpc;
+	connector->display_info.width_mm = pinfo->desc->width_mm;
+	connector->display_info.height_mm = pinfo->desc->height_mm;
+	connector->display_info.bpc = pinfo->desc->bpc;
 
 	return 1;
 }
@@ -888,13 +889,13 @@ static int panel_add(struct panel_info *pinfo)
 		return ret;
 	}
 
+	drm_panel_init(&pinfo->base, dev, &panel_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
+
 	ret = drm_panel_of_backlight(&pinfo->base);
 	if (ret)
 		return ret;
 
-	drm_panel_init(&pinfo->base, dev, &panel_funcs,
-		       DRM_MODE_CONNECTOR_DSI);
-
 	return drm_panel_add(&pinfo->base);
 }
 


More information about the dri-devel mailing list