From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomi Valkeinen Subject: [PATCHv2 21/22] drm/bridge: tc358767: add IRQ and HPD support Date: Tue, 26 Mar 2019 12:31:45 +0200 Message-ID: <20190326103146.24795-22-tomi.valkeinen@ti.com> References: <20190326103146.24795-1-tomi.valkeinen@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fllv0016.ext.ti.com (fllv0016.ext.ti.com [198.47.19.142]) by gabe.freedesktop.org (Postfix) with ESMTPS id AA60E6E7F6 for ; Tue, 26 Mar 2019 10:33:26 +0000 (UTC) In-Reply-To: <20190326103146.24795-1-tomi.valkeinen@ti.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Andrzej Hajda , Laurent Pinchart , dri-devel@lists.freedesktop.org, Lucas Stach , Andrey Gusakov , Philipp Zabel , Andrey Smirnov , Jyri Sarha , Peter Ujfalusi , Benoit Parrot Cc: Tomi Valkeinen List-Id: dri-devel@lists.freedesktop.org QWRkIHN1cHBvcnQgZm9yIGludGVycnVwdCBhbmQgaG90cGx1ZyBoYW5kbGluZy4gQm90aCBhcmUg b3B0aW9uYWwuCgpTaWduZWQtb2ZmLWJ5OiBUb21pIFZhbGtlaW5lbiA8dG9taS52YWxrZWluZW5A dGkuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjcuYyB8IDE1NyArKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMzkgaW5zZXJ0aW9u cygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS90YzM1ODc2Ny5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jCmluZGV4IDg2 MDZkZTI5YzliMi4uNjk3ODEyOTQyOGE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL3RjMzU4NzY3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jCkBA IC03MSw2ICs3MSw3IEBACiAKIC8qIFN5c3RlbSAqLwogI2RlZmluZSBUQ19JRFJFRwkJMHgwNTAw CisjZGVmaW5lIFNZU1NUQVQJCQkweDA1MDgKICNkZWZpbmUgU1lTQ1RSTAkJCTB4MDUxMAogI2Rl ZmluZSBEUDBfQVVEU1JDX05PX0lOUFVUCQkoMCA8PCAzKQogI2RlZmluZSBEUDBfQVVEU1JDX0ky U19SWAkJKDEgPDwgMykKQEAgLTc5LDkgKzgwLDE2IEBACiAjZGVmaW5lIERQMF9WSURTUkNfRFBJ X1JYCQkoMiA8PCAwKQogI2RlZmluZSBEUDBfVklEU1JDX0NPTE9SX0JBUgkJKDMgPDwgMCkKICNk ZWZpbmUgR1BJT00JCQkweDA1NDAKKyNkZWZpbmUgR1BJT0MJCQkweDA1NDQKKyNkZWZpbmUgR1BJ T08JCQkweDA1NDgKICNkZWZpbmUgR1BJT0kJCQkweDA1NGMKICNkZWZpbmUgSU5UQ1RMX0cJCTB4 MDU2MAogI2RlZmluZSBJTlRTVFNfRwkJMHgwNTY0CisKKyNkZWZpbmUgSU5UX1NZU0VSUgkJQklU KDE2KQorI2RlZmluZSBJTlRfR1BJT19IKHgpCQkoMSA8PCAoeCA9PSAwID8gMiA6IDEwKSkKKyNk ZWZpbmUgSU5UX0dQSU9fTEMoeCkJCSgxIDw8ICh4ID09IDAgPyAzIDogMTEpKQorCiAjZGVmaW5l IElOVF9HUDBfTENOVAkJMHgwNTg0CiAjZGVmaW5lIElOVF9HUDFfTENOVAkJMHgwNTg4CiAKQEAg LTIxOSw2ICsyMjcsMTIgQEAgc3RydWN0IHRjX2RhdGEgewogCXN0cnVjdCBncGlvX2Rlc2MJKnNk X2dwaW87CiAJc3RydWN0IGdwaW9fZGVzYwkqcmVzZXRfZ3BpbzsKIAlzdHJ1Y3QgY2xrCQkqcmVm Y2xrOworCisJLyogZG8gd2UgaGF2ZSBJUlEgKi8KKwlib29sCQkJaGF2ZV9pcnE7CisKKwkvKiBI UEQgcGluIG51bWJlciAoMCBvciAxKSBvciAtRU5PREVWICovCisJaW50CQkJaHBkX251bTsKIH07 CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHRjX2RhdGEgKmF1eF90b190YyhzdHJ1Y3QgZHJtX2Rw X2F1eCAqYSkKQEAgLTEwOTUsNiArMTEwOSwxMiBAQCBzdGF0aWMgdm9pZCB0Y19icmlkZ2VfZW5h YmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCiAJc3RydWN0IHRjX2RhdGEgKnRjID0gYnJp ZGdlX3RvX3RjKGJyaWRnZSk7CiAJaW50IHJldDsKIAorCXJldCA9IHRjX2dldF9kaXNwbGF5X3By b3BzKHRjKTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKHRjLT5kZXYsICJmYWlsZWQgdG8g cmVhZCBkaXNwbGF5IHByb3BzOiAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuOworCX0KKwogCXJldCA9 IHRjX21haW5fbGlua19lbmFibGUodGMpOwogCWlmIChyZXQgPCAwKSB7CiAJCWRldl9lcnIodGMt PmRldiwgIm1haW4gbGluayBlbmFibGUgZXJyb3I6ICVkXG4iLCByZXQpOwpAQCAtMTIwMCwxOSAr MTIyMCw0MiBAQCBzdGF0aWMgaW50IHRjX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcikKIAlyZXR1cm4gY291bnQ7CiB9CiAKLXN0YXRpYyB2b2lkIHRj X2Nvbm5lY3Rvcl9zZXRfcG9sbGluZyhzdHJ1Y3QgdGNfZGF0YSAqdGMsCi0JCQkJICAgICBzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQotewotCS8qIFRPRE86IGFkZCBzdXBwb3J0IGZv ciBIUEQgKi8KLQljb25uZWN0b3ItPnBvbGxlZCA9IERSTV9DT05ORUNUT1JfUE9MTF9DT05ORUNU IHwKLQkJCSAgICBEUk1fQ09OTkVDVE9SX1BPTExfRElTQ09OTkVDVDsKLX0KLQogc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyB0Y19jb25uZWN0b3JfaGVscGVy X2Z1bmNzID0gewogCS5nZXRfbW9kZXMgPSB0Y19jb25uZWN0b3JfZ2V0X21vZGVzLAogfTsKIAor c3RhdGljIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgdGNfY29ubmVjdG9yX2RldGVjdChzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQoreworCXN0cnVjdCB0Y19k YXRhICp0YyA9IGNvbm5lY3Rvcl90b190Yyhjb25uZWN0b3IpOworCWJvb2wgY29ubjsKKwl1MzIg dmFsOworCWludCByZXQ7CisKKwlpZiAodGMtPmhwZF9udW0gPCAwKSB7CisJCWlmICh0Yy0+cGFu ZWwpCisJCQlyZXR1cm4gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7CisJCWVsc2UKKwkJCXJl dHVybiBjb25uZWN0b3Jfc3RhdHVzX3Vua25vd247CisJfQorCisJdGNfcmVhZChHUElPSSwgJnZh bCk7CisKKwljb25uID0gdmFsICYgQklUKHRjLT5ocGRfbnVtKTsKKworCWlmIChmb3JjZSAmJiBj b25uKQorCQl0Y19nZXRfZGlzcGxheV9wcm9wcyh0Yyk7CisKKwlpZiAoY29ubikKKwkJcmV0dXJu IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOworCWVsc2UKKwkJcmV0dXJuIGNvbm5lY3Rvcl9z dGF0dXNfZGlzY29ubmVjdGVkOworCitlcnI6CisJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfdW5r bm93bjsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHRjX2Nv bm5lY3Rvcl9mdW5jcyA9IHsKKwkuZGV0ZWN0ID0gdGNfY29ubmVjdG9yX2RldGVjdCwKIAkuZmls bF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKIAkuZGVz dHJveSA9IGRybV9jb25uZWN0b3JfY2xlYW51cCwKIAkucmVzZXQgPSBkcm1fYXRvbWljX2hlbHBl cl9jb25uZWN0b3JfcmVzZXQsCkBAIC0xMjI3LDcgKzEyNzAsNyBAQCBzdGF0aWMgaW50IHRjX2Jy aWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZHJtID0gYnJpZGdlLT5kZXY7CiAJaW50IHJldDsKIAotCS8qIENyZWF0ZSBlRFAgY29ubmVj dG9yICovCisJLyogQ3JlYXRlIERQL2VEUCBjb25uZWN0b3IgKi8KIAlkcm1fY29ubmVjdG9yX2hl bHBlcl9hZGQoJnRjLT5jb25uZWN0b3IsICZ0Y19jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKIAly ZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoZHJtLCAmdGMtPmNvbm5lY3RvciwgJnRjX2Nvbm5lY3Rv cl9mdW5jcywKIAkJCQkgdGMtPnBhbmVsID8gRFJNX01PREVfQ09OTkVDVE9SX2VEUCA6CkBAIC0x MjM1LDYgKzEyNzgsMTUgQEAgc3RhdGljIGludCB0Y19icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAorCS8qIERvbid0IHBv bGwgaWYgZG9uJ3QgaGF2ZSBIUEQgY29ubmVjdGVkICovCisJaWYgKHRjLT5ocGRfbnVtID49IDAp IHsKKwkJaWYgKHRjLT5oYXZlX2lycSkKKwkJCXRjLT5jb25uZWN0b3IucG9sbGVkID0gRFJNX0NP Tk5FQ1RPUl9QT0xMX0hQRDsKKwkJZWxzZQorCQkJdGMtPmNvbm5lY3Rvci5wb2xsZWQgPSBEUk1f Q09OTkVDVE9SX1BPTExfQ09OTkVDVCB8CisJCQkJCSAgICAgICBEUk1fQ09OTkVDVE9SX1BPTExf RElTQ09OTkVDVDsKKwl9CisKIAlpZiAodGMtPnBhbmVsKQogCQlkcm1fcGFuZWxfYXR0YWNoKHRj LT5wYW5lbCwgJnRjLT5jb25uZWN0b3IpOwogCkBAIC0xMzAxLDYgKzEzNTMsNDMgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHRjX3JlZ21hcF9jb25maWcgPSB7CiAJLnZhbF9m b3JtYXRfZW5kaWFuID0gUkVHTUFQX0VORElBTl9MSVRUTEUsCiB9OwogCitzdGF0aWMgaXJxcmV0 dXJuX3QgdGNfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQoreworCXN0cnVjdCB0Y19k YXRhICp0YyA9IGFyZzsKKwl1MzIgdmFsOworCWludCByOworCisJciA9IHJlZ21hcF9yZWFkKHRj LT5yZWdtYXAsIElOVFNUU19HLCAmdmFsKTsKKwlpZiAocikKKwkJcmV0dXJuIElSUV9OT05FOwor CisJaWYgKCF2YWwpCisJCXJldHVybiBJUlFfTk9ORTsKKworCWlmICh2YWwgJiBJTlRfU1lTRVJS KSB7CisJCXUzMiBzdGF0ID0gMDsKKworCQlyZWdtYXBfcmVhZCh0Yy0+cmVnbWFwLCBTWVNTVEFU LCAmc3RhdCk7CisKKwkJZGV2X2Vycih0Yy0+ZGV2LCAic3lzZXJyICV4XG4iLCBzdGF0KTsKKwl9 CisKKwlpZiAodGMtPmhwZF9udW0gPj0gMCAmJiB0Yy0+YnJpZGdlLmRldikgeworCQlib29sIGgg PSB2YWwgJiBJTlRfR1BJT19IKHRjLT5ocGRfbnVtKTsKKwkJYm9vbCBsYyA9IHZhbCAmIElOVF9H UElPX0xDKHRjLT5ocGRfbnVtKTsKKworCQlkZXZfZGJnKHRjLT5kZXYsICJHUElPJWQ6ICVzICVz XG4iLCB0Yy0+aHBkX251bSwKKwkJCWggPyAiSCIgOiAiIiwgbGMgPyAiTEMiIDogIiIpOworCisJ CWlmIChoIHx8IGxjKQorCQkJZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudCh0Yy0+YnJpZGdl LmRldik7CisJfQorCisJcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAsIElOVFNUU19HLCB2YWwpOwor CisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCiBzdGF0aWMgaW50IHRjX3Byb2JlKHN0cnVjdCBp MmNfY2xpZW50ICpjbGllbnQsIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKIHsKIAlz dHJ1Y3QgZGV2aWNlICpkZXYgPSAmY2xpZW50LT5kZXY7CkBAIC0xMzUyLDYgKzE0NDEsMzEgQEAg c3RhdGljIGludCB0Y19wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBjb25zdCBzdHJ1 Y3QgaTJjX2RldmljZV9pZCAqaWQpCiAJCXJldHVybiByZXQ7CiAJfQogCisJcmV0ID0gb2ZfcHJv cGVydHlfcmVhZF91MzIoZGV2LT5vZl9ub2RlLCAiaHBkLW51bSIsICZ0Yy0+aHBkX251bSk7CisJ aWYgKHJldCkgeworCQl0Yy0+aHBkX251bSA9IC1FTk9ERVY7CisJfSBlbHNlIHsKKwkJaWYgKHRj LT5ocGRfbnVtIDwgMCB8fCB0Yy0+aHBkX251bSA+IDEpIHsKKwkJCWRldl9lcnIoZGV2LCAiZmFp bGVkIHRvIHBhcnNlIEhQRCBudW1iZXJcbiIpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKwor CWlmIChjbGllbnQtPmlycSA+IDApIHsKKwkJLyogZW5hYmxlIFN5c0VyciAqLworCQlyZWdtYXBf d3JpdGUodGMtPnJlZ21hcCwgSU5UQ1RMX0csIElOVF9TWVNFUlIpOworCisJCXJldCA9IGRldm1f cmVxdWVzdF90aHJlYWRlZF9pcnEoZGV2LCBjbGllbnQtPmlycSwKKwkJCQkJCU5VTEwsIHRjX2ly cV9oYW5kbGVyLCBJUlFGX09ORVNIT1QsCisJCQkJCQkidGMzNTg3NjctaXJxIiwgdGMpOworCQlp ZiAocmV0KSB7CisJCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZWdpc3RlciBkcCBpbnRlcnJ1 cHRcbiIpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCXRjLT5oYXZlX2lycSA9IHRydWU7CisJ fQorCiAJcmV0ID0gcmVnbWFwX3JlYWQodGMtPnJlZ21hcCwgVENfSURSRUcsICZ0Yy0+cmV2KTsK IAlpZiAocmV0KSB7CiAJCWRldl9lcnIodGMtPmRldiwgImNhbiBub3QgcmVhZCBkZXZpY2UgSUQ6 ICVkXG4iLCByZXQpOwpAQCAtMTM2NSw2ICsxNDc5LDIyIEBAIHN0YXRpYyBpbnQgdGNfcHJvYmUo c3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgKmlk KQogCiAJdGMtPmFzc3IgPSAodGMtPnJldiA9PSAweDY2MDEpOyAvKiBFbmFibGUgQVNTUiBmb3Ig ZURQIHBhbmVscyAqLwogCisJaWYgKHRjLT5ocGRfbnVtID49IDApIHsKKwkJdTMyIGxjbnRfcmVn ID0gdGMtPmhwZF9udW0gPT0gMCA/IElOVF9HUDBfTENOVCA6IElOVF9HUDFfTENOVDsKKwkJdTMy IGhfbGMgPSBJTlRfR1BJT19IKHRjLT5ocGRfbnVtKSB8IElOVF9HUElPX0xDKHRjLT5ocGRfbnVt KTsKKworCQkvKiBTZXQgTENOVCB0byAybXMgKi8KKwkJcmVnbWFwX3dyaXRlKHRjLT5yZWdtYXAs IGxjbnRfcmVnLAorCQkJICAgICBjbGtfZ2V0X3JhdGUodGMtPnJlZmNsaykgKiAyIC8gMTAwMCk7 CisJCS8qIFdlIG5lZWQgdGhlICJhbHRlcm5hdGUiIG1vZGUgZm9yIEhQRCAqLworCQlyZWdtYXBf d3JpdGUodGMtPnJlZ21hcCwgR1BJT00sIEJJVCh0Yy0+aHBkX251bSkpOworCisJCWlmICh0Yy0+ aGF2ZV9pcnEpIHsKKwkJCS8qIGVuYWJsZSBIICYgTEMgKi8KKwkJCXJlZ21hcF91cGRhdGVfYml0 cyh0Yy0+cmVnbWFwLCBJTlRDVExfRywgaF9sYywgaF9sYyk7CisJCX0KKwl9CisKIAlyZXQgPSB0 Y19hdXhfbGlua19zZXR1cCh0Yyk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKQEAgLTEzNzcs MTIgKzE1MDcsNiBAQCBzdGF0aWMgaW50IHRjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGll bnQsIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKIAlpZiAocmV0KQogCQlyZXR1cm4g cmV0OwogCi0JcmV0ID0gdGNfZ2V0X2Rpc3BsYXlfcHJvcHModGMpOwotCWlmIChyZXQpCi0JCWdv dG8gZXJyX3VucmVnaXN0ZXJfYXV4OwotCi0JdGNfY29ubmVjdG9yX3NldF9wb2xsaW5nKHRjLCAm dGMtPmNvbm5lY3Rvcik7Ci0KIAl0Yy0+YnJpZGdlLmZ1bmNzID0gJnRjX2JyaWRnZV9mdW5jczsK IAl0Yy0+YnJpZGdlLm9mX25vZGUgPSBkZXYtPm9mX25vZGU7CiAJZHJtX2JyaWRnZV9hZGQoJnRj LT5icmlkZ2UpOwpAQCAtMTM5MCw5ICsxNTE0LDYgQEAgc3RhdGljIGludCB0Y19wcm9iZShzdHJ1 Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCiAJ aTJjX3NldF9jbGllbnRkYXRhKGNsaWVudCwgdGMpOwogCiAJcmV0dXJuIDA7Ci1lcnJfdW5yZWdp c3Rlcl9hdXg6Ci0JZHJtX2RwX2F1eF91bnJlZ2lzdGVyKCZ0Yy0+YXV4KTsKLQlyZXR1cm4gcmV0 OwogfQogCiBzdGF0aWMgaW50IHRjX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQot LSAKVGV4YXMgSW5zdHJ1bWVudHMgRmlubGFuZCBPeSwgUG9ya2thbGFua2F0dSAyMiwgMDAxODAg SGVsc2lua2kuClktdHVubnVzL0J1c2luZXNzIElEOiAwNjE1NTIxLTQuIEtvdGlwYWlra2EvRG9t aWNpbGU6IEhlbHNpbmtpCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWw=