diff mbox

Revert "drm/i915: reverse dp link param selection, prefer fast over wide again"

Message ID 1405299879-20093-1-git-send-email-airlied@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dave Airlie July 14, 2014, 1:04 a.m. UTC
From: Dave Airlie <airlied@redhat.com>

This reverts commit 38aecea0ccbb909d635619cba22f1891e589b434.

This breaks Haswell Thinkpad + Lenovo dock in SST mode with a HDMI monitor attached.

Before this we can 1920x1200 mode, after this we only ever get 1024x768, and
a lot of deferring.

This didn't revert clean, but this should be fine.

bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1117008
Cc: stable@vger.kernel.org # v3.15
Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Daniel Vetter July 14, 2014, 7:02 a.m. UTC | #1
On Mon, Jul 14, 2014 at 11:04:39AM +1000, Dave Airlie wrote:
> From: Dave Airlie <airlied@redhat.com>
> 
> This reverts commit 38aecea0ccbb909d635619cba22f1891e589b434.
> 
> This breaks Haswell Thinkpad + Lenovo dock in SST mode with a HDMI monitor attached.
> 
> Before this we can 1920x1200 mode, after this we only ever get 1024x768, and
> a lot of deferring.
> 
> This didn't revert clean, but this should be fine.
> 
> bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1117008
> Cc: stable@vger.kernel.org # v3.15
> Signed-off-by: Dave Airlie <airlied@redhat.com>

Ugh, painful. Iirc your revert here wins on first-regression grounds, but
I'd like to first try whether we can do better.

Paulo, can you please take a look? Iirc it's a hsw, but I guess Dave can
throw logs at you.
-Daniel

> ---
>  drivers/gpu/drm/i915/intel_dp.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 2a00cb8..61963d3 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -833,8 +833,8 @@ intel_dp_compute_config(struct intel_encoder *encoder,
>  		mode_rate = intel_dp_link_required(adjusted_mode->crtc_clock,
>  						   bpp);
>  
> -		for (lane_count = min_lane_count; lane_count <= max_lane_count; lane_count <<= 1) {
> -			for (clock = min_clock; clock <= max_clock; clock++) {
> +		for (clock = min_clock; clock <= max_clock; clock++) {
> +			for (lane_count = min_lane_count; lane_count <= max_lane_count; lane_count <<= 1) {
>  				link_clock = drm_dp_bw_code_to_link_rate(bws[clock]);
>  				link_avail = intel_dp_max_data_rate(link_clock,
>  								    lane_count);
> -- 
> 1.9.3
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Daniel Vetter July 14, 2014, 9:18 p.m. UTC | #2
On Mon, Jul 14, 2014 at 11:04:39AM +1000, Dave Airlie wrote:
> From: Dave Airlie <airlied@redhat.com>
> 
> This reverts commit 38aecea0ccbb909d635619cba22f1891e589b434.
> 
> This breaks Haswell Thinkpad + Lenovo dock in SST mode with a HDMI monitor attached.
> 
> Before this we can 1920x1200 mode, after this we only ever get 1024x768, and
> a lot of deferring.
> 
> This didn't revert clean, but this should be fine.
> 
> bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1117008
> Cc: stable@vger.kernel.org # v3.15
> Signed-off-by: Dave Airlie <airlied@redhat.com>

Picked up for -fixes, thanks for the patch. We've carried around the
bdw-specific hack

commit f4cdbc21444a45d207a8dc175f44d2facfbd0845
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Wed May 14 13:02:19 2014 +0300

    drm/i915/dp: force eDP lane count to max available lanes on BDW

since a few months, the original patch is even older and yes, hsw is also
affected here. And nothing happened. It's time to give up an revert.
-Daniel

> ---
>  drivers/gpu/drm/i915/intel_dp.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 2a00cb8..61963d3 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -833,8 +833,8 @@ intel_dp_compute_config(struct intel_encoder *encoder,
>  		mode_rate = intel_dp_link_required(adjusted_mode->crtc_clock,
>  						   bpp);
>  
> -		for (lane_count = min_lane_count; lane_count <= max_lane_count; lane_count <<= 1) {
> -			for (clock = min_clock; clock <= max_clock; clock++) {
> +		for (clock = min_clock; clock <= max_clock; clock++) {
> +			for (lane_count = min_lane_count; lane_count <= max_lane_count; lane_count <<= 1) {
>  				link_clock = drm_dp_bw_code_to_link_rate(bws[clock]);
>  				link_avail = intel_dp_max_data_rate(link_clock,
>  								    lane_count);
> -- 
> 1.9.3
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 2a00cb8..61963d3 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -833,8 +833,8 @@  intel_dp_compute_config(struct intel_encoder *encoder,
 		mode_rate = intel_dp_link_required(adjusted_mode->crtc_clock,
 						   bpp);
 
-		for (lane_count = min_lane_count; lane_count <= max_lane_count; lane_count <<= 1) {
-			for (clock = min_clock; clock <= max_clock; clock++) {
+		for (clock = min_clock; clock <= max_clock; clock++) {
+			for (lane_count = min_lane_count; lane_count <= max_lane_count; lane_count <<= 1) {
 				link_clock = drm_dp_bw_code_to_link_rate(bws[clock]);
 				link_avail = intel_dp_max_data_rate(link_clock,
 								    lane_count);