diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-07-21 15:37:02 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-08-04 15:25:22 -0400 |
commit | cd91ef23c426fe5aeee6ca8090551547b3a8795e (patch) | |
tree | facbdc9b46c2b75db5da6fd884eea1f54a0cd78f /drivers/gpu/drm/i915/intel_tv.c | |
parent | 8aca63aae07681a0c9a2a0ebcca82ca5f7f6aa08 (diff) |
drm/i915/tv: Use native encoder->mode_set callback
Also switch to intel_encoder for the upcast helper while at it.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_tv.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_tv.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index b0b446f630f7..f2c6d7909ae2 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c | |||
@@ -823,16 +823,14 @@ static const struct tv_mode tv_modes[] = { | |||
823 | }, | 823 | }, |
824 | }; | 824 | }; |
825 | 825 | ||
826 | static struct intel_tv *enc_to_intel_tv(struct drm_encoder *encoder) | 826 | static struct intel_tv *enc_to_tv(struct intel_encoder *encoder) |
827 | { | 827 | { |
828 | return container_of(encoder, struct intel_tv, base.base); | 828 | return container_of(encoder, struct intel_tv, base); |
829 | } | 829 | } |
830 | 830 | ||
831 | static struct intel_tv *intel_attached_tv(struct drm_connector *connector) | 831 | static struct intel_tv *intel_attached_tv(struct drm_connector *connector) |
832 | { | 832 | { |
833 | return container_of(intel_attached_encoder(connector), | 833 | return enc_to_tv(intel_attached_encoder(connector)); |
834 | struct intel_tv, | ||
835 | base); | ||
836 | } | 834 | } |
837 | 835 | ||
838 | static bool | 836 | static bool |
@@ -908,7 +906,7 @@ static bool | |||
908 | intel_tv_compute_config(struct intel_encoder *encoder, | 906 | intel_tv_compute_config(struct intel_encoder *encoder, |
909 | struct intel_crtc_config *pipe_config) | 907 | struct intel_crtc_config *pipe_config) |
910 | { | 908 | { |
911 | struct intel_tv *intel_tv = enc_to_intel_tv(&encoder->base); | 909 | struct intel_tv *intel_tv = enc_to_tv(encoder); |
912 | const struct tv_mode *tv_mode = intel_tv_mode_find(intel_tv); | 910 | const struct tv_mode *tv_mode = intel_tv_mode_find(intel_tv); |
913 | 911 | ||
914 | if (!tv_mode) | 912 | if (!tv_mode) |
@@ -921,15 +919,12 @@ intel_tv_compute_config(struct intel_encoder *encoder, | |||
921 | return true; | 919 | return true; |
922 | } | 920 | } |
923 | 921 | ||
924 | static void | 922 | static void intel_tv_mode_set(struct intel_encoder *encoder) |
925 | intel_tv_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, | ||
926 | struct drm_display_mode *adjusted_mode) | ||
927 | { | 923 | { |
928 | struct drm_device *dev = encoder->dev; | 924 | struct drm_device *dev = encoder->base.dev; |
929 | struct drm_i915_private *dev_priv = dev->dev_private; | 925 | struct drm_i915_private *dev_priv = dev->dev_private; |
930 | struct drm_crtc *crtc = encoder->crtc; | 926 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); |
931 | struct intel_crtc *intel_crtc = to_intel_crtc(crtc); | 927 | struct intel_tv *intel_tv = enc_to_tv(encoder); |
932 | struct intel_tv *intel_tv = enc_to_intel_tv(encoder); | ||
933 | const struct tv_mode *tv_mode = intel_tv_mode_find(intel_tv); | 928 | const struct tv_mode *tv_mode = intel_tv_mode_find(intel_tv); |
934 | u32 tv_ctl; | 929 | u32 tv_ctl; |
935 | u32 hctl1, hctl2, hctl3; | 930 | u32 hctl1, hctl2, hctl3; |
@@ -1487,10 +1482,6 @@ out: | |||
1487 | return ret; | 1482 | return ret; |
1488 | } | 1483 | } |
1489 | 1484 | ||
1490 | static const struct drm_encoder_helper_funcs intel_tv_helper_funcs = { | ||
1491 | .mode_set = intel_tv_mode_set, | ||
1492 | }; | ||
1493 | |||
1494 | static const struct drm_connector_funcs intel_tv_connector_funcs = { | 1485 | static const struct drm_connector_funcs intel_tv_connector_funcs = { |
1495 | .dpms = intel_connector_dpms, | 1486 | .dpms = intel_connector_dpms, |
1496 | .detect = intel_tv_detect, | 1487 | .detect = intel_tv_detect, |
@@ -1623,6 +1614,7 @@ intel_tv_init(struct drm_device *dev) | |||
1623 | DRM_MODE_ENCODER_TVDAC); | 1614 | DRM_MODE_ENCODER_TVDAC); |
1624 | 1615 | ||
1625 | intel_encoder->compute_config = intel_tv_compute_config; | 1616 | intel_encoder->compute_config = intel_tv_compute_config; |
1617 | intel_encoder->mode_set = intel_tv_mode_set; | ||
1626 | intel_encoder->enable = intel_enable_tv; | 1618 | intel_encoder->enable = intel_enable_tv; |
1627 | intel_encoder->disable = intel_disable_tv; | 1619 | intel_encoder->disable = intel_disable_tv; |
1628 | intel_encoder->get_hw_state = intel_tv_get_hw_state; | 1620 | intel_encoder->get_hw_state = intel_tv_get_hw_state; |
@@ -1644,7 +1636,6 @@ intel_tv_init(struct drm_device *dev) | |||
1644 | 1636 | ||
1645 | intel_tv->tv_format = tv_modes[initial_mode].name; | 1637 | intel_tv->tv_format = tv_modes[initial_mode].name; |
1646 | 1638 | ||
1647 | drm_encoder_helper_add(&intel_encoder->base, &intel_tv_helper_funcs); | ||
1648 | drm_connector_helper_add(connector, &intel_tv_connector_helper_funcs); | 1639 | drm_connector_helper_add(connector, &intel_tv_connector_helper_funcs); |
1649 | connector->interlace_allowed = false; | 1640 | connector->interlace_allowed = false; |
1650 | connector->doublescan_allowed = false; | 1641 | connector->doublescan_allowed = false; |