From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Anholt Subject: [PATCH v5 4/6] drm: Allow DSI devices to be registered before the host registers. Date: Tue, 18 Jul 2017 14:05:08 -0700 Message-ID: <20170718210510.12229-4-eric@anholt.net> References: <20170718210510.12229-1-eric@anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from anholt.net (anholt.net [50.246.234.109]) by gabe.freedesktop.org (Postfix) with ESMTP id 239C86E3BC for ; Tue, 18 Jul 2017 21:05:16 +0000 (UTC) In-Reply-To: <20170718210510.12229-1-eric@anholt.net> 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, Archit Taneja , Andrzej Hajda , Laurent Pinchart , Thierry Reding Cc: linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org V2hlbiBhIG1pcGlfZHNpX2hvc3QgaXMgcmVnaXN0ZXJlZCwgdGhlIERUIGlzIHdhbGtlZCB0byBm aW5kIGFueSBjaGlsZApub2RlcyB3aXRoIGNvbXBhdGlibGUgc3RyaW5ncy4gIFRob3NlIGdldCBy ZWdpc3RlcmVkIGFzIERTSSBkZXZpY2VzLAphbmQgbW9zdCBEU0kgcGFuZWwgZHJpdmVycyBhcmUg bWlwaV9kc2lfZHJpdmVycyB0aGF0IGF0dGFjaCB0byB0aG9zZSBub2Rlcy4KClRoZXJlIGlzIG9u ZSBzcGVjaWFsIGNhc2UgY3VycmVudGx5LCB0aGUgYWR2NzUzMyBicmlkZ2UsIHdoZXJlIHRoZQpi cmlkZ2UgcHJvYmVzIG9uIEkyQywgYW5kIGR1cmluZyB0aGUgYnJpZGdlIGF0dGFjaCBzdGVwIGl0 IGxvb2tzIHVwCnRoZSBtaXBpX2RzaV9ob3N0IGFuZCByZWdpc3RlcnMgdGhlIG1pcGlfZHNpX2Rl dmljZSAoZm9yIGl0cyBvd24gc3R1YgptaXBpX2RzaV9kcml2ZXIpLgoKRm9yIHRoZSBSYXNwYmVy cnkgUGkgcGFuZWwsIHRob3VnaCwgd2UgYWxzbyBuZWVkIHRvIGF0dGFjaCBvbiBJMkMgKG91cgpj b250cm9sIGJ1cyksIGJ1dCBkb24ndCBoYXZlIGEgYnJpZGdlIGRyaXZlci4gIFRoZSBsYWNrIG9m IGEgYnJpZGdlJ3MKYXR0YWNoKCkgc3RlcCBsaWtlIGFkdjc1MzMgdXNlcyBtZWFucyB0aGF0IHdl IGFyZW4ndCBhYmxlIHRvIGRlbGF5IHRoZQptaXBpX2RzaV9kZXZpY2UgY3JlYXRpb24gdW50aWwg dGhlIG1pcGlfZHNpX2hvc3QgaXMgcHJlc2VudC4KClRvIGZpeCB0aGlzLCB3ZSBleHRlbmQgbWlw aV9kc2lfZGV2aWNlX3JlZ2lzdGVyX2Z1bGwoKSB0byBhbGxvdyBiZWluZwpjYWxsZWQgd2l0aCBh IE5VTEwgaG9zdCwgd2hpY2ggcHV0cyB0aGUgZGV2aWNlIG9uIGEgcXVldWUgd2FpdGluZyBmb3IK YSBob3N0IHRvIGFwcGVhci4gIFdoZW4gYSBuZXcgaG9zdCBpcyByZWdpc3RlcmVkLCB3ZSBmaWxs IGluIHRoZSBob3N0CnZhbHVlIGFuZCBmaW5pc2ggdGhlIGRldmljZSBjcmVhdGlvbiBwcm9jZXNz LgoKdjI6IENsZWFubHkgZXJyb3Igb3V0IGlmIG9uZSBhdHRlbXB0cyB0byBtaXBpX2RzaV9hdHRh Y2goKSB3aXRob3V0IGEKICAgIGhvc3QuICBGaXggaGFuZGxpbmcgb2YgRFNJIHdpdGggbXVsdGlw bGUgZGV2aWNlcywgYW5kIE9GIG5vZGUKICAgIHJlZmNvdW50aW5nLgoKU2lnbmVkLW9mZi1ieTog RXJpYyBBbmhvbHQgPGVyaWNAYW5ob2x0Lm5ldD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX21p cGlfZHNpLmMgfCA2MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0K IGluY2x1ZGUvZHJtL2RybV9taXBpX2RzaS5oICAgICB8ICAzICsrCiAyIGZpbGVzIGNoYW5nZWQs IDU0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fbWlwaV9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbWlwaV9kc2kuYwpp bmRleCAxMTYwYTU3OWUwZGMuLjc3ZDQzOTI1NGRhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9taXBpX2RzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbWlwaV9kc2kuYwpA QCAtNDUsNiArNDUsMTMgQEAKICAqIHN1YnNldCBvZiB0aGUgTUlQSSBEQ1MgY29tbWFuZCBzZXQu CiAgKi8KIAorc3RhdGljIERFRklORV9NVVRFWChob3N0X2xvY2spOworc3RhdGljIExJU1RfSEVB RChob3N0X2xpc3QpOworLyogTGlzdCBvZiBzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlIHdoaWNoIHdl cmUgcmVnaXN0ZXJlZCB3aGlsZSBubyBob3N0CisgKiB3YXMgYXZhaWxhYmxlLgorICovCitzdGF0 aWMgTElTVF9IRUFEKHVuYXR0YWNoZWRfZGV2aWNlX2xpc3QpOworCiBzdGF0aWMgaW50IG1pcGlf ZHNpX2RldmljZV9tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfZHJpdmVy ICpkcnYpCiB7CiAJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpID0gdG9fbWlwaV9kc2lfZGV2 aWNlKGRldik7CkBAIC0xMzgsMTAgKzE0NSwxMiBAQCBzdGF0aWMgc3RydWN0IG1pcGlfZHNpX2Rl dmljZSAqbWlwaV9kc2lfZGV2aWNlX2FsbG9jKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0KQog CiAJZHNpLT5ob3N0ID0gaG9zdDsKIAlkc2ktPmRldi5idXMgPSAmbWlwaV9kc2lfYnVzX3R5cGU7 Ci0JZHNpLT5kZXYucGFyZW50ID0gaG9zdC0+ZGV2OwogCWRzaS0+ZGV2LnR5cGUgPSAmbWlwaV9k c2lfZGV2aWNlX3R5cGU7CiAKLQlkZXZpY2VfaW5pdGlhbGl6ZSgmZHNpLT5kZXYpOworCWlmIChk c2ktPmhvc3QpIHsKKwkJZHNpLT5kZXYucGFyZW50ID0gaG9zdC0+ZGV2OworCQlkZXZpY2VfaW5p dGlhbGl6ZSgmZHNpLT5kZXYpOworCX0KIAogCXJldHVybiBkc2k7CiB9CkBAIC0yMDYsNyArMjE1 LDcgQEAgbWlwaV9kc2lfZGV2aWNlX3JlZ2lzdGVyX2Z1bGwoc3RydWN0IG1pcGlfZHNpX2hvc3Qg Kmhvc3QsCiAJCQkgICAgICBjb25zdCBzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlX2luZm8gKmluZm8p CiB7CiAJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9 IGhvc3QtPmRldjsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBob3N0ID8gaG9zdC0+ZGV2IDogTlVM TDsKIAlpbnQgcmV0OwogCiAJaWYgKCFpbmZvKSB7CkBAIC0yMzAsMTEgKzIzOSwxNyBAQCBtaXBp X2RzaV9kZXZpY2VfcmVnaXN0ZXJfZnVsbChzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwKIAlk c2ktPmNoYW5uZWwgPSBpbmZvLT5jaGFubmVsOwogCXN0cmxjcHkoZHNpLT5uYW1lLCBpbmZvLT50 eXBlLCBzaXplb2YoZHNpLT5uYW1lKSk7CiAKLQlyZXQgPSBtaXBpX2RzaV9kZXZpY2VfYWRkKGRz aSk7Ci0JaWYgKHJldCkgewotCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBhZGQgRFNJIGRldmlj ZSAlZFxuIiwgcmV0KTsKLQkJa2ZyZWUoZHNpKTsKLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKwlp ZiAoIWRzaS0+aG9zdCkgeworCQltdXRleF9sb2NrKCZob3N0X2xvY2spOworCQlsaXN0X2FkZCgm ZHNpLT5saXN0LCAmdW5hdHRhY2hlZF9kZXZpY2VfbGlzdCk7CisJCW11dGV4X3VubG9jaygmaG9z dF9sb2NrKTsKKwl9IGVsc2UgeworCQlyZXQgPSBtaXBpX2RzaV9kZXZpY2VfYWRkKGRzaSk7CisJ CWlmIChyZXQpIHsKKwkJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGFkZCBEU0kgZGV2aWNlICVk XG4iLCByZXQpOworCQkJa2ZyZWUoZHNpKTsKKwkJCXJldHVybiBFUlJfUFRSKHJldCk7CisJCX0K IAl9CiAKIAlyZXR1cm4gZHNpOwpAQCAtMjUxLDkgKzI2Niw2IEBAIHZvaWQgbWlwaV9kc2lfZGV2 aWNlX3VucmVnaXN0ZXIoc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpKQogfQogRVhQT1JUX1NZ TUJPTChtaXBpX2RzaV9kZXZpY2VfdW5yZWdpc3Rlcik7CiAKLXN0YXRpYyBERUZJTkVfTVVURVgo aG9zdF9sb2NrKTsKLXN0YXRpYyBMSVNUX0hFQUQoaG9zdF9saXN0KTsKLQogLyoqCiAgKiBvZl9m aW5kX21pcGlfZHNpX2hvc3RfYnlfbm9kZSgpIC0gZmluZCB0aGUgTUlQSSBEU0kgaG9zdCBtYXRj aGluZyBhCiAgKgkJCQkgICAgIGRldmljZSB0cmVlIG5vZGUKQEAgLTI4NSw2ICsyOTcsNyBAQCBF WFBPUlRfU1lNQk9MKG9mX2ZpbmRfbWlwaV9kc2lfaG9zdF9ieV9ub2RlKTsKIGludCBtaXBpX2Rz aV9ob3N0X3JlZ2lzdGVyKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0KQogewogCXN0cnVjdCBk ZXZpY2Vfbm9kZSAqbm9kZTsKKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2ksICp0ZW1wOwog CiAJZm9yX2VhY2hfYXZhaWxhYmxlX2NoaWxkX29mX25vZGUoaG9zdC0+ZGV2LT5vZl9ub2RlLCBu b2RlKSB7CiAJCS8qIHNraXAgbm9kZXMgd2l0aG91dCByZWcgcHJvcGVydHkgKi8KQEAgLTI5NSw2 ICszMDgsMjcgQEAgaW50IG1pcGlfZHNpX2hvc3RfcmVnaXN0ZXIoc3RydWN0IG1pcGlfZHNpX2hv c3QgKmhvc3QpCiAKIAltdXRleF9sb2NrKCZob3N0X2xvY2spOwogCWxpc3RfYWRkX3RhaWwoJmhv c3QtPmxpc3QsICZob3N0X2xpc3QpOworCisJLyogSWYgYW55IERTSSBkZXZpY2VzIHdlcmUgcmVn aXN0ZXJlZCB1bmRlciBvdXIgT0Ygbm9kZSwgdGhlbgorCSAqIGNvbm5lY3Qgb3VyIGhvc3QgdG8g aXQgYW5kIHByb2JlIHRoZW0gbm93LgorCSAqLworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShk c2ksIHRlbXAsICZ1bmF0dGFjaGVkX2RldmljZV9saXN0LCBsaXN0KSB7CisJCXN0cnVjdCBkZXZp Y2Vfbm9kZSAqaG9zdF9ub2RlID0gb2ZfZ2V0X3BhcmVudChkc2ktPmRldi5vZl9ub2RlKTsKKwor CQlpZiAoIW9mX25vZGVfY21wKGhvc3Rfbm9kZS0+bmFtZSwgInBvcnRzIikpCisJCQlob3N0X25v ZGUgPSBvZl9nZXRfbmV4dF9wYXJlbnQoaG9zdF9ub2RlKTsKKworCQlpZiAoaG9zdF9ub2RlID09 IGhvc3QtPmRldi0+b2Zfbm9kZSkgeworCQkJZHNpLT5ob3N0ID0gaG9zdDsKKwkJCWRzaS0+ZGV2 LnBhcmVudCA9IGhvc3QtPmRldjsKKwkJCWRldmljZV9pbml0aWFsaXplKCZkc2ktPmRldik7CisK KwkJCW1pcGlfZHNpX2RldmljZV9hZGQoZHNpKTsKKwkJCWxpc3RfZGVsX2luaXQoJmRzaS0+bGlz dCk7CisJCX0KKworCQlvZl9ub2RlX3B1dChob3N0X25vZGUpOworCX0KIAltdXRleF91bmxvY2so Jmhvc3RfbG9jayk7CiAKIAlyZXR1cm4gMDsKQEAgLTMyNiw3ICszNjAsMTIgQEAgRVhQT1JUX1NZ TUJPTChtaXBpX2RzaV9ob3N0X3VucmVnaXN0ZXIpOwogICovCiBpbnQgbWlwaV9kc2lfYXR0YWNo KHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSkKIHsKLQljb25zdCBzdHJ1Y3QgbWlwaV9kc2lf aG9zdF9vcHMgKm9wcyA9IGRzaS0+aG9zdC0+b3BzOworCWNvbnN0IHN0cnVjdCBtaXBpX2RzaV9o b3N0X29wcyAqb3BzOworCisJaWYgKCFkc2ktPmhvc3QpCisJCXJldHVybiAtRUlOVkFMOworCisJ b3BzID0gZHNpLT5ob3N0LT5vcHM7CiAKIAlpZiAoIW9wcyB8fCAhb3BzLT5hdHRhY2gpCiAJCXJl dHVybiAtRU5PU1lTOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21pcGlfZHNpLmggYi9p bmNsdWRlL2RybS9kcm1fbWlwaV9kc2kuaAppbmRleCA0ZmVmMTkwNjRiMGYuLmRmZTY0MGZlYzli YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21pcGlfZHNpLmgKKysrIGIvaW5jbHVkZS9k cm0vZHJtX21pcGlfZHNpLmgKQEAgLTE2OCw2ICsxNjgsNyBAQCBzdHJ1Y3QgbWlwaV9kc2lfZGV2 aWNlX2luZm8gewogICogQGZvcm1hdDogcGl4ZWwgZm9ybWF0IGZvciB2aWRlbyBtb2RlCiAgKiBA bGFuZXM6IG51bWJlciBvZiBhY3RpdmUgZGF0YSBsYW5lcwogICogQG1vZGVfZmxhZ3M6IERTSSBv cGVyYXRpb24gbW9kZSByZWxhdGVkIGZsYWdzCisgKiBAbGlzdDogRW50cnkgb24gdGhlIHVuYXR0 YWNoZWRfZGV2aWNlX2xpc3QKICAqLwogc3RydWN0IG1pcGlfZHNpX2RldmljZSB7CiAJc3RydWN0 IG1pcGlfZHNpX2hvc3QgKmhvc3Q7CkBAIC0xNzgsNiArMTc5LDggQEAgc3RydWN0IG1pcGlfZHNp X2RldmljZSB7CiAJdW5zaWduZWQgaW50IGxhbmVzOwogCWVudW0gbWlwaV9kc2lfcGl4ZWxfZm9y bWF0IGZvcm1hdDsKIAl1bnNpZ25lZCBsb25nIG1vZGVfZmxhZ3M7CisKKwlzdHJ1Y3QgbGlzdF9o ZWFkIGxpc3Q7CiB9OwogCiAjZGVmaW5lIE1JUElfRFNJX01PRFVMRV9QUkVGSVggIm1pcGktZHNp OiIKLS0gCjIuMTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==