From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Stuebner Subject: [PATCH v4 1/6] drm/bridge: dw-hdmi: allow forcing vendor phy-type Date: Mon, 10 Sep 2018 11:22:18 +0200 Message-ID: <20180910092223.1106-2-heiko@sntech.de> References: <20180910092223.1106-1-heiko@sntech.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180910092223.1106-1-heiko@sntech.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: architt@codeaurora.org, hjc@rock-chips.com, a.hajda@samsung.com Cc: Jose.Abreu@synopsys.com, algea.cao@rock-chips.com, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, Laurent.pinchart@ideasonboard.com, linux-arm-kernel@lists.infradead.org, zhengyang@rock-chips.com List-Id: linux-rockchip.vger.kernel.org SW4gc29tZSBJUCBpbXBsZW1lbnRhdGlvbnMgdGhlIHJlYWRpbmcgb2YgdGhlIHBoeS10eXBlIG1h eSBiZSBicm9rZW4uCk9uZSBleGFtcGxlIGFyZSB0aGUgUm9ja2NoaXAgcmszMjI4IGFuZCByazMz Mjggc29jcyB0aGF0IHVzZSBhIHNlcGFyYXRlCnZlbmRvci10eXBlIHBoeSBmcm9tIElubm9zaWxp Y29uIGJ1dCBzdGlsbCByZXBvcnQgdGhlIEhETUkyMF9UWCB0eXBlLgoKU28gYWxsb3cgdGhlIGds dWUgZHJpdmVyIHRvIGZvcmNlIHRoZSB2ZW5kb3ItcGh5IGZvciB0aGVzZSBjYXNlcy4KSW4gdGhl IGZ1dHVyZSBpdCBtYXkgYmUgbmVjZXNzYXJ5IHRvIGFsbG93IGZvcmNpbmcgb3RoZXIgdHlwZXMs IGJ1dApmb3Igbm93IHdlJ2xsIGtlZXAgaXQgc2ltcGx5IHRvIHRoZSBjYXNlIGFjdHVhbGx5IHNl ZW4gaW4gdGhlIHdpbGQuCgpjaGFuZ2VzIGluIHYzOgotIG9ubHkgYWxsb3cgZm9yY2luZyB2ZW5k b3IgdHlwZSwgYXMgc3VnZ2VzdGVkIGJ5IExhdXJlbnQKClNpZ25lZC1vZmYtYnk6IEhlaWtvIFN0 dWVibmVyIDxoZWlrb0BzbnRlY2guZGU+ClRlc3RlZC1ieTogUm9iaW4gTXVycGh5IDxyb2Jpbi5t dXJwaHlAYXJtLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhk bWkuYyB8IDQgKysrLQogaW5jbHVkZS9kcm0vYnJpZGdlL2R3X2hkbWkuaCAgICAgICAgICAgICAg fCAxICsKIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMgYi9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYwppbmRleCA1OTcxOTc2Mjg0 YmYuLmFjMzdjNTBkNmM0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5v cHN5cy9kdy1oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1o ZG1pLmMKQEAgLTIyMDUsNyArMjIwNSw5IEBAIHN0YXRpYyBpbnQgZHdfaGRtaV9kZXRlY3RfcGh5 KHN0cnVjdCBkd19oZG1pICpoZG1pKQogCXVuc2lnbmVkIGludCBpOwogCXU4IHBoeV90eXBlOwog Ci0JcGh5X3R5cGUgPSBoZG1pX3JlYWRiKGhkbWksIEhETUlfQ09ORklHMl9JRCk7CisJcGh5X3R5 cGUgPSBoZG1pLT5wbGF0X2RhdGEtPnBoeV9mb3JjZV92ZW5kb3IgPworCQkJCURXX0hETUlfUEhZ X1ZFTkRPUl9QSFkgOgorCQkJCWhkbWlfcmVhZGIoaGRtaSwgSERNSV9DT05GSUcyX0lEKTsKIAog CWlmIChwaHlfdHlwZSA9PSBEV19IRE1JX1BIWV9WRU5ET1JfUEhZKSB7CiAJCS8qIFZlbmRvciBQ SFlzIHJlcXVpcmUgc3VwcG9ydCBmcm9tIHRoZSBnbHVlIGxheWVyLiAqLwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vYnJpZGdlL2R3X2hkbWkuaCBiL2luY2x1ZGUvZHJtL2JyaWRnZS9kd19oZG1p LmgKaW5kZXggY2NiNWFhODQ2OGUwLi42ZWYzMjM2YmI2ZGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv ZHJtL2JyaWRnZS9kd19oZG1pLmgKKysrIGIvaW5jbHVkZS9kcm0vYnJpZGdlL2R3X2hkbWkuaApA QCAtMTMzLDYgKzEzMyw3IEBAIHN0cnVjdCBkd19oZG1pX3BsYXRfZGF0YSB7CiAJY29uc3Qgc3Ry dWN0IGR3X2hkbWlfcGh5X29wcyAqcGh5X29wczsKIAljb25zdCBjaGFyICpwaHlfbmFtZTsKIAl2 b2lkICpwaHlfZGF0YTsKKwlib29sIHBoeV9mb3JjZV92ZW5kb3I7CiAKIAkvKiBTeW5vcHN5cyBQ SFkgc3VwcG9ydCAqLwogCWNvbnN0IHN0cnVjdCBkd19oZG1pX21wbGxfY29uZmlnICptcGxsX2Nm ZzsKLS0gCjIuMTcuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: heiko@sntech.de (Heiko Stuebner) Date: Mon, 10 Sep 2018 11:22:18 +0200 Subject: [PATCH v4 1/6] drm/bridge: dw-hdmi: allow forcing vendor phy-type In-Reply-To: <20180910092223.1106-1-heiko@sntech.de> References: <20180910092223.1106-1-heiko@sntech.de> Message-ID: <20180910092223.1106-2-heiko@sntech.de> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org In some IP implementations the reading of the phy-type may be broken. One example are the Rockchip rk3228 and rk3328 socs that use a separate vendor-type phy from Innosilicon but still report the HDMI20_TX type. So allow the glue driver to force the vendor-phy for these cases. In the future it may be necessary to allow forcing other types, but for now we'll keep it simply to the case actually seen in the wild. changes in v3: - only allow forcing vendor type, as suggested by Laurent Signed-off-by: Heiko Stuebner Tested-by: Robin Murphy --- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 4 +++- include/drm/bridge/dw_hdmi.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index 5971976284bf..ac37c50d6c4b 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -2205,7 +2205,9 @@ static int dw_hdmi_detect_phy(struct dw_hdmi *hdmi) unsigned int i; u8 phy_type; - phy_type = hdmi_readb(hdmi, HDMI_CONFIG2_ID); + phy_type = hdmi->plat_data->phy_force_vendor ? + DW_HDMI_PHY_VENDOR_PHY : + hdmi_readb(hdmi, HDMI_CONFIG2_ID); if (phy_type == DW_HDMI_PHY_VENDOR_PHY) { /* Vendor PHYs require support from the glue layer. */ diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h index ccb5aa8468e0..6ef3236bb6dd 100644 --- a/include/drm/bridge/dw_hdmi.h +++ b/include/drm/bridge/dw_hdmi.h @@ -133,6 +133,7 @@ struct dw_hdmi_plat_data { const struct dw_hdmi_phy_ops *phy_ops; const char *phy_name; void *phy_data; + bool phy_force_vendor; /* Synopsys PHY support */ const struct dw_hdmi_mpll_config *mpll_cfg; -- 2.17.0