From patchwork Mon Feb 3 15:13:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?VmlsbGUgU3lyasOkbMOk?= X-Patchwork-Id: 11362883 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DDD08138D for ; Mon, 3 Feb 2020 15:13:50 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C669121741 for ; Mon, 3 Feb 2020 15:13:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C669121741 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 54E226EC26; Mon, 3 Feb 2020 15:13:49 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3F87B6EC1E; Mon, 3 Feb 2020 15:13:47 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Feb 2020 07:13:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,398,1574150400"; d="scan'208";a="234702100" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga006.jf.intel.com with SMTP; 03 Feb 2020 07:13:44 -0800 Received: by stinkbox (sSMTP sendmail emulation); Mon, 03 Feb 2020 17:13:43 +0200 From: Ville Syrjala To: dri-devel@lists.freedesktop.org Subject: [PATCH 00/26] drm/i915: Pimp DP DFP handling Date: Mon, 3 Feb 2020 17:13:17 +0200 Message-Id: <20200203151343.14378-1-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.24.1 MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" From: Ville Syrjälä Attempt to deal with DP downstream facing ports (DFP) more thoroughly. This involves reading more of the port caps and dealing with various clock/bpc limitations. Also we try to hook up the DP dual mode dongles into the mix (unfortunately I've not yet seen a DP++ DFP that would pass the dual mode adapter register i2c accesses through). And we try to enable YCbCr 444->420 conversion for HDMI DFPs which could allow some 4k displays to actually use 4k on pre-icl hardware (which doesn't have native 420 output), assuming we don't run into some other hardware limits. It's a bit on the large side but since it looks like other people are poking around the same area I figured I'd post the entire thing. Entire series available here: git://github.com/vsyrjala/linux.git dp_downstream_ports_5 Ville Syrjälä (26): drm/i915: Nuke pre-production GLK HDMI w/a 1139 drm/i915: Limit display Wa_1405510057 to gen11 drm/i915: Drop WaDDIIOTimeout:glk drm/i915: Add glk to intel_detect_preproduction_hw() drm/dp: Include the AUX CH name in the debug messages drm/i915/lspcon: Do not send infoframes to non-HDMI sinks drm/dp: Define protocol converter DPCD registers drm/dp: Define more downstream facing port caps drm/i915: Reworkd DFP max bpc handling drm/dp: Add helpers to identify downstream facing port types drm/dp: Pimp drm_dp_downstream_max_bpc() drm/dp: Redo drm_dp_downstream_max_clock() as drm_dp_downstream_max_dotclock() drm/i915: Reworkd DP DFP clock handling drm/i915: Dump downstream facing port caps drm/dp: Add drm_dp_downstream_{min,max}_tmds_clock() drm/i915: Deal with TMDS DFP clock limits drm/i915: Configure DP 1.3+ protocol converted HDMI mode drm/dp: Add drm_dp_downstream_mode() drm/i915: Handle downstream facing ports w/o EDID drm/i915: Extract intel_hdmi_has_audio() drm/i915: DP->HDMI TMDS clock limits vs. deep color drm/dp: Add helpers for DFP YCbCr 4:2:0 handling drm/i915: Do YCbCr 444->420 conversion via DP protocol converters drm/i915: Decouple DP++ from the HDMI code drm/i915: Try to probe DP++ dongles on DP++ downstream facing ports drm/i915: Try to frob the TMDS buffer enable knob on DP++ dongles on DP DFPs drivers/gpu/drm/drm_dp_helper.c | 409 +++++++++++++++--- drivers/gpu/drm/drm_edid.c | 21 + drivers/gpu/drm/i915/display/intel_ddi.c | 23 +- .../drm/i915/display/intel_display_types.h | 22 +- drivers/gpu/drm/i915/display/intel_dp.c | 367 ++++++++++++++-- drivers/gpu/drm/i915/display/intel_dp.h | 1 + drivers/gpu/drm/i915/display/intel_hdmi.c | 181 ++++---- drivers/gpu/drm/i915/display/intel_hdmi.h | 11 +- drivers/gpu/drm/i915/i915_debugfs.c | 4 +- drivers/gpu/drm/i915/i915_drv.c | 1 + drivers/gpu/drm/i915/i915_drv.h | 2 + drivers/gpu/drm/i915/intel_pm.c | 10 - include/drm/drm_dp_helper.h | 63 ++- include/drm/drm_edid.h | 4 + 14 files changed, 904 insertions(+), 215 deletions(-)