diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_tv.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_tv.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index d808421c1c80..66737265200f 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c | |||
@@ -905,11 +905,10 @@ intel_tv_mode_valid(struct drm_connector *connector, | |||
905 | 905 | ||
906 | 906 | ||
907 | static bool | 907 | static bool |
908 | intel_tv_mode_fixup(struct drm_encoder *encoder, | 908 | intel_tv_compute_config(struct intel_encoder *encoder, |
909 | const struct drm_display_mode *mode, | 909 | struct intel_crtc_config *pipe_config) |
910 | struct drm_display_mode *adjusted_mode) | ||
911 | { | 910 | { |
912 | struct intel_tv *intel_tv = enc_to_intel_tv(encoder); | 911 | struct intel_tv *intel_tv = enc_to_intel_tv(&encoder->base); |
913 | const struct tv_mode *tv_mode = intel_tv_mode_find(intel_tv); | 912 | const struct tv_mode *tv_mode = intel_tv_mode_find(intel_tv); |
914 | 913 | ||
915 | if (!tv_mode) | 914 | if (!tv_mode) |
@@ -918,7 +917,10 @@ intel_tv_mode_fixup(struct drm_encoder *encoder, | |||
918 | if (intel_encoder_check_is_cloned(&intel_tv->base)) | 917 | if (intel_encoder_check_is_cloned(&intel_tv->base)) |
919 | return false; | 918 | return false; |
920 | 919 | ||
921 | adjusted_mode->clock = tv_mode->clock; | 920 | pipe_config->adjusted_mode.clock = tv_mode->clock; |
921 | DRM_DEBUG_KMS("forcing bpc to 8 for TV\n"); | ||
922 | pipe_config->pipe_bpp = 8*3; | ||
923 | |||
922 | return true; | 924 | return true; |
923 | } | 925 | } |
924 | 926 | ||
@@ -1485,7 +1487,6 @@ out: | |||
1485 | } | 1487 | } |
1486 | 1488 | ||
1487 | static const struct drm_encoder_helper_funcs intel_tv_helper_funcs = { | 1489 | static const struct drm_encoder_helper_funcs intel_tv_helper_funcs = { |
1488 | .mode_fixup = intel_tv_mode_fixup, | ||
1489 | .mode_set = intel_tv_mode_set, | 1490 | .mode_set = intel_tv_mode_set, |
1490 | }; | 1491 | }; |
1491 | 1492 | ||
@@ -1620,6 +1621,7 @@ intel_tv_init(struct drm_device *dev) | |||
1620 | drm_encoder_init(dev, &intel_encoder->base, &intel_tv_enc_funcs, | 1621 | drm_encoder_init(dev, &intel_encoder->base, &intel_tv_enc_funcs, |
1621 | DRM_MODE_ENCODER_TVDAC); | 1622 | DRM_MODE_ENCODER_TVDAC); |
1622 | 1623 | ||
1624 | intel_encoder->compute_config = intel_tv_compute_config; | ||
1623 | intel_encoder->enable = intel_enable_tv; | 1625 | intel_encoder->enable = intel_enable_tv; |
1624 | intel_encoder->disable = intel_disable_tv; | 1626 | intel_encoder->disable = intel_disable_tv; |
1625 | intel_encoder->get_hw_state = intel_tv_get_hw_state; | 1627 | intel_encoder->get_hw_state = intel_tv_get_hw_state; |