From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [DPU PATCH v2 03/12] drm/msm/dpu: add MDSS top level driver for dpu Date: Fri, 11 May 2018 11:28:46 -0400 Message-ID: <20180511152846.GR33053@art_vandelay> References: <1526050178-31893-1-git-send-email-ryadav@codeaurora.org> <1526050178-31893-4-git-send-email-ryadav@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1526050178-31893-4-git-send-email-ryadav@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rajesh Yadav Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, hoegsberg@chromium.org, freedreno@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org T24gRnJpLCBNYXkgMTEsIDIwMTggYXQgMDg6MTk6MjlQTSArMDUzMCwgUmFqZXNoIFlhZGF2IHdy b3RlOgo+IFNvQ3MgY29udGFpbmluZyBkcHUgaGF2ZSBhIE1EU1MgdG9wIGxldmVsIHdyYXBwZXIK PiB3aGljaCBpbmNsdWRlcyBzdWItYmxvY2tzIGFzIGRwdSwgZHNpLCBwaHksIGRwIGV0Yy4KPiBN RFNTIHRvcCBsZXZlbCB3cmFwcGVyIG1hbmFnZXMgY29tbW9uIHJlc291cmNlcyBsaWtlCj4gY29t bW9uIGNsb2NrcywgcG93ZXIgYW5kIGlycSBmb3IgaXRzIHN1Yi1ibG9ja3MuCj4gCj4gQ3VycmVu dGx5LCBpbiBkcHUgZHJpdmVyLCBhbGwgdGhlIHBvd2VyIHJlc291cmNlCj4gbWFuYWdlbWVudCBp cyBwYXJ0IG9mIHBvd2VyX2hhbmRsZSB3aGljaCBtYW5hZ2VzCj4gdGhlc2UgcmVzb3VyY2VzIHZp YSBhIGN1c3RvbSBpbXBsZW1lbnRhdGlvbi4gQW5kCj4gdGhlIHJlc291cmNlIHJlbGF0aW9uc2hp cHMgYXJlIG5vdCBtb2RlbGxlZCBwcm9wZXJseQo+IGluIGR0LiAgTW9yZW92ZXIgdGhlIGlycSBk b21haW4gaGFuZGxpbmcgY29kZSBpcyBwYXJ0Cj4gb2YgZHB1IGRldmljZSAod2hpY2ggaXMgYSBj aGlsZCBkZXZpY2UpIGR1ZSB0byBsYWNrCj4gb2YgYSBkZWRpY2F0ZWQgZHJpdmVyIGZvciBNRFNT IHRvcCBsZXZlbCB3cmFwcGVyCj4gZGV2aWNlLgo+IAo+IFRoaXMgY2hhbmdlIGFkZHMgZHB1X21k c3MgdG9wIGxldmVsIGRyaXZlciB0byBoYW5kbGUKPiBjb21tb24gY2xvY2sgbGlrZSAtIGNvcmUg Y2xvY2ssIGFoYiBjbG9jawo+IChmb3IgcmVnaXN0ZXIgYWNjZXNzKSwgbWFpbiBwb3dlciBzdXBw bHkgKGkuZS4gZ2RzYykKPiBhbmQgaXJxIG1hbmFnZW1lbnQuCj4gVGhlIHRvcCBsZXZlbCBtZHNz IGRldmljZS9kcml2ZXIgYWN0cyBhcyBhbiBpbnRlcnJ1cHQKPiBjb250cm9sbGVyIGFuZCBtYW5h Z2UgaHdpcnEgbWFwcGluZyBmb3IgaXRzIGNoaWxkCj4gZGV2aWNlcy4KPiAKPiBJdCBpbXBsZW1l bnRzIHJ1bnRpbWVfcG0gc3VwcG9ydCBmb3IgcmVzb3VyY2UgbWFuYWdlbWVudC4KPiBDaGlsZCBu b2RlcyBjYW4gY29udHJvbCB0aGVzZSByZXNvdXJjZXMgdmlhIHJ1bnRpbWVfcG0KPiBnZXQvcHV0 IGNhbGxzIG9uIHRoZWlyIGNvcnJlc3BvbmRpbmcgZGV2aWNlcyBkdWUgdG8gcGFyZW50Cj4gY2hp bGQgcmVsYXRpb25zaGlwIGRlZmluZWQgaW4gZHQuCj4gCj4gQ2hhbmdlcyBpbiB2MjoKPiAJLSBt ZXJnZSBfZHB1X21kc3NfaHdfcmV2X2luaXQgdG8gZHB1X21kc3NfaW5pdCAoU2VhbiBQYXVsKQo+ IAktIG1lcmdlIF9kcHVfbWRzc19nZXRfaW50cl9zb3VyY2VzIHRvIGRwdV9tZHNzX2lycSAoU2Vh biBQYXVsKQo+IAktIGZpeCBpbmRlbnRhdGlvbiBmb3IgaXJxX2ZpbmRfbWFwcGluZyBjYWxsIChT ZWFuIFBhdWwpCj4gCS0gcmVtb3ZlIHVubmVjZXNzYXJ5IGdvdG8gc3RhdGVtZW50cyBmcm9tIGRw dV9tZHNzX2lycSAoU2VhbiBQYXVsKQo+IAktIHJlbW92ZSByZWR1bmRhbnQgcGFyYW0gY2hlY2tz IGZyb20KPiAJICBkcHVfbWRzc19pcnFfbWFzay91bm1hc2sgKFNlYW4gUGF1bC9Kb3JkYW4gQ3Jv dXNlKQo+IAktIHJlbW92ZSByZWR1bmRhbnQgcGFyYW0gY2hlY2tzIGZyb20KPiAJICBkcHVfbWRz c19pcnFkb21haW5fbWFwIChTZWFuIFBhdWwvSm9yZGFuIENyb3VzZSkKPiAJLSByZXR1cm4gZXJy b3IgY29kZSBmcm9tIGRwdV9tZHNzX2VuYWJsZS9kaXNhYmxlIChTZWFuIFBhdWwvSm9yZGFuIENy b3VzZSkKPiAJLSByZW1vdmUgcmVkdW5kYW50IHBhcmFtIGNoZWNrIGZyb20gZHB1X21kc3NfZGVz dHJveSAoU2VhbiBQYXVsKQo+IAktIHJlbW92ZSBleHBsaWNpdCBjYWxscyB0byBkZXZtX2tmcmVl IChTZWFuIFBhdWwvSm9yZGFuIENyb3VzZSkKPiAJLSByZW1vdmUgY29tcGF0aWJpbGl0eSBjaGVj ayBmcm9tIGRwdV9tZHNzX2luaXQgYXMKPiAJICBpdCBpcyBjb25kaXRpb25hbGx5IGNhbGxlZCBm cm9tIG1zbV9kcnYgKFNlYW4gUGF1bCkKPiAJLSByZXdvcmtlZCBtc21fZHNzX3BhcnNlX2Nsb2Nr KCkgdG8gYWRkIHJldHVybiBjaGVja3MgZm9yCj4gCSAgb2ZfcHJvcGVydHlfcmVhZF8qIGNhbGxz LCBmaXggbG9nIG1lc3NhZ2UgYW5kCj4gCSAgZml4IGFsaWdubWVudCBpc3N1ZXMgKFNlYW4gUGF1 bC9Kb3JkYW4gQ3JvdXNlKQo+IAktIHJlbW92ZSBleHRyYSBsaW5lIGJlZm9yZSBkcHVfbWRzc19p bml0IChTZWFuIFBhdWwpCj4gCS0gcmVtb3ZlIHJlZHVuZGFudCBwYXJhbSBjaGVja3MgZnJvbSBf X2ludHJfb2Zmc2V0IGFuZAo+IAkgIG1ha2UgaXQgYSB2b2lkIGZ1bmN0aW9uIHRvIGF2b2lkIHVu bmVjZXNzYXJ5IGVycm9yCj4gCSAgaGFuZGxpbmcgZnJvbSBjYWxsZXIgKEpvcmRhbiBDcm91c2Up Cj4gCS0gcmVtb3ZlIHJlZHVuZGFudCBwYXJhbSBjaGVjayBmcm9tIGRwdV9tZHNzX2lycSAoSm9y ZGFuIENyb3VzZSkKPiAJLSBjaGFuZ2UgbWRzcyBhZGRyZXNzIHNwYWNlIGxvZyBtZXNzYWdlIHRv IGRlYnVnIGFuZCB1c2UgJXBLIGZvcgo+IAkgIGtlcm5lbCBwb2ludGVycyAoSm9yZGFuIENyb3Vz ZSkKPiAJLSByZW1vdmUgdW5uZWNlc3NhcnkgbG9nIG1lc3NhZ2UgZnJvbSBtc21fZHNzX3BhcnNl X2Nsb2NrIChKb3JkYW4gQ3JvdXNlKQo+IAktIGRvbid0IGV4cG9ydCBtc21fZHNzX3BhcnNlX2Ns b2NrIHNpbmNlIGl0IGlzIHVzZWQKPiAJICBvbmx5IGJ5IGRwdSBkcml2ZXIgKEpvcmRhbiBDcm91 c2UpCj4gCj4gU2lnbmVkLW9mZi1ieTogUmFqZXNoIFlhZGF2IDxyeWFkYXZAY29kZWF1cm9yYS5v cmc+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vTWFrZWZpbGUgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9p cnEuYyAgICAgIHwgIDk3IC0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfY29yZV9pcnEuaCAgICAgIHwgIDE0IC0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9od19jYXRhbG9nLmMgICAgfCAgIDkgLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5oICAgIHwgICA3IC0KPiAgZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2h3X2ludGVycnVwdHMuYyB8ICAyOCArLS0KPiAgZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2ludGVycnVwdHMuaCB8ICAxMSAtCj4gIGRyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9pcnEuYyAgICAgICAgICAgfCAgNDggKy0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMgICAgICAgICAgIHwgICA2 IC0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oICAgICAgICAgICB8 ICAgMiAtCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9tZHNzLmMgICAgICAg ICAgfCAyNTQgKysrKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rw dV9pb191dGlsLmMgICAgICAgICAgICAgICAgIHwgIDU3ICsrKysrCj4gIGRyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2Rydi5jICAgICAgICAgICAgICAgICAgICAgfCAgMjYgKystCj4gIGRyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2Rydi5oICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KPiAgZHJp dmVycy9ncHUvZHJtL21zbS9tc21fa21zLmggICAgICAgICAgICAgICAgICAgICB8ICAgMSArCj4g IGluY2x1ZGUvbGludXgvZHB1X2lvX3V0aWwuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Kwo+ICAxNiBmaWxlcyBjaGFuZ2VkLCAzMzkgaW5zZXJ0aW9ucygrKSwgMjI2IGRlbGV0aW9ucygt KQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X21kc3MuYwo+IAoKL3NuaXAKCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9tZHNzLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfbWRz cy5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5jZTY4MGVhCj4gLS0t IC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9tZHNz LmMKCi9zbmlwCgo+ICsKPiAraW50IGRwdV9tZHNzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiArewo+ICsJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2Rl dmljZShkZXYtPmRldik7Cj4gKwlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcHVfbWRzcyAqZHB1X21kc3M7Cj4gKwlzdHJ1Y3QgZHNz X21vZHVsZV9wb3dlciAqbXA7Cj4gKwlpbnQgcmV0ID0gMDsKPiArCj4gKwlkcHVfbWRzcyA9IGRl dm1fa3phbGxvYyhkZXYtPmRldiwgc2l6ZW9mKCpkcHVfbWRzcyksIEdGUF9LRVJORUwpOwo+ICsJ aWYgKCFkcHVfbWRzcykKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlkcHVfbWRzcy0+bW1p byA9IG1zbV9pb3JlbWFwKHBkZXYsICJtZHNzX3BoeXMiLCAibWRzc19waHlzIik7Cj4gKwlpZiAo SVNfRVJSKGRwdV9tZHNzLT5tbWlvKSkgewo+ICsJCXJldCA9IFBUUl9FUlIoZHB1X21kc3MtPm1t aW8pOwoKcmVtb3ZlIHRoaXMgLi4uCgo+ICsJCURQVV9FUlJPUigibWRzcyByZWdpc3RlciBtZW1v cnkgbWFwIGZhaWxlZDogJWRcbiIsIHJldCk7Cj4gKwkJZHB1X21kc3MtPm1taW8gPSBOVUxMOwo+ ICsJCXJldHVybiByZXQ7CgouLi4gYW5kIHJlcGxhY2Ugd2l0aAogICAgICAgICAgICAgICAgcmV0 dXJuIFBUUl9FUlIoZHB1X21kc3MtPm1taW8pOwoKPiArCX0KPiArCURSTV9ERUJVRygibWFwcGVk IG1kc3MgYWRkcmVzcyBzcGFjZSBAJXBLXG4iLCBkcHVfbWRzcy0+bW1pbyk7Cj4gKwlkcHVfbWRz cy0+bW1pb19sZW4gPSBtc21faW9tYXBfc2l6ZShwZGV2LCAibWRzc19waHlzIik7Cj4gKwo+ICsJ bXAgPSAmZHB1X21kc3MtPm1wOwo+ICsJcmV0ID0gbXNtX2Rzc19wYXJzZV9jbG9jayhwZGV2LCBt cCk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJRFBVX0VSUk9SKCJmYWlsZWQgdG8gcGFyc2UgY2xvY2tz LCByZXQ9JWRcbiIsIHJldCk7Cj4gKwkJZ290byBjbGtfcGFyc2VfZXJyOwo+ICsJfQo+ICsKPiAr CXJldCA9IG1zbV9kc3NfZ2V0X2NsaygmcGRldi0+ZGV2LCBtcC0+Y2xrX2NvbmZpZywgbXAtPm51 bV9jbGspOwo+ICsJaWYgKHJldCkgewo+ICsJCURQVV9FUlJPUigiZmFpbGVkIHRvIGdldCBjbG9j a3MsIHJldD0lZFxuIiwgcmV0KTsKPiArCQlnb3RvIGNsa19nZXRfZXJyb3I7Cj4gKwl9Cj4gKwo+ ICsJcmV0ID0gbXNtX2Rzc19jbGtfc2V0X3JhdGUobXAtPmNsa19jb25maWcsIG1wLT5udW1fY2xr KTsKPiArCWlmIChyZXQpIHsKPiArCQlEUFVfRVJST1IoImZhaWxlZCB0byBzZXQgY2xvY2sgcmF0 ZSwgcmV0PSVkXG4iLCByZXQpOwo+ICsJCWdvdG8gY2xrX3JhdGVfZXJyb3I7Cj4gKwl9Cj4gKwo+ ICsJZHB1X21kc3MtPmJhc2UuZGV2ID0gZGV2Owo+ICsJZHB1X21kc3MtPmJhc2UuZnVuY3MgPSAm bWRzc19mdW5jczsKPiArCj4gKwlyZXQgPSBfZHB1X21kc3NfaXJxX2RvbWFpbl9hZGQoZHB1X21k c3MpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGlycV9kb21haW5fZXJyb3I7Cj4gKwo+ICsJcmV0 ID0gZGV2bV9yZXF1ZXN0X2lycShkZXYtPmRldiwgcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKSwK PiArCQkJZHB1X21kc3NfaXJxLCAwLCAiZHB1X21kc3NfaXNyIiwgZHB1X21kc3MpOwo+ICsJaWYg KHJldCkgewo+ICsJCURQVV9FUlJPUigiZmFpbGVkIHRvIGluaXQgaXJxOiAlZFxuIiwgcmV0KTsK PiArCQlnb3RvIGlycV9lcnJvcjsKPiArCX0KPiArCj4gKwlwbV9ydW50aW1lX2VuYWJsZShkZXYt PmRldik7Cj4gKwo+ICsJcG1fcnVudGltZV9nZXRfc3luYyhkZXYtPmRldik7Cj4gKwlkcHVfbWRz cy0+aHd2ZXJzaW9uID0gcmVhZGxfcmVsYXhlZChkcHVfbWRzcy0+bW1pbyk7Cj4gKwlwbV9ydW50 aW1lX3B1dF9zeW5jKGRldi0+ZGV2KTsKPiArCj4gKwlwcml2LT5tZHNzID0gJmRwdV9tZHNzLT5i YXNlOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gKwo+ICtpcnFfZXJyb3I6Cj4gKwlfZHB1X21kc3Nf aXJxX2RvbWFpbl9maW5pKGRwdV9tZHNzKTsKPiAraXJxX2RvbWFpbl9lcnJvcjoKPiArY2xrX3Jh dGVfZXJyb3I6Cj4gKwltc21fZHNzX3B1dF9jbGsobXAtPmNsa19jb25maWcsIG1wLT5udW1fY2xr KTsKPiArY2xrX2dldF9lcnJvcjoKPiArCWRldm1fa2ZyZWUoJnBkZXYtPmRldiwgbXAtPmNsa19j b25maWcpOwo+ICtjbGtfcGFyc2VfZXJyOgo+ICsJaWYgKGRwdV9tZHNzLT5tbWlvKQo+ICsJCW1z bV9pb3VubWFwKHBkZXYsIGRwdV9tZHNzLT5tbWlvKTsKPiArCWRwdV9tZHNzLT5tbWlvID0gTlVM TDsKPiArCXJldHVybiByZXQ7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9kcHVfaW9fdXRpbC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcHVfaW9fdXRpbC5jCj4gaW5k ZXggYTE4YmM5OS4uYzQ0ZjMzZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rw dV9pb191dGlsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RwdV9pb191dGlsLmMKPiBA QCAtNDQ4LDYgKzQ0OCw2MyBAQCBpbnQgbXNtX2Rzc19lbmFibGVfY2xrKHN0cnVjdCBkc3NfY2xr ICpjbGtfYXJyeSwgaW50IG51bV9jbGssIGludCBlbmFibGUpCj4gIH0gLyogbXNtX2Rzc19lbmFi bGVfY2xrICovCj4gIEVYUE9SVF9TWU1CT0wobXNtX2Rzc19lbmFibGVfY2xrKTsKPiAgCj4gK2lu dCBtc21fZHNzX3BhcnNlX2Nsb2NrKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gKwkJ c3RydWN0IGRzc19tb2R1bGVfcG93ZXIgKm1wKQo+ICt7Cj4gKwl1MzIgaSwgcmMgPSAwOwo+ICsJ Y29uc3QgY2hhciAqY2xvY2tfbmFtZTsKPiArCXUzMiByYXRlID0gMCwgbWF4X3JhdGUgPSAwOwo+ ICsJaW50IG51bV9jbGsgPSAwOwo+ICsKPiArCWlmICghcGRldiB8fCAhbXApCj4gKwkJcmV0dXJu IC1FSU5WQUw7Cj4gKwo+ICsJbXAtPm51bV9jbGsgPSAwOwo+ICsJbnVtX2NsayA9IG9mX3Byb3Bl cnR5X2NvdW50X3N0cmluZ3MocGRldi0+ZGV2Lm9mX25vZGUsICJjbG9jay1uYW1lcyIpOwo+ICsJ aWYgKG51bV9jbGsgPD0gMCkgewo+ICsJCXByX2RlYnVnKCJjbG9ja3MgYXJlIG5vdCBkZWZpbmVk XG4iKTsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArCj4gKwltcC0+Y2xrX2NvbmZpZyA9IGRldm1f a3phbGxvYygmcGRldi0+ZGV2LAo+ICsJCQkJICAgICAgc2l6ZW9mKHN0cnVjdCBkc3NfY2xrKSAq IG51bV9jbGssCj4gKwkJCQkgICAgICBHRlBfS0VSTkVMKTsKPiArCWlmICghbXAtPmNsa19jb25m aWcpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IG51bV9jbGs7 IGkrKykgewo+ICsJCXJjID0gb2ZfcHJvcGVydHlfcmVhZF9zdHJpbmdfaW5kZXgocGRldi0+ZGV2 Lm9mX25vZGUsCj4gKwkJCQkJCSAgICJjbG9jay1uYW1lcyIsIGksCj4gKwkJCQkJCSAgICZjbG9j a19uYW1lKTsKPiArCQlpZiAocmMpCj4gKwkJCWJyZWFrOwo+ICsJCXN0cmxjcHkobXAtPmNsa19j b25maWdbaV0uY2xrX25hbWUsIGNsb2NrX25hbWUsCj4gKwkJCXNpemVvZihtcC0+Y2xrX2NvbmZp Z1tpXS5jbGtfbmFtZSkpOwo+ICsKPiArCQlyYyA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyX2luZGV4 KHBkZXYtPmRldi5vZl9ub2RlLAo+ICsJCQkJCQkiY2xvY2stcmF0ZSIsIGksCj4gKwkJCQkJCSZy YXRlKTsKPiArCQlpZiAocmMpCj4gKwkJCWJyZWFrOwo+ICsJCW1wLT5jbGtfY29uZmlnW2ldLnJh dGUgPSByYXRlOwo+ICsJCWlmICghbXAtPmNsa19jb25maWdbaV0ucmF0ZSkKPiArCQkJbXAtPmNs a19jb25maWdbaV0udHlwZSA9IERTU19DTEtfQUhCOwo+ICsJCWVsc2UKPiArCQkJbXAtPmNsa19j b25maWdbaV0udHlwZSA9IERTU19DTEtfUENMSzsKPiArCj4gKwkJcmMgPSBvZl9wcm9wZXJ0eV9y ZWFkX3UzMl9pbmRleChwZGV2LT5kZXYub2Zfbm9kZSwKPiArCQkJCQkJImNsb2NrLW1heC1yYXRl IiwgaSwKPiArCQkJCQkJJm1heF9yYXRlKTsKCkhtbSwgSSBtaXNzZWQgdGhlc2UgaW4gbXkgZmly c3QgcmV2aWV3LCB0aGVzZSBuZWVkIG5ldyBkdCBiaW5kaW5ncy4gSSdtCmZhciBmcm9tIGFuIGV4 cGVydCBvbiBkdCBiaW5kaW5ncywgYnV0IEkgdGhpbmsgeW91J2xsIGJlIGFza2VkIHRvIGRlZmlu ZSB0aGVzZQphcmUgY2xvY2tzLCBhbmQgZ2V0IHRoZSByYXRlL21heCByYXRlIGluZm9ybWF0aW9u IGZyb20gdGhlIGNsb2NrIHN1YnN5c3RlbQppbnN0ZWFkIG9mIGJyZWFraW5nIGl0IGFsbCBvdXQg bGlrZSB0aGlzLgoKU2VhbgoKPiArCQlpZiAocmMpCj4gKwkJCWJyZWFrOwo+ICsJCW1wLT5jbGtf Y29uZmlnW2ldLm1heF9yYXRlID0gbWF4X3JhdGU7Cj4gKwl9Cj4gKwo+ICsJaWYgKCFyYykKPiAr CQltcC0+bnVtX2NsayA9IG51bV9jbGs7Cj4gKwo+ICsJcmV0dXJuIHJjOwo+ICt9Cj4gIAo+ICBp bnQgZHB1X2kyY19ieXRlX3JlYWQoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgdWludDhfdCBz bGF2ZV9hZGRyLAo+ICAJCQl1aW50OF90IHJlZ19vZmZzZXQsIHVpbnQ4X3QgKnJlYWRfYnVmKQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2Rydi5jCj4gaW5kZXggNWQ4ZjFiNi4uYTBlNzNlYSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2Rydi5jCj4gQEAgLTUwMyw3ICs1MDMsMTggQEAgc3RhdGljIGludCBtc21fZHJtX2lu aXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2RyaXZlciAqZHJ2KQo+ICAJZGRldi0+ ZGV2X3ByaXZhdGUgPSBwcml2Owo+ICAJcHJpdi0+ZGV2ID0gZGRldjsKPiAgCj4gLQlyZXQgPSBt ZHA1X21kc3NfaW5pdChkZGV2KTsKPiArCXN3aXRjaCAoZ2V0X21kcF92ZXIocGRldikpIHsKPiAr CWNhc2UgS01TX01EUDU6Cj4gKwkJcmV0ID0gbWRwNV9tZHNzX2luaXQoZGRldik7Cj4gKwkJYnJl YWs7Cj4gKwljYXNlIEtNU19EUFU6Cj4gKwkJcmV0ID0gZHB1X21kc3NfaW5pdChkZGV2KTsKPiAr CQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJcmV0ID0gMDsKPiArCQlicmVhazsKPiArCX0KPiAr Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gbWRzc19pbml0X2ZhaWw7Cj4gIAo+IEBAIC0xNTM5LDEy ICsxNTUwLDEzIEBAIHN0YXRpYyBpbnQgYWRkX2Rpc3BsYXlfY29tcG9uZW50cyhzdHJ1Y3QgZGV2 aWNlICpkZXYsCj4gIAlpbnQgcmV0Owo+ICAKPiAgCS8qCj4gLQkgKiBNRFA1IGJhc2VkIGRldmlj ZXMgZG9uJ3QgaGF2ZSBhIGZsYXQgaGllcmFyY2h5LiBUaGVyZSBpcyBhIHRvcCBsZXZlbAo+IC0J ICogcGFyZW50OiBNRFNTLCBhbmQgY2hpbGRyZW46IE1EUDUsIERTSSwgSERNSSwgZURQIGV0Yy4g UG9wdWxhdGUgdGhlCj4gLQkgKiBjaGlsZHJlbiBkZXZpY2VzLCBmaW5kIHRoZSBNRFA1IG5vZGUs IGFuZCB0aGVuIGFkZCB0aGUgaW50ZXJmYWNlcwo+IC0JICogdG8gb3VyIGNvbXBvbmVudHMgbGlz dC4KPiArCSAqIE1EUDUvRFBVIGJhc2VkIGRldmljZXMgZG9uJ3QgaGF2ZSBhIGZsYXQgaGllcmFy Y2h5LiBUaGVyZSBpcyBhIHRvcAo+ICsJICogbGV2ZWwgcGFyZW50OiBNRFNTLCBhbmQgY2hpbGRy ZW46IE1EUDUvRFBVLCBEU0ksIEhETUksIGVEUCBldGMuCj4gKwkgKiBQb3B1bGF0ZSB0aGUgY2hp bGRyZW4gZGV2aWNlcywgZmluZCB0aGUgTURQNS9EUFUgbm9kZSwgYW5kIHRoZW4gYWRkCj4gKwkg KiB0aGUgaW50ZXJmYWNlcyB0byBvdXIgY29tcG9uZW50cyBsaXN0Lgo+ICAJICovCj4gLQlpZiAo b2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUoZGV2LT5vZl9ub2RlLCAicWNvbSxtZHNzIikpIHsKPiAr CWlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShkZXYtPm9mX25vZGUsICJxY29tLG1kc3MiKSB8 fAo+ICsJCW9mX2RldmljZV9pc19jb21wYXRpYmxlKGRldi0+b2Zfbm9kZSwgInFjb20sZHB1LW1k c3MiKSkgewo+ICAJCXJldCA9IG9mX3BsYXRmb3JtX3BvcHVsYXRlKGRldi0+b2Zfbm9kZSwgTlVM TCwgTlVMTCwgZGV2KTsKPiAgCQlpZiAocmV0KSB7Cj4gIAkJCWRldl9lcnIoZGV2LCAiZmFpbGVk IHRvIHBvcHVsYXRlIGNoaWxkcmVuIGRldmljZXNcbiIpOwo+IEBAIC0xNjg2LDcgKzE2OTgsNyBA QCBzdGF0aWMgaW50IG1zbV9wZGV2X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQo+ICAJeyAuY29tcGF0aWJsZSA9ICJxY29tLG1kcDQiLCAuZGF0YSA9ICh2b2lkICopS01TX01E UDQgfSwKPiAgCXsgLmNvbXBhdGlibGUgPSAicWNvbSxtZHNzIiwgLmRhdGEgPSAodm9pZCAqKUtN U19NRFA1IH0sCj4gICNpZmRlZiBDT05GSUdfRFJNX01TTV9EUFUKPiAtCXsgLmNvbXBhdGlibGUg PSAicWNvbSxkcHUta21zIiwgLmRhdGEgPSAodm9pZCAqKUtNU19EUFUgfSwKPiArCXsgLmNvbXBh dGlibGUgPSAicWNvbSxkcHUtbWRzcyIsIC5kYXRhID0gKHZvaWQgKilLTVNfRFBVIH0sCj4gICNl bmRpZgo+ICAJe30KPiAgfTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAo+IGluZGV4IDkwYTI1MjEuLmU4 ZTVlNzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAo+IEBAIC0zODEsNyArMzgxLDcgQEAgc3Ry dWN0IG1zbV9kcm1fcHJpdmF0ZSB7Cj4gIAkvKiBzdWJvcmRpbmF0ZSBkZXZpY2VzLCBpZiBwcmVz ZW50OiAqLwo+ICAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZ3B1X3BkZXY7Cj4gIAo+IC0JLyog dG9wIGxldmVsIE1EU1Mgd3JhcHBlciBkZXZpY2UgKGZvciBNRFA1IG9ubHkpICovCj4gKwkvKiB0 b3AgbGV2ZWwgTURTUyB3cmFwcGVyIGRldmljZSAoZm9yIE1EUDUvRFBVIG9ubHkpICovCj4gIAlz dHJ1Y3QgbXNtX21kc3MgKm1kc3M7Cj4gIAo+ICAJLyogcG9zc2libHkgdGhpcyBzaG91bGQgYmUg aW4gdGhlIGttcyBjb21wb25lbnQsIGJ1dCBpdCBpcwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbXNtL21zbV9rbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ttcy5oCj4gaW5k ZXggOWE3YmM3ZC4uNWUxZGU4NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9rbXMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ttcy5oCj4gQEAgLTE0NCw2 ICsxNDQsNyBAQCBzdHJ1Y3QgbXNtX21kc3Mgewo+ICB9Owo+ICAKPiAgaW50IG1kcDVfbWRzc19p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICtpbnQgZHB1X21kc3NfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKPiAgCj4gIC8qKgo+ICAgKiBNb2RlIFNldCBVdGlsaXR5IEZ1bmN0 aW9ucwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RwdV9pb191dGlsLmggYi9pbmNsdWRl L2xpbnV4L2RwdV9pb191dGlsLmgKPiBpbmRleCA3YzczODk5Li40NWU2MDZmIDEwMDY0NAo+IC0t LSBhL2luY2x1ZGUvbGludXgvZHB1X2lvX3V0aWwuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvZHB1 X2lvX3V0aWwuaAo+IEBAIC0xMDQsNiArMTA0LDggQEAgaW50IG1zbV9kc3NfY29uZmlnX3ZyZWco c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZHNzX3ZyZWcgKmluX3ZyZWcsCj4gIHZvaWQgbXNt X2Rzc19wdXRfY2xrKHN0cnVjdCBkc3NfY2xrICpjbGtfYXJyeSwgaW50IG51bV9jbGspOwo+ICBp bnQgbXNtX2Rzc19jbGtfc2V0X3JhdGUoc3RydWN0IGRzc19jbGsgKmNsa19hcnJ5LCBpbnQgbnVt X2Nsayk7Cj4gIGludCBtc21fZHNzX2VuYWJsZV9jbGsoc3RydWN0IGRzc19jbGsgKmNsa19hcnJ5 LCBpbnQgbnVtX2NsaywgaW50IGVuYWJsZSk7Cj4gK2ludCBtc21fZHNzX3BhcnNlX2Nsb2NrKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gKwkJc3RydWN0IGRzc19tb2R1bGVfcG93ZXIg Km1wKTsKPiAgCj4gIGludCBkcHVfaTJjX2J5dGVfcmVhZChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xp ZW50LCB1aW50OF90IHNsYXZlX2FkZHIsCj4gIAkJICAgICAgIHVpbnQ4X3QgcmVnX29mZnNldCwg dWludDhfdCAqcmVhZF9idWYpOwo+IC0tIAo+IFRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRl ciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0sCj4gYSBMaW51eCBG b3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdAo+IAoKLS0gClNlYW4gUGF1bCwgU29mdHdh cmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=