On Wed, 30 May 2012 15:34:20 +0200, Daniel Vetter <daniel.vet...@ffwll.ch> 
wrote:
> Instead of abusing into mode->clock, because we should touch that
> one at all. First prep step to constify the mode argument to the
> intel_dp_mode_fixup function.
> 
> The next patch will stop us from modifying mode->clock.
> 
> Signed-Off-by: Daniel Vetter <daniel.vet...@ffwll.ch>
> ---
>  drivers/gpu/drm/i915/intel_display.c |   16 ++++++++--------
>  drivers/gpu/drm/i915/intel_dp.c      |   12 ++++++++++++
>  drivers/gpu/drm/i915/intel_drv.h     |    2 ++
>  3 files changed, 22 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c 
> b/drivers/gpu/drm/i915/intel_display.c
> index 9147894..a5d06ed 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -4431,16 +4431,8 @@ static int ironlake_crtc_mode_set(struct drm_crtc 
> *crtc,
>       /* CPU eDP doesn't require FDI link, so just set DP M/N
>          according to current link config */
>       if (is_cpu_edp) {
> -             target_clock = mode->clock;
>               intel_edp_link_config(edp_encoder, &lane, &link_bw);
>       } else {
> -             /* [e]DP over FDI requires target mode clock
> -                instead of link clock */
> -             if (is_dp)
> -                     target_clock = mode->clock;
> -             else
> -                     target_clock = adjusted_mode->clock;
> -
>               /* FDI is a binary signal running at ~2.7GHz, encoding
>                * each output octet as 10 bits. The actual frequency
>                * is stored as a divider into a 100MHz clock, and the
> @@ -4451,6 +4443,14 @@ static int ironlake_crtc_mode_set(struct drm_crtc 
> *crtc,
>               link_bw = intel_fdi_link_freq(dev) * MHz(100)/KHz(1)/10;
>       }
>  
> +     /* [e]DP over FDI requires target mode clock instead of link clock. */
> +     if (edp_encoder)
> +             target_clock = intel_edp_target_clock(edp_encoder, mode);

Given the edp_encoder, we know that adjusted_mode contains either the
fixed_panel clock or the original clock depending on whether a fixed
mode was found. So the layering violation could be dropped here in
favour of target_clock = adjusted_mode->clok.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to