Commit 7e3d9274 authored by Tomi Valkeinen's avatar Tomi Valkeinen

drm/omap: refactor CRTC HW property setup

The current driver doesn't expose any of the CRTC HW properties like
background color or transparency key, and sets them at CRTC enable time.

Refactor this into a separate function and call that function from
omap_crtc_atomic_flush(). This is the behavior we want when the
properties can be configured, so this patch makes it easier to add
patches later which implement those properties.
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 7d267f06
...@@ -198,15 +198,7 @@ static void omap_crtc_set_enabled(struct drm_crtc *crtc, bool enable) ...@@ -198,15 +198,7 @@ static void omap_crtc_set_enabled(struct drm_crtc *crtc, bool enable)
static int omap_crtc_dss_enable(enum omap_channel channel) static int omap_crtc_dss_enable(enum omap_channel channel)
{ {
struct omap_crtc *omap_crtc = omap_crtcs[channel]; struct omap_crtc *omap_crtc = omap_crtcs[channel];
struct omap_overlay_manager_info info;
memset(&info, 0, sizeof(info));
info.default_color = 0x00000000;
info.trans_key = 0x00000000;
info.trans_key_type = OMAP_DSS_COLOR_KEY_GFX_DST;
info.trans_enabled = false;
dispc_mgr_setup(omap_crtc->channel, &info);
dispc_mgr_set_timings(omap_crtc->channel, dispc_mgr_set_timings(omap_crtc->channel,
&omap_crtc->vm); &omap_crtc->vm);
omap_crtc_set_enabled(&omap_crtc->base, true); omap_crtc_set_enabled(&omap_crtc->base, true);
...@@ -313,6 +305,21 @@ void omap_crtc_vblank_irq(struct drm_crtc *crtc) ...@@ -313,6 +305,21 @@ void omap_crtc_vblank_irq(struct drm_crtc *crtc)
DBG("%s: apply done", omap_crtc->name); DBG("%s: apply done", omap_crtc->name);
} }
static void omap_crtc_write_crtc_properties(struct drm_crtc *crtc)
{
struct omap_crtc *omap_crtc = to_omap_crtc(crtc);
struct omap_overlay_manager_info info;
memset(&info, 0, sizeof(info));
info.default_color = 0x000000;
info.trans_enabled = false;
info.partial_alpha_enabled = false;
info.cpr_enable = false;
dispc_mgr_setup(omap_crtc->channel, &info);
}
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* CRTC Functions * CRTC Functions
*/ */
...@@ -410,6 +417,8 @@ static void omap_crtc_atomic_flush(struct drm_crtc *crtc, ...@@ -410,6 +417,8 @@ static void omap_crtc_atomic_flush(struct drm_crtc *crtc,
dispc_mgr_set_gamma(omap_crtc->channel, lut, length); dispc_mgr_set_gamma(omap_crtc->channel, lut, length);
} }
omap_crtc_write_crtc_properties(crtc);
/* Only flush the CRTC if it is currently enabled. */ /* Only flush the CRTC if it is currently enabled. */
if (!omap_crtc->enabled) if (!omap_crtc->enabled)
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment