On Wed, Jun 26, 2019 at 10:54:00AM +0800, Jitao Shi wrote: > Auo,kd101n80-45na's connector is same as boe,tv101wum-nl6. > The most codes can be reuse. > So auo,kd101n80-45na and boe,tv101wum-nl6 use one driver file. > Add the different parts in driver data. Very nice consolidation. Have you considered another filename that better tell this is a driver for different types of displays? And the Kconfig text needs some adjustment to tell this driver now supports an extra type of display. Sam > > Signed-off-by: Jitao Shi <jitao.shi@xxxxxxxxxxxx> > --- > .../gpu/drm/panel/panel-boe-tv101wum-nl6.c | 39 +++++++++++++++++++ > 1 file changed, 39 insertions(+) > > diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c > index 30d1f53dcbaf..6ff49f900cd2 100644 > --- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c > +++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c > @@ -372,6 +372,15 @@ static const struct panel_init_cmd boe_init_cmd[] = { > {}, > }; > > +static const struct panel_init_cmd auo_init_cmd[] = { > + _INIT_DELAY_CMD(24), > + _INIT_DCS_CMD(0x11), > + _INIT_DELAY_CMD(120), > + _INIT_DCS_CMD(0x29), > + _INIT_DELAY_CMD(120), > + {}, > +}; > + > static inline struct boe_panel *to_boe_panel(struct drm_panel *panel) > { > return container_of(panel, struct boe_panel, base); > @@ -571,6 +580,33 @@ static const struct panel_desc boe_tv101wum_nl6_desc = { > .init_cmds = boe_init_cmd, > }; > > +static const struct drm_display_mode auo_default_mode = { > + .clock = 157000, > + .hdisplay = 1200, > + .hsync_start = 1200 + 80, > + .hsync_end = 1200 + 80 + 24, > + .htotal = 1200 + 80 + 24 + 36, > + .vdisplay = 1920, > + .vsync_start = 1920 + 16, > + .vsync_end = 1920 + 16 + 4, > + .vtotal = 1920 + 16 + 4 + 16, > + .vrefresh = 60, > +}; > + > +static const struct panel_desc auo_kd101n80_45na_desc = { > + .modes = &auo_default_mode, > + .bpc = 8, > + .size = { > + .width = 135, > + .height = 216, > + }, > + .lanes = 4, > + .format = MIPI_DSI_FMT_RGB888, > + .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE | > + MIPI_DSI_MODE_LPM, > + .init_cmds = auo_init_cmd, > +}; > + > static int boe_panel_get_modes(struct drm_panel *panel) > { > struct boe_panel *boe = to_boe_panel(panel); > @@ -694,6 +730,9 @@ static const struct of_device_id boe_of_match[] = { > { .compatible = "boe,tv101wum-nl6", > .data = &boe_tv101wum_nl6_desc > }, > + { .compatible = "auo,kd101n80-45na", > + .data = &auo_kd101n80_45na_desc > + }, > { /* sentinel */ } > }; > MODULE_DEVICE_TABLE(of, boe_of_match); > -- > 2.21.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel