[Intel-gfx] [PATCH] i915: fix ironlake edp panel setup (v2)

Zhenyu Wang zhenyuw at linux.intel.com
Mon Jun 28 08:04:56 CEST 2010


On 2010.06.28 09:45:14 +1000, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
> 
> So the previous fix didn't work for everyone, I read the eDP spec and claims a 20% overhead for encoding, so make sure we take this into account when working out the bandwidth requirements.
> 
> This makes my eDP panel happy also, please test on others.
> 
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  drivers/gpu/drm/i915/intel_dp.c |   10 ++++++++--
>  1 files changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 6094e42..9830243 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -139,6 +139,12 @@ intel_dp_link_required(struct drm_device *dev,
>  }
>  
>  static int
> +intel_dp_max_data_rate(int max_link_clock, int max_lanes)
> +{
> +	return (max_link_clock * max_lanes * 8) / 10;
> +}
> +
> +static int
>  intel_dp_mode_valid(struct drm_connector *connector,
>  		    struct drm_display_mode *mode)
>  {
> @@ -148,7 +154,7 @@ intel_dp_mode_valid(struct drm_connector *connector,
>  	int max_lanes = intel_dp_max_lane_count(intel_encoder);
>  
>  	if (intel_dp_link_required(connector->dev, intel_encoder, mode->clock)
> -			> max_link_clock * max_lanes)
> +			> intel_dp_max_data_rate(max_link_clock, max_lanes))
>  		return MODE_CLOCK_HIGH;
>  
>  	if (mode->clock < 10000)
> @@ -509,7 +515,7 @@ intel_dp_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *mode,
>  
>  	for (lane_count = 1; lane_count <= max_lane_count; lane_count <<= 1) {
>  		for (clock = 0; clock <= max_clock; clock++) {
> -			int link_avail = intel_dp_link_clock(bws[clock]) * lane_count;
> +			int link_avail = intel_dp_max_data_rate(intel_dp_link_clock(bws[clock]), lane_count);
>  
>  			if (intel_dp_link_required(encoder->dev, intel_encoder, mode->clock)
>  					<= link_avail) {
> -- 

sorry, this is still broken on the 16x9 panel. 

'intel_dp_link_required' is 107840*18/8 = 242640, 'intel_dp_max_data_rate' is
270000*1*8/10 = 216000. So it will fail in both check.

-- 
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20100628/8530e874/attachment.sig>


More information about the Intel-gfx mailing list