Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp2944899pxy; Mon, 3 May 2021 11:25:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxQ2sQ+DiDtLZ10T8sF5Fs1sjObu8Xe+ceku6k7HnggUSSGqBPneQtBvhd1/aK7LPmasrHp X-Received: by 2002:a17:902:f2c2:b029:ed:929a:75bc with SMTP id h2-20020a170902f2c2b02900ed929a75bcmr21335976plc.0.1620066313701; Mon, 03 May 2021 11:25:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620066313; cv=none; d=google.com; s=arc-20160816; b=H4hU/cEuj1pyAnLHnl/ZS20yrWCYCcWVYVEIQXiAF1EVh2ztNvXlRkIB6zR0jivUir GiRehqfMabsyEreS2T6xtAGwSp9S/sz6ZoVoiEPULRjDlV7VfMI1GRqtfXSmQ6kqTOfZ uy2+4yTVf1ZL5cgv2Y8dw/8l1/buoRTEB68vfwBLFodxD8ck/E/sqYnkssdXu0Tbl7bp 6AE/WFXnGjxLKU1ASzWCAjU3YHUmYTk+V+tGCgy3EFfdinhnqXY6HV10FP8c5nPo0YF0 U/wIIm0Aal3SmwGnlsKuapYuPu8ojOarVJPjHyo6qh8TI/3/8lqhDu/uh0UO8V8lYhhN bZUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:to:from; bh=q+vKtrQFe71nG1uv7DTfVSRp17atwp8tX+l1mdc7hS4=; b=yyMzEIodMaIHyUHNSAzCOZXCj1d+BKjAvBTkPI8dX9LaomNFL4zrbQYaYTSJZ8q1Xn GZe5cUUCwHFp9aWdjCD0AfK791g1ZJ3LiF8tanXY3c3Ttmx6NYRzXjf6z3BHbsfb3MAu 0GnykdrPJtixMJ7d8f4SJO+zUxa/1ot0ArWoUgikOQuCyQo85riq0QLn3IOrP6rmDPde HiW6rQXUbDvEtBIcifTwr5/2xr5gwKHEqJrzHR2IkRFAqr37/80GfJHJT4wh8jV6vPvw vjlo86KG5ElBwlGA+enld9xRJy93GjjkQfJ++mO8vCjdHC6tL95W2iewrFez3qJmNiZV 9u+Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m3si13555636pfk.182.2021.05.03.11.25.00; Mon, 03 May 2021 11:25:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229849AbhECSXF (ORCPT + 99 others); Mon, 3 May 2021 14:23:05 -0400 Received: from srv6.fidu.org ([159.69.62.71]:56482 "EHLO srv6.fidu.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229731AbhECSW6 (ORCPT ); Mon, 3 May 2021 14:22:58 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by srv6.fidu.org (Postfix) with ESMTP id 3257BC800D3; Mon, 3 May 2021 20:21:54 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at srv6.fidu.org Received: from srv6.fidu.org ([127.0.0.1]) by localhost (srv6.fidu.org [127.0.0.1]) (amavisd-new, port 10026) with LMTP id Q0oFCjjxQmTe; Mon, 3 May 2021 20:21:54 +0200 (CEST) Received: from wsembach-tuxedo.fritz.box (p200300E37f3986001A8B79e0b24CB29D.dip0.t-ipconnect.de [IPv6:2003:e3:7f39:8600:1a8b:79e0:b24c:b29d]) (Authenticated sender: wse@tuxedocomputers.com) by srv6.fidu.org (Postfix) with ESMTPA id E4CE0C800D0; Mon, 3 May 2021 20:21:53 +0200 (CEST) From: Werner Sembach To: wse@tuxedocomputers.com, ville.syrjala@linux.intel.com, airlied@linux.ie, daniel@ffwll.ch, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/4] Use YCbCr420 as fallback when RGB fails Date: Mon, 3 May 2021 20:21:48 +0200 Message-Id: <20210503182148.851790-5-wse@tuxedocomputers.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210503182148.851790-1-wse@tuxedocomputers.com> References: <20210503182148.851790-1-wse@tuxedocomputers.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When encoder validation of a display mode fails, retry with less bandwidth heavy YCbCr420 color mode, if available. This enables some HDMI 1.4 setups to support 4k60Hz output, which previously failed silently. AMDGPU had nearly the exact same issue. This problem description is therefore copied from my commit message of the AMDGPU patch. On some setups, while the monitor and the gpu support display modes with pixel clocks of up to 600MHz, the link encoder might not. This prevents YCbCr444 and RGB encoding for 4k60Hz, but YCbCr420 encoding might still be possible. However, which color mode is used is decided before the link encoder capabilities are checked. This patch fixes the problem by retrying to find a display mode with YCbCr420 enforced and using it, if it is valid. Signed-off-by: Werner Sembach --- From 4ea0c8839b47e846d46c613e38af475231994f0f Mon Sep 17 00:00:00 2001 From: Werner Sembach Date: Mon, 3 May 2021 16:23:17 +0200 Subject: [PATCH 4/4] Use YCbCr420 as fallback when RGB fails --- drivers/gpu/drm/i915/display/intel_hdmi.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c index e2553ac6fd13..20c800f2ed60 100644 --- a/drivers/gpu/drm/i915/display/intel_hdmi.c +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c @@ -1913,7 +1913,7 @@ intel_hdmi_mode_valid(struct drm_connector *connector, clock *= 2; } - if (connector->ycbcr_420_allowed && drm_mode_is_420_only(&connector->display_info, mode)) + if (connector->ycbcr_420_allowed && drm_mode_is_420(&connector->display_info, mode)) clock /= 2; status = intel_hdmi_mode_clock_valid(hdmi, clock, has_hdmi_sink); @@ -2119,6 +2119,14 @@ int intel_hdmi_compute_output_format(struct intel_encoder *encoder, crtc_state->output_format = INTEL_OUTPUT_FORMAT_RGB; ret = intel_hdmi_compute_clock(encoder, crtc_state); + if (ret) { + if (crtc_state->output_format != INTEL_OUTPUT_FORMAT_YCBCR420 || + connector->ycbcr_420_allowed || + drm_mode_is_420_also(&connector->display_info, adjusted_mode)) { + crtc_state->output_format = INTEL_OUTPUT_FORMAT_YCBCR420; + ret = intel_hdmi_compute_clock(encoder, crtc_state); + } + } return ret; } -- 2.25.1