From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933056AbdCGRqZ (ORCPT ); Tue, 7 Mar 2017 12:46:25 -0500 Received: from mail-wm0-f48.google.com ([74.125.82.48]:38806 "EHLO mail-wm0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755271AbdCGRpn (ORCPT ); Tue, 7 Mar 2017 12:45:43 -0500 From: Neil Armstrong To: dri-devel@lists.freedesktop.org, laurent.pinchart+renesas@ideasonboard.com, architt@codeaurora.org, mchehab@kernel.org Cc: Neil Armstrong , Jose.Abreu@synopsys.com, kieran.bingham@ideasonboard.com, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-media@vger.kernel.org, hans.verkuil@cisco.com, sakari.ailus@linux.intel.com Subject: [PATCH v3 0/6] drm: bridge: dw-hdmi: Add support for Custom PHYs Date: Tue, 7 Mar 2017 17:42:18 +0100 Message-Id: <1488904944-14285-1-git-send-email-narmstrong@baylibre.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The Amlogic GX SoCs implements a Synopsys DesignWare HDMI TX Controller in combination with a very custom PHY. Thanks to Laurent Pinchart's changes, the HW report the following : Detected HDMI TX controller v2.01a with HDCP (Vendor PHY) The following differs from common PHY integration as managed in the current driver : - Amlogic PHY is not configured through the internal I2C link - Amlogic PHY do not use the ENTMDS, SVSRET, PDDQ, ... signals from the controller - Amlogic PHY do not export HPD ands RxSense signals to the controller And finally, concerning the controller integration : - the Controller registers are not flat memory-mapped, and uses an addr+read/write register pair to write all registers. - Inputs only YUV444 pixel data Most of these uses case are implemented in Laurent Pinchart v5.1 patchset at [3] : - Conversion to regmap for register access - Add more callbacks ops to handle Custom PHYs - Fixes a bug that considers the input to be always RBG and sends bad pixel format to a DVI sink by disabling CSC This is why the following patchset implements : - Configure the Input format from the plat_data - Add PHY callback to handle HPD and RxSense out of the dw-hdmi driver To implement the input format handling, the Synopsys HDMIT TX Controller input V4L bus formats are used and missing formats + documentation are added. This patchset makes the Amlogic GX SoCs HDMI output successfully work, and is also tested on the RK3288 ACT8846 EVB Board. Changes since v2 at [4] : - Rebase on laurent patch "Extract PHY interrupt setup to a function" - Reduce phy operations - Switch the V4L bus formats and encodings instead of custom enum Changes since v1 at [2] : - Drop patches submitted by laurent Changes since RFC at [1] : - Regmap fixup for 4bytes register access, tested on RK3288 SoC - Move phy callbacks to phy_ops and move Synopsys PHY calls into default ops - Move HDMI link data into shared header - Move Pixel Encoding enum to shared header [1] http://lkml.kernel.org/r/1484656294-6140-1-git-send-email-narmstrong@baylibre.com [2] http://lkml.kernel.org/r/1485774318-21916-1-git-send-email-narmstrong@baylibre.com [3] http://lkml.kernel.org/r/20170303172007.26541-1-laurent.pinchart+renesas@ideasonboard.com [4] http://lkml.kernel.org/r/1488468572-31971-1-git-send-email-narmstrong@baylibre.com Laurent Pinchart (1): drm: bridge: dw-hdmi: Extract PHY interrupt setup to a function Neil Armstrong (5): media: uapi: Add RGB and YUV bus formats for Synopsys HDMI TX Controller documentation: media: Add documentation for new RGB and YUV bus formats drm: bridge: dw-hdmi: Switch to V4L bus format and encodings drm: bridge: dw-hdmi: Add Documentation on supported input formats drm: bridge: dw-hdmi: Move HPD handling to PHY operations Documentation/gpu/dw-hdmi.rst | 15 + Documentation/gpu/index.rst | 1 + Documentation/media/uapi/v4l/subdev-formats.rst | 4992 ++++++++++++++++++----- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 465 ++- include/drm/bridge/dw_hdmi.h | 68 + include/uapi/linux/media-bus-format.h | 13 +- 6 files changed, 4368 insertions(+), 1186 deletions(-) create mode 100644 Documentation/gpu/dw-hdmi.rst -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Armstrong Subject: [PATCH v3 0/6] drm: bridge: dw-hdmi: Add support for Custom PHYs Date: Tue, 7 Mar 2017 17:42:18 +0100 Message-ID: <1488904944-14285-1-git-send-email-narmstrong@baylibre.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x22e.google.com (mail-wm0-x22e.google.com [IPv6:2a00:1450:400c:c09::22e]) by gabe.freedesktop.org (Postfix) with ESMTPS id F0F1E6E75C for ; Tue, 7 Mar 2017 16:42:33 +0000 (UTC) Received: by mail-wm0-x22e.google.com with SMTP id v203so11350042wmg.0 for ; Tue, 07 Mar 2017 08:42:33 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, laurent.pinchart+renesas@ideasonboard.com, architt@codeaurora.org, mchehab@kernel.org Cc: Jose.Abreu@synopsys.com, linux-doc@vger.kernel.org, Neil Armstrong , kieran.bingham@ideasonboard.com, linux-kernel@vger.kernel.org, hans.verkuil@cisco.com, sakari.ailus@linux.intel.com, linux-amlogic@lists.infradead.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org VGhlIEFtbG9naWMgR1ggU29DcyBpbXBsZW1lbnRzIGEgU3lub3BzeXMgRGVzaWduV2FyZSBIRE1J IFRYIENvbnRyb2xsZXIKaW4gY29tYmluYXRpb24gd2l0aCBhIHZlcnkgY3VzdG9tIFBIWS4KClRo YW5rcyB0byBMYXVyZW50IFBpbmNoYXJ0J3MgY2hhbmdlcywgdGhlIEhXIHJlcG9ydCB0aGUgZm9s bG93aW5nIDoKIERldGVjdGVkIEhETUkgVFggY29udHJvbGxlciB2Mi4wMWEgd2l0aCBIRENQIChW ZW5kb3IgUEhZKQoKVGhlIGZvbGxvd2luZyBkaWZmZXJzIGZyb20gY29tbW9uIFBIWSBpbnRlZ3Jh dGlvbiBhcyBtYW5hZ2VkIGluIHRoZSBjdXJyZW50CmRyaXZlciA6CiAtIEFtbG9naWMgUEhZIGlz IG5vdCBjb25maWd1cmVkIHRocm91Z2ggdGhlIGludGVybmFsIEkyQyBsaW5rCiAtIEFtbG9naWMg UEhZIGRvIG5vdCB1c2UgdGhlIEVOVE1EUywgU1ZTUkVULCBQRERRLCAuLi4gc2lnbmFscyBmcm9t IHRoZSBjb250cm9sbGVyCiAtIEFtbG9naWMgUEhZIGRvIG5vdCBleHBvcnQgSFBEIGFuZHMgUnhT ZW5zZSBzaWduYWxzIHRvIHRoZSBjb250cm9sbGVyCgpBbmQgZmluYWxseSwgY29uY2VybmluZyB0 aGUgY29udHJvbGxlciBpbnRlZ3JhdGlvbiA6CiAtIHRoZSBDb250cm9sbGVyIHJlZ2lzdGVycyBh cmUgbm90IGZsYXQgbWVtb3J5LW1hcHBlZCwgYW5kIHVzZXMgYW4KICAgIGFkZHIrcmVhZC93cml0 ZSByZWdpc3RlciBwYWlyIHRvIHdyaXRlIGFsbCByZWdpc3RlcnMuCiAtIElucHV0cyBvbmx5IFlV VjQ0NCBwaXhlbCBkYXRhCgpNb3N0IG9mIHRoZXNlIHVzZXMgY2FzZSBhcmUgaW1wbGVtZW50ZWQg aW4gTGF1cmVudCBQaW5jaGFydCB2NS4xIHBhdGNoc2V0IGF0IFszXSA6CiAtIENvbnZlcnNpb24g dG8gcmVnbWFwIGZvciByZWdpc3RlciBhY2Nlc3MKIC0gQWRkIG1vcmUgY2FsbGJhY2tzIG9wcyB0 byBoYW5kbGUgQ3VzdG9tIFBIWXMKIC0gRml4ZXMgYSBidWcgdGhhdCBjb25zaWRlcnMgdGhlIGlu cHV0IHRvIGJlIGFsd2F5cyBSQkcgYW5kIHNlbmRzIGJhZCBwaXhlbAogICBmb3JtYXQgdG8gYSBE Vkkgc2luayBieSBkaXNhYmxpbmcgQ1NDCgpUaGlzIGlzIHdoeSB0aGUgZm9sbG93aW5nIHBhdGNo c2V0IGltcGxlbWVudHMgOgogLSBDb25maWd1cmUgdGhlIElucHV0IGZvcm1hdCBmcm9tIHRoZSBw bGF0X2RhdGEKIC0gQWRkIFBIWSBjYWxsYmFjayB0byBoYW5kbGUgSFBEIGFuZCBSeFNlbnNlIG91 dCBvZiB0aGUgZHctaGRtaSBkcml2ZXIKClRvIGltcGxlbWVudCB0aGUgaW5wdXQgZm9ybWF0IGhh bmRsaW5nLCB0aGUgU3lub3BzeXMgSERNSVQgVFggQ29udHJvbGxlciBpbnB1dApWNEwgYnVzIGZv cm1hdHMgYXJlIHVzZWQgYW5kIG1pc3NpbmcgZm9ybWF0cyArIGRvY3VtZW50YXRpb24gYXJlIGFk ZGVkLgoKVGhpcyBwYXRjaHNldCBtYWtlcyB0aGUgQW1sb2dpYyBHWCBTb0NzIEhETUkgb3V0cHV0 IHN1Y2Nlc3NmdWxseSB3b3JrLCBhbmQgaXMKYWxzbyB0ZXN0ZWQgb24gdGhlIFJLMzI4OCBBQ1Q4 ODQ2IEVWQiBCb2FyZC4KCkNoYW5nZXMgc2luY2UgdjIgYXQgWzRdIDoKIC0gUmViYXNlIG9uIGxh dXJlbnQgcGF0Y2ggIkV4dHJhY3QgUEhZIGludGVycnVwdCBzZXR1cCB0byBhIGZ1bmN0aW9uIgog LSBSZWR1Y2UgcGh5IG9wZXJhdGlvbnMKIC0gU3dpdGNoIHRoZSBWNEwgYnVzIGZvcm1hdHMgYW5k IGVuY29kaW5ncyBpbnN0ZWFkIG9mIGN1c3RvbSBlbnVtCgpDaGFuZ2VzIHNpbmNlIHYxIGF0IFsy XSA6CiAtIERyb3AgcGF0Y2hlcyBzdWJtaXR0ZWQgYnkgbGF1cmVudAoKQ2hhbmdlcyBzaW5jZSBS RkMgYXQgWzFdIDoKIC0gUmVnbWFwIGZpeHVwIGZvciA0Ynl0ZXMgcmVnaXN0ZXIgYWNjZXNzLCB0 ZXN0ZWQgb24gUkszMjg4IFNvQwogLSBNb3ZlIHBoeSBjYWxsYmFja3MgdG8gcGh5X29wcyBhbmQg bW92ZSBTeW5vcHN5cyBQSFkgY2FsbHMgaW50byBkZWZhdWx0IG9wcwogLSBNb3ZlIEhETUkgbGlu ayBkYXRhIGludG8gc2hhcmVkIGhlYWRlcgogLSBNb3ZlIFBpeGVsIEVuY29kaW5nIGVudW0gdG8g c2hhcmVkIGhlYWRlcgoKWzFdIGh0dHA6Ly9sa21sLmtlcm5lbC5vcmcvci8xNDg0NjU2Mjk0LTYx NDAtMS1naXQtc2VuZC1lbWFpbC1uYXJtc3Ryb25nQGJheWxpYnJlLmNvbQpbMl0gaHR0cDovL2xr bWwua2VybmVsLm9yZy9yLzE0ODU3NzQzMTgtMjE5MTYtMS1naXQtc2VuZC1lbWFpbC1uYXJtc3Ry b25nQGJheWxpYnJlLmNvbQpbM10gaHR0cDovL2xrbWwua2VybmVsLm9yZy9yLzIwMTcwMzAzMTcy MDA3LjI2NTQxLTEtbGF1cmVudC5waW5jaGFydCtyZW5lc2FzQGlkZWFzb25ib2FyZC5jb20KWzRd IGh0dHA6Ly9sa21sLmtlcm5lbC5vcmcvci8xNDg4NDY4NTcyLTMxOTcxLTEtZ2l0LXNlbmQtZW1h aWwtbmFybXN0cm9uZ0BiYXlsaWJyZS5jb20KCkxhdXJlbnQgUGluY2hhcnQgKDEpOgogIGRybTog YnJpZGdlOiBkdy1oZG1pOiBFeHRyYWN0IFBIWSBpbnRlcnJ1cHQgc2V0dXAgdG8gYSBmdW5jdGlv bgoKTmVpbCBBcm1zdHJvbmcgKDUpOgogIG1lZGlhOiB1YXBpOiBBZGQgUkdCIGFuZCBZVVYgYnVz IGZvcm1hdHMgZm9yIFN5bm9wc3lzIEhETUkgVFgKICAgIENvbnRyb2xsZXIKICBkb2N1bWVudGF0 aW9uOiBtZWRpYTogQWRkIGRvY3VtZW50YXRpb24gZm9yIG5ldyBSR0IgYW5kIFlVViBidXMKICAg IGZvcm1hdHMKICBkcm06IGJyaWRnZTogZHctaGRtaTogU3dpdGNoIHRvIFY0TCBidXMgZm9ybWF0 IGFuZCBlbmNvZGluZ3MKICBkcm06IGJyaWRnZTogZHctaGRtaTogQWRkIERvY3VtZW50YXRpb24g b24gc3VwcG9ydGVkIGlucHV0IGZvcm1hdHMKICBkcm06IGJyaWRnZTogZHctaGRtaTogTW92ZSBI UEQgaGFuZGxpbmcgdG8gUEhZIG9wZXJhdGlvbnMKCiBEb2N1bWVudGF0aW9uL2dwdS9kdy1oZG1p LnJzdCAgICAgICAgICAgICAgICAgICB8ICAgMTUgKwogRG9jdW1lbnRhdGlvbi9ncHUvaW5kZXgu cnN0ICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIERvY3VtZW50YXRpb24vbWVkaWEvdWFw aS92NGwvc3ViZGV2LWZvcm1hdHMucnN0IHwgNDk5MiArKysrKysrKysrKysrKysrKystLS0tLQog ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMgICAgICAgfCAgNDY1ICsr LQogaW5jbHVkZS9kcm0vYnJpZGdlL2R3X2hkbWkuaCAgICAgICAgICAgICAgICAgICAgfCAgIDY4 ICsKIGluY2x1ZGUvdWFwaS9saW51eC9tZWRpYS1idXMtZm9ybWF0LmggICAgICAgICAgIHwgICAx MyArLQogNiBmaWxlcyBjaGFuZ2VkLCA0MzY4IGluc2VydGlvbnMoKyksIDExODYgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9ncHUvZHctaGRtaS5yc3QKCi0t IAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: narmstrong@baylibre.com (Neil Armstrong) Date: Tue, 7 Mar 2017 17:42:18 +0100 Subject: [PATCH v3 0/6] drm: bridge: dw-hdmi: Add support for Custom PHYs Message-ID: <1488904944-14285-1-git-send-email-narmstrong@baylibre.com> To: linus-amlogic@lists.infradead.org List-Id: linus-amlogic.lists.infradead.org The Amlogic GX SoCs implements a Synopsys DesignWare HDMI TX Controller in combination with a very custom PHY. Thanks to Laurent Pinchart's changes, the HW report the following : Detected HDMI TX controller v2.01a with HDCP (Vendor PHY) The following differs from common PHY integration as managed in the current driver : - Amlogic PHY is not configured through the internal I2C link - Amlogic PHY do not use the ENTMDS, SVSRET, PDDQ, ... signals from the controller - Amlogic PHY do not export HPD ands RxSense signals to the controller And finally, concerning the controller integration : - the Controller registers are not flat memory-mapped, and uses an addr+read/write register pair to write all registers. - Inputs only YUV444 pixel data Most of these uses case are implemented in Laurent Pinchart v5.1 patchset at [3] : - Conversion to regmap for register access - Add more callbacks ops to handle Custom PHYs - Fixes a bug that considers the input to be always RBG and sends bad pixel format to a DVI sink by disabling CSC This is why the following patchset implements : - Configure the Input format from the plat_data - Add PHY callback to handle HPD and RxSense out of the dw-hdmi driver To implement the input format handling, the Synopsys HDMIT TX Controller input V4L bus formats are used and missing formats + documentation are added. This patchset makes the Amlogic GX SoCs HDMI output successfully work, and is also tested on the RK3288 ACT8846 EVB Board. Changes since v2 at [4] : - Rebase on laurent patch "Extract PHY interrupt setup to a function" - Reduce phy operations - Switch the V4L bus formats and encodings instead of custom enum Changes since v1 at [2] : - Drop patches submitted by laurent Changes since RFC at [1] : - Regmap fixup for 4bytes register access, tested on RK3288 SoC - Move phy callbacks to phy_ops and move Synopsys PHY calls into default ops - Move HDMI link data into shared header - Move Pixel Encoding enum to shared header [1] http://lkml.kernel.org/r/1484656294-6140-1-git-send-email-narmstrong at baylibre.com [2] http://lkml.kernel.org/r/1485774318-21916-1-git-send-email-narmstrong at baylibre.com [3] http://lkml.kernel.org/r/20170303172007.26541-1-laurent.pinchart+renesas at ideasonboard.com [4] http://lkml.kernel.org/r/1488468572-31971-1-git-send-email-narmstrong at baylibre.com Laurent Pinchart (1): drm: bridge: dw-hdmi: Extract PHY interrupt setup to a function Neil Armstrong (5): media: uapi: Add RGB and YUV bus formats for Synopsys HDMI TX Controller documentation: media: Add documentation for new RGB and YUV bus formats drm: bridge: dw-hdmi: Switch to V4L bus format and encodings drm: bridge: dw-hdmi: Add Documentation on supported input formats drm: bridge: dw-hdmi: Move HPD handling to PHY operations Documentation/gpu/dw-hdmi.rst | 15 + Documentation/gpu/index.rst | 1 + Documentation/media/uapi/v4l/subdev-formats.rst | 4992 ++++++++++++++++++----- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 465 ++- include/drm/bridge/dw_hdmi.h | 68 + include/uapi/linux/media-bus-format.h | 13 +- 6 files changed, 4368 insertions(+), 1186 deletions(-) create mode 100644 Documentation/gpu/dw-hdmi.rst -- 1.9.1