diff options
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/omapdrm/dss/dispc.c | 13 | ||||
| -rw-r--r-- | drivers/gpu/drm/omapdrm/dss/omapdss.h | 5 | ||||
| -rw-r--r-- | drivers/gpu/drm/omapdrm/omap_plane.c | 6 |
3 files changed, 10 insertions, 14 deletions
diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c b/drivers/gpu/drm/omapdrm/dss/dispc.c index 198d41056447..05436eaad3ef 100644 --- a/drivers/gpu/drm/omapdrm/dss/dispc.c +++ b/drivers/gpu/drm/omapdrm/dss/dispc.c | |||
| @@ -2834,21 +2834,21 @@ static int dispc_ovl_setup_common(enum omap_plane_id plane, | |||
| 2834 | 2834 | ||
| 2835 | static int dispc_ovl_setup(enum omap_plane_id plane, | 2835 | static int dispc_ovl_setup(enum omap_plane_id plane, |
| 2836 | const struct omap_overlay_info *oi, | 2836 | const struct omap_overlay_info *oi, |
| 2837 | const struct videomode *vm, bool mem_to_mem) | 2837 | const struct videomode *vm, bool mem_to_mem, |
| 2838 | enum omap_channel channel) | ||
| 2838 | { | 2839 | { |
| 2839 | int r; | 2840 | int r; |
| 2840 | enum omap_overlay_caps caps = dss_feat_get_overlay_caps(plane); | 2841 | enum omap_overlay_caps caps = dss_feat_get_overlay_caps(plane); |
| 2841 | enum omap_channel channel; | ||
| 2842 | const bool replication = true; | 2842 | const bool replication = true; |
| 2843 | 2843 | ||
| 2844 | channel = dispc_ovl_get_channel_out(plane); | ||
| 2845 | |||
| 2846 | DSSDBG("dispc_ovl_setup %d, pa %pad, pa_uv %pad, sw %d, %d,%d, %dx%d ->" | 2844 | DSSDBG("dispc_ovl_setup %d, pa %pad, pa_uv %pad, sw %d, %d,%d, %dx%d ->" |
| 2847 | " %dx%d, cmode %x, rot %d, mir %d, chan %d repl %d\n", | 2845 | " %dx%d, cmode %x, rot %d, mir %d, chan %d repl %d\n", |
| 2848 | plane, &oi->paddr, &oi->p_uv_addr, oi->screen_width, oi->pos_x, | 2846 | plane, &oi->paddr, &oi->p_uv_addr, oi->screen_width, oi->pos_x, |
| 2849 | oi->pos_y, oi->width, oi->height, oi->out_width, oi->out_height, | 2847 | oi->pos_y, oi->width, oi->height, oi->out_width, oi->out_height, |
| 2850 | oi->color_mode, oi->rotation, oi->mirror, channel, replication); | 2848 | oi->color_mode, oi->rotation, oi->mirror, channel, replication); |
| 2851 | 2849 | ||
| 2850 | dispc_ovl_set_channel_out(plane, channel); | ||
| 2851 | |||
| 2852 | r = dispc_ovl_setup_common(plane, caps, oi->paddr, oi->p_uv_addr, | 2852 | r = dispc_ovl_setup_common(plane, caps, oi->paddr, oi->p_uv_addr, |
| 2853 | oi->screen_width, oi->pos_x, oi->pos_y, oi->width, oi->height, | 2853 | oi->screen_width, oi->pos_x, oi->pos_y, oi->width, oi->height, |
| 2854 | oi->out_width, oi->out_height, oi->color_mode, oi->rotation, | 2854 | oi->out_width, oi->out_height, oi->color_mode, oi->rotation, |
| @@ -4304,8 +4304,8 @@ static void dispc_errata_i734_wa(void) | |||
| 4304 | REG_FLD_MOD(DISPC_CONFIG, 0x1f, 8, 4); | 4304 | REG_FLD_MOD(DISPC_CONFIG, 0x1f, 8, 4); |
| 4305 | 4305 | ||
| 4306 | /* Setup and enable GFX plane */ | 4306 | /* Setup and enable GFX plane */ |
| 4307 | dispc_ovl_set_channel_out(OMAP_DSS_GFX, OMAP_DSS_CHANNEL_LCD); | 4307 | dispc_ovl_setup(OMAP_DSS_GFX, &ovli, &i734.vm, false, |
| 4308 | dispc_ovl_setup(OMAP_DSS_GFX, &ovli, &i734.vm, false); | 4308 | OMAP_DSS_CHANNEL_LCD); |
| 4309 | dispc_ovl_enable(OMAP_DSS_GFX, true); | 4309 | dispc_ovl_enable(OMAP_DSS_GFX, true); |
| 4310 | 4310 | ||
| 4311 | /* Set up and enable display manager for LCD1 */ | 4311 | /* Set up and enable display manager for LCD1 */ |
| @@ -4372,7 +4372,6 @@ static const struct dispc_ops dispc_ops = { | |||
| 4372 | .mgr_set_gamma = dispc_mgr_set_gamma, | 4372 | .mgr_set_gamma = dispc_mgr_set_gamma, |
| 4373 | 4373 | ||
| 4374 | .ovl_enable = dispc_ovl_enable, | 4374 | .ovl_enable = dispc_ovl_enable, |
| 4375 | .ovl_set_channel_out = dispc_ovl_set_channel_out, | ||
| 4376 | .ovl_setup = dispc_ovl_setup, | 4375 | .ovl_setup = dispc_ovl_setup, |
| 4377 | .ovl_get_color_modes = dispc_ovl_get_color_modes, | 4376 | .ovl_get_color_modes = dispc_ovl_get_color_modes, |
| 4378 | }; | 4377 | }; |
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h index 0df19bac56cf..72b0a508de67 100644 --- a/drivers/gpu/drm/omapdrm/dss/omapdss.h +++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h | |||
| @@ -912,11 +912,10 @@ struct dispc_ops { | |||
| 912 | unsigned int length); | 912 | unsigned int length); |
| 913 | 913 | ||
| 914 | int (*ovl_enable)(enum omap_plane_id plane, bool enable); | 914 | int (*ovl_enable)(enum omap_plane_id plane, bool enable); |
| 915 | void (*ovl_set_channel_out)(enum omap_plane_id plane, | ||
| 916 | enum omap_channel channel); | ||
| 917 | int (*ovl_setup)(enum omap_plane_id plane, | 915 | int (*ovl_setup)(enum omap_plane_id plane, |
| 918 | const struct omap_overlay_info *oi, | 916 | const struct omap_overlay_info *oi, |
| 919 | const struct videomode *vm, bool mem_to_mem); | 917 | const struct videomode *vm, bool mem_to_mem, |
| 918 | enum omap_channel channel); | ||
| 920 | 919 | ||
| 921 | enum omap_color_mode (*ovl_get_color_modes)(enum omap_plane_id plane); | 920 | enum omap_color_mode (*ovl_get_color_modes)(enum omap_plane_id plane); |
| 922 | }; | 921 | }; |
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c index a55e7db7e445..8b343aa84098 100644 --- a/drivers/gpu/drm/omapdrm/omap_plane.c +++ b/drivers/gpu/drm/omapdrm/omap_plane.c | |||
| @@ -105,12 +105,10 @@ static void omap_plane_atomic_update(struct drm_plane *plane, | |||
| 105 | DBG("%d,%d %pad %pad", info.pos_x, info.pos_y, | 105 | DBG("%d,%d %pad %pad", info.pos_x, info.pos_y, |
| 106 | &info.paddr, &info.p_uv_addr); | 106 | &info.paddr, &info.p_uv_addr); |
| 107 | 107 | ||
| 108 | priv->dispc_ops->ovl_set_channel_out(omap_plane->id, | ||
| 109 | omap_crtc_channel(state->crtc)); | ||
| 110 | |||
| 111 | /* and finally, update omapdss: */ | 108 | /* and finally, update omapdss: */ |
| 112 | ret = priv->dispc_ops->ovl_setup(omap_plane->id, &info, | 109 | ret = priv->dispc_ops->ovl_setup(omap_plane->id, &info, |
| 113 | omap_crtc_timings(state->crtc), false); | 110 | omap_crtc_timings(state->crtc), false, |
| 111 | omap_crtc_channel(state->crtc)); | ||
| 114 | if (ret) { | 112 | if (ret) { |
| 115 | dev_err(plane->dev->dev, "Failed to setup plane %s\n", | 113 | dev_err(plane->dev->dev, "Failed to setup plane %s\n", |
| 116 | omap_plane->name); | 114 | omap_plane->name); |
