From patchwork Fri Sep 4 11:53:36 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: 11756893 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 68FD892C for ; Fri, 4 Sep 2020 11:54:05 +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 51990214F1 for ; Fri, 4 Sep 2020 11:54:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 51990214F1 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 DA6256EB49; Fri, 4 Sep 2020 11:53:59 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3777B6EB46; Fri, 4 Sep 2020 11:53:58 +0000 (UTC) IronPort-SDR: HAvs6YeKQu8lvctGWEnQ0qC8CmBeyyRPPCw/3/KVqNaj2SYse6S4OY2fuTRy8I34TBMTrcTpgy T7fq9Km8ebCg== X-IronPort-AV: E=McAfee;i="6000,8403,9733"; a="145430537" X-IronPort-AV: E=Sophos;i="5.76,389,1592895600"; d="scan'208";a="145430537" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Sep 2020 04:53:57 -0700 IronPort-SDR: cSJP0Wz2YyDI6wfQ64d+Xj/sQpO3csNjuKnHSvOsgiJqNFtWWKsH16OmvFvivaNsd9zJr1OFad /dZxRodfpPYg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,389,1592895600"; d="scan'208";a="339669593" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by FMSMGA003.fm.intel.com with SMTP; 04 Sep 2020 04:53:55 -0700 Received: by stinkbox (sSMTP sendmail emulation); Fri, 04 Sep 2020 14:53:54 +0300 From: Ville Syrjala To: dri-devel@lists.freedesktop.org Subject: [PATCH v2 00/18] drm/i915: Pimp DP DFP handling Date: Fri, 4 Sep 2020 14:53:36 +0300 Message-Id: <20200904115354.25336-1-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.26.2 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. 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. I dropped my earlier patches to also hook in the DP dual mode adapter probing since sadly I've not actually seen a DP->DP++ dongle that passes through the i2c traffic for those. Only pimped the SST side of things. Not sure what would be required to get it all working for MST. Ville Syrjälä (18): drm/dp: Dump downstream facing port caps 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/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 drivers/gpu/drm/drm_dp_helper.c | 382 +++++++++++++++--- drivers/gpu/drm/drm_edid.c | 19 + drivers/gpu/drm/i915/display/intel_ddi.c | 11 +- .../drm/i915/display/intel_display_debugfs.c | 3 +- .../drm/i915/display/intel_display_types.h | 9 + drivers/gpu/drm/i915/display/intel_dp.c | 304 +++++++++++--- drivers/gpu/drm/i915/display/intel_dp.h | 1 + drivers/gpu/drm/i915/display/intel_hdmi.c | 82 ++-- drivers/gpu/drm/i915/display/intel_hdmi.h | 2 + include/drm/drm_dp_helper.h | 63 ++- include/drm/drm_edid.h | 4 + 11 files changed, 738 insertions(+), 142 deletions(-) Reviewed-by: Lyude Paul