From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: [PATCH] drm: bridge: Allow daisy chaining of bridges Date: Thu, 9 Apr 2015 11:42:38 +0530 Message-ID: <1428559958-1902-1-git-send-email-architt@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.codeaurora.org (smtp.codeaurora.org [198.145.29.96]) by gabe.freedesktop.org (Postfix) with ESMTP id 4CB516E746 for ; Wed, 8 Apr 2015 23:12:48 -0700 (PDT) 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 Cc: daniel.vetter@ffwll.ch, airlied@redhat.com, andy.yan@rock-chips.com, ajaykumar.rs@samsung.com List-Id: dri-devel@lists.freedesktop.org QWxsb3cgZHJtX2JyaWRnZSBvYmplY3RzIHRvIGxpbmsgdG8gZWFjaCBvdGhlciBpbiBvcmRlciB0 byBmb3JtIGFuIGVuY29kZXIKY2hhaW4uIFRoZSByZXF1aXJlbWVudCBmb3IgY3JlYXRpbmcgYSBj aGFpbiBvZiBicmlkZ2VzIGNvbWVzIGJlY2F1c2UgdGhlCk1TTSBkcm0gZHJpdmVyIHVzZXMgdXAg aXRzIGVuY29kZXIgYW5kIGJyaWRnZSBvYmplY3RzIGZvciBibG9ja3Mgd2l0aGluCnRoZSBTb0Mg aXRzZWxmLiBUaGVyZSBpc24ndCBhbnl0aGluZyBsZWZ0IHRvIHVzZSBpZiB0aGUgU29DIGRpc3Bs YXkgb3V0cHV0CmlzIGNvbm5lY3RlZCB0byBhbiBleHRlcm5hbCBlbmNvZGVyIElDLiBIYXZpbmcg YW4gYWRkaXRpb25hbCBicmlkZ2UKY29ubmVjdGVkIHRvIHRoZSBleGlzdGluZyBicmlkZ2UgaGVs cHMgaGVyZS4gSW4gZ2VuZXJhbCwgaXQgaXMgcG9zc2libGUgZm9yCnBsYXRmb3JtcyB0byBoYXZl ICBtdWx0aXBsZSBkZXZpY2VzIGJldHdlZW4gdGhlIGVuY29kZXIgYW5kIHRoZQpjb25uZWN0b3Iv cGFuZWwgdGhhdCByZXF1aXJlIHNvbWUgc29ydCBvZiBjb25maWd1cmF0aW9uLgoKV2UgY3JlYXRl IGRybSBicmlkZ2UgaGVscGVyIGZ1bmN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggb3AgaW4K J2RybV9icmlkZ2VfZnVuY3MnLiBUaGVzZSBoZWxwZXJzIGNhbGwgdGhlIGNvcnJlc3BvbmRpbmcg J2RybV9icmlkZ2VfZnVuY3MnCm9wIGZvciB0aGUgZW50aXJlIGNoYWluIG9mIGJyaWRnZXMuIFRo ZXNlIGhlbHBlcnMgYXJlIHVzZWQgaW50ZXJuYWxseSBieQpkcm1fYXRvbWljX2hlbHBlci5jIGFu ZCBkcm1fY3J0Y19oZWxwZXIuYy4KClRoZSBkcm1fYnJpZGdlX2VuYWJsZS9wcmVfZW5hYmxlIGhl bHBlcnMgZXhlY3V0ZSBlbmFibGUvcHJlX2VuYWJsZSBvcHMgb2YgdGhlCmJyaWRnZSBjbG9zZXQg dG8gdGhlIGVuY29kZXIsIGFuZCBwcm9jZWVkIHVudGlsIHRoZSBsYXN0IGJyaWRnZSBpbiB0aGUg Y2hhaW4KaXMgZW5hYmxlZC4gVGhlIHNhbWUgaG9sZHMgZm9yIGRybV9icmlkZ2VfbW9kZV9zZXQv bW9kZV9maXh1cCBoZWxwZXJzLiBUaGUKZHJtX2JyaWRnZV9kaXNhYmxlL3Bvc3RfZGlzYWJsZSBo ZWxwZXJzIGRpc2FibGUgdGhlIGxhc3QgYnJpZGdlIGluIHRoZSBjaGFpbgpmaXJzdCwgYW5kIHBy b2NlZWQgdW50aWwgdGhlIGZpcnN0IGJyaWRnZSBpbiB0aGUgY2hhaW4gaXMgZGlzYWJsZWQuCgpk cm1fYnJpZGdlX2F0dGFjaCgpIHJlbWFpbnMgdGhlIHNhbWUuIEFzIGJlZm9yZSwgdGhlIGRyaXZl ciBjYWxsaW5nIHRoaXMKZnVuY3Rpb24gc2hvdWxkIG1ha2Ugc3VyZSBpdCBoYXMgc2V0IHRoZSBs aW5rcyBjb3JyZWN0bHkuIFRoZSBvcmRlciBpbiB3aGljaAp0aGUgYnJpZGdlcyBhcmUgY29ubmVj dGVkIHRvIGVhY2ggb3RoZXIgZGV0ZXJtaW5lcyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlCmNhbGxz IGFyZSBtYWRlLiBPbmUgcmVxdWlyZW1lbnQgaXMgdGhhdCBldmVyeSBicmlkZ2UgaW4gdGhlIGNo YWluIHNob3VsZCBwb2ludAp0aGUgcGFyZW50IGVuY29kZXIgb2JqZWN0LiBUaGlzIGlzIHJlcXVp cmVkIHNpbmNlIGJyaWRnZSBkcml2ZXJzIGV4cGVjdCBhCnZhbGlkIGVuY29kZXIgcG9pbnRlciBp biBkcm1fYnJpZGdlLiBGb3IgZXhhbXBsZSwgY29uc2lkZXIgYSBjaGFpbiB3aGVyZSBhbgplbmNv ZGVyJ3Mgb3V0cHV0IGlzIGNvbm5lY3RlZCB0byBicmlkZ2UxLCBhbmQgYnJpZGdlMSdzIG91dHB1 dCBpcyBjb25uZWN0ZWQgdG8KYnJpZGdlMjoKCgkvKiBMaWtlIGJlZm9yZSwgYXR0YWNoIGJyaWRn ZSB0byBhbiBlbmNvZGVyICovCglicmlkZ2UxLT5lbmNvZGVyID0gZW5jb2RlcjsKCXJldCA9IGRy bV9icmlkZ2VfYXR0YWNoKGRldiwgYnJpZGdlMSk7CgkuLgoKCS8qCgkgKiBzZXQgdGhlIGZpcnN0 IGJyaWRnZSdzICduZXh0JyBicmlkZ2UgdG8gYnJpZGdlMiwgc2V0IGl0cyBlbmNvZGVyCgkgKiBh cyBicmlkZ2UxJ3MgZW5jb2RlcgoJICovCglicmlkZ2UxLT5uZXh0ID0gYnJpZGdlMgoJYnJpZGdl Mi0+ZW5jb2RlciA9IGJyaWRnZTEtPmVuY29kZXI7CglyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChk ZXYsIGJyaWRnZTIpOwoKCS4uLgoJLi4uCgpUaGlzIG1ldGhvZCBvZiBicmlkZ2UgY2hhaW5pbmcg aXNuJ3QgaW50cnVzaXZlIGFuZCBleGlzdGluZyBkcml2ZXJzIHRoYXQgdXNlCmRybV9icmlkZ2Ug d2lsbCBiZWhhdmUgdGhlIHNhbWUgd2F5IGFzIGJlZm9yZS4gVGhlIGJyaWRnZSBoZWxwZXJzIGFs c28gY2xlYW5zCnVwIHRoZSBhdG9taWMgYW5kIGNydGMgaGVscGVyIGZpbGVzIGEgYml0LgoKU2ln bmVkLW9mZi1ieTogQXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9yZz4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8IDI5ICsrKysrKy0tLS0tLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMgICAgICAgIHwgNjggKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5j ICAgfCA1NCArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogaW5jbHVkZS9kcm0vZHJtX2Ny dGMuaCAgICAgICAgICAgICAgfCAxNCArKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxMTIgaW5z ZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIu YwppbmRleCA3ZTNhNTJiLi4wYjQ1NzRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIu YwpAQCAtMjg3LDE0ICsyODcsMTEgQEAgbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCiAJCWVuY29kZXIgPSBjb25uX3N0YXRlLT5iZXN0X2VuY29kZXI7CiAJCWZ1bmNz ID0gZW5jb2Rlci0+aGVscGVyX3ByaXZhdGU7CiAKLQkJaWYgKGVuY29kZXItPmJyaWRnZSAmJiBl bmNvZGVyLT5icmlkZ2UtPmZ1bmNzLT5tb2RlX2ZpeHVwKSB7Ci0JCQlyZXQgPSBlbmNvZGVyLT5i cmlkZ2UtPmZ1bmNzLT5tb2RlX2ZpeHVwKAotCQkJCQllbmNvZGVyLT5icmlkZ2UsICZjcnRjX3N0 YXRlLT5tb2RlLAotCQkJCQkmY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZSk7Ci0JCQlpZiAoIXJl dCkgewotCQkJCURSTV9ERUJVR19LTVMoIkJyaWRnZSBmaXh1cCBmYWlsZWRcbiIpOwotCQkJCXJl dHVybiAtRUlOVkFMOwotCQkJfQorCQlyZXQgPSBkcm1fYnJpZGdlX21vZGVfZml4dXAoZW5jb2Rl ci0+YnJpZGdlLCAmY3J0Y19zdGF0ZS0+bW9kZSwKKwkJCQkmY3J0Y19zdGF0ZS0+YWRqdXN0ZWRf bW9kZSk7CisJCWlmICghcmV0KSB7CisJCQlEUk1fREVCVUdfS01TKCJCcmlkZ2UgZml4dXAgZmFp bGVkXG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAKIAkJaWYgKGZ1bmNzLT5hdG9taWNf Y2hlY2spIHsKQEAgLTYwNyw4ICs2MDQsNyBAQCBkaXNhYmxlX291dHB1dHMoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKIAkJICogRWFj aCBlbmNvZGVyIGhhcyBhdCBtb3N0IG9uZSBjb25uZWN0b3IgKHNpbmNlIHdlIGFsd2F5cyBzdGVh bAogCQkgKiBpdCBhd2F5KSwgc28gd2Ugd29uJ3QgY2FsbCBjYWxsIGRpc2FibGUgaG9va3MgdHdp Y2UuCiAJCSAqLwotCQlpZiAoZW5jb2Rlci0+YnJpZGdlKQotCQkJZW5jb2Rlci0+YnJpZGdlLT5m dW5jcy0+ZGlzYWJsZShlbmNvZGVyLT5icmlkZ2UpOworCQlkcm1fYnJpZGdlX2Rpc2FibGUoZW5j b2Rlci0+YnJpZGdlKTsKIAogCQkvKiBSaWdodCBmdW5jdGlvbiBkZXBlbmRzIHVwb24gdGFyZ2V0 IHN0YXRlLiAqLwogCQlpZiAoY29ubmVjdG9yLT5zdGF0ZS0+Y3J0YyAmJiBmdW5jcy0+cHJlcGFy ZSkKQEAgLTYxOCw4ICs2MTQsNyBAQCBkaXNhYmxlX291dHB1dHMoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKIAkJZWxzZQogCQkJZnVu Y3MtPmRwbXMoZW5jb2RlciwgRFJNX01PREVfRFBNU19PRkYpOwogCi0JCWlmIChlbmNvZGVyLT5i cmlkZ2UpCi0JCQllbmNvZGVyLT5icmlkZ2UtPmZ1bmNzLT5wb3N0X2Rpc2FibGUoZW5jb2Rlci0+ YnJpZGdlKTsKKwkJZHJtX2JyaWRnZV9wb3N0X2Rpc2FibGUoZW5jb2Rlci0+YnJpZGdlKTsKIAl9 CiAKIAlmb3IgKGkgPSAwOyBpIDwgbmNydGNzOyBpKyspIHsKQEAgLTc2MSw5ICs3NTYsNyBAQCBj cnRjX3NldF9tb2RlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpvbGRfc3RhdGUpCiAJCSAqLwogCQlmdW5jcy0+bW9kZV9zZXQoZW5jb2RlciwgbW9kZSwg YWRqdXN0ZWRfbW9kZSk7CiAKLQkJaWYgKGVuY29kZXItPmJyaWRnZSAmJiBlbmNvZGVyLT5icmlk Z2UtPmZ1bmNzLT5tb2RlX3NldCkKLQkJCWVuY29kZXItPmJyaWRnZS0+ZnVuY3MtPm1vZGVfc2V0 KGVuY29kZXItPmJyaWRnZSwKLQkJCQkJCQkgbW9kZSwgYWRqdXN0ZWRfbW9kZSk7CisJCWRybV9i cmlkZ2VfbW9kZV9zZXQoZW5jb2Rlci0+YnJpZGdlLCBtb2RlLCBhZGp1c3RlZF9tb2RlKTsKIAl9 CiB9CiAKQEAgLTg0OSwxNiArODQyLDE0IEBAIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0 X3Bvc3RfcGxhbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAqIEVhY2ggZW5jb2RlciBo YXMgYXQgbW9zdCBvbmUgY29ubmVjdG9yIChzaW5jZSB3ZSBhbHdheXMgc3RlYWwKIAkJICogaXQg YXdheSksIHNvIHdlIHdvbid0IGNhbGwgY2FsbCBlbmFibGUgaG9va3MgdHdpY2UuCiAJCSAqLwot CQlpZiAoZW5jb2Rlci0+YnJpZGdlKQotCQkJZW5jb2Rlci0+YnJpZGdlLT5mdW5jcy0+cHJlX2Vu YWJsZShlbmNvZGVyLT5icmlkZ2UpOworCQlkcm1fYnJpZGdlX3ByZV9lbmFibGUoZW5jb2Rlci0+ YnJpZGdlKTsKIAogCQlpZiAoZnVuY3MtPmVuYWJsZSkKIAkJCWZ1bmNzLT5lbmFibGUoZW5jb2Rl cik7CiAJCWVsc2UKIAkJCWZ1bmNzLT5jb21taXQoZW5jb2Rlcik7CiAKLQkJaWYgKGVuY29kZXIt PmJyaWRnZSkKLQkJCWVuY29kZXItPmJyaWRnZS0+ZnVuY3MtPmVuYWJsZShlbmNvZGVyLT5icmlk Z2UpOworCQlkcm1fYnJpZGdlX2VuYWJsZShlbmNvZGVyLT5icmlkZ2UpOwogCX0KIH0KIEVYUE9S VF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3Bvc3RfcGxhbmVzKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Jy aWRnZS5jCmluZGV4IGQxMTg3ZTUuLmI1MmMzODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYnJpZGdlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYwpAQCAtNjYs NiArNjYsNzQgQEAgZXh0ZXJuIGludCBkcm1fYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQogfQogRVhQT1JUX1NZTUJPTChkcm1f YnJpZGdlX2F0dGFjaCk7CiAKK2Jvb2wgZHJtX2JyaWRnZV9tb2RlX2ZpeHVwKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UsCisJCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwK KwkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQoreworCWJvb2wgcmV0 ID0gdHJ1ZTsKKworCWlmICghYnJpZGdlKQorCQlyZXR1cm4gdHJ1ZTsKKworCWlmIChicmlkZ2Ut PmZ1bmNzLT5tb2RlX2ZpeHVwKQorCQlyZXQgPSBicmlkZ2UtPmZ1bmNzLT5tb2RlX2ZpeHVwKGJy aWRnZSwgbW9kZSwgYWRqdXN0ZWRfbW9kZSk7CisKKwlyZXR1cm4gcmV0ICYgZHJtX2JyaWRnZV9t b2RlX2ZpeHVwKGJyaWRnZS0+bmV4dCwgbW9kZSwgYWRqdXN0ZWRfbW9kZSk7Cit9CisKK3ZvaWQg ZHJtX2JyaWRnZV9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCit7CisJaWYgKCFi cmlkZ2UpCisJCXJldHVybjsKKworCWRybV9icmlkZ2VfZGlzYWJsZShicmlkZ2UtPm5leHQpOwor CisJYnJpZGdlLT5mdW5jcy0+ZGlzYWJsZShicmlkZ2UpOworfQorCit2b2lkIGRybV9icmlkZ2Vf cG9zdF9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCit7CisJaWYgKCFicmlkZ2Up CisJCXJldHVybjsKKworCWRybV9icmlkZ2VfcG9zdF9kaXNhYmxlKGJyaWRnZS0+bmV4dCk7CisK KwlicmlkZ2UtPmZ1bmNzLT5wb3N0X2Rpc2FibGUoYnJpZGdlKTsKK30KKwordm9pZCBkcm1fYnJp ZGdlX21vZGVfc2V0KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZSwKKwkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlKQoreworCWlmICghYnJpZGdlKQorCQlyZXR1cm47CisKKwlpZiAoYnJpZGdlLT5mdW5jcy0+ bW9kZV9zZXQpCisJCWJyaWRnZS0+ZnVuY3MtPm1vZGVfc2V0KGJyaWRnZSwgbW9kZSwgYWRqdXN0 ZWRfbW9kZSk7CisKKwlkcm1fYnJpZGdlX21vZGVfc2V0KGJyaWRnZS0+bmV4dCwgbW9kZSwgYWRq dXN0ZWRfbW9kZSk7Cit9CisKK3ZvaWQgZHJtX2JyaWRnZV9wcmVfZW5hYmxlKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UpCit7CisJaWYgKCFicmlkZ2UpCisJCXJldHVybjsKKworCWJyaWRnZS0+ ZnVuY3MtPnByZV9lbmFibGUoYnJpZGdlKTsKKworCWRybV9icmlkZ2VfcHJlX2VuYWJsZShicmlk Z2UtPm5leHQpOworfQorCit2b2lkIGRybV9icmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UpCit7CisJaWYgKCFicmlkZ2UpCisJCXJldHVybjsKKworCWJyaWRnZS0+ZnVuY3Mt PmVuYWJsZShicmlkZ2UpOworCisJZHJtX2JyaWRnZV9lbmFibGUoYnJpZGdlLT5uZXh0KTsKK30K KwogI2lmZGVmIENPTkZJR19PRgogc3RydWN0IGRybV9icmlkZ2UgKm9mX2RybV9maW5kX2JyaWRn ZShzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9jcnRjX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCmlu ZGV4IGIxOTc5ZTcuLmExOTlmNDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0 Y19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMKQEAgLTE2 MywxNiArMTYzLDE0IEBAIGRybV9lbmNvZGVyX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKQogewogCXN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgKmVuY29kZXJfZnVu Y3MgPSBlbmNvZGVyLT5oZWxwZXJfcHJpdmF0ZTsKIAotCWlmIChlbmNvZGVyLT5icmlkZ2UpCi0J CWVuY29kZXItPmJyaWRnZS0+ZnVuY3MtPmRpc2FibGUoZW5jb2Rlci0+YnJpZGdlKTsKKwlkcm1f YnJpZGdlX2Rpc2FibGUoZW5jb2Rlci0+YnJpZGdlKTsKIAogCWlmIChlbmNvZGVyX2Z1bmNzLT5k aXNhYmxlKQogCQkoKmVuY29kZXJfZnVuY3MtPmRpc2FibGUpKGVuY29kZXIpOwogCWVsc2UKIAkJ KCplbmNvZGVyX2Z1bmNzLT5kcG1zKShlbmNvZGVyLCBEUk1fTU9ERV9EUE1TX09GRik7CiAKLQlp ZiAoZW5jb2Rlci0+YnJpZGdlKQotCQllbmNvZGVyLT5icmlkZ2UtPmZ1bmNzLT5wb3N0X2Rpc2Fi bGUoZW5jb2Rlci0+YnJpZGdlKTsKKwlkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZShlbmNvZGVyLT5i cmlkZ2UpOwogfQogCiBzdGF0aWMgdm9pZCBfX2RybV9oZWxwZXJfZGlzYWJsZV91bnVzZWRfZnVu Y3Rpb25zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC0zMTEsMTMgKzMwOSwxMSBAQCBib29s IGRybV9jcnRjX2hlbHBlcl9zZXRfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWlmIChl bmNvZGVyLT5jcnRjICE9IGNydGMpCiAJCQljb250aW51ZTsKIAotCQlpZiAoZW5jb2Rlci0+YnJp ZGdlICYmIGVuY29kZXItPmJyaWRnZS0+ZnVuY3MtPm1vZGVfZml4dXApIHsKLQkJCXJldCA9IGVu Y29kZXItPmJyaWRnZS0+ZnVuY3MtPm1vZGVfZml4dXAoCi0JCQkJCWVuY29kZXItPmJyaWRnZSwg bW9kZSwgYWRqdXN0ZWRfbW9kZSk7Ci0JCQlpZiAoIXJldCkgewotCQkJCURSTV9ERUJVR19LTVMo IkJyaWRnZSBmaXh1cCBmYWlsZWRcbiIpOwotCQkJCWdvdG8gZG9uZTsKLQkJCX0KKwkJcmV0ID0g ZHJtX2JyaWRnZV9tb2RlX2ZpeHVwKGVuY29kZXItPmJyaWRnZSwKKwkJCW1vZGUsIGFkanVzdGVk X21vZGUpOworCQlpZiAoIXJldCkgeworCQkJRFJNX0RFQlVHX0tNUygiQnJpZGdlIGZpeHVwIGZh aWxlZFxuIik7CisJCQlnb3RvIGRvbmU7CiAJCX0KIAogCQllbmNvZGVyX2Z1bmNzID0gZW5jb2Rl ci0+aGVscGVyX3ByaXZhdGU7CkBAIC0zNDAsMTUgKzMzNiwxMyBAQCBib29sIGRybV9jcnRjX2hl bHBlcl9zZXRfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWlmIChlbmNvZGVyLT5jcnRj ICE9IGNydGMpCiAJCQljb250aW51ZTsKIAotCQlpZiAoZW5jb2Rlci0+YnJpZGdlKQotCQkJZW5j b2Rlci0+YnJpZGdlLT5mdW5jcy0+ZGlzYWJsZShlbmNvZGVyLT5icmlkZ2UpOworCQlkcm1fYnJp ZGdlX2Rpc2FibGUoZW5jb2Rlci0+YnJpZGdlKTsKIAogCQllbmNvZGVyX2Z1bmNzID0gZW5jb2Rl ci0+aGVscGVyX3ByaXZhdGU7CiAJCS8qIERpc2FibGUgdGhlIGVuY29kZXJzIGFzIHRoZSBmaXJz dCB0aGluZyB3ZSBkby4gKi8KIAkJZW5jb2Rlcl9mdW5jcy0+cHJlcGFyZShlbmNvZGVyKTsKIAot CQlpZiAoZW5jb2Rlci0+YnJpZGdlKQotCQkJZW5jb2Rlci0+YnJpZGdlLT5mdW5jcy0+cG9zdF9k aXNhYmxlKGVuY29kZXItPmJyaWRnZSk7CisJCWRybV9icmlkZ2VfcG9zdF9kaXNhYmxlKGVuY29k ZXItPmJyaWRnZSk7CiAJfQogCiAJZHJtX2NydGNfcHJlcGFyZV9lbmNvZGVycyhkZXYpOwpAQCAt MzczLDkgKzM2Nyw3IEBAIGJvb2wgZHJtX2NydGNfaGVscGVyX3NldF9tb2RlKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIAkJZW5jb2Rlcl9mdW5jcyA9IGVuY29kZXItPmhlbHBlcl9wcml2YXRlOwog CQllbmNvZGVyX2Z1bmNzLT5tb2RlX3NldChlbmNvZGVyLCBtb2RlLCBhZGp1c3RlZF9tb2RlKTsK IAotCQlpZiAoZW5jb2Rlci0+YnJpZGdlICYmIGVuY29kZXItPmJyaWRnZS0+ZnVuY3MtPm1vZGVf c2V0KQotCQkJZW5jb2Rlci0+YnJpZGdlLT5mdW5jcy0+bW9kZV9zZXQoZW5jb2Rlci0+YnJpZGdl LCBtb2RlLAotCQkJCQlhZGp1c3RlZF9tb2RlKTsKKwkJZHJtX2JyaWRnZV9tb2RlX3NldChlbmNv ZGVyLT5icmlkZ2UsIG1vZGUsIGFkanVzdGVkX21vZGUpOwogCX0KIAogCS8qIE5vdyBlbmFibGUg dGhlIGNsb2NrcywgcGxhbmUsIHBpcGUsIGFuZCBjb25uZWN0b3JzIHRoYXQgd2Ugc2V0IHVwLiAq LwpAQCAtMzg2LDE0ICszNzgsMTIgQEAgYm9vbCBkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogCQlpZiAoZW5jb2Rlci0+Y3J0YyAhPSBjcnRjKQogCQkJY29u dGludWU7CiAKLQkJaWYgKGVuY29kZXItPmJyaWRnZSkKLQkJCWVuY29kZXItPmJyaWRnZS0+ZnVu Y3MtPnByZV9lbmFibGUoZW5jb2Rlci0+YnJpZGdlKTsKKwkJZHJtX2JyaWRnZV9wcmVfZW5hYmxl KGVuY29kZXItPmJyaWRnZSk7CiAKIAkJZW5jb2Rlcl9mdW5jcyA9IGVuY29kZXItPmhlbHBlcl9w cml2YXRlOwogCQllbmNvZGVyX2Z1bmNzLT5jb21taXQoZW5jb2Rlcik7CiAKLQkJaWYgKGVuY29k ZXItPmJyaWRnZSkKLQkJCWVuY29kZXItPmJyaWRnZS0+ZnVuY3MtPmVuYWJsZShlbmNvZGVyLT5i cmlkZ2UpOworCQlkcm1fYnJpZGdlX2VuYWJsZShlbmNvZGVyLT5icmlkZ2UpOwogCX0KIAogCS8q IFN0b3JlIHJlYWwgcG9zdC1hZGp1c3RtZW50IGhhcmR3YXJlIG1vZGUuICovCkBAIC03MzQsMjMg KzcyNCwxOSBAQCBzdGF0aWMgdm9pZCBkcm1faGVscGVyX2VuY29kZXJfZHBtcyhzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsIGludCBtb2RlKQogCXN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Ug PSBlbmNvZGVyLT5icmlkZ2U7CiAJc3RydWN0IGRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcyAqZW5j b2Rlcl9mdW5jczsKIAotCWlmIChicmlkZ2UpIHsKLQkJaWYgKG1vZGUgPT0gRFJNX01PREVfRFBN U19PTikKLQkJCWJyaWRnZS0+ZnVuY3MtPnByZV9lbmFibGUoYnJpZGdlKTsKLQkJZWxzZQotCQkJ YnJpZGdlLT5mdW5jcy0+ZGlzYWJsZShicmlkZ2UpOwotCX0KKwlpZiAobW9kZSA9PSBEUk1fTU9E RV9EUE1TX09OKQorCQlkcm1fYnJpZGdlX3ByZV9lbmFibGUoYnJpZGdlKTsKKwllbHNlCisJCWRy bV9icmlkZ2VfZGlzYWJsZShicmlkZ2UpOwogCiAJZW5jb2Rlcl9mdW5jcyA9IGVuY29kZXItPmhl bHBlcl9wcml2YXRlOwogCWlmIChlbmNvZGVyX2Z1bmNzLT5kcG1zKQogCQllbmNvZGVyX2Z1bmNz LT5kcG1zKGVuY29kZXIsIG1vZGUpOwogCi0JaWYgKGJyaWRnZSkgewotCQlpZiAobW9kZSA9PSBE Uk1fTU9ERV9EUE1TX09OKQotCQkJYnJpZGdlLT5mdW5jcy0+ZW5hYmxlKGJyaWRnZSk7Ci0JCWVs c2UKLQkJCWJyaWRnZS0+ZnVuY3MtPnBvc3RfZGlzYWJsZShicmlkZ2UpOwotCX0KKwlpZiAobW9k ZSA9PSBEUk1fTU9ERV9EUE1TX09OKQorCQlkcm1fYnJpZGdlX2VuYWJsZShicmlkZ2UpOworCWVs c2UKKwkJZHJtX2JyaWRnZV9wb3N0X2Rpc2FibGUoYnJpZGdlKTsKIH0KIAogc3RhdGljIGludCBk cm1faGVscGVyX2Nob29zZV9jcnRjX2RwbXMoc3RydWN0IGRybV9jcnRjICpjcnRjKQpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKaW5k ZXggOTIwZTIxYS4uOGZjZWQxZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAor KysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCkBAIC04OTMsNiArODkzLDggQEAgc3RydWN0IGRy bV9icmlkZ2VfZnVuY3MgewogLyoqCiAgKiBzdHJ1Y3QgZHJtX2JyaWRnZSAtIGNlbnRyYWwgRFJN IGJyaWRnZSBjb250cm9sIHN0cnVjdHVyZQogICogQGRldjogRFJNIGRldmljZSB0aGlzIGJyaWRn ZSBiZWxvbmdzIHRvCisgKiBAZW5jb2RlcjogZW5jb2RlciB0byB3aGljaCB0aGlzIGJyaWRnZSBp cyBjb25uZWN0ZWQKKyAqIEBuZXh0OiB0aGUgbmV4dCBicmlkZ2UgaW4gdGhlIGVuY29kZXIgY2hh aW4KICAqIEBvZl9ub2RlOiBkZXZpY2Ugbm9kZSBwb2ludGVyIHRvIHRoZSBicmlkZ2UKICAqIEBs aXN0OiB0byBrZWVwIHRyYWNrIG9mIGFsbCBhZGRlZCBicmlkZ2VzCiAgKiBAYmFzZTogYmFzZSBt b2RlIG9iamVjdApAQCAtOTAyLDYgKzkwNCw3IEBAIHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIHsK IHN0cnVjdCBkcm1fYnJpZGdlIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OwogCXN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcjsKKwlzdHJ1Y3QgZHJtX2JyaWRnZSAqbmV4dDsKICNpZmRlZiBD T05GSUdfT0YKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX25vZGU7CiAjZW5kaWYKQEAgLTEyMjUs NiArMTIyOCwxNyBAQCBleHRlcm4gdm9pZCBkcm1fYnJpZGdlX3JlbW92ZShzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlKTsKIGV4dGVybiBzdHJ1Y3QgZHJtX2JyaWRnZSAqb2ZfZHJtX2ZpbmRfYnJp ZGdlKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApOwogZXh0ZXJuIGludCBkcm1fYnJpZGdlX2F0dGFj aChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKIAor Ym9vbCBkcm1fYnJpZGdlX21vZGVfZml4dXAoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKKwkJ CWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAorCQkJc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkX21vZGUpOwordm9pZCBkcm1fYnJpZGdlX2Rpc2FibGUoc3RydWN0 IGRybV9icmlkZ2UgKmJyaWRnZSk7Cit2b2lkIGRybV9icmlkZ2VfcG9zdF9kaXNhYmxlKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UpOwordm9pZCBkcm1fYnJpZGdlX21vZGVfc2V0KHN0cnVjdCBk cm1fYnJpZGdlICpicmlkZ2UsCisJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKKwkJ CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKTsKK3ZvaWQgZHJtX2JyaWRn ZV9wcmVfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwordm9pZCBkcm1fYnJpZGdl X2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKKwogZXh0ZXJuIGludCBkcm1fZW5j b2Rlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgICAgc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLAogCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5jcyAqZnVu Y3MsCi0tIApUaGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIg b2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLApob3N0ZWQgYnkgVGhlIExpbnV4IEZvdW5kYXRpb24K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==