Received: by 2002:a25:86ce:0:0:0:0:0 with SMTP id y14csp15308ybm; Mon, 20 May 2019 11:02:42 -0700 (PDT) X-Google-Smtp-Source: APXvYqxAVzzET3scnVXdBcQG/SiljVsOvk1/jmdlKxx0TRfz5nzCu87U87eA1oQTOizy9QAqBaKP X-Received: by 2002:a65:4c07:: with SMTP id u7mr74440620pgq.93.1558375362664; Mon, 20 May 2019 11:02:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558375362; cv=none; d=google.com; s=arc-20160816; b=aR/+sGaiVBKHNiyFWwGDZtxH4lUF/LnlNHajcq1tmt6iLeCOl6pmsOrZnM5Vi0Flkx tX1ngdAVku7TqrN4HusCfZeyeCPFgDWl0mPB0qspbdsFDaadho4grCzAV/EnMag8GP5X 91nrUoxLxHoLZa33fe0QSinHkZWq+inKQIif8VSu8TZO4eZXWFai8ehi03amcoOUHUy7 gVO5A6BJ1g0YgGj1rAPgvy7BsC5Cfo3rqObD500/iNbTyy7xY1JDGAoOUTi2WBKDjKAE J+iUIgIoMt3KSW9b2cT5oaNlz2BoBNu4MDXglzIx8I0cmFruDSSE6/XYocWf4mWkXDh8 sqCw== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=I6G0MyMU3h5OB0O4nHOQOZaH9nZxvNQnPCN8hItt310=; b=V6iLH6mbjVvlM8ABmvtagjIkxBbwJ6zV58hYB9UnKCKNOTTMhm+F3mfsyCi9rEAf2u JnuytdxVJgfG/5fx7vZNQ4bK/foOla+cMDtuxrs/P4dKwINW51jtve+68dcDRkSDo+SZ rWDlUAOAM0fy3amIE5zehaD0EozIFCEsefe30MG/AxpC3/3G4L315UJZJs1g86rtMD8j P2fnq1Y9IOvjgR2iyfbh3C2wWacGT/O/DTOsG1v/4pRpZHJqSDuI71muctXNmJu+QfHw R2CfM40j8umjcCYQ7BRp51lVkBoVtSzaRVCq5bt4nuV/BApS90rziDjotTixyjl/Dbik dImw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b="Wu/evQfL"; 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 x8si17182679pgg.443.2019.05.20.11.02.26; Mon, 20 May 2019 11:02:42 -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="Wu/evQfL"; 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 S1732385AbfETNh7 (ORCPT + 99 others); Mon, 20 May 2019 09:37:59 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:32843 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730555AbfETNh6 (ORCPT ); Mon, 20 May 2019 09:37:58 -0400 Received: by mail-wr1-f68.google.com with SMTP id d9so1696939wrx.0 for ; Mon, 20 May 2019 06:37:57 -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:mime-version :content-transfer-encoding; bh=I6G0MyMU3h5OB0O4nHOQOZaH9nZxvNQnPCN8hItt310=; b=Wu/evQfLtHMDRV7nVLyUt9S+NgZOjI0Xpdpf7vk+eLfcfhsI4H8ZD8fg/9is2Heb83 1iECSj30NX8xy9OQXoOApX7n+lsgz70UoK4txOLhlg2cWvAabO88f0mo/itWsp5Oo1Fo k25caGap24naJPEvMoSo1VfTPA6broJ53cy3iY0rnatOlDLOjH5554AZ3HLVlmiN+v+T ZEb4p9IPO/9/a+EPo9C7EAAvscMQnIeLCYseDB+rJWbqOf0kbvHXrSKDwbJt2YDDcv5p +JPVRDikhVtu9pGNIN/Zill4tpS+6swH5OKWVdyV3M1SGFo0V6NELkfibFcjUaJveo0b W+hQ== 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:mime-version :content-transfer-encoding; bh=I6G0MyMU3h5OB0O4nHOQOZaH9nZxvNQnPCN8hItt310=; b=NTVhUl2OrxZt8Itbxrb18LVtze4I8ecCvyIga3fSMssihngIhKxxJlE/unUCQ0SkEm y8zG29DEPzAFWIQQzYZiMT3om18qL5/QCg9LD1fNU3oD/6DofoJPWn+e68sSeNruryLR xmv2fbrJUu2yOYFmhj07FHSeMFL29BTBBzk0ThIXkuIzpuFR4aOchOxMBl7axMJ2Zpsg LUJh+vxsD6RIYrhPsSt+6YEQjOP+Sg/snzVjW7mwvFXtW3GyyobipB9/oeck7ycRo9J8 T/qMOVH5KuzElQNp/3auBLHZxab/Ga7s0P3+0fCW+b7BIBL5U6lOyWT6ZKkQzNUWrSwU 6Ffw== X-Gm-Message-State: APjAAAULnuEU1wki/61is9Vr4xMhV0KL8AE4tvO+i/X2eFxMdwmrA+mv AulH+3yAq6Ua3uYGwyinBVY86A== X-Received: by 2002:adf:e845:: with SMTP id d5mr18649788wrn.154.1558359476773; Mon, 20 May 2019 06:37:56 -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 t19sm12167059wmi.42.2019.05.20.06.37.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 20 May 2019 06:37:56 -0700 (PDT) From: Neil Armstrong To: a.hajda@samsung.com, Laurent.pinchart@ideasonboard.com Cc: jonas@kwiboo.se, hverkuil@xs4all.nl, 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 0/5] drm/meson: Add support for HDMI2.0 YUV420 4k60 Date: Mon, 20 May 2019 15:37:48 +0200 Message-Id: <20190520133753.23871-1-narmstrong@baylibre.com> X-Mailer: git-send-email 2.21.0 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 The Synopsys DW-HDMI CSC does not support downsampling to YUV420, so the encoder must downsamle before, feeding the controller with a YUV420 pixel stream. The encoder must declare the new bus format enc encoding the bridge, in order to take it in account. To solve this, a new format_set() bridge op is added, permitting setting a new input bus format and encoding to the bridge chain. This solves YUV420 setup, but also solved setting 10bit, 12bit or 16bit input bus format in order to support HDMI >8bit depths. The DW-HDMI controller is updated to dynamically select a coherent output bus format depending on the input bus format and on the internal CSC supported modes. The DW-HDMI is also updated to support the connector display_info bus_formats entry to permit forcing a specific output bus format to force, for example, an YUV444 output format instead of the default RGB output bus format. Only the meson DRM dw_hdmi glue allows ycbcr420 modes, so no breakage is expected here. The remaining patches adds support for 4:2:0 output and clock setup for the meson DW-HDMI glue, and how YUV444 output can be forced. Changes since rfc: * Fixed small logic error in drm_bridge_format_set() * rebased on v5.2-rc1 Neil Armstrong (5): drm/bridge: dw-hdmi: allow ycbcr420 modes for >= 0x200a drm/bridge: add encoder support to specify bridge input format drm/bridge: dw-hdmi: Add support for dynamic output format setup drm/meson: Add YUV420 output support drm/meson: Output in YUV444 if sink supports it drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 127 ++++++++++++++++++++-- drivers/gpu/drm/drm_bridge.c | 35 ++++++ drivers/gpu/drm/meson/meson_dw_hdmi.c | 111 ++++++++++++++++--- drivers/gpu/drm/meson/meson_vclk.c | 93 ++++++++++++---- drivers/gpu/drm/meson/meson_vclk.h | 7 +- drivers/gpu/drm/meson/meson_venc.c | 6 +- drivers/gpu/drm/meson/meson_venc.h | 11 ++ drivers/gpu/drm/meson/meson_venc_cvbs.c | 3 +- include/drm/bridge/dw_hdmi.h | 1 + include/drm/drm_bridge.h | 19 ++++ 10 files changed, 358 insertions(+), 55 deletions(-) -- 2.21.0