Received: by 2002:a25:5b86:0:0:0:0:0 with SMTP id p128csp1394617ybb; Fri, 29 Mar 2019 03:45:16 -0700 (PDT) X-Google-Smtp-Source: APXvYqxK+nTgKg2Yo3DQmpvRe2m0CYgUP1/Px22YCNPqCBiTKS11bmW3gsZG2Do9W67P21+gFF/Z X-Received: by 2002:a63:ad4b:: with SMTP id y11mr31644741pgo.405.1553856316578; Fri, 29 Mar 2019 03:45:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553856316; cv=none; d=google.com; s=arc-20160816; b=zDrTHoVuPuWOsTpegVWZvkLhpb2arMghQVA7MlRRQwMjmK03hVECvoojEoJE2DYMM8 P2spRwrUAp1+/WhBETb8Aj+KHOGy8A8KU6geWW90bnOJ4HAuRUTrgVkYCO3CeVWqBmNd NAC21jwl8YnLhKiEbUJN7p3xGrXSQ0SNFOI3NLC8EtpVIAXOu0Gzsn1S7jRFszsN43jo Ukm4GtxkYUxg/yGjzn8FMQMEXuJO4H2PfmXMAwo9bsjLsUsqVsObCHBn39drRwhPiSSN 3SEUUYn/+XpzUfro+4nBlcZHIHbOW4wO4fMdhGlNduK8mJNVcMYpWvWcDkU5YEE49zXV e0yQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=9iPta9zPgZP3XWAC5lhX/snSUTynLHfLroArxcu7BWk=; b=Sjs8oswxnk3uyiEsyiJROrKwzkXXyv/ICSIdmcH0vM4h9GXW6r+A0aEEB7XCB7R40Q L3hJdTlynr6ouKrK4ySCuhfMzAyF/MJn6ROGBZ2jo8zYf9qbx8gs3eapMknSgBGcLECk bWt+7mjJnI9bPH3xBwT15zNRRBX2/+UR0a+ufhBSx7sIfqkq5IrKX7uz9gq2kXY14axR 12UU3kbeVSdklmpLpL5lFmnx6Sd9caYTvm3kf69wDwVXKdtpovDN8CTmsZ5nK975SoOq +/w1nbU0lgEPXCuOYIKIgTFxVC00X9hqqnZcc9bCf8si70Ufg8np4gaCq6+tDeyHMBTj RXhw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=eszOQgP5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e1si1545734pls.228.2019.03.29.03.45.00; Fri, 29 Mar 2019 03:45:16 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=eszOQgP5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729346AbfC2Km5 (ORCPT + 99 others); Fri, 29 Mar 2019 06:42:57 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:35563 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729291AbfC2Kmu (ORCPT ); Fri, 29 Mar 2019 06:42:50 -0400 Received: by mail-wr1-f65.google.com with SMTP id w1so2003047wrp.2 for ; Fri, 29 Mar 2019 03:42:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9iPta9zPgZP3XWAC5lhX/snSUTynLHfLroArxcu7BWk=; b=eszOQgP58IP41nW+eG+b907BI8xIfNPpUC+HbKnK7kmgGWHJpTChTyC8wUX8H3mgur xfoA0acJK4EdmoXFh4WlyovylXqdyJ/s3anJGOgaJW5pUs/nl/nLTKTs4YqpLXd1VE8H ryhB4ryNo557UD/9U5Lf+3A0IZyZY9JNR9o/CS4xwbZcoNWZQ57UqLE/yTMtD7t1nyCN rqe0ZTRfh2KDfvWRaTr4PT5LIwlPKO1PWm9wkZD2iKIhuJ1ydJ8iKdPpSgIEszjnGpWH GJ7lyIl6hliguFtcCxVn5VMsNvlBHZAdF5exwYB0Qpj5vufJHQsc2bWA21HhOCgG7JR3 Akog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9iPta9zPgZP3XWAC5lhX/snSUTynLHfLroArxcu7BWk=; b=HIdLC8Vtx0I/PdbZYGWKZ0TIoHVl8Iz9qJ78+N1zhdOucUtGM/dpRzh6qmgGlcTKp9 q5FqGuem17PeiRLO+GxZt/DgpIl2n4gDDFOYvbMAVp7NheQcToRgon73ARIRF3xqo1wu V8/zBE+YL5XtMtGBEmeeGbf7lHxmk11Gr4OS1iemzQVlU12ptkd1fee6NyiRE5tfO5z8 ilpzpDCcOdNtCAadJbeOIA7FT8Q57FoDUm2JEir4QzpHaLFM3NNHNKIck1Pj89o5j43q KdRos2ygK79UJeoAhuFgSSVRDi1lmyeTkYR7GbaY8g2Il21sQEIfMzqBZtUEfA/mIWy/ mkVA== X-Gm-Message-State: APjAAAVlz9YHkIx6++gl1XWOuoSS93o3dKEZJw43yPrSy85o4Iyf2kXJ cqtwV/OtNuobo9RhXotyXfq+QQ== X-Received: by 2002:a5d:488d:: with SMTP id g13mr17463196wrq.119.1553856168573; Fri, 29 Mar 2019 03:42:48 -0700 (PDT) Received: from bender.baylibre.local (lmontsouris-657-1-212-31.w90-63.abo.wanadoo.fr. [90.63.244.31]) by smtp.gmail.com with ESMTPSA id o15sm1632826wrj.59.2019.03.29.03.42.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 29 Mar 2019 03:42:48 -0700 (PDT) From: Neil Armstrong To: a.hajda@samsung.com, Laurent.pinchart@ideasonboard.com Cc: Neil Armstrong , dri-devel@lists.freedesktop.org, jernej.skrabec@siol.net, heiko@sntech.de, maxime.ripard@bootlin.com, hjc@rock-chips.com, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC 5/5] drm/meson: Output in YUV444 if sink supports it Date: Fri, 29 Mar 2019 11:42:40 +0100 Message-Id: <20190329104240.29585-6-narmstrong@baylibre.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190329104240.29585-1-narmstrong@baylibre.com> References: <20190329104240.29585-1-narmstrong@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org With the YUV420 handling, we can dynamically setup the HDMI output pixel format depending on the mode and connector info. So now, we can output in YUV444, which is the native video pipeline format, directly to the HDMI Sink if it's supported without necessarily involving the HDMI Controller CSC. Signed-off-by: Neil Armstrong --- drivers/gpu/drm/meson/meson_dw_hdmi.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c index 5d67e2beba58..8bf9db7f39a4 100644 --- a/drivers/gpu/drm/meson/meson_dw_hdmi.c +++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c @@ -723,12 +723,23 @@ static int meson_venc_hdmi_encoder_atomic_check(struct drm_encoder *encoder, struct drm_display_mode *mode = &crtc_state->mode; bool is_hdmi2_sink = conn_state->connector->display_info.hdmi.scdc.supported; + bool specify_out_format = false; + u32 out_format; if (drm_mode_is_420_only(info, mode) || (!is_hdmi2_sink && drm_mode_is_420_also(info, mode))) dw_hdmi->input_bus_format = MEDIA_BUS_FMT_UYYVYY8_0_5X24; - else + else { dw_hdmi->input_bus_format = MEDIA_BUS_FMT_YUV8_1X24; + if (info->color_formats & DRM_COLOR_FORMAT_YCRCB444) { + out_format = MEDIA_BUS_FMT_YUV8_1X24; + specify_out_format = true; + } + } + + /* Set a connector bus format is required */ + drm_display_info_set_bus_formats(info, &out_format, + (specify_out_format ? 1 : 0)); /* Specify the encoder output format to the bridge */ if (!drm_bridge_format_set(encoder->bridge, -- 2.21.0