From mboxrd@z Thu Jan 1 00:00:00 1970 From: Douglas Anderson Subject: [PATCH 2/5] drm/bridge/synopsys: dw-hdmi: Add "unwedge" for ddc bus Date: Thu, 2 May 2019 15:53:33 -0700 Message-ID: <20190502225336.206885-2-dianders@chromium.org> References: <20190502225336.206885-1-dianders@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190502225336.206885-1-dianders@chromium.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Heiko Stuebner , Sandy Huang , Andrzej Hajda , Laurent Pinchart , Rob Herring Cc: Mark Rutland , Jernej Skrabec , Neil Armstrong , David Airlie , Douglas Anderson , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, mka@chromium.org, Sean Paul List-Id: linux-rockchip.vger.kernel.org U2VlIHRoZSBQaEQgdGhlc2lzIGluIHRoZSBjb21tZW50cyBpbiB0aGlzIHBhdGNoIGZvciBkZXRh aWxzLCBidXQgdG8Kc3VtbWFyaXplIHRoaXMgYWRkcyBhIGhhY2t5ICJ1bndlZGdlIiBmZWF0dXJl IHRvIHRoZSBkd19oZG1pIGkyYyBidXMgdG8Kd29ya2Fyb3VuZCB3aGF0IGFwcGVhcnMgdG8gYmUg YSBoYXJkd2FyZSBlcnJhdGEuICBUaGlzIHJlbGllcyBvbiBhCnBpbmN0cmwgZW50cnkgdG8gaGVs cCBjaGFuZ2UgYXJvdW5kIG11eGluZyB0byBwZXJmb3JtIHRoZSB1bndlZGdlLgoKTk9URSB0aGF0 IHRoZSBzcGVjaWZpYyBUViB0aGlzIHdhcyB0ZXN0ZWQgb24gd2FzIHRoZSAiU2Ftc3VuZwpVTjQw SFU2OTUwRlhaQSIgYW5kIHRoZSBzcGVjaWZpYyBwb3J0IHdhcyB0aGUgIlNUQiIgcG9ydC4KClNp Z25lZC1vZmYtYnk6IERvdWdsYXMgQW5kZXJzb24gPGRpYW5kZXJzQGNocm9taXVtLm9yZz4KLS0t CgogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMgfCAxMTYgKysrKysr KysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEwMCBpbnNlcnRpb25zKCspLCAxNiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lz L2R3LWhkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jCmlu ZGV4IGRiNzYxMzI5YTFlMy4uYzY2NTg3ZTMzODEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdl L3N5bm9wc3lzL2R3LWhkbWkuYwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2hk bWkuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2Rldmlj ZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BpbmN0cmwvY29uc3VtZXIuaD4KICNpbmNsdWRlIDxsaW51 eC9yZWdtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogCkBAIC0xNjksNiArMTcw LDEwIEBAIHN0cnVjdCBkd19oZG1pIHsKIAlib29sIHNpbmtfaXNfaGRtaTsKIAlib29sIHNpbmtf aGFzX2F1ZGlvOwogCisJc3RydWN0IHBpbmN0cmwgKnBpbmN0cmw7CisJc3RydWN0IHBpbmN0cmxf c3RhdGUgKmRlZmF1bHRfc3RhdGU7CisJc3RydWN0IHBpbmN0cmxfc3RhdGUgKnVud2VkZ2Vfc3Rh dGU7CisKIAlzdHJ1Y3QgbXV0ZXggbXV0ZXg7CQkvKiBmb3Igc3RhdGUgYmVsb3cgYW5kIHByZXZp b3VzX21vZGUgKi8KIAllbnVtIGRybV9jb25uZWN0b3JfZm9yY2UgZm9yY2U7CS8qIG11dGV4LXBy b3RlY3RlZCBmb3JjZSBzdGF0ZSAqLwogCWJvb2wgZGlzYWJsZWQ7CQkJLyogRFJNIGhhcyBkaXNh YmxlZCBvdXIgYnJpZGdlICovCkBAIC0yNDcsMTEgKzI1Miw4MiBAQCBzdGF0aWMgdm9pZCBkd19o ZG1pX2kyY19pbml0KHN0cnVjdCBkd19oZG1pICpoZG1pKQogCQkgICAgSERNSV9JSF9NVVRFX0ky Q01fU1RBVDApOwogfQogCitzdGF0aWMgYm9vbCBkd19oZG1pX2kyY191bndlZGdlKHN0cnVjdCBk d19oZG1pICpoZG1pKQoreworCS8qIElmIG5vIHVud2VkZ2Ugc3RhdGUgdGhlbiBnaXZlIHVwICov CisJaWYgKElTX0VSUihoZG1pLT51bndlZGdlX3N0YXRlKSkKKwkJcmV0dXJuIGZhbHNlOworCisJ ZGV2X2luZm8oaGRtaS0+ZGV2LCAiQXR0ZW1wdGluZyB0byB1bndlZGdlIHN0dWNrIGkyYyBidXNc biIpOworCisJLyoKKwkgKiBUaGlzIGlzIGEgaHVnZSBoYWNrIHRvIHdvcmthcm91bmQgYSBwcm9i bGVtIHdoZXJlIHRoZSBkd19oZG1pIGkyYworCSAqIGJ1cyBjb3VsZCBzb21ldGltZXMgZ2V0IHdl ZGdlZC4gIE9uY2Ugd2VkZ2VkIHRoZXJlIGRvZXNuJ3QgYXBwZWFyCisJICogdG8gYmUgYW55IHdh eSB0byB1bndlZGdlIGl0IChpbmNsdWRpbmcgdGhlIEhETUlfSTJDTV9TT0ZUUlNUWikKKwkgKiBv dGhlciB0aGFuIHB1bHNpbmcgdGhlIFNEQSBsaW5lLgorCSAqCisJICogV2UgYXBwZWFyIHRvIGJl IGFibGUgdG8gcHVsc2UgdGhlIFNEQSBsaW5lIChpbiB0aGUgZXllcyBvZiBkd19oZG1pKQorCSAq IGJ5OgorCSAqIDEuIFJlbXV4IHRoZSBwaW4gYXMgYSBHUElPIG91dHB1dCwgZHJpdmVuIGxvdy4K KwkgKiAyLiBXYWl0IGEgbGl0dGxlIHdoaWxlLiAgMSBtcyBzZWVtcyB0byB3b3JrLCBidXQgd2Un bGwgZG8gMTAuCisJICogMy4gSW1tZWRpYXRlbHkganVtcCB0byByZW11eCB0aGUgcGluIGFzIGR3 X2hkbWkgaTJjIGFnYWluLgorCSAqCisJICogQXQgdGhlIG1vbWVudCBvZiByZW11eGluZywgdGhl IGxpbmUgd2lsbCBzdGlsbCBiZSBsb3cgZHVlIHRvIGl0cworCSAqIHJlY2VudCBzdGludCBhcyBh biBvdXRwdXQsIGJ1dCB0aGVuIGl0IHdpbGwgYmUgcHVsbGVkIGhpZ2ggYnkgdGhlCisJICogKHBy ZXN1bWVkKSBleHRlcm5hbCBwdWxsdXAuICBkd19oZG1pIHNlZW1zIHRvIHNlZSB0aGlzIGFzIGEg cmlzaW5nCisJICogZWRnZSBhbmQgdGhhdCBzZWVtcyB0byBnZXQgaXQgb3V0IG9mIGl0cyBqYW0u CisJICoKKwkgKiBUaGlzIHdlZGdpbmcgd2FzIG9ubHkgZXZlciBzZWVuIG9uIG9uZSBUViwgYW5k IG9ubHkgb24gb25lIG9mCisJICogaXRzIEhETUkgcG9ydHMuICBJdCBoYXBwZW5lZCB3aGVuIHRo ZSBUViB3YXMgcG93ZXJlZCBvbiB3aGlsZSB0aGUKKwkgKiBkZXZpY2Ugd2FzIHBsdWdnZWQgaW4u ICBBIHNjb3BlIHRyYWNlIHNob3dzIHRoZSBUViBicmluZ2luZyBib3RoIFNEQQorCSAqIGFuZCBT Q0wgbG93LCB0aGVuIGJyaW5naW5nIHRoZW0gYm90aCBiYWNrIHVwIGF0IHJvdWdobHkgdGhlIHNh bWUKKwkgKiB0aW1lLiAgUHJlc3VtYWJseSB0aGlzIGNvbmZ1c2VzIGR3X2hkbWkgYmVjYXVzZSBp dCBzYXcgYWN0aXZpdHkgYnV0CisJICogbm8gcmVhbCBTVE9QIChtYXliZSBpdCB0aGlua3MgdGhl cmUncyBhbm90aGVyIG1hc3RlciBvbiB0aGUgYnVzPykuCisJICogR2l2aW5nIGl0IGEgY2xlYW4g cmlzaW5nIGVkZ2Ugb2YgU0RBIHdoaWxlIFNDTCBpcyBhbHJlYWR5IGhpZ2gKKwkgKiBwcmVzdW1h Ymx5IG1ha2VzIGR3X2hkbWkgc2VlIGEgU1RPUCB3aGljaCBzZWVtcyB0byBicmluZyBkd19oZG1p IG91dAorCSAqIG9mIGl0cyBzdHVwb3IuCisJICoKKwkgKiBOb3RlIHRoYXQgYWZ0ZXIgY29taW5n IGJhY2sgYWxpdmUsIHRyYW5zZmVycyBzZWVtIHRvIGltbWVkaWF0ZWx5CisJICogcmVzdW1lLCBz byBpZiB3ZSB1bndlZGdlIGR1ZSB0byBhIHRpbWVvdXQgd2Ugc2hvdWxkIHdhaXQgYSBsaXR0bGUK KwkgKiBsb25nZXIgZm9yIG91ciB0cmFuc2ZlciB0byBmaW5pc2gsIHNpbmNlIGl0IG1pZ2h0IGhh dmUganVzdCBzdGFydGVkCisJICogbm93LgorCSAqLworCXBpbmN0cmxfc2VsZWN0X3N0YXRlKGhk bWktPnBpbmN0cmwsIGhkbWktPnVud2VkZ2Vfc3RhdGUpOworCW1zbGVlcCgxMCk7CisJcGluY3Ry bF9zZWxlY3Rfc3RhdGUoaGRtaS0+cGluY3RybCwgaGRtaS0+ZGVmYXVsdF9zdGF0ZSk7CisKKwly ZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGludCBkd19oZG1pX2kyY193YWl0KHN0cnVjdCBkd19o ZG1pICpoZG1pKQoreworCXN0cnVjdCBkd19oZG1pX2kyYyAqaTJjID0gaGRtaS0+aTJjOworCWlu dCBzdGF0OworCisJc3RhdCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmaTJjLT5jbXAs IEhaIC8gMTApOworCWlmICghc3RhdCkgeworCQkvKiBJZiB3ZSBjYW4ndCB1bndlZGdlLCByZXR1 cm4gdGltZW91dCAqLworCQlpZiAoIWR3X2hkbWlfaTJjX3Vud2VkZ2UoaGRtaSkpCisJCQlyZXR1 cm4gLUVBR0FJTjsKKworCQkvKiBXZSB0cmllZCB0byB1bndlZGdlOyBnaXZlIGl0IGFub3RoZXIg Y2hhbmNlICovCisJCXN0YXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJmkyYy0+Y21w LCBIWiAvIDEwKTsKKwkJaWYgKCFzdGF0KQorCQkJcmV0dXJuIC1FQUdBSU47CisJfQorCisJLyog Q2hlY2sgZm9yIGVycm9yIGNvbmRpdGlvbiBvbiB0aGUgYnVzICovCisJaWYgKGkyYy0+c3RhdCAm IEhETUlfSUhfSTJDTV9TVEFUMF9FUlJPUikKKwkJcmV0dXJuIC1FSU87CisKKwlyZXR1cm4gMDsK K30KKwogc3RhdGljIGludCBkd19oZG1pX2kyY19yZWFkKHN0cnVjdCBkd19oZG1pICpoZG1pLAog CQkJICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgdW5zaWduZWQgaW50IGxlbmd0aCkKIHsKIAlzdHJ1 Y3QgZHdfaGRtaV9pMmMgKmkyYyA9IGhkbWktPmkyYzsKLQlpbnQgc3RhdDsKKwlpbnQgcmV0Owog CiAJaWYgKCFpMmMtPmlzX3JlZ2FkZHIpIHsKIAkJZGV2X2RiZyhoZG1pLT5kZXYsICJzZXQgcmVh ZCByZWdpc3RlciBhZGRyZXNzIHRvIDBcbiIpOwpAQCAtMjcwLDEzICszNDYsOSBAQCBzdGF0aWMg aW50IGR3X2hkbWlfaTJjX3JlYWQoc3RydWN0IGR3X2hkbWkgKmhkbWksCiAJCQloZG1pX3dyaXRl YihoZG1pLCBIRE1JX0kyQ01fT1BFUkFUSU9OX1JFQUQsCiAJCQkJICAgIEhETUlfSTJDTV9PUEVS QVRJT04pOwogCi0JCXN0YXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJmkyYy0+Y21w LCBIWiAvIDEwKTsKLQkJaWYgKCFzdGF0KQotCQkJcmV0dXJuIC1FQUdBSU47Ci0KLQkJLyogQ2hl Y2sgZm9yIGVycm9yIGNvbmRpdGlvbiBvbiB0aGUgYnVzICovCi0JCWlmIChpMmMtPnN0YXQgJiBI RE1JX0lIX0kyQ01fU1RBVDBfRVJST1IpCi0JCQlyZXR1cm4gLUVJTzsKKwkJcmV0ID0gZHdfaGRt aV9pMmNfd2FpdChoZG1pKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CiAKIAkJKmJ1Zisr ID0gaGRtaV9yZWFkYihoZG1pLCBIRE1JX0kyQ01fREFUQUkpOwogCX0KQEAgLTI4OSw3ICszNjEs NyBAQCBzdGF0aWMgaW50IGR3X2hkbWlfaTJjX3dyaXRlKHN0cnVjdCBkd19oZG1pICpoZG1pLAog CQkJICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHVuc2lnbmVkIGludCBsZW5ndGgpCiB7CiAJc3Ry dWN0IGR3X2hkbWlfaTJjICppMmMgPSBoZG1pLT5pMmM7Ci0JaW50IHN0YXQ7CisJaW50IHJldDsK IAogCWlmICghaTJjLT5pc19yZWdhZGRyKSB7CiAJCS8qIFVzZSB0aGUgZmlyc3Qgd3JpdGUgYnl0 ZSBhcyByZWdpc3RlciBhZGRyZXNzICovCkBAIC0zMDcsMTMgKzM3OSw5IEBAIHN0YXRpYyBpbnQg ZHdfaGRtaV9pMmNfd3JpdGUoc3RydWN0IGR3X2hkbWkgKmhkbWksCiAJCWhkbWlfd3JpdGViKGhk bWksIEhETUlfSTJDTV9PUEVSQVRJT05fV1JJVEUsCiAJCQkgICAgSERNSV9JMkNNX09QRVJBVElP Tik7CiAKLQkJc3RhdCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmaTJjLT5jbXAsIEha IC8gMTApOwotCQlpZiAoIXN0YXQpCi0JCQlyZXR1cm4gLUVBR0FJTjsKLQotCQkvKiBDaGVjayBm b3IgZXJyb3IgY29uZGl0aW9uIG9uIHRoZSBidXMgKi8KLQkJaWYgKGkyYy0+c3RhdCAmIEhETUlf SUhfSTJDTV9TVEFUMF9FUlJPUikKLQkJCXJldHVybiAtRUlPOworCQlyZXQgPSBkd19oZG1pX2ky Y193YWl0KGhkbWkpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKIAl9CiAKIAlyZXR1cm4g MDsKQEAgLTI2MDYsNiArMjY3NCwyMiBAQCBfX2R3X2hkbWlfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldiwKIAogCS8qIElmIEREQyBidXMgaXMgbm90IHNwZWNpZmllZCwgdHJ5IHRv IHJlZ2lzdGVyIEhETUkgSTJDIGJ1cyAqLwogCWlmICghaGRtaS0+ZGRjKSB7CisJCS8qIExvb2sg Zm9yIChvcHRpb25hbCkgc3R1ZmYgcmVsYXRlZCB0byB1bndlZGdpbmcgKi8KKwkJaGRtaS0+cGlu Y3RybCA9IGRldm1fcGluY3RybF9nZXQoZGV2KTsKKwkJaWYgKCFJU19FUlIoaGRtaS0+cGluY3Ry bCkpIHsKKwkJCWhkbWktPnVud2VkZ2Vfc3RhdGUgPQorCQkJCXBpbmN0cmxfbG9va3VwX3N0YXRl KGhkbWktPnBpbmN0cmwsICJ1bndlZGdlIik7CisJCQloZG1pLT5kZWZhdWx0X3N0YXRlID0KKwkJ CQlwaW5jdHJsX2xvb2t1cF9zdGF0ZShoZG1pLT5waW5jdHJsLCAiZGVmYXVsdCIpOworCisJCQlp ZiAoSVNfRVJSKGhkbWktPmRlZmF1bHRfc3RhdGUpICYmCisJCQkgICAgIUlTX0VSUihoZG1pLT51 bndlZGdlX3N0YXRlKSkgeworCQkJCWRldl93YXJuKGRldiwKKwkJCQkJICJVbndlZGdlIHJlcXVp cmVzIGRlZmF1bHQgcGluY3RybFxuIik7CisJCQkJaGRtaS0+dW53ZWRnZV9zdGF0ZSA9IEVSUl9Q VFIoLUVOT0RFVik7CisJCQl9CisJCX0KKwogCQloZG1pLT5kZGMgPSBkd19oZG1pX2kyY19hZGFw dGVyKGhkbWkpOwogCQlpZiAoSVNfRVJSKGhkbWktPmRkYykpCiAJCQloZG1pLT5kZGMgPSBOVUxM OwotLSAKMi4yMS4wLjEwMjAuZ2YyODIwY2YwMWEtZ29vZwoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVs