[Intel-gfx] [PATCH 1/2] drm/i915: Use same DPLL calculation logic to calculate the LVDS downclock and normal clock

ykzhao yakui.zhao at intel.com
Mon Dec 21 01:55:00 CET 2009


On Tue, 2009-12-15 at 21:13 +0800, Zhao, Yakui wrote:
> From: Zhao Yakui <yakui.zhao at intel.com>
> 
Hi, Eric
    Any comment about this patch?
    
thanks.
    Yakui
> Now when the reduced downclock is found for LVDS, we will use find_reduced_pll
> callback function to calculate the corresponding DPLL parameter(M/N/P)for
> reduced downclock. In this function we will use the dividor factor(P) obtained 
> for the normal clock to calculate the DPLL parameter(M/N). It is not
> appropriate.
> 
> According to the spec only one M/N/P combination is appropriate for one given
> clock regardless of normal clock or reduced downclock. This M/N/P combination
> is defined in one spreadsheet(Of course our code uses the find_pll callback
> function to calculate the M/N/P instead of looking up it in table). In theory
> we should get the same DPLL divider factor(P) for the normal clock and reduced
> downclock when the LVDS reduced downclock is found on one laptop.
> If we get the diferent divider factor(P) for normal clock and reduced
> clock, the reduced downclock is incorrect and should be discarded.
> 
> So we should use find_pll callback to calculate the DPLL parameter for the
> LVDS reduced downclock as for the normal clock.
> 
> Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
> cc: Jesse Barnes <jbarnes at virtuousgeek.org>
> cc: Matthew Garrett <mjg at redhat.com>
> ---
>  drivers/gpu/drm/i915/intel_display.c |    6 ++----
>  1 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 279dc96..1ad2fd9 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -2906,10 +2906,8 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
>  		return -EINVAL;
>  	}
>  
> -	if (is_lvds && limit->find_reduced_pll &&
> -			dev_priv->lvds_downclock_avail) {
> -		memcpy(&reduced_clock, &clock, sizeof(intel_clock_t));
> -		has_reduced_clock = limit->find_reduced_pll(limit, crtc,
> +	if (is_lvds && dev_priv->lvds_downclock_avail) {
> +		has_reduced_clock = limit->find_pll(limit, crtc,
>  							    dev_priv->lvds_downclock,
>  							    refclk,
>  							    &reduced_clock);




More information about the Intel-gfx mailing list