diff options
author | Fancy Fang <chen.fang@nxp.com> | 2018-07-13 19:41:53 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:33:00 +0800 |
commit | 141093a093eb041c024452bbb826cf0eb0386e50 (patch) | |
tree | 40c650efa77b89f3be702d19c697d0fa354a7663 /drivers/gpu/drm/panel | |
parent | 084e1fbc2466567b6dd273d99437d609ed8e3f9d (diff) |
MLK-18605-13 drm/panel: rm67191: enable 'video-mode' config
Try to get the 'video-mode' property from dtb to guide
the required video mode configuration. The possible video
modes are:
0. Burst mode
1. Non-burst mode with sync event
2. Non-burst mode with sync pulse
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit e920436e2174d72eac28f0fb09f1fcdc68add9d9)
Diffstat (limited to 'drivers/gpu/drm/panel')
-rw-r--r-- | drivers/gpu/drm/panel/panel-raydium-rm67191.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/drm/panel/panel-raydium-rm67191.c index 74dc68f22761..940f780860c6 100644 --- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c +++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c @@ -544,6 +544,7 @@ static int rad_panel_probe(struct mipi_dsi_device *dsi) struct rad_panel *panel; struct backlight_properties bl_props; int ret; + u32 video_mode; panel = devm_kzalloc(&dsi->dev, sizeof(*panel), GFP_KERNEL); if (!panel) @@ -557,6 +558,27 @@ static int rad_panel_probe(struct mipi_dsi_device *dsi) dsi->mode_flags = MIPI_DSI_MODE_VIDEO_HSE | MIPI_DSI_MODE_VIDEO | MIPI_DSI_CLOCK_NON_CONTINUOUS; + ret = of_property_read_u32(np, "video-mode", &video_mode); + if (!ret) { + switch (video_mode) { + case 0: + /* burst mode */ + dsi->mode_flags |= MIPI_DSI_MODE_VIDEO_BURST; + break; + case 1: + /* non-burst mode with sync event */ + break; + case 2: + /* non-burst mode with sync pulse */ + dsi->mode_flags |= MIPI_DSI_MODE_VIDEO_SYNC_PULSE; + break; + default: + dev_warn(dev, "invalid video mode %d\n", video_mode); + break; + + } + } + ret = of_property_read_u32(np, "dsi-lanes", &dsi->lanes); if (ret < 0) { dev_err(dev, "Failed to get dsi-lanes property (%d)\n", ret); |