From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shobhit Kumar Subject: Re: [RFC PATCH 10/12] drm/i915/dsi: remove old read/write functions in favor of new stuff Date: Fri, 23 Jan 2015 17:55:01 +0530 Message-ID: <54C23D9D.1080900@linux.intel.com> References: <64f87e5e64186dd60986715ffb99573a24218577.1421410274.git.jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 632C16E3FB for ; Fri, 23 Jan 2015 04:25:28 -0800 (PST) In-Reply-To: <64f87e5e64186dd60986715ffb99573a24218577.1421410274.git.jani.nikula@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula , intel-gfx@lists.freedesktop.org Cc: Shobhit Kumar , Thierry Reding List-Id: intel-gfx@lists.freedesktop.org T24gMDEvMTYvMjAxNSAwNTo1NyBQTSwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4gQWxsIG9mIHRoZXNl IGFyZSByZXBsYWNlZCBieSB0aGUgZHJtIGNvcmUgbWlwaSBkc2kgZnVuY3Rpb25zLgo+Cj4gU2ln bmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KClJldmlld2Vk LUJ5OiBTaG9iaGl0IEt1bWFyIDxzaG9iaGl0Lmt1bWFyQGludGVsLmNvbT4KCj4gLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY21kLmMgfCAyNTkgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9j bWQuaCB8ICA3MiAtLS0tLS0tLS0tCj4gICAyIGZpbGVzIGNoYW5nZWQsIDMzMSBkZWxldGlvbnMo LSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY21kLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY21kLmMKPiBpbmRleCAxN2I4OTJhMzY1 ZWUuLjZiYWFhMzc0ZmM4OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kc2lfY21kLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY21kLmMK PiBAQCAtOTYsMTEgKzk2LDYgQEAgc3RhdGljIHZvaWQgcHJpbnRfc3RhdChzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2ksIGVudW0gcG9ydCBwb3J0KQo+ICAgI3VuZGVmIFNUQVRfQklUCj4gICB9 Cj4KPiAtZW51bSBkc2lfdHlwZSB7Cj4gLQlEU0lfRENTLAo+IC0JRFNJX0dFTkVSSUMsCj4gLX07 Cj4gLQo+ICAgLyogZW5hYmxlIG9yIGRpc2FibGUgY29tbWFuZCBtb2RlIGhzIHRyYW5zbWlzc2lv bnMgKi8KPiAgIHZvaWQgZHNpX2hzX21vZGVfZW5hYmxlKHN0cnVjdCBpbnRlbF9kc2kgKmludGVs X2RzaSwgYm9vbCBlbmFibGUsCj4gICAJCQkJCQllbnVtIHBvcnQgcG9ydCkKPiBAQCAtMTIxLDI2 MCArMTE2LDYgQEAgdm9pZCBkc2lfaHNfbW9kZV9lbmFibGUoc3RydWN0IGludGVsX2RzaSAqaW50 ZWxfZHNpLCBib29sIGVuYWJsZSwKPiAgIAlpbnRlbF9kc2ktPmhzID0gZW5hYmxlOwo+ICAgfQo+ Cj4gLXN0YXRpYyBpbnQgZHNpX3ZjX3NlbmRfc2hvcnQoc3RydWN0IGludGVsX2RzaSAqaW50ZWxf ZHNpLCBpbnQgY2hhbm5lbCwKPiAtCQkJICAgICB1OCBkYXRhX3R5cGUsIHUxNiBkYXRhLCBlbnVt IHBvcnQgcG9ydCkKPiAtewo+IC0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmludGVs X2RzaS0+YmFzZS5iYXNlOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRl djsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gLQl1MzIgY3RybF9yZWc7Cj4gLQl1MzIgY3RybDsKPiAtCXUzMiBtYXNrOwo+IC0KPiAt CURSTV9ERUJVR19LTVMoImNoYW5uZWwgJWQsIGRhdGFfdHlwZSAlZCwgZGF0YSAlMDR4XG4iLAo+ IC0JCSAgICAgIGNoYW5uZWwsIGRhdGFfdHlwZSwgZGF0YSk7Cj4gLQo+IC0JaWYgKGludGVsX2Rz aS0+aHMpIHsKPiAtCQljdHJsX3JlZyA9IE1JUElfSFNfR0VOX0NUUkwocG9ydCk7Cj4gLQkJbWFz ayA9IEhTX0NUUkxfRklGT19GVUxMOwo+IC0JfSBlbHNlIHsKPiAtCQljdHJsX3JlZyA9IE1JUElf TFBfR0VOX0NUUkwocG9ydCk7Cj4gLQkJbWFzayA9IExQX0NUUkxfRklGT19GVUxMOwo+IC0JfQo+ IC0KPiAtCWlmICh3YWl0X2ZvcigoSTkxNV9SRUFEKE1JUElfR0VOX0ZJRk9fU1RBVChwb3J0KSkg JiBtYXNrKSA9PSAwLCA1MCkpIHsKPiAtCQlEUk1fRVJST1IoIlRpbWVvdXQgd2FpdGluZyBmb3Ig SFMvTFAgQ1RSTCBGSUZPICFmdWxsXG4iKTsKPiAtCQlwcmludF9zdGF0KGludGVsX2RzaSwgcG9y dCk7Cj4gLQl9Cj4gLQo+IC0JLyoKPiAtCSAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gaXMgYWxzbyB1 c2VkIGZvciBsb25nIHBhY2tldHMsIHdpdGggbGVuZ3RoIHBhc3NlZAo+IC0JICogYXMgZGF0YSwg c2luY2UgU0hPUlRfUEFDS0VUX1BBUkFNX1NISUZUID09Cj4gLQkgKiBMT05HX1BBQ0tFVF9XT1JE X0NPVU5UX1NISUZULgo+IC0JICovCj4gLQljdHJsID0gZGF0YSA8PCBTSE9SVF9QQUNLRVRfUEFS QU1fU0hJRlQgfAo+IC0JCWNoYW5uZWwgPDwgVklSVFVBTF9DSEFOTkVMX1NISUZUIHwKPiAtCQlk YXRhX3R5cGUgPDwgREFUQV9UWVBFX1NISUZUOwo+IC0KPiAtCUk5MTVfV1JJVEUoY3RybF9yZWcs IGN0cmwpOwo+IC0KPiAtCXJldHVybiAwOwo+IC19Cj4gLQo+IC1zdGF0aWMgaW50IGRzaV92Y19z ZW5kX2xvbmcoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBpbnQgY2hhbm5lbCwKPiAtCQl1 OCBkYXRhX3R5cGUsIGNvbnN0IHU4ICpkYXRhLCBpbnQgbGVuLCBlbnVtIHBvcnQgcG9ydCkKPiAt ewo+IC0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmludGVsX2RzaS0+YmFzZS5iYXNl Owo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKPiAtCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQl1MzIgZGF0 YV9yZWc7Cj4gLQlpbnQgaSwgaiwgbjsKPiAtCXUzMiBtYXNrOwo+IC0KPiAtCURSTV9ERUJVR19L TVMoImNoYW5uZWwgJWQsIGRhdGFfdHlwZSAlZCwgbGVuICUwNHhcbiIsCj4gLQkJICAgICAgY2hh bm5lbCwgZGF0YV90eXBlLCBsZW4pOwo+IC0KPiAtCWlmIChpbnRlbF9kc2ktPmhzKSB7Cj4gLQkJ ZGF0YV9yZWcgPSBNSVBJX0hTX0dFTl9EQVRBKHBvcnQpOwo+IC0JCW1hc2sgPSBIU19EQVRBX0ZJ Rk9fRlVMTDsKPiAtCX0gZWxzZSB7Cj4gLQkJZGF0YV9yZWcgPSBNSVBJX0xQX0dFTl9EQVRBKHBv cnQpOwo+IC0JCW1hc2sgPSBMUF9EQVRBX0ZJRk9fRlVMTDsKPiAtCX0KPiAtCj4gLQlpZiAod2Fp dF9mb3IoKEk5MTVfUkVBRChNSVBJX0dFTl9GSUZPX1NUQVQocG9ydCkpICYgbWFzaykgPT0gMCwg NTApKQo+IC0JCURSTV9FUlJPUigiVGltZW91dCB3YWl0aW5nIGZvciBIUy9MUCBEQVRBIEZJRk8g IWZ1bGxcbiIpOwo+IC0KPiAtCWZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gbikgewo+IC0JCXUz MiB2YWwgPSAwOwo+IC0JCW4gPSBtaW5fdChpbnQsIGxlbiAtIGksIDQpOwo+IC0KPiAtCQlmb3Ig KGogPSAwOyBqIDwgbjsgaisrKQo+IC0JCQl2YWwgfD0gKmRhdGErKyA8PCA4ICogajsKPiAtCj4g LQkJSTkxNV9XUklURShkYXRhX3JlZywgdmFsKTsKPiAtCQkvKiBYWFg6IGNoZWNrIGZvciBkYXRh IGZpZm8gZnVsbCwgb25jZSB0aGF0IGlzIHNldCwgd3JpdGUgNAo+IC0JCSAqIGR3b3JkcywgdGhl biB3YWl0IGZvciBub3Qgc2V0LCB0aGVuIGNvbnRpbnVlLiAqLwo+IC0JfQo+IC0KPiAtCXJldHVy biBkc2lfdmNfc2VuZF9zaG9ydChpbnRlbF9kc2ksIGNoYW5uZWwsIGRhdGFfdHlwZSwgbGVuLCBw b3J0KTsKPiAtfQo+IC0KPiAtc3RhdGljIGludCBkc2lfdmNfd3JpdGVfY29tbW9uKHN0cnVjdCBp bnRlbF9kc2kgKmludGVsX2RzaSwKPiAtCQkJICAgICAgIGludCBjaGFubmVsLCBjb25zdCB1OCAq ZGF0YSwgaW50IGxlbiwKPiAtCQkJICAgICAgIGVudW0gZHNpX3R5cGUgdHlwZSwgZW51bSBwb3J0 IHBvcnQpCj4gLXsKPiAtCWludCByZXQ7Cj4gLQo+IC0JaWYgKGxlbiA9PSAwKSB7Cj4gLQkJQlVH X09OKHR5cGUgPT0gRFNJX0dFTkVSSUMpOwo+IC0JCXJldCA9IGRzaV92Y19zZW5kX3Nob3J0KGlu dGVsX2RzaSwgY2hhbm5lbCwKPiAtCQkJCQlNSVBJX0RTSV9HRU5FUklDX1NIT1JUX1dSSVRFXzBf UEFSQU0sCj4gLQkJCQkJMCwgcG9ydCk7Cj4gLQl9IGVsc2UgaWYgKGxlbiA9PSAxKSB7Cj4gLQkJ cmV0ID0gZHNpX3ZjX3NlbmRfc2hvcnQoaW50ZWxfZHNpLCBjaGFubmVsLAo+IC0JCQkJCXR5cGUg PT0gRFNJX0dFTkVSSUMgPwo+IC0JCQkJCU1JUElfRFNJX0dFTkVSSUNfU0hPUlRfV1JJVEVfMV9Q QVJBTSA6Cj4gLQkJCQkJTUlQSV9EU0lfRENTX1NIT1JUX1dSSVRFLCBkYXRhWzBdLAo+IC0JCQkJ CXBvcnQpOwo+IC0JfSBlbHNlIGlmIChsZW4gPT0gMikgewo+IC0JCXJldCA9IGRzaV92Y19zZW5k X3Nob3J0KGludGVsX2RzaSwgY2hhbm5lbCwKPiAtCQkJCQl0eXBlID09IERTSV9HRU5FUklDID8K PiAtCQkJCQlNSVBJX0RTSV9HRU5FUklDX1NIT1JUX1dSSVRFXzJfUEFSQU0gOgo+IC0JCQkJCU1J UElfRFNJX0RDU19TSE9SVF9XUklURV9QQVJBTSwKPiAtCQkJCQkoZGF0YVsxXSA8PCA4KSB8IGRh dGFbMF0sIHBvcnQpOwo+IC0JfSBlbHNlIHsKPiAtCQlyZXQgPSBkc2lfdmNfc2VuZF9sb25nKGlu dGVsX2RzaSwgY2hhbm5lbCwKPiAtCQkJCQl0eXBlID09IERTSV9HRU5FUklDID8KPiAtCQkJCQlN SVBJX0RTSV9HRU5FUklDX0xPTkdfV1JJVEUgOgo+IC0JCQkJCU1JUElfRFNJX0RDU19MT05HX1dS SVRFLCBkYXRhLCBsZW4sCj4gLQkJCQkJcG9ydCk7Cj4gLQl9Cj4gLQo+IC0JcmV0dXJuIHJldDsK PiAtfQo+IC0KPiAtaW50IGRzaV92Y19kY3Nfd3JpdGUoc3RydWN0IGludGVsX2RzaSAqaW50ZWxf ZHNpLCBpbnQgY2hhbm5lbCwKPiAtCQkgICAgIGNvbnN0IHU4ICpkYXRhLCBpbnQgbGVuLCBlbnVt IHBvcnQgcG9ydCkKPiAtewo+IC0JcmV0dXJuIGRzaV92Y193cml0ZV9jb21tb24oaW50ZWxfZHNp LCBjaGFubmVsLCBkYXRhLCBsZW4sIERTSV9EQ1MsCj4gLQkJCQkJCQkJCXBvcnQpOwo+IC19Cj4g LQo+IC1pbnQgZHNpX3ZjX2dlbmVyaWNfd3JpdGUoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNp LCBpbnQgY2hhbm5lbCwKPiAtCQkJIGNvbnN0IHU4ICpkYXRhLCBpbnQgbGVuLCBlbnVtIHBvcnQg cG9ydCkKPiAtewo+IC0JcmV0dXJuIGRzaV92Y193cml0ZV9jb21tb24oaW50ZWxfZHNpLCBjaGFu bmVsLCBkYXRhLCBsZW4sIERTSV9HRU5FUklDLAo+IC0JCQkJCQkJCQlwb3J0KTsKPiAtfQo+IC0K PiAtc3RhdGljIGludCBkc2lfdmNfZGNzX3NlbmRfcmVhZF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9k c2kgKmludGVsX2RzaSwKPiAtCQkJCWludCBjaGFubmVsLCB1OCBkY3NfY21kLCBlbnVtIHBvcnQg cG9ydCkKPiAtewo+IC0JcmV0dXJuIGRzaV92Y19zZW5kX3Nob3J0KGludGVsX2RzaSwgY2hhbm5l bCwgTUlQSV9EU0lfRENTX1JFQUQsCj4gLQkJCQkgZGNzX2NtZCwgcG9ydCk7Cj4gLX0KPiAtCj4g LXN0YXRpYyBpbnQgZHNpX3ZjX2dlbmVyaWNfc2VuZF9yZWFkX3JlcXVlc3Qoc3RydWN0IGludGVs X2RzaSAqaW50ZWxfZHNpLAo+IC0JCQkJCSAgICBpbnQgY2hhbm5lbCwgdTggKnJlcWRhdGEsCj4g LQkJCQkJICAgIGludCByZXFsZW4sIGVudW0gcG9ydCBwb3J0KQo+IC17Cj4gLQl1MTYgZGF0YTsK PiAtCXU4IGRhdGFfdHlwZTsKPiAtCj4gLQlzd2l0Y2ggKHJlcWxlbikgewo+IC0JY2FzZSAwOgo+ IC0JCWRhdGFfdHlwZSA9IE1JUElfRFNJX0dFTkVSSUNfUkVBRF9SRVFVRVNUXzBfUEFSQU07Cj4g LQkJZGF0YSA9IDA7Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIDE6Cj4gLQkJZGF0YV90eXBlID0gTUlQ SV9EU0lfR0VORVJJQ19SRUFEX1JFUVVFU1RfMV9QQVJBTTsKPiAtCQlkYXRhID0gcmVxZGF0YVsw XTsKPiAtCQlicmVhazsKPiAtCWNhc2UgMjoKPiAtCQlkYXRhX3R5cGUgPSBNSVBJX0RTSV9HRU5F UklDX1JFQURfUkVRVUVTVF8yX1BBUkFNOwo+IC0JCWRhdGEgPSAocmVxZGF0YVsxXSA8PCA4KSB8 IHJlcWRhdGFbMF07Cj4gLQkJYnJlYWs7Cj4gLQlkZWZhdWx0Ogo+IC0JCUJVRygpOwo+IC0JfQo+ IC0KPiAtCXJldHVybiBkc2lfdmNfc2VuZF9zaG9ydChpbnRlbF9kc2ksIGNoYW5uZWwsIGRhdGFf dHlwZSwgZGF0YSwgcG9ydCk7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbnQgZHNpX3JlYWRfZGF0YV9y ZXR1cm4oc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLAo+IC0JCQkJdTggKmJ1ZiwgaW50IGJ1 ZmxlbiwgZW51bSBwb3J0IHBvcnQpCj4gLXsKPiAtCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl ciA9ICZpbnRlbF9kc2ktPmJhc2UuYmFzZTsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBl bmNvZGVyLT5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwo+IC0JaW50IGksIGxlbiA9IDA7Cj4gLQl1MzIgZGF0YV9yZWcsIHZhbDsK PiAtCj4gLQlpZiAoaW50ZWxfZHNpLT5ocykgewo+IC0JCWRhdGFfcmVnID0gTUlQSV9IU19HRU5f REFUQShwb3J0KTsKPiAtCX0gZWxzZSB7Cj4gLQkJZGF0YV9yZWcgPSBNSVBJX0xQX0dFTl9EQVRB KHBvcnQpOwo+IC0JfQo+IC0KPiAtCXdoaWxlIChsZW4gPCBidWZsZW4pIHsKPiAtCQl2YWwgPSBJ OTE1X1JFQUQoZGF0YV9yZWcpOwo+IC0JCWZvciAoaSA9IDA7IGkgPCA0ICYmIGxlbiA8IGJ1Zmxl bjsgaSsrLCBsZW4rKykKPiAtCQkJYnVmW2xlbl0gPSB2YWwgPj4gOCAqIGk7Cj4gLQl9Cj4gLQo+ IC0JcmV0dXJuIGxlbjsKPiAtfQo+IC0KPiAtaW50IGRzaV92Y19kY3NfcmVhZChzdHJ1Y3QgaW50 ZWxfZHNpICppbnRlbF9kc2ksIGludCBjaGFubmVsLCB1OCBkY3NfY21kLAo+IC0JCSAgICB1OCAq YnVmLCBpbnQgYnVmbGVuLCBlbnVtIHBvcnQgcG9ydCkKPiAtewo+IC0Jc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyID0gJmludGVsX2RzaS0+YmFzZS5iYXNlOwo+IC0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGVuY29kZXItPmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQl1MzIgbWFzazsKPiAtCWludCByZXQ7Cj4gLQo+ IC0JLyoKPiAtCSAqIFhYWDogc2hvdWxkIGlzc3VlIG11bHRpcGxlIHJlYWQgcmVxdWVzdHMgYW5k IHJlYWRzIGlmIHJlcXVlc3QgaXMKPiAtCSAqIGxvbmdlciB0aGFuIE1JUElfTUFYX1JFVFVSTl9Q S1RfU0laRQo+IC0JICovCj4gLQo+IC0JSTkxNV9XUklURShNSVBJX0lOVFJfU1RBVChwb3J0KSwg R0VOX1JFQURfREFUQV9BVkFJTCk7Cj4gLQo+IC0JcmV0ID0gZHNpX3ZjX2Rjc19zZW5kX3JlYWRf cmVxdWVzdChpbnRlbF9kc2ksIGNoYW5uZWwsIGRjc19jbWQsIHBvcnQpOwo+IC0JaWYgKHJldCkK PiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAtCW1hc2sgPSBHRU5fUkVBRF9EQVRBX0FWQUlMOwo+IC0J aWYgKHdhaXRfZm9yKChJOTE1X1JFQUQoTUlQSV9JTlRSX1NUQVQocG9ydCkpICYgbWFzaykgPT0g bWFzaywgNTApKQo+IC0JCURSTV9FUlJPUigiVGltZW91dCB3YWl0aW5nIGZvciByZWFkIGRhdGEu XG4iKTsKPiAtCj4gLQlyZXQgPSBkc2lfcmVhZF9kYXRhX3JldHVybihpbnRlbF9kc2ksIGJ1Ziwg YnVmbGVuLCBwb3J0KTsKPiAtCWlmIChyZXQgPCAwKQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+IC0J aWYgKHJldCAhPSBidWZsZW4pCj4gLQkJcmV0dXJuIC1FSU87Cj4gLQo+IC0JcmV0dXJuIDA7Cj4g LX0KPiAtCj4gLWludCBkc2lfdmNfZ2VuZXJpY19yZWFkKHN0cnVjdCBpbnRlbF9kc2kgKmludGVs X2RzaSwgaW50IGNoYW5uZWwsCj4gLQkJdTggKnJlcWRhdGEsIGludCByZXFsZW4sIHU4ICpidWYs IGludCBidWZsZW4sIGVudW0gcG9ydCBwb3J0KQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIgPSAmaW50ZWxfZHNpLT5iYXNlLmJhc2U7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gZW5jb2Rlci0+ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXUzMiBtYXNrOwo+IC0JaW50IHJldDsKPiAtCj4gLQkv Kgo+IC0JICogWFhYOiBzaG91bGQgaXNzdWUgbXVsdGlwbGUgcmVhZCByZXF1ZXN0cyBhbmQgcmVh ZHMgaWYgcmVxdWVzdCBpcwo+IC0JICogbG9uZ2VyIHRoYW4gTUlQSV9NQVhfUkVUVVJOX1BLVF9T SVpFCj4gLQkgKi8KPiAtCj4gLQlJOTE1X1dSSVRFKE1JUElfSU5UUl9TVEFUKHBvcnQpLCBHRU5f UkVBRF9EQVRBX0FWQUlMKTsKPiAtCj4gLQlyZXQgPSBkc2lfdmNfZ2VuZXJpY19zZW5kX3JlYWRf cmVxdWVzdChpbnRlbF9kc2ksIGNoYW5uZWwsIHJlcWRhdGEsCj4gLQkJCQkJICAgICAgIHJlcWxl biwgcG9ydCk7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+IC0JbWFzayA9IEdF Tl9SRUFEX0RBVEFfQVZBSUw7Cj4gLQlpZiAod2FpdF9mb3IoKEk5MTVfUkVBRChNSVBJX0lOVFJf U1RBVChwb3J0KSkgJiBtYXNrKSA9PSBtYXNrLCA1MCkpCj4gLQkJRFJNX0VSUk9SKCJUaW1lb3V0 IHdhaXRpbmcgZm9yIHJlYWQgZGF0YS5cbiIpOwo+IC0KPiAtCXJldCA9IGRzaV9yZWFkX2RhdGFf cmV0dXJuKGludGVsX2RzaSwgYnVmLCBidWZsZW4sIHBvcnQpOwo+IC0JaWYgKHJldCA8IDApCj4g LQkJcmV0dXJuIHJldDsKPiAtCj4gLQlpZiAocmV0ICE9IGJ1ZmxlbikKPiAtCQlyZXR1cm4gLUVJ TzsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAgIC8qCj4gICAgKiBzZW5kIGEgdmlkZW8g bW9kZSBjb21tYW5kCj4gICAgKgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2lfY21kLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY21kLmgKPiBp bmRleCA3MGYyNDY2NmExZjkuLjlhMjhmZjU4YTkyYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kc2lfY21kLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2lfY21kLmgKPiBAQCAtMzksNzggKzM5LDYgQEAKPiAgIHZvaWQgZHNpX2hzX21vZGVf ZW5hYmxlKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgYm9vbCBlbmFibGUsCj4gICAJCQkJ CQllbnVtIHBvcnQgcG9ydCk7Cj4KPiAtaW50IGRzaV92Y19kY3Nfd3JpdGUoc3RydWN0IGludGVs X2RzaSAqaW50ZWxfZHNpLCBpbnQgY2hhbm5lbCwKPiAtCQkgICAgIGNvbnN0IHU4ICpkYXRhLCBp bnQgbGVuLCBlbnVtIHBvcnQgcG9ydCk7Cj4gLQo+IC1pbnQgZHNpX3ZjX2dlbmVyaWNfd3JpdGUo c3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBpbnQgY2hhbm5lbCwKPiAtCQkJIGNvbnN0IHU4 ICpkYXRhLCBpbnQgbGVuLCBlbnVtIHBvcnQgcG9ydCk7Cj4gLQo+IC1pbnQgZHNpX3ZjX2Rjc19y ZWFkKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgaW50IGNoYW5uZWwsIHU4IGRjc19jbWQs Cj4gLQkJICAgIHU4ICpidWYsIGludCBidWZsZW4sIGVudW0gcG9ydCBwb3J0KTsKPiAtCj4gLWlu dCBkc2lfdmNfZ2VuZXJpY19yZWFkKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgaW50IGNo YW5uZWwsCj4gLQkJdTggKnJlcWRhdGEsIGludCByZXFsZW4sIHU4ICpidWYsIGludCBidWZsZW4s IGVudW0gcG9ydCBwb3J0KTsKPiAtCj4gICBpbnQgZHBpX3NlbmRfY21kKHN0cnVjdCBpbnRlbF9k c2kgKmludGVsX2RzaSwgdTMyIGNtZCwgYm9vbCBocywgZW51bSBwb3J0IHBvcnQpOwo+Cj4gLS8q IFhYWDogcXVlc3Rpb25hYmxlIHdyaXRlIGhlbHBlcnMgKi8KPiAtc3RhdGljIGlubGluZSBpbnQg ZHNpX3ZjX2Rjc193cml0ZV8wKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwKPiAtCQkJCSAg ICAgaW50IGNoYW5uZWwsIHU4IGRjc19jbWQsIGVudW0gcG9ydCBwb3J0KQo+IC17Cj4gLQlyZXR1 cm4gZHNpX3ZjX2Rjc193cml0ZShpbnRlbF9kc2ksIGNoYW5uZWwsICZkY3NfY21kLCAxLCBwb3J0 KTsKPiAtfQo+IC0KPiAtc3RhdGljIGlubGluZSBpbnQgZHNpX3ZjX2Rjc193cml0ZV8xKHN0cnVj dCBpbnRlbF9kc2kgKmludGVsX2RzaSwKPiAtCQkJaW50IGNoYW5uZWwsIHU4IGRjc19jbWQsIHU4 IHBhcmFtLCBlbnVtIHBvcnQgcG9ydCkKPiAtewo+IC0JdTggYnVmWzJdID0geyBkY3NfY21kLCBw YXJhbSB9Owo+IC0JcmV0dXJuIGRzaV92Y19kY3Nfd3JpdGUoaW50ZWxfZHNpLCBjaGFubmVsLCBi dWYsIDIsIHBvcnQpOwo+IC19Cj4gLQo+IC1zdGF0aWMgaW5saW5lIGludCBkc2lfdmNfZ2VuZXJp Y193cml0ZV8wKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwKPiAtCQkJCQkgaW50IGNoYW5u ZWwsIGVudW0gcG9ydCBwb3J0KQo+IC17Cj4gLQlyZXR1cm4gZHNpX3ZjX2dlbmVyaWNfd3JpdGUo aW50ZWxfZHNpLCBjaGFubmVsLCBOVUxMLCAwLCBwb3J0KTsKPiAtfQo+IC0KPiAtc3RhdGljIGlu bGluZSBpbnQgZHNpX3ZjX2dlbmVyaWNfd3JpdGVfMShzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2ksCj4gLQkJCQkJIGludCBjaGFubmVsLCB1OCBwYXJhbSwgZW51bSBwb3J0IHBvcnQpCj4gLXsK PiAtCXJldHVybiBkc2lfdmNfZ2VuZXJpY193cml0ZShpbnRlbF9kc2ksIGNoYW5uZWwsICZwYXJh bSwgMSwgcG9ydCk7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbmxpbmUgaW50IGRzaV92Y19nZW5lcmlj X3dyaXRlXzIoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLAo+IC0JCQlpbnQgY2hhbm5lbCwg dTggcGFyYW0xLCB1OCBwYXJhbTIsIGVudW0gcG9ydCBwb3J0KQo+IC17Cj4gLQl1OCBidWZbMl0g PSB7IHBhcmFtMSwgcGFyYW0yIH07Cj4gLQlyZXR1cm4gZHNpX3ZjX2dlbmVyaWNfd3JpdGUoaW50 ZWxfZHNpLCBjaGFubmVsLCBidWYsIDIsIHBvcnQpOwo+IC19Cj4gLQo+IC0vKiBYWFg6IHF1ZXN0 aW9uYWJsZSByZWFkIGhlbHBlcnMgKi8KPiAtc3RhdGljIGlubGluZSBpbnQgZHNpX3ZjX2dlbmVy aWNfcmVhZF8wKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwKPiAtCQkJaW50IGNoYW5uZWws IHU4ICpidWYsIGludCBidWZsZW4sIGVudW0gcG9ydCBwb3J0KQo+IC17Cj4gLQlyZXR1cm4gZHNp X3ZjX2dlbmVyaWNfcmVhZChpbnRlbF9kc2ksIGNoYW5uZWwsIE5VTEwsIDAsIGJ1ZiwgYnVmbGVu LAo+IC0JCQkJCQkJCQlwb3J0KTsKPiAtfQo+IC0KPiAtc3RhdGljIGlubGluZSBpbnQgZHNpX3Zj X2dlbmVyaWNfcmVhZF8xKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwKPiAtCQkJCQlpbnQg Y2hhbm5lbCwgdTggcGFyYW0sIHU4ICpidWYsCj4gLQkJCQkJaW50IGJ1ZmxlbiwgZW51bSBwb3J0 IHBvcnQpCj4gLXsKPiAtCXJldHVybiBkc2lfdmNfZ2VuZXJpY19yZWFkKGludGVsX2RzaSwgY2hh bm5lbCwgJnBhcmFtLCAxLCBidWYsIGJ1ZmxlbiwKPiAtCQkJCQkJCQkJcG9ydCk7Cj4gLX0KPiAt Cj4gLXN0YXRpYyBpbmxpbmUgaW50IGRzaV92Y19nZW5lcmljX3JlYWRfMihzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2ksCj4gLQkJCQkJaW50IGNoYW5uZWwsIHU4IHBhcmFtMSwgdTggcGFyYW0y LAo+IC0JCQkJCXU4ICpidWYsIGludCBidWZsZW4sIGVudW0gcG9ydCBwb3J0KQo+IC17Cj4gLQl1 OCByZXFbMl0gPSB7IHBhcmFtMSwgcGFyYW0yIH07Cj4gLQo+IC0JcmV0dXJuIGRzaV92Y19nZW5l cmljX3JlYWQoaW50ZWxfZHNpLCBjaGFubmVsLCByZXEsIDIsIGJ1ZiwgYnVmbGVuLAo+IC0JCQkJ CQkJCQlwb3J0KTsKPiAtfQo+IC0KPiAtCj4gICAjZW5kaWYgLyogX0lOVEVMX0RTSV9EU0lfSCAq Lwo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==