Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752392AbbG1QDh (ORCPT ); Tue, 28 Jul 2015 12:03:37 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41633 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751865AbbG1QDf (ORCPT ); Tue, 28 Jul 2015 12:03:35 -0400 From: Benjamin Tissoires To: Daniel Vetter Cc: =?UTF-8?q?St=C3=A9phane=20Marchesin?= , Todd Broch , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, Benjamin Tissoires Subject: [PATCH 0/3] drm/i915: fix USB Type-C reversed connector Date: Tue, 28 Jul 2015 12:03:26 -0400 Message-Id: <1438099409-25456-1-git-send-email-benjamin.tissoires@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2314 Lines: 56 Hi, plugging a USB Type-C to HDMI adapter on a Chromebook Pixel 2015 works only if the HDMI port is in its normal (not reverted) state. Theorically, the USB chip should provide the information whether or not the lane are resversed, but I could not find anything in the Intel PRM regarding this. So use the technical solution implemented in ChromeOS by Stéphane and Todd: try to train one lane in the normal setting, if it doesn't work, then chances are that the lane are reverted. The ChromeOS commits are: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/e8c654a0a6d466b3a7b0e84fd27e3a7236a2243e https://chromium.googlesource.com/chromiumos/third_party/kernel/+/4fed50fad79ba3fde782d913bac2968b2d0262bc If I could have a Signed-off-by by Stéphane and Todd, that would be even better :) I should also note that while testing this, I discovered 2 regressions in drm-intel-nightly: - b432e5cfd (drm/i915: BDW clock change support): this one prevents the Broadwell-U GPU to correctly set the clock when we connect a 4K monitor over HDMI (30.0 Hz) Using a lower resolution works (the internal display is 2560x1700) I ended up disabling in intel_display.c all of the codes that are broadwell specific, and the default are just working. - aaf5ec2e5 (drm/i915: Handle HPD when it has actually occurred): this one raises a storm of errors: [drm:gen8_irq_handler [i915]] *ERROR* The master control interrupt lied (SDE)! This doesn't seems to affect the DP output, but having that many errors is not always a good sign IMO :) Reverting this commit makes them go away. Cheers, Benjamin Benjamin Tissoires (3): drm/i915: add parameters to dp_start_link_train and dp_complete_link_train drm/i915: hide errors when probing for a reverse display port drm/i915: Support DDI lane reversal for DP drivers/gpu/drm/i915/intel_ddi.c | 13 +++ drivers/gpu/drm/i915/intel_dp.c | 173 ++++++++++++++++++++++++++++++--------- drivers/gpu/drm/i915/intel_drv.h | 1 + 3 files changed, 149 insertions(+), 38 deletions(-) -- 2.4.3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/