drm/panel: Add and fill drm_panel type field
Add a type field to the drm_panel structure to report the panel type, using DRM_MODE_CONNECTOR_* macros (the values that make sense are LVDS, eDP, DSI and DPI). This will be used to initialise the corresponding connector type. Update all panel drivers accordingly. The panel-simple driver only specifies the type for the known to be LVDS panels, while all other panels are left as unknown and will be converted on a case-by-case basis as they all need to be carefully reviewed. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190904132804.29680-2-laurent.pinchart@ideasonboard.com
This commit is contained in:
committed by
Sam Ravnborg
parent
464828dfb1
commit
9a2654c0f6
@@ -94,6 +94,7 @@ struct panel_desc {
|
||||
|
||||
u32 bus_format;
|
||||
u32 bus_flags;
|
||||
int connector_type;
|
||||
};
|
||||
|
||||
struct panel_simple {
|
||||
@@ -464,7 +465,8 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)
|
||||
if (!of_get_display_timing(dev->of_node, "panel-timing", &dt))
|
||||
panel_simple_parse_panel_timing_node(dev, panel, &dt);
|
||||
|
||||
drm_panel_init(&panel->base, dev, &panel_simple_funcs);
|
||||
drm_panel_init(&panel->base, dev, &panel_simple_funcs,
|
||||
desc->connector_type);
|
||||
|
||||
err = drm_panel_add(&panel->base);
|
||||
if (err < 0)
|
||||
@@ -831,6 +833,7 @@ static const struct panel_desc auo_g133han01 = {
|
||||
.unprepare = 1000,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct display_timing auo_g185han01_timings = {
|
||||
@@ -860,6 +863,7 @@ static const struct panel_desc auo_g185han01 = {
|
||||
.unprepare = 1000,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct display_timing auo_p320hvn03_timings = {
|
||||
@@ -888,6 +892,7 @@ static const struct panel_desc auo_p320hvn03 = {
|
||||
.unprepare = 500,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct drm_display_mode auo_t215hvn01_mode = {
|
||||
@@ -1203,6 +1208,7 @@ static const struct panel_desc dlc_dlc0700yzg_1 = {
|
||||
.disable = 200,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct display_timing dlc_dlc1010gig_timing = {
|
||||
@@ -1233,6 +1239,7 @@ static const struct panel_desc dlc_dlc1010gig = {
|
||||
.unprepare = 60,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct drm_display_mode edt_et035012dm6_mode = {
|
||||
@@ -1499,6 +1506,7 @@ static const struct panel_desc hannstar_hsd070pww1 = {
|
||||
.height = 94,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct display_timing hannstar_hsd100pxn1_timing = {
|
||||
@@ -1523,6 +1531,7 @@ static const struct panel_desc hannstar_hsd100pxn1 = {
|
||||
.height = 152,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct drm_display_mode hitachi_tx23d38vm0caa_mode = {
|
||||
@@ -1629,6 +1638,7 @@ static const struct panel_desc innolux_g070y2_l01 = {
|
||||
.unprepare = 800,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct display_timing innolux_g101ice_l01_timing = {
|
||||
@@ -1657,6 +1667,7 @@ static const struct panel_desc innolux_g101ice_l01 = {
|
||||
.disable = 200,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct display_timing innolux_g121i1_l01_timing = {
|
||||
@@ -1684,6 +1695,7 @@ static const struct panel_desc innolux_g121i1_l01 = {
|
||||
.disable = 20,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct drm_display_mode innolux_g121x1_l03_mode = {
|
||||
@@ -1867,6 +1879,7 @@ static const struct panel_desc koe_tx31d200vm0baa = {
|
||||
.height = 109,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct display_timing kyo_tcg121xglp_timing = {
|
||||
@@ -1891,6 +1904,7 @@ static const struct panel_desc kyo_tcg121xglp = {
|
||||
.height = 184,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct drm_display_mode lemaker_bl035_rgb_002_mode = {
|
||||
@@ -1939,6 +1953,7 @@ static const struct panel_desc lg_lb070wv8 = {
|
||||
.height = 91,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct drm_display_mode lg_lp079qx1_sp0v_mode = {
|
||||
@@ -2061,6 +2076,7 @@ static const struct panel_desc mitsubishi_aa070mc01 = {
|
||||
.disable = 400,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
.bus_flags = DRM_BUS_FLAG_DE_HIGH,
|
||||
};
|
||||
|
||||
@@ -2089,6 +2105,7 @@ static const struct panel_desc nec_nl12880bc20_05 = {
|
||||
.disable = 50,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct drm_display_mode nec_nl4827hc19_05b_mode = {
|
||||
@@ -2191,6 +2208,7 @@ static const struct panel_desc nlt_nl192108ac18_02d = {
|
||||
.unprepare = 500,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct drm_display_mode nvd_9128_mode = {
|
||||
@@ -2214,6 +2232,7 @@ static const struct panel_desc nvd_9128 = {
|
||||
.height = 88,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct display_timing okaya_rs800480t_7x0gp_timing = {
|
||||
@@ -2626,6 +2645,7 @@ static const struct panel_desc sharp_lq101k1ly04 = {
|
||||
.height = 136,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct display_timing sharp_lq123p1jx31_timing = {
|
||||
@@ -2805,6 +2825,7 @@ static const struct panel_desc tianma_tm070jdhg30 = {
|
||||
.height = 95,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct display_timing tianma_tm070rvhg71_timing = {
|
||||
@@ -2829,6 +2850,7 @@ static const struct panel_desc tianma_tm070rvhg71 = {
|
||||
.height = 86,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct drm_display_mode ti_nspire_cx_lcd_mode[] = {
|
||||
@@ -2911,6 +2933,7 @@ static const struct panel_desc toshiba_lt089ac29000 = {
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
|
||||
.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct drm_display_mode tpk_f07a_0102_mode = {
|
||||
@@ -2981,6 +3004,7 @@ static const struct panel_desc urt_umsh_8596md_lvds = {
|
||||
.height = 91,
|
||||
},
|
||||
.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
|
||||
.connector_type = DRM_MODE_CONNECTOR_LVDS,
|
||||
};
|
||||
|
||||
static const struct panel_desc urt_umsh_8596md_parallel = {
|
||||
|
||||
Reference in New Issue
Block a user