aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustavo Padovan <gustavo.padovan@collabora.co.uk>2014-11-27 13:28:44 -0500
committerInki Dae <daeinki@gmail.com>2015-01-25 07:28:08 -0500
commita8dc5ed67f94030b72daece4e5e433fa6fae3e3e (patch)
tree155f04aad6a7f3100fa8cd739a7cb4dac92d2419
parent93bca243ec96f0acb949d4aa2306f07467e89985 (diff)
drm/exynos: don't duplicate drm_display_mode in fimd context
We can safely use the mode stored in the crtc. Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Inki Dae <inki.dae@samsung.com>
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_crtc.c5
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fimd.c12
2 files changed, 1 insertions, 16 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
index 9e8ed5fd60ae..357fcd59aa48 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
@@ -89,7 +89,6 @@ exynos_drm_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode,
89 struct drm_display_mode *adjusted_mode, int x, int y, 89 struct drm_display_mode *adjusted_mode, int x, int y,
90 struct drm_framebuffer *old_fb) 90 struct drm_framebuffer *old_fb)
91{ 91{
92 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
93 struct drm_framebuffer *fb = crtc->primary->fb; 92 struct drm_framebuffer *fb = crtc->primary->fb;
94 unsigned int crtc_w; 93 unsigned int crtc_w;
95 unsigned int crtc_h; 94 unsigned int crtc_h;
@@ -102,10 +101,6 @@ exynos_drm_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode,
102 101
103 crtc_w = fb->width - x; 102 crtc_w = fb->width - x;
104 crtc_h = fb->height - y; 103 crtc_h = fb->height - y;
105
106 if (exynos_crtc->ops->mode_set)
107 exynos_crtc->ops->mode_set(exynos_crtc, &crtc->mode);
108
109 return exynos_plane_mode_set(crtc->primary, crtc, fb, 0, 0, 104 return exynos_plane_mode_set(crtc->primary, crtc, fb, 0, 0,
110 crtc_w, crtc_h, x, y, crtc_w, crtc_h); 105 crtc_w, crtc_h, x, y, crtc_w, crtc_h);
111} 106}
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
index 9acd6890a3d6..d54ca07658c9 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -164,7 +164,6 @@ struct fimd_context {
164 struct clk *lcd_clk; 164 struct clk *lcd_clk;
165 void __iomem *regs; 165 void __iomem *regs;
166 struct regmap *sysreg; 166 struct regmap *sysreg;
167 struct drm_display_mode mode;
168 struct fimd_win_data win_data[WINDOWS_NR]; 167 struct fimd_win_data win_data[WINDOWS_NR];
169 unsigned int default_win; 168 unsigned int default_win;
170 unsigned long irq_flags; 169 unsigned long irq_flags;
@@ -345,18 +344,10 @@ static bool fimd_mode_fixup(struct exynos_drm_crtc *crtc,
345 return true; 344 return true;
346} 345}
347 346
348static void fimd_mode_set(struct exynos_drm_crtc *crtc,
349 const struct drm_display_mode *in_mode)
350{
351 struct fimd_context *ctx = crtc->ctx;
352
353 drm_mode_copy(&ctx->mode, in_mode);
354}
355
356static void fimd_commit(struct exynos_drm_crtc *crtc) 347static void fimd_commit(struct exynos_drm_crtc *crtc)
357{ 348{
358 struct fimd_context *ctx = crtc->ctx; 349 struct fimd_context *ctx = crtc->ctx;
359 struct drm_display_mode *mode = &ctx->mode; 350 struct drm_display_mode *mode = &crtc->base.mode;
360 struct fimd_driver_data *driver_data = ctx->driver_data; 351 struct fimd_driver_data *driver_data = ctx->driver_data;
361 void *timing_base = ctx->regs + driver_data->timing_base; 352 void *timing_base = ctx->regs + driver_data->timing_base;
362 u32 val, clkdiv; 353 u32 val, clkdiv;
@@ -1016,7 +1007,6 @@ static void fimd_te_handler(struct exynos_drm_crtc *crtc)
1016static struct exynos_drm_crtc_ops fimd_crtc_ops = { 1007static struct exynos_drm_crtc_ops fimd_crtc_ops = {
1017 .dpms = fimd_dpms, 1008 .dpms = fimd_dpms,
1018 .mode_fixup = fimd_mode_fixup, 1009 .mode_fixup = fimd_mode_fixup,
1019 .mode_set = fimd_mode_set,
1020 .commit = fimd_commit, 1010 .commit = fimd_commit,
1021 .enable_vblank = fimd_enable_vblank, 1011 .enable_vblank = fimd_enable_vblank,
1022 .disable_vblank = fimd_disable_vblank, 1012 .disable_vblank = fimd_disable_vblank,