From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm: bridge: Allow daisy chaining of bridges Date: Thu, 09 Apr 2015 10:24:53 +0300 Message-ID: <871tjtsr0a.fsf@intel.com> References: <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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id E768A6E752 for ; Thu, 9 Apr 2015 00:23:08 -0700 (PDT) In-Reply-To: <1428559958-1902-1-git-send-email-architt@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Archit Taneja , dri-devel@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch, andy.yan@rock-chips.com, ajaykumar.rs@samsung.com, airlied@redhat.com List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCAwOSBBcHIgMjAxNSwgQXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9y Zz4gd3JvdGU6Cj4gQWxsb3cgZHJtX2JyaWRnZSBvYmplY3RzIHRvIGxpbmsgdG8gZWFjaCBvdGhl ciBpbiBvcmRlciB0byBmb3JtIGFuIGVuY29kZXIKPiBjaGFpbi4gVGhlIHJlcXVpcmVtZW50IGZv ciBjcmVhdGluZyBhIGNoYWluIG9mIGJyaWRnZXMgY29tZXMgYmVjYXVzZSB0aGUKPiBNU00gZHJt IGRyaXZlciB1c2VzIHVwIGl0cyBlbmNvZGVyIGFuZCBicmlkZ2Ugb2JqZWN0cyBmb3IgYmxvY2tz IHdpdGhpbgo+IHRoZSBTb0MgaXRzZWxmLiBUaGVyZSBpc24ndCBhbnl0aGluZyBsZWZ0IHRvIHVz ZSBpZiB0aGUgU29DIGRpc3BsYXkgb3V0cHV0Cj4gaXMgY29ubmVjdGVkIHRvIGFuIGV4dGVybmFs IGVuY29kZXIgSUMuIEhhdmluZyBhbiBhZGRpdGlvbmFsIGJyaWRnZQo+IGNvbm5lY3RlZCB0byB0 aGUgZXhpc3RpbmcgYnJpZGdlIGhlbHBzIGhlcmUuIEluIGdlbmVyYWwsIGl0IGlzIHBvc3NpYmxl IGZvcgo+IHBsYXRmb3JtcyB0byBoYXZlICBtdWx0aXBsZSBkZXZpY2VzIGJldHdlZW4gdGhlIGVu Y29kZXIgYW5kIHRoZQo+IGNvbm5lY3Rvci9wYW5lbCB0aGF0IHJlcXVpcmUgc29tZSBzb3J0IG9m IGNvbmZpZ3VyYXRpb24uCj4KPiBXZSBjcmVhdGUgZHJtIGJyaWRnZSBoZWxwZXIgZnVuY3Rpb25z IGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBvcCBpbgo+ICdkcm1fYnJpZGdlX2Z1bmNzJy4gVGhlc2Ug aGVscGVycyBjYWxsIHRoZSBjb3JyZXNwb25kaW5nICdkcm1fYnJpZGdlX2Z1bmNzJwo+IG9wIGZv ciB0aGUgZW50aXJlIGNoYWluIG9mIGJyaWRnZXMuIFRoZXNlIGhlbHBlcnMgYXJlIHVzZWQgaW50 ZXJuYWxseSBieQo+IGRybV9hdG9taWNfaGVscGVyLmMgYW5kIGRybV9jcnRjX2hlbHBlci5jLgo+ Cj4gVGhlIGRybV9icmlkZ2VfZW5hYmxlL3ByZV9lbmFibGUgaGVscGVycyBleGVjdXRlIGVuYWJs ZS9wcmVfZW5hYmxlIG9wcyBvZiB0aGUKPiBicmlkZ2UgY2xvc2V0IHRvIHRoZSBlbmNvZGVyLCBh bmQgcHJvY2VlZCB1bnRpbCB0aGUgbGFzdCBicmlkZ2UgaW4gdGhlIGNoYWluCj4gaXMgZW5hYmxl ZC4gVGhlIHNhbWUgaG9sZHMgZm9yIGRybV9icmlkZ2VfbW9kZV9zZXQvbW9kZV9maXh1cCBoZWxw ZXJzLiBUaGUKPiBkcm1fYnJpZGdlX2Rpc2FibGUvcG9zdF9kaXNhYmxlIGhlbHBlcnMgZGlzYWJs ZSB0aGUgbGFzdCBicmlkZ2UgaW4gdGhlIGNoYWluCj4gZmlyc3QsIGFuZCBwcm9jZWVkIHVudGls IHRoZSBmaXJzdCBicmlkZ2UgaW4gdGhlIGNoYWluIGlzIGRpc2FibGVkLgo+Cj4gZHJtX2JyaWRn ZV9hdHRhY2goKSByZW1haW5zIHRoZSBzYW1lLiBBcyBiZWZvcmUsIHRoZSBkcml2ZXIgY2FsbGlu ZyB0aGlzCj4gZnVuY3Rpb24gc2hvdWxkIG1ha2Ugc3VyZSBpdCBoYXMgc2V0IHRoZSBsaW5rcyBj b3JyZWN0bHkuIFRoZSBvcmRlciBpbiB3aGljaAo+IHRoZSBicmlkZ2VzIGFyZSBjb25uZWN0ZWQg dG8gZWFjaCBvdGhlciBkZXRlcm1pbmVzIHRoZSBvcmRlciBpbiB3aGljaCB0aGUKPiBjYWxscyBh cmUgbWFkZS4gT25lIHJlcXVpcmVtZW50IGlzIHRoYXQgZXZlcnkgYnJpZGdlIGluIHRoZSBjaGFp biBzaG91bGQgcG9pbnQKPiB0aGUgcGFyZW50IGVuY29kZXIgb2JqZWN0LiBUaGlzIGlzIHJlcXVp cmVkIHNpbmNlIGJyaWRnZSBkcml2ZXJzIGV4cGVjdCBhCj4gdmFsaWQgZW5jb2RlciBwb2ludGVy IGluIGRybV9icmlkZ2UuIEZvciBleGFtcGxlLCBjb25zaWRlciBhIGNoYWluIHdoZXJlIGFuCj4g ZW5jb2RlcidzIG91dHB1dCBpcyBjb25uZWN0ZWQgdG8gYnJpZGdlMSwgYW5kIGJyaWRnZTEncyBv dXRwdXQgaXMgY29ubmVjdGVkIHRvCj4gYnJpZGdlMjoKPgo+IAkvKiBMaWtlIGJlZm9yZSwgYXR0 YWNoIGJyaWRnZSB0byBhbiBlbmNvZGVyICovCj4gCWJyaWRnZTEtPmVuY29kZXIgPSBlbmNvZGVy Owo+IAlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChkZXYsIGJyaWRnZTEpOwo+IAkuLgo+Cj4gCS8q Cj4gCSAqIHNldCB0aGUgZmlyc3QgYnJpZGdlJ3MgJ25leHQnIGJyaWRnZSB0byBicmlkZ2UyLCBz ZXQgaXRzIGVuY29kZXIKPiAJICogYXMgYnJpZGdlMSdzIGVuY29kZXIKPiAJICovCj4gCWJyaWRn ZTEtPm5leHQgPSBicmlkZ2UyCj4gCWJyaWRnZTItPmVuY29kZXIgPSBicmlkZ2UxLT5lbmNvZGVy Owo+IAlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChkZXYsIGJyaWRnZTIpOwo+Cj4gCS4uLgo+IAku Li4KPgo+IFRoaXMgbWV0aG9kIG9mIGJyaWRnZSBjaGFpbmluZyBpc24ndCBpbnRydXNpdmUgYW5k IGV4aXN0aW5nIGRyaXZlcnMgdGhhdCB1c2UKPiBkcm1fYnJpZGdlIHdpbGwgYmVoYXZlIHRoZSBz YW1lIHdheSBhcyBiZWZvcmUuIFRoZSBicmlkZ2UgaGVscGVycyBhbHNvIGNsZWFucwo+IHVwIHRo ZSBhdG9taWMgYW5kIGNydGMgaGVscGVyIGZpbGVzIGEgYml0Lgo+Cj4gU2lnbmVkLW9mZi1ieTog QXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9yZz4KPiAtLS0KPiAgZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAyOSArKysrKystLS0tLS0tLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMgICAgICAgIHwgNjggKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMgICB8 IDU0ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGluY2x1ZGUvZHJtL2RybV9jcnRj LmggICAgICAgICAgICAgIHwgMTQgKysrKysrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMTIgaW5z ZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuYwo+IGluZGV4IDdlM2E1MmIuLjBiNDU3NGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYwo+IEBAIC0yODcsMTQgKzI4NywxMSBAQCBtb2RlX2ZpeHVwKHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCQllbmNvZGVyID0gY29ubl9zdGF0ZS0+YmVzdF9lbmNv ZGVyOwo+ICAJCWZ1bmNzID0gZW5jb2Rlci0+aGVscGVyX3ByaXZhdGU7Cj4gIAo+IC0JCWlmIChl bmNvZGVyLT5icmlkZ2UgJiYgZW5jb2Rlci0+YnJpZGdlLT5mdW5jcy0+bW9kZV9maXh1cCkgewo+ IC0JCQlyZXQgPSBlbmNvZGVyLT5icmlkZ2UtPmZ1bmNzLT5tb2RlX2ZpeHVwKAo+IC0JCQkJCWVu Y29kZXItPmJyaWRnZSwgJmNydGNfc3RhdGUtPm1vZGUsCj4gLQkJCQkJJmNydGNfc3RhdGUtPmFk anVzdGVkX21vZGUpOwo+IC0JCQlpZiAoIXJldCkgewo+IC0JCQkJRFJNX0RFQlVHX0tNUygiQnJp ZGdlIGZpeHVwIGZhaWxlZFxuIik7Cj4gLQkJCQlyZXR1cm4gLUVJTlZBTDsKPiAtCQkJfQo+ICsJ CXJldCA9IGRybV9icmlkZ2VfbW9kZV9maXh1cChlbmNvZGVyLT5icmlkZ2UsICZjcnRjX3N0YXRl LT5tb2RlLAo+ICsJCQkJJmNydGNfc3RhdGUtPmFkanVzdGVkX21vZGUpOwo+ICsJCWlmICghcmV0 KSB7Cj4gKwkJCURSTV9ERUJVR19LTVMoIkJyaWRnZSBmaXh1cCBmYWlsZWRcbiIpOwo+ICsJCQly ZXR1cm4gLUVJTlZBTDsKPiAgCQl9Cj4gIAo+ICAJCWlmIChmdW5jcy0+YXRvbWljX2NoZWNrKSB7 Cj4gQEAgLTYwNyw4ICs2MDQsNyBAQCBkaXNhYmxlX291dHB1dHMoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiAgCQkgKiBFYWNoIGVu Y29kZXIgaGFzIGF0IG1vc3Qgb25lIGNvbm5lY3RvciAoc2luY2Ugd2UgYWx3YXlzIHN0ZWFsCj4g IAkJICogaXQgYXdheSksIHNvIHdlIHdvbid0IGNhbGwgY2FsbCBkaXNhYmxlIGhvb2tzIHR3aWNl Lgo+ICAJCSAqLwo+IC0JCWlmIChlbmNvZGVyLT5icmlkZ2UpCj4gLQkJCWVuY29kZXItPmJyaWRn ZS0+ZnVuY3MtPmRpc2FibGUoZW5jb2Rlci0+YnJpZGdlKTsKPiArCQlkcm1fYnJpZGdlX2Rpc2Fi bGUoZW5jb2Rlci0+YnJpZGdlKTsKPiAgCj4gIAkJLyogUmlnaHQgZnVuY3Rpb24gZGVwZW5kcyB1 cG9uIHRhcmdldCBzdGF0ZS4gKi8KPiAgCQlpZiAoY29ubmVjdG9yLT5zdGF0ZS0+Y3J0YyAmJiBm dW5jcy0+cHJlcGFyZSkKPiBAQCAtNjE4LDggKzYxNCw3IEBAIGRpc2FibGVfb3V0cHV0cyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ ICAJCWVsc2UKPiAgCQkJZnVuY3MtPmRwbXMoZW5jb2RlciwgRFJNX01PREVfRFBNU19PRkYpOwo+ ICAKPiAtCQlpZiAoZW5jb2Rlci0+YnJpZGdlKQo+IC0JCQllbmNvZGVyLT5icmlkZ2UtPmZ1bmNz LT5wb3N0X2Rpc2FibGUoZW5jb2Rlci0+YnJpZGdlKTsKPiArCQlkcm1fYnJpZGdlX3Bvc3RfZGlz YWJsZShlbmNvZGVyLT5icmlkZ2UpOwo+ICAJfQo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBuY3J0 Y3M7IGkrKykgewo+IEBAIC03NjEsOSArNzU2LDcgQEAgY3J0Y19zZXRfbW9kZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICAJCSAq Lwo+ICAJCWZ1bmNzLT5tb2RlX3NldChlbmNvZGVyLCBtb2RlLCBhZGp1c3RlZF9tb2RlKTsKPiAg Cj4gLQkJaWYgKGVuY29kZXItPmJyaWRnZSAmJiBlbmNvZGVyLT5icmlkZ2UtPmZ1bmNzLT5tb2Rl X3NldCkKPiAtCQkJZW5jb2Rlci0+YnJpZGdlLT5mdW5jcy0+bW9kZV9zZXQoZW5jb2Rlci0+YnJp ZGdlLAo+IC0JCQkJCQkJIG1vZGUsIGFkanVzdGVkX21vZGUpOwo+ICsJCWRybV9icmlkZ2VfbW9k ZV9zZXQoZW5jb2Rlci0+YnJpZGdlLCBtb2RlLCBhZGp1c3RlZF9tb2RlKTsKPiAgCX0KPiAgfQo+ ICAKPiBAQCAtODQ5LDE2ICs4NDIsMTQgQEAgdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRf cG9zdF9wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkgKiBFYWNoIGVuY29kZXIg aGFzIGF0IG1vc3Qgb25lIGNvbm5lY3RvciAoc2luY2Ugd2UgYWx3YXlzIHN0ZWFsCj4gIAkJICog aXQgYXdheSksIHNvIHdlIHdvbid0IGNhbGwgY2FsbCBlbmFibGUgaG9va3MgdHdpY2UuCj4gIAkJ ICovCj4gLQkJaWYgKGVuY29kZXItPmJyaWRnZSkKPiAtCQkJZW5jb2Rlci0+YnJpZGdlLT5mdW5j cy0+cHJlX2VuYWJsZShlbmNvZGVyLT5icmlkZ2UpOwo+ICsJCWRybV9icmlkZ2VfcHJlX2VuYWJs ZShlbmNvZGVyLT5icmlkZ2UpOwo+ICAKPiAgCQlpZiAoZnVuY3MtPmVuYWJsZSkKPiAgCQkJZnVu Y3MtPmVuYWJsZShlbmNvZGVyKTsKPiAgCQllbHNlCj4gIAkJCWZ1bmNzLT5jb21taXQoZW5jb2Rl cik7Cj4gIAo+IC0JCWlmIChlbmNvZGVyLT5icmlkZ2UpCj4gLQkJCWVuY29kZXItPmJyaWRnZS0+ ZnVuY3MtPmVuYWJsZShlbmNvZGVyLT5icmlkZ2UpOwo+ICsJCWRybV9icmlkZ2VfZW5hYmxlKGVu Y29kZXItPmJyaWRnZSk7Cj4gIAl9Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hl bHBlcl9jb21taXRfcG9zdF9wbGFuZXMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2JyaWRnZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYwo+IGluZGV4IGQxMTg3 ZTUuLmI1MmMzODcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMKPiBAQCAtNjYsNiArNjYsNzQgQEAg ZXh0ZXJuIGludCBkcm1fYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1 Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJtX2JyaWRnZV9h dHRhY2gpOwo+ICAKPiArYm9vbCBkcm1fYnJpZGdlX21vZGVfZml4dXAoc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSwKPiArCQkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4g KwkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+ICt7Cj4gKwlib29s IHJldCA9IHRydWU7Cj4gKwo+ICsJaWYgKCFicmlkZ2UpCj4gKwkJcmV0dXJuIHRydWU7Cj4gKwo+ ICsJaWYgKGJyaWRnZS0+ZnVuY3MtPm1vZGVfZml4dXApCj4gKwkJcmV0ID0gYnJpZGdlLT5mdW5j cy0+bW9kZV9maXh1cChicmlkZ2UsIG1vZGUsIGFkanVzdGVkX21vZGUpOwo+ICsKPiArCXJldHVy biByZXQgJiBkcm1fYnJpZGdlX21vZGVfZml4dXAoYnJpZGdlLT5uZXh0LCBtb2RlLCBhZGp1c3Rl ZF9tb2RlKTsKCklzIHRoYXQgYW4gaW50ZW50aW9uYWwgYml0d2lzZSByYXRoZXIgdGhhbiBsb2dp Y2FsIEFORD8gSWYgaXQgaXMsIHBsZWFzZQpkb24ndCBjb21iaW5lIHRoaXMgaW50byB0aGUgcmV0 dXJuIHN0YXRlbWVudC4KCkhvdyBhYm91dCBFWFBPUlRfU1lNQk9McyBmb3IgdGhlIG5ldyBmdW5j dGlvbnM/CgpPdGhlciB0aGFuIHRoZXNlLCB0aGUgcGF0Y2ggTEdUTS4KCkJSLApKYW5pLgoKPiAr fQo+ICsKPiArdm9pZCBkcm1fYnJpZGdlX2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSkKPiArewo+ICsJaWYgKCFicmlkZ2UpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWRybV9icmlkZ2Vf ZGlzYWJsZShicmlkZ2UtPm5leHQpOwo+ICsKPiArCWJyaWRnZS0+ZnVuY3MtPmRpc2FibGUoYnJp ZGdlKTsKPiArfQo+ICsKPiArdm9pZCBkcm1fYnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJt X2JyaWRnZSAqYnJpZGdlKQo+ICt7Cj4gKwlpZiAoIWJyaWRnZSkKPiArCQlyZXR1cm47Cj4gKwo+ ICsJZHJtX2JyaWRnZV9wb3N0X2Rpc2FibGUoYnJpZGdlLT5uZXh0KTsKPiArCj4gKwlicmlkZ2Ut PmZ1bmNzLT5wb3N0X2Rpc2FibGUoYnJpZGdlKTsKPiArfQo+ICsKPiArdm9pZCBkcm1fYnJpZGdl X21vZGVfc2V0KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlLAo+ICsJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSkKPiArewo+ICsJaWYgKCFicmlkZ2UpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWlmIChicmlk Z2UtPmZ1bmNzLT5tb2RlX3NldCkKPiArCQlicmlkZ2UtPmZ1bmNzLT5tb2RlX3NldChicmlkZ2Us IG1vZGUsIGFkanVzdGVkX21vZGUpOwo+ICsKPiArCWRybV9icmlkZ2VfbW9kZV9zZXQoYnJpZGdl LT5uZXh0LCBtb2RlLCBhZGp1c3RlZF9tb2RlKTsKPiArfQo+ICsKPiArdm9pZCBkcm1fYnJpZGdl X3ByZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArewo+ICsJaWYgKCFicmlk Z2UpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWJyaWRnZS0+ZnVuY3MtPnByZV9lbmFibGUoYnJpZGdl KTsKPiArCj4gKwlkcm1fYnJpZGdlX3ByZV9lbmFibGUoYnJpZGdlLT5uZXh0KTsKPiArfQo+ICsK PiArdm9pZCBkcm1fYnJpZGdlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICt7 Cj4gKwlpZiAoIWJyaWRnZSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJYnJpZGdlLT5mdW5jcy0+ZW5h YmxlKGJyaWRnZSk7Cj4gKwo+ICsJZHJtX2JyaWRnZV9lbmFibGUoYnJpZGdlLT5uZXh0KTsKPiAr fQo+ICsKPiAgI2lmZGVmIENPTkZJR19PRgo+ICBzdHJ1Y3QgZHJtX2JyaWRnZSAqb2ZfZHJtX2Zp bmRfYnJpZGdlKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCj4gIHsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRj X2hlbHBlci5jCj4gaW5kZXggYjE5NzllNy4uYTE5OWY0OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Ny dGNfaGVscGVyLmMKPiBAQCAtMTYzLDE2ICsxNjMsMTQgQEAgZHJtX2VuY29kZXJfZGlzYWJsZShz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZW5jb2Rlcl9o ZWxwZXJfZnVuY3MgKmVuY29kZXJfZnVuY3MgPSBlbmNvZGVyLT5oZWxwZXJfcHJpdmF0ZTsKPiAg Cj4gLQlpZiAoZW5jb2Rlci0+YnJpZGdlKQo+IC0JCWVuY29kZXItPmJyaWRnZS0+ZnVuY3MtPmRp c2FibGUoZW5jb2Rlci0+YnJpZGdlKTsKPiArCWRybV9icmlkZ2VfZGlzYWJsZShlbmNvZGVyLT5i cmlkZ2UpOwo+ICAKPiAgCWlmIChlbmNvZGVyX2Z1bmNzLT5kaXNhYmxlKQo+ICAJCSgqZW5jb2Rl cl9mdW5jcy0+ZGlzYWJsZSkoZW5jb2Rlcik7Cj4gIAllbHNlCj4gIAkJKCplbmNvZGVyX2Z1bmNz LT5kcG1zKShlbmNvZGVyLCBEUk1fTU9ERV9EUE1TX09GRik7Cj4gIAo+IC0JaWYgKGVuY29kZXIt PmJyaWRnZSkKPiAtCQllbmNvZGVyLT5icmlkZ2UtPmZ1bmNzLT5wb3N0X2Rpc2FibGUoZW5jb2Rl ci0+YnJpZGdlKTsKPiArCWRybV9icmlkZ2VfcG9zdF9kaXNhYmxlKGVuY29kZXItPmJyaWRnZSk7 Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIF9fZHJtX2hlbHBlcl9kaXNhYmxlX3VudXNlZF9mdW5j dGlvbnMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiBAQCAtMzExLDEzICszMDksMTEgQEAgYm9v bCBkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCWlm IChlbmNvZGVyLT5jcnRjICE9IGNydGMpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAtCQlpZiAoZW5j b2Rlci0+YnJpZGdlICYmIGVuY29kZXItPmJyaWRnZS0+ZnVuY3MtPm1vZGVfZml4dXApIHsKPiAt CQkJcmV0ID0gZW5jb2Rlci0+YnJpZGdlLT5mdW5jcy0+bW9kZV9maXh1cCgKPiAtCQkJCQllbmNv ZGVyLT5icmlkZ2UsIG1vZGUsIGFkanVzdGVkX21vZGUpOwo+IC0JCQlpZiAoIXJldCkgewo+IC0J CQkJRFJNX0RFQlVHX0tNUygiQnJpZGdlIGZpeHVwIGZhaWxlZFxuIik7Cj4gLQkJCQlnb3RvIGRv bmU7Cj4gLQkJCX0KPiArCQlyZXQgPSBkcm1fYnJpZGdlX21vZGVfZml4dXAoZW5jb2Rlci0+YnJp ZGdlLAo+ICsJCQltb2RlLCBhZGp1c3RlZF9tb2RlKTsKPiArCQlpZiAoIXJldCkgewo+ICsJCQlE Uk1fREVCVUdfS01TKCJCcmlkZ2UgZml4dXAgZmFpbGVkXG4iKTsKPiArCQkJZ290byBkb25lOwo+ ICAJCX0KPiAgCj4gIAkJZW5jb2Rlcl9mdW5jcyA9IGVuY29kZXItPmhlbHBlcl9wcml2YXRlOwo+ IEBAIC0zNDAsMTUgKzMzNiwxMyBAQCBib29sIGRybV9jcnRjX2hlbHBlcl9zZXRfbW9kZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJaWYgKGVuY29kZXItPmNydGMgIT0gY3J0YykKPiAgCQkJ Y29udGludWU7Cj4gIAo+IC0JCWlmIChlbmNvZGVyLT5icmlkZ2UpCj4gLQkJCWVuY29kZXItPmJy aWRnZS0+ZnVuY3MtPmRpc2FibGUoZW5jb2Rlci0+YnJpZGdlKTsKPiArCQlkcm1fYnJpZGdlX2Rp c2FibGUoZW5jb2Rlci0+YnJpZGdlKTsKPiAgCj4gIAkJZW5jb2Rlcl9mdW5jcyA9IGVuY29kZXIt PmhlbHBlcl9wcml2YXRlOwo+ICAJCS8qIERpc2FibGUgdGhlIGVuY29kZXJzIGFzIHRoZSBmaXJz dCB0aGluZyB3ZSBkby4gKi8KPiAgCQllbmNvZGVyX2Z1bmNzLT5wcmVwYXJlKGVuY29kZXIpOwo+ ICAKPiAtCQlpZiAoZW5jb2Rlci0+YnJpZGdlKQo+IC0JCQllbmNvZGVyLT5icmlkZ2UtPmZ1bmNz LT5wb3N0X2Rpc2FibGUoZW5jb2Rlci0+YnJpZGdlKTsKPiArCQlkcm1fYnJpZGdlX3Bvc3RfZGlz YWJsZShlbmNvZGVyLT5icmlkZ2UpOwo+ICAJfQo+ICAKPiAgCWRybV9jcnRjX3ByZXBhcmVfZW5j b2RlcnMoZGV2KTsKPiBAQCAtMzczLDkgKzM2Nyw3IEBAIGJvb2wgZHJtX2NydGNfaGVscGVyX3Nl dF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQllbmNvZGVyX2Z1bmNzID0gZW5jb2Rl ci0+aGVscGVyX3ByaXZhdGU7Cj4gIAkJZW5jb2Rlcl9mdW5jcy0+bW9kZV9zZXQoZW5jb2Rlciwg bW9kZSwgYWRqdXN0ZWRfbW9kZSk7Cj4gIAo+IC0JCWlmIChlbmNvZGVyLT5icmlkZ2UgJiYgZW5j b2Rlci0+YnJpZGdlLT5mdW5jcy0+bW9kZV9zZXQpCj4gLQkJCWVuY29kZXItPmJyaWRnZS0+ZnVu Y3MtPm1vZGVfc2V0KGVuY29kZXItPmJyaWRnZSwgbW9kZSwKPiAtCQkJCQlhZGp1c3RlZF9tb2Rl KTsKPiArCQlkcm1fYnJpZGdlX21vZGVfc2V0KGVuY29kZXItPmJyaWRnZSwgbW9kZSwgYWRqdXN0 ZWRfbW9kZSk7Cj4gIAl9Cj4gIAo+ICAJLyogTm93IGVuYWJsZSB0aGUgY2xvY2tzLCBwbGFuZSwg cGlwZSwgYW5kIGNvbm5lY3RvcnMgdGhhdCB3ZSBzZXQgdXAuICovCj4gQEAgLTM4NiwxNCArMzc4 LDEyIEBAIGJvb2wgZHJtX2NydGNfaGVscGVyX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKPiAgCQlpZiAoZW5jb2Rlci0+Y3J0YyAhPSBjcnRjKQo+ICAJCQljb250aW51ZTsKPiAgCj4g LQkJaWYgKGVuY29kZXItPmJyaWRnZSkKPiAtCQkJZW5jb2Rlci0+YnJpZGdlLT5mdW5jcy0+cHJl X2VuYWJsZShlbmNvZGVyLT5icmlkZ2UpOwo+ICsJCWRybV9icmlkZ2VfcHJlX2VuYWJsZShlbmNv ZGVyLT5icmlkZ2UpOwo+ICAKPiAgCQllbmNvZGVyX2Z1bmNzID0gZW5jb2Rlci0+aGVscGVyX3By aXZhdGU7Cj4gIAkJZW5jb2Rlcl9mdW5jcy0+Y29tbWl0KGVuY29kZXIpOwo+ICAKPiAtCQlpZiAo ZW5jb2Rlci0+YnJpZGdlKQo+IC0JCQllbmNvZGVyLT5icmlkZ2UtPmZ1bmNzLT5lbmFibGUoZW5j b2Rlci0+YnJpZGdlKTsKPiArCQlkcm1fYnJpZGdlX2VuYWJsZShlbmNvZGVyLT5icmlkZ2UpOwo+ ICAJfQo+ICAKPiAgCS8qIFN0b3JlIHJlYWwgcG9zdC1hZGp1c3RtZW50IGhhcmR3YXJlIG1vZGUu ICovCj4gQEAgLTczNCwyMyArNzI0LDE5IEBAIHN0YXRpYyB2b2lkIGRybV9oZWxwZXJfZW5jb2Rl cl9kcG1zKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgaW50IG1vZGUpCj4gIAlzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlID0gZW5jb2Rlci0+YnJpZGdlOwo+ICAJc3RydWN0IGRybV9lbmNv ZGVyX2hlbHBlcl9mdW5jcyAqZW5jb2Rlcl9mdW5jczsKPiAgCj4gLQlpZiAoYnJpZGdlKSB7Cj4g LQkJaWYgKG1vZGUgPT0gRFJNX01PREVfRFBNU19PTikKPiAtCQkJYnJpZGdlLT5mdW5jcy0+cHJl X2VuYWJsZShicmlkZ2UpOwo+IC0JCWVsc2UKPiAtCQkJYnJpZGdlLT5mdW5jcy0+ZGlzYWJsZShi cmlkZ2UpOwo+IC0JfQo+ICsJaWYgKG1vZGUgPT0gRFJNX01PREVfRFBNU19PTikKPiArCQlkcm1f YnJpZGdlX3ByZV9lbmFibGUoYnJpZGdlKTsKPiArCWVsc2UKPiArCQlkcm1fYnJpZGdlX2Rpc2Fi bGUoYnJpZGdlKTsKPiAgCj4gIAllbmNvZGVyX2Z1bmNzID0gZW5jb2Rlci0+aGVscGVyX3ByaXZh dGU7Cj4gIAlpZiAoZW5jb2Rlcl9mdW5jcy0+ZHBtcykKPiAgCQllbmNvZGVyX2Z1bmNzLT5kcG1z KGVuY29kZXIsIG1vZGUpOwo+ICAKPiAtCWlmIChicmlkZ2UpIHsKPiAtCQlpZiAobW9kZSA9PSBE Uk1fTU9ERV9EUE1TX09OKQo+IC0JCQlicmlkZ2UtPmZ1bmNzLT5lbmFibGUoYnJpZGdlKTsKPiAt CQllbHNlCj4gLQkJCWJyaWRnZS0+ZnVuY3MtPnBvc3RfZGlzYWJsZShicmlkZ2UpOwo+IC0JfQo+ ICsJaWYgKG1vZGUgPT0gRFJNX01PREVfRFBNU19PTikKPiArCQlkcm1fYnJpZGdlX2VuYWJsZShi cmlkZ2UpOwo+ICsJZWxzZQo+ICsJCWRybV9icmlkZ2VfcG9zdF9kaXNhYmxlKGJyaWRnZSk7Cj4g IH0KPiAgCj4gIHN0YXRpYyBpbnQgZHJtX2hlbHBlcl9jaG9vc2VfY3J0Y19kcG1zKHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2lu Y2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBpbmRleCA5MjBlMjFhLi44ZmNlZDFkIDEwMDY0NAo+IC0t LSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5o Cj4gQEAgLTg5Myw2ICs4OTMsOCBAQCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyB7Cj4gIC8qKgo+ ICAgKiBzdHJ1Y3QgZHJtX2JyaWRnZSAtIGNlbnRyYWwgRFJNIGJyaWRnZSBjb250cm9sIHN0cnVj dHVyZQo+ICAgKiBAZGV2OiBEUk0gZGV2aWNlIHRoaXMgYnJpZGdlIGJlbG9uZ3MgdG8KPiArICog QGVuY29kZXI6IGVuY29kZXIgdG8gd2hpY2ggdGhpcyBicmlkZ2UgaXMgY29ubmVjdGVkCj4gKyAq IEBuZXh0OiB0aGUgbmV4dCBicmlkZ2UgaW4gdGhlIGVuY29kZXIgY2hhaW4KPiAgICogQG9mX25v ZGU6IGRldmljZSBub2RlIHBvaW50ZXIgdG8gdGhlIGJyaWRnZQo+ICAgKiBAbGlzdDogdG8ga2Vl cCB0cmFjayBvZiBhbGwgYWRkZWQgYnJpZGdlcwo+ICAgKiBAYmFzZTogYmFzZSBtb2RlIG9iamVj dAo+IEBAIC05MDIsNiArOTA0LDcgQEAgc3RydWN0IGRybV9icmlkZ2VfZnVuY3Mgewo+ICBzdHJ1 Y3QgZHJtX2JyaWRnZSB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+ICAJc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyOwo+ICsJc3RydWN0IGRybV9icmlkZ2UgKm5leHQ7Cj4gICNpZmRl ZiBDT05GSUdfT0YKPiAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAqb2Zfbm9kZTsKPiAgI2VuZGlmCj4g QEAgLTEyMjUsNiArMTIyOCwxNyBAQCBleHRlcm4gdm9pZCBkcm1fYnJpZGdlX3JlbW92ZShzdHJ1 Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiAgZXh0ZXJuIHN0cnVjdCBkcm1fYnJpZGdlICpvZl9k cm1fZmluZF9icmlkZ2Uoc3RydWN0IGRldmljZV9ub2RlICpucCk7Cj4gIGV4dGVybiBpbnQgZHJt X2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9icmlkZ2Ug KmJyaWRnZSk7Cj4gIAo+ICtib29sIGRybV9icmlkZ2VfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlLAo+ICsJCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwK PiArCQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpOwo+ICt2b2lkIGRy bV9icmlkZ2VfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiArdm9pZCBkcm1f YnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiArdm9pZCBk cm1fYnJpZGdlX21vZGVfc2V0KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCXN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ICsJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSk7Cj4gK3ZvaWQgZHJtX2JyaWRnZV9wcmVfZW5hYmxlKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UpOwo+ICt2b2lkIGRybV9icmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1fYnJp ZGdlICpicmlkZ2UpOwo+ICsKPiAgZXh0ZXJuIGludCBkcm1fZW5jb2Rlcl9pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gIAkJCSAgICBzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4g IAkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVuY3MgKmZ1bmNzLAo+IC0tIAo+IFRo ZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29k ZSBBdXJvcmEgRm9ydW0sCj4gaG9zdGVkIGJ5IFRoZSBMaW51eCBGb3VuZGF0aW9uCj4KPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCkphbmkg TmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=