diff options
author | Rob Clark <robdclark@gmail.com> | 2013-08-30 13:02:15 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-09-02 10:23:35 +1000 |
commit | a3376e3ec81c5dd0622cbc187db76d2824d31c1c (patch) | |
tree | 22e4e13c73905a624692cbfd7c7a560d79597b67 /drivers/gpu/drm/msm/mdp4 | |
parent | 3b336ec4c5460833ad7573d0b6e22793f6a389ab (diff) |
drm/msm: convert to drm_bridge
Drop the msm_connector base class, and special calls to base class
methods from the encoder, and use instead drm_bridge. This allows for a
cleaner division between the hdmi (and in future dsi) blocks, from the
mdp block.
Signed-off-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/msm/mdp4')
-rw-r--r-- | drivers/gpu/drm/msm/mdp4/mdp4_dtv_encoder.c | 12 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/mdp4/mdp4_kms.c | 9 |
2 files changed, 3 insertions, 18 deletions
diff --git a/drivers/gpu/drm/msm/mdp4/mdp4_dtv_encoder.c b/drivers/gpu/drm/msm/mdp4/mdp4_dtv_encoder.c index 06d49e309d34..5e0dcae70ab5 100644 --- a/drivers/gpu/drm/msm/mdp4/mdp4_dtv_encoder.c +++ b/drivers/gpu/drm/msm/mdp4/mdp4_dtv_encoder.c @@ -18,7 +18,6 @@ #include <mach/clk.h> #include "mdp4_kms.h" -#include "msm_connector.h" #include "drm_crtc.h" #include "drm_crtc_helper.h" @@ -101,7 +100,6 @@ static void mdp4_dtv_encoder_dpms(struct drm_encoder *encoder, int mode) { struct drm_device *dev = encoder->dev; struct mdp4_dtv_encoder *mdp4_dtv_encoder = to_mdp4_dtv_encoder(encoder); - struct msm_connector *msm_connector = get_connector(encoder); struct mdp4_kms *mdp4_kms = get_kms(encoder); bool enabled = (mode == DRM_MODE_DPMS_ON); @@ -116,9 +114,6 @@ static void mdp4_dtv_encoder_dpms(struct drm_encoder *encoder, int mode) bs_set(mdp4_dtv_encoder, 1); - if (msm_connector) - msm_connector->funcs->dpms(msm_connector, mode); - DBG("setting src_clk=%lu", pc); ret = clk_set_rate(mdp4_dtv_encoder->src_clk, pc); @@ -150,9 +145,6 @@ static void mdp4_dtv_encoder_dpms(struct drm_encoder *encoder, int mode) clk_disable_unprepare(mdp4_dtv_encoder->hdmi_clk); clk_disable_unprepare(mdp4_dtv_encoder->mdp_clk); - if (msm_connector) - msm_connector->funcs->dpms(msm_connector, mode); - bs_set(mdp4_dtv_encoder, 0); } @@ -171,7 +163,6 @@ static void mdp4_dtv_encoder_mode_set(struct drm_encoder *encoder, struct drm_display_mode *adjusted_mode) { struct mdp4_dtv_encoder *mdp4_dtv_encoder = to_mdp4_dtv_encoder(encoder); - struct msm_connector *msm_connector = get_connector(encoder); struct mdp4_kms *mdp4_kms = get_kms(encoder); uint32_t dtv_hsync_skew, vsync_period, vsync_len, ctrl_pol; uint32_t display_v_start, display_v_end; @@ -230,9 +221,6 @@ static void mdp4_dtv_encoder_mode_set(struct drm_encoder *encoder, MDP4_DTV_ACTIVE_HCTL_END(0)); mdp4_write(mdp4_kms, REG_MDP4_DTV_ACTIVE_VSTART, 0); mdp4_write(mdp4_kms, REG_MDP4_DTV_ACTIVE_VEND, 0); - - if (msm_connector) - msm_connector->funcs->mode_set(msm_connector, mode); } static void mdp4_dtv_encoder_prepare(struct drm_encoder *encoder) diff --git a/drivers/gpu/drm/msm/mdp4/mdp4_kms.c b/drivers/gpu/drm/msm/mdp4/mdp4_kms.c index 960cd894da78..5db5bbaedae2 100644 --- a/drivers/gpu/drm/msm/mdp4/mdp4_kms.c +++ b/drivers/gpu/drm/msm/mdp4/mdp4_kms.c @@ -191,7 +191,6 @@ static int modeset_init(struct mdp4_kms *mdp4_kms) struct drm_plane *plane; struct drm_crtc *crtc; struct drm_encoder *encoder; - struct drm_connector *connector; int ret; /* @@ -224,13 +223,11 @@ static int modeset_init(struct mdp4_kms *mdp4_kms) encoder->possible_crtcs = 0x1; /* DTV can be hooked to DMA_E */ priv->encoders[priv->num_encoders++] = encoder; - connector = hdmi_connector_init(dev, encoder); - if (IS_ERR(connector)) { - dev_err(dev->dev, "failed to construct HDMI connector\n"); - ret = PTR_ERR(connector); + ret = hdmi_init(dev, encoder); + if (ret) { + dev_err(dev->dev, "failed to initialize HDMI\n"); goto fail; } - priv->connectors[priv->num_connectors++] = connector; return 0; |