diff options
author | Xinliang Liu <xinliang.liu@linaro.org> | 2015-09-14 15:26:01 +0800 |
---|---|---|
committer | Guodong Xu <guodong.xu@linaro.org> | 2015-09-14 16:16:29 +0800 |
commit | 1b71754c8f9eec3115d3ff94810b7389acac0966 (patch) | |
tree | 385ba86ff40b31d24f312ba6c8de99038bf797d1 | |
parent | 831b2a6481e44554307acd0cbeb896186c68ea0a (diff) |
drm/hisilicon: Remove the old 720p canned modeworking-hdmi-bug-fixes
Since the old 720p is not work as it should be. That's to say we can not
reproduce the old 720p as before. Becuase many changes has been change(hdmi,
clock) since Andy's patches.
This also fix the bug 92 by not using adjust mode:
Adjust mode will be free, so we cannot use it in dpms operation again after a
mode has been set.
Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org>
-rw-r--r-- | drivers/gpu/drm/hisilicon/hisi_drm_ade.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/hisilicon/hisi_drm_dsi.c | 44 |
2 files changed, 13 insertions, 33 deletions
diff --git a/drivers/gpu/drm/hisilicon/hisi_drm_ade.c b/drivers/gpu/drm/hisilicon/hisi_drm_ade.c index 0ad6b0fb41ea..b67a9b4479f0 100644 --- a/drivers/gpu/drm/hisilicon/hisi_drm_ade.c +++ b/drivers/gpu/drm/hisilicon/hisi_drm_ade.c @@ -362,7 +362,7 @@ static int hisi_drm_crtc_mode_set(struct drm_crtc *crtc, struct hisi_drm_ade_crtc *crtc_ade = to_hisi_crtc(crtc); DRM_DEBUG_DRIVER("mode_set enter successfully.\n"); - crtc_ade->dmode = adj_mode; + crtc_ade->dmode = mode; DRM_DEBUG_DRIVER("mode_set exit successfully.\n"); return 0; } diff --git a/drivers/gpu/drm/hisilicon/hisi_drm_dsi.c b/drivers/gpu/drm/hisilicon/hisi_drm_dsi.c index f613e6613112..15f30dfc1b08 100644 --- a/drivers/gpu/drm/hisilicon/hisi_drm_dsi.c +++ b/drivers/gpu/drm/hisilicon/hisi_drm_dsi.c @@ -152,7 +152,7 @@ struct dsi_phy_seq_info dphy_seq_info[] = { * +hsync +vsync */ static struct drm_display_mode mode_720p_canned = { - .name = "720p60", + .name = "1280x720", .vrefresh = 60, .clock = 74250, .hdisplay = 1280, @@ -201,22 +201,6 @@ static int hisi_get_default_modes(struct drm_connector *connector) if (!mode) { DRM_ERROR("failed to create a new display mode\n"); } - drm_mode_set_name(mode); - drm_mode_probed_add(connector, mode); - - /* - * 1280x720@60: 720P with some timing parameters adjusted. - * Adjust timings to let output more stable. - */ - mode = drm_mode_duplicate(connector->dev, &mode_720p_canned); - if (!mode) { - DRM_ERROR("failed to create a new display mode\n"); - } - mode->clock = 75000; - mode->hsync_start = 1500; - mode->hsync_end = 1540; - mode->vsync_start = 740; - mode->vsync_end = 745; drm_mode_probed_add(connector, mode); /* @@ -228,7 +212,7 @@ static int hisi_get_default_modes(struct drm_connector *connector) } drm_mode_probed_add(connector, mode); - return 3; + return 2; } static inline void set_reg(u8 *addr, u32 val, u32 bw, u32 bs) @@ -882,24 +866,20 @@ static void hisi_drm_encoder_mode_set(struct drm_encoder *encoder, DRM_DEBUG_DRIVER("enter.\n"); vm->pixelclock = adj_mode->clock; - dsi->nominal_pixel_clock_kHz = adj_mode->clock; + dsi->nominal_pixel_clock_kHz = mode->clock; - vm->hactive = adj_mode->hdisplay; - vm->vactive = adj_mode->vdisplay; - vm->vfront_porch = adj_mode->vsync_start - adj_mode->vdisplay; - vm->vback_porch = adj_mode->vtotal - adj_mode->vsync_end; - vm->vsync_len = adj_mode->vsync_end - adj_mode->vsync_start; - vm->hfront_porch = adj_mode->hsync_start - adj_mode->hdisplay; - vm->hback_porch = adj_mode->htotal - adj_mode->hsync_end; - vm->hsync_len = adj_mode->hsync_end - adj_mode->hsync_start; + vm->hactive = mode->hdisplay; + vm->vactive = mode->vdisplay; + vm->vfront_porch = mode->vsync_start - mode->vdisplay; + vm->vback_porch = mode->vtotal - mode->vsync_end; + vm->vsync_len = mode->vsync_end - mode->vsync_start; + vm->hfront_porch = mode->hsync_start - mode->hdisplay; + vm->hback_porch = mode->htotal - mode->hsync_end; + vm->hsync_len = mode->hsync_end - mode->hsync_start; - dsi->lanes = 3 + !!(vm->pixelclock >= 115000); + dsi->lanes = 3 + !!(vm->pixelclock > 115000); dphy_freq_kHz = vm->pixelclock * 24 / dsi->lanes; - /* this avoids a less-compatible DSI rate with 1.2GHz px PLL */ - if (mode->clock == 75000) - dphy_freq_kHz = 640000; - set_dsi_phy_rate_equal_or_faster(&dphy_freq_kHz, &dsi->phyreg); vm->flags = 0; |