OSDN Git Service

drm/rockchip: dw_hdmi: use encoder enable function
authorMark Yao <mark.yao@rock-chips.com>
Mon, 30 Nov 2015 10:41:06 +0000 (18:41 +0800)
committerMark Yao <mark.yao@rock-chips.com>
Mon, 28 Dec 2015 00:57:16 +0000 (08:57 +0800)
encoder.enable is more compatible to atomic api than encoder.prepare/commit

Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c

index bddcabd..c65ce8c 100644 (file)
@@ -195,12 +195,15 @@ static void dw_hdmi_rockchip_encoder_mode_set(struct drm_encoder *encoder,
 {
 }
 
-static void dw_hdmi_rockchip_encoder_commit(struct drm_encoder *encoder)
+static void dw_hdmi_rockchip_encoder_enable(struct drm_encoder *encoder)
 {
        struct rockchip_hdmi *hdmi = to_rockchip_hdmi(encoder);
        u32 val;
        int mux;
 
+       rockchip_drm_crtc_mode_config(encoder->crtc, DRM_MODE_CONNECTOR_HDMIA,
+                                     ROCKCHIP_OUT_MODE_AAAA);
+
        mux = rockchip_drm_encoder_get_mux_id(hdmi->dev->of_node, encoder);
        if (mux)
                val = HDMI_SEL_VOP_LIT | (HDMI_SEL_VOP_LIT << 16);
@@ -212,17 +215,10 @@ static void dw_hdmi_rockchip_encoder_commit(struct drm_encoder *encoder)
                (mux) ? "LIT" : "BIG");
 }
 
-static void dw_hdmi_rockchip_encoder_prepare(struct drm_encoder *encoder)
-{
-       rockchip_drm_crtc_mode_config(encoder->crtc, DRM_MODE_CONNECTOR_HDMIA,
-                                     ROCKCHIP_OUT_MODE_AAAA);
-}
-
 static const struct drm_encoder_helper_funcs dw_hdmi_rockchip_encoder_helper_funcs = {
        .mode_fixup = dw_hdmi_rockchip_encoder_mode_fixup,
        .mode_set   = dw_hdmi_rockchip_encoder_mode_set,
-       .prepare    = dw_hdmi_rockchip_encoder_prepare,
-       .commit     = dw_hdmi_rockchip_encoder_commit,
+       .enable     = dw_hdmi_rockchip_encoder_enable,
        .disable    = dw_hdmi_rockchip_encoder_disable,
 };