From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [MIPI SEQ PARSING v2 PATCH 05/11] drm/i915: Added support the v3 mipi sequence block Date: Thu, 17 Sep 2015 17:38:44 +0300 Message-ID: <876139t8jv.fsf@intel.com> References: <1441841070-11532-1-git-send-email-m.deepak@intel.com> <1441841070-11532-6-git-send-email-m.deepak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 96F9C6E4FA for ; Thu, 17 Sep 2015 07:35:42 -0700 (PDT) In-Reply-To: <1441841070-11532-6-git-send-email-m.deepak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Deepak M List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxMCBTZXAgMjAxNSwgRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4gd3JvdGU6 Cj4gRnJvbTogdmtvcmphbmkgPHZpa2FzLmtvcmphbmlAaW50ZWwuY29tPgo+Cj4gVGhlIEJsb2Nr IDUzIG9mIHRoZSBWQlQsIHdoaWNoIGlzIHRoZSBNSVBJIHNlcXVlbmNlIGJsb2NrCj4gaGFzIHVu ZGVyZ29uZSBhIGRlc2lnbiBjaGFuZ2UgYmVjYXVzZSBvZiB3aGljaCB0aGUgcGFyc2luZwo+IGxv Z2ljIGhhcyB0byBiZSBjaGFuZ2VkLgo+Cj4gVGhlIGN1cnJlbnQgY29kZSB3aWxsIGhhbmRsZSB0 aGUgcGFyc2luZyBvZiB2MyBhbmQgb3RoZXIKPiBsb3dlciB2ZXJzaW9ucyBvZiB0aGUgTUlQSSBz ZXF1ZW5jZSBibG9jay4KPgo+IHYyOiByZWJhc2UKPgo+IFNpZ25lZC1vZmYtYnk6IHZrb3JqYW5p IDx2aWthcy5rb3JqYW5pQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBEZWVwYWsgTSA8bS5k ZWVwYWtAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9z LmMgICAgICAgICAgfCAgMTE5ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5oICAgICAgICAgIHwgICAgOCArKwo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGFuZWxfdmJ0LmMgfCAgICA3ICsrCj4gIDMgZmlsZXMg Y2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Jpb3MuYwo+IGluZGV4IDM0YTEwNDIuLmNlYTY0MWYgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYmlvcy5jCj4gQEAgLTQ1LDYgKzQ1LDcgQEAgZmluZF9zZWN0aW9uKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWludCBpbmRleCA9IDA7Cj4gIAl1MzIg dG90YWwsIGN1cnJlbnRfc2l6ZTsKPiAgCXU4IGN1cnJlbnRfaWQ7Cj4gKwl1OCB2ZXJzaW9uOwo+ ICAKPiAgCS8qIHNraXAgdG8gZmlyc3Qgc2VjdGlvbiAqLwo+ICAJaW5kZXggKz0gYmRiLT5oZWFk ZXJfc2l6ZTsKPiBAQCAtNTYsNyArNTcsMTcgQEAgZmluZF9zZWN0aW9uKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQljdXJyZW50X2lkID0gKihiYXNlICsgaW5kZXgpOwo+ ICAJCWluZGV4Kys7Cj4gIAo+IC0JCWN1cnJlbnRfc2l6ZSA9ICooKGNvbnN0IHUxNiAqKShiYXNl ICsgaW5kZXgpKTsKPiArCQlpZiAoY3VycmVudF9pZCA9PSBCREJfTUlQSV9TRVFVRU5DRSkgewo+ ICsJCQl2ZXJzaW9uID0gKihiYXNlICsgaW5kZXggKyAyKTsKPiArCQkJaWYgKHZlcnNpb24gPj0g MykKPiArCQkJCWN1cnJlbnRfc2l6ZSA9ICooKGNvbnN0IHUzMiAqKShiYXNlICsKPiArCQkJCQkJ CQlpbmRleCArIDMpKTsKPiArCQkJZWxzZQo+ICsJCQkJY3VycmVudF9zaXplID0gKigoY29uc3Qg dTE2ICopKGJhc2UgKyBpbmRleCkpOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCWN1cnJlbnRfc2l6ZSA9 ICooKGNvbnN0IHUxNiAqKShiYXNlICsgaW5kZXgpKTsKPiArCQl9Cj4gKwoKV2hpbGUgcmV2aWV3 aW5nIEkndmUgcmVhbGl6ZWQgdGhlIG9sZCBrZXJuZWxzIHdpbGwgaGl0IHRoaXMgaGFyZC4gSSd2 ZQpzdWJtaXR0ZWQgYSBwYXRjaCBbMV0gdG8gYmUgYXBwbGllZCB0byB2NC4zLXJjIGFuZCBvbGRl ciBzdGFibGUga2VybmVscwpzbyB0aGF0IHRoZXkgZmFpbCBncmFjZWZ1bGx5IGluc3RlYWQgb2Yg c3RhcnRpbmcgdG8gcGFyc2UgZ2FyYmFnZS4gVGhlCnJlYWwgcGFyc2luZyBpcyB0b28gYmlnIHRv IGJhY2twb3J0IHRvIHVwc3RyZWFtIHN0YWJsZS4gUGxlYXNlIHJldmlldy4KClsxXSBodHRwOi8v bWlkLmdtYW5lLm9yZy8xNDQyNDk3MzI3LTI3MDMzLTEtZ2l0LXNlbmQtZW1haWwtamFuaS5uaWt1 bGFAaW50ZWwuY29tCgo+ICAJCWluZGV4ICs9IDI7Cj4gIAo+ICAJCWlmIChpbmRleCArIGN1cnJl bnRfc2l6ZSA+IHRvdGFsKQo+IEBAIC03NDUsNiArNzU2LDU1IEBAIHN0YXRpYyB1OCAqZ290b19u ZXh0X3NlcXVlbmNlKHU4ICpkYXRhLCBpbnQgKnNpemUpCj4gIAlyZXR1cm4gZGF0YTsKPiAgfQo+ ICAKPiArc3RhdGljIHU4ICpnb3RvX25leHRfc2VxdWVuY2VfdjModTggKmRhdGEsIGludCAqc2l6 ZSkKPiArewo+ICsJaW50IHRtcCA9ICpzaXplOwo+ICsJaW50IG9wX3NpemU7Cj4gKwo+ICsJaWYg KC0tdG1wIDwgMCkKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwkvKiBTa2lwIHRoZSBwYW5lbCBp ZCBhbmQgdGhlIHNlcXVlbmNlIHNpemUgKi8KCkl0J3Mgbm90IHBhbmVsIGlkLCBpdCdzIHRoZSBz ZXF1ZW5jZSBieXRlLCByaWdodD8KCllvdSBjb3VsZCBhbHNvIHN0b3JlIGRhdGEgKyAxICsgc2l6 ZSBvZiBzZXF1ZW5jZSwgYW5kIGNoZWNrIHdoZXRoZXIgZGF0YQplbmRzIHVwIHBvaW50aW5nIGF0 IHRoZSBzYW1lIHBsYWNlIGluIHRoZSBlbmQuIFRoZXkgc2hvdWxkLgoKU2hvdWxkbid0IHlvdSBh bHNvIHRha2UgNCBieXRlcyBvZiBzZXF1ZW5jZSBzaXplIGZpZWxkIGludG8gYWNjb3VudCBpbgp0 bXA/Cgo+ICsJZGF0YSA9IGRhdGEgKyA1Owo+ICsJd2hpbGUgKCpkYXRhICE9IDApIHsKPiArCQl1 OCBlbGVtZW50X3R5cGUgPSAqZGF0YSsrOwo+ICsKPiArCQlzd2l0Y2ggKGVsZW1lbnRfdHlwZSkg ewoKV291bGQgYmUgaGVscGZ1bCB0byByZWZlciB0byBvcGVyYXRpb25fYnl0ZSBsaWtlIGluIHRo ZSBzcGVjLgoKPiArCQlkZWZhdWx0Ogo+ICsJCQlEUk1fRVJST1IoIlVua25vd24gZWxlbWVudCB0 eXBlICVkXG4iLCBlbGVtZW50X3R5cGUpOwo+ICsJCWNhc2UgTUlQSV9TRVFfRUxFTV9TRU5EX1BL VDoKPiArCQljYXNlIE1JUElfU0VRX0VMRU1fREVMQVk6Cj4gKwkJY2FzZSBNSVBJX1NFUV9FTEVN X0dQSU86Cj4gKwkJY2FzZSBNSVBJX1NFUV9FTEVNX0kyQzoKPiArCQljYXNlIE1JUElfU0VRX0VM RU1fU1BJOgo+ICsJCWNhc2UgTUlQSV9TRVFfRUxFTV9QTUlDOgo+ICsJCQkvKgo+ICsJCQkgKiBz a2lwIGJ5IHRoaXMgZWxlbWVudCBwYXlsb2FkIHNpemUKPiArCQkJICogc2tpcCBlbGVtIGlkLCBj b21tYW5kIGZsYWcgYW5kIGRhdGEgdHlwZQo+ICsJCQkgKi8KPiArCQkJb3Bfc2l6ZSA9ICpkYXRh Kys7Cj4gKwkJCXRtcCA9IHRtcCAtIChvcF9zaXplICsgMSk7Cj4gKwkJCWlmICh0bXAgPCAwKQo+ ICsJCQkJcmV0dXJuIE5VTEw7CgpJc24ndCBlYWNoIG9wZXJhdGlvbiBvcGVyYXRpb24gYnl0ZSB8 IHNpemUgb2Ygb3BlcmF0aW9uIHwgcGF5bG9hZCBzaXplLAppLmUuIHlvdXIgdG1wIGNoYW5nZSBp cyBvbmUgYnl0ZSBzaG9ydD8KClRoZSBmYWN0IHRoYXQgdGhlIGdvdG9fbmV4dF9zZXF1ZW5jZSog ZnVuY3Rpb25zIGluY3JlYXNlIGRhdGEgYW5kCmRlY3JlYXNlIHNpemUgaXMgZ2V0dGluZyBpbmNy ZWFzaW5nbHkgY29uZnVzaW5nIHRvIGZvbGxvdy4gT25lIHNpbXBsZQphbHRlcm5hdGl2ZSB3b3Vs ZCBiZSB0byBjYWxjdWxhdGUgc29tZSBlbmRwID0gc3RhcnQgKyBzaXplIHVwIGZyb250LCBhbmQK dGhlbiBwYXNzIHRoZSBlbmRwIGFyb3VuZCwgYW5kIGNoZWNrIGlmIHdlJ3JlIGFib3V0IHRvIGdv IHBhc3QgdGhlIGVuZAptYXJrZXIuCgpUaGlzIGlzIG5vdCBhIHByb2JsZW0gd2l0aCB5b3VyIHNl cmllcywgaXQgd2FzIHRoZXJlIGFscmVhZHkuIEFuZCBmaXhpbmcKaXQgZG9lc24ndCBoYXZlIHRv IGJlIHBhcnQgb2YgeW91ciBzZXJpZXMuIEl0IGp1c3QgcmVhbGx5IHRha2VzIGFnZXMgdG8KcmV2 aWV3IHRoaXMgYXBwcm9hY2ggb2YgcmFuZ2UgY2hlY2tpbmcuIFVubGVzcyBJIGNsb3NlIG15IGV5 ZXMgYW5kIHRydXN0CnRoZXJlIGFyZSBubyBvZmYtYnktb25lcyBhbnl3aGVyZS4gQnV0IHRoYXQg a2luZCBvZiBkZWZlYXRzIHRoZSBwdXJwb3NlCm9mIHJldmlldy4uLgoKPiArCj4gKwkJCS8qIHNr aXAgYnkgbGVuICovCj4gKwkJCWRhdGEgKz0gb3Bfc2l6ZTsKPiArCQkJYnJlYWs7Cj4gKwkJfQo+ ICsJfQo+ICsKPiArCS8qIGdvdG8gbmV4dCBzZXF1ZW5jZSBvciBlbmQgb2YgYmxvY2sgYnl0ZSAq Lwo+ICsJaWYgKC0tdG1wIDwgMCkKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwkvKiBTa2lwIHRo ZSBlbmQgZWxlbWVudCBtYXJrZXIgKi8KPiArCWRhdGErKzsKPiArCj4gKwkvKiB1cGRhdGUgYW1v dW50IG9mIGRhdGEgbGVmdCBmb3IgdGhlIHNlcXVlbmNlIGJsb2NrIHRvIGJlIHBhcnNlZCAqLwo+ ICsJKnNpemUgPSB0bXA7Cj4gKwlyZXR1cm4gZGF0YTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQK PiAgcGFyc2VfbWlwaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGNvbnN0IHN0 cnVjdCBiZGJfaGVhZGVyICpiZGIpCj4gIHsKPiBAQCAtNzU0LDcgKzgxNCw3IEBAIHBhcnNlX21p cGkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBjb25zdCBzdHJ1Y3QgYmRiX2hl YWRlciAqYmRiKQo+ICAJY29uc3Qgc3RydWN0IG1pcGlfcHBzX2RhdGEgKnBwczsKPiAgCXU4ICpk YXRhOwo+ICAJY29uc3QgdTggKnNlcV9kYXRhOwo+IC0JaW50IGksIHBhbmVsX2lkLCBzZXFfc2l6 ZTsKPiArCWludCBpLCBwYW5lbF9pZCwgcGFuZWxfc2VxX3NpemU7Cj4gIAl1MTYgYmxvY2tfc2l6 ZTsKPiAgCj4gIAkvKiBwYXJzZSBNSVBJIGJsb2NrcyBvbmx5IGlmIExGUCB0eXBlIGlzIE1JUEkg Ki8KPiBAQCAtODExLDI5ICs4NzEsNDAgQEAgcGFyc2VfbWlwaShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIpCj4gIAo+ICAJRFJN X0RFQlVHX0RSSVZFUigiRm91bmQgTUlQSSBzZXF1ZW5jZSBibG9ja1xuIik7Cj4gIAo+IC0JYmxv Y2tfc2l6ZSA9IGdldF9ibG9ja3NpemUoc2VxdWVuY2UpOwo+IC0KPiAgCS8qCj4gIAkgKiBwYXJz ZSB0aGUgc2VxdWVuY2UgYmxvY2sgZm9yIGluZGl2aWR1YWwgc2VxdWVuY2VzCj4gIAkgKi8KPiAg CWRldl9wcml2LT52YnQuZHNpLnNlcV92ZXJzaW9uID0gc2VxdWVuY2UtPnZlcnNpb247Cj4gIAo+ ICAJc2VxX2RhdGEgPSAmc2VxdWVuY2UtPmRhdGFbMF07Cj4gKwlpZiAoZGV2X3ByaXYtPnZidC5k c2kuc2VxX3ZlcnNpb24gPj0gMykgewo+ICsJCWJsb2NrX3NpemUgPSAqKCh1bnNpZ25lZCBpbnQg KilzZXFfZGF0YSk7CgooY29uc3QgdTMyICopCgo+ICsJCXNlcV9kYXRhID0gc2VxX2RhdGEgKyA0 Owo+ICsJfSBlbHNlCj4gKwkJYmxvY2tfc2l6ZSA9IGdldF9ibG9ja3NpemUoc2VxdWVuY2UpOwoK YmxvY2tfc2l6ZSBzaG91bGQgYmUgY2hhbmdlZCB0byB1MzIuCgo+ICAKPiAgCS8qCj4gIAkgKiBz ZXF1ZW5jZSBibG9jayBpcyB2YXJpYWJsZSBsZW5ndGggYW5kIGhlbmNlIHdlIG5lZWQgdG8gcGFy c2UgYW5kCj4gIAkgKiBnZXQgdGhlIHNlcXVlbmNlIGRhdGEgZm9yIHNwZWNpZmljIHBhbmVsIGlk Cj4gIAkgKi8KPiAgCWZvciAoaSA9IDA7IGkgPCBNQVhfTUlQSV9DT05GSUdVUkFUSU9OUzsgaSsr KSB7Cj4gLQkJcGFuZWxfaWQgPSAqc2VxX2RhdGE7Cj4gLQkJc2VxX3NpemUgPSAqKCh1MTYgKikg KHNlcV9kYXRhICsgMSkpOwo+ICsJCXBhbmVsX2lkID0gKnNlcV9kYXRhKys7Cj4gKwkJaWYgKGRl dl9wcml2LT52YnQuZHNpLnNlcV92ZXJzaW9uID49IDMpIHsKPiArCQkJcGFuZWxfc2VxX3NpemUg PSAqKCh1MzIgKilzZXFfZGF0YSk7Cj4gKwkJCXNlcV9kYXRhICs9IHNpemVvZih1MzIpOwo+ICsJ CX0gZWxzZSB7Cj4gKwkJCXBhbmVsX3NlcV9zaXplID0gKigodTE2ICopc2VxX2RhdGEpOwo+ICsJ CQlzZXFfZGF0YSArPSBzaXplb2YodTE2KTsKPiArCQl9Cj4gKwo+ICAJCWlmIChwYW5lbF9pZCA9 PSBwYW5lbF90eXBlKQo+ICAJCQlicmVhazsKPiAgCj4gLQkJLyogc2tpcCB0aGUgc2VxdWVuY2Ug aW5jbHVkaW5nIHNlcSBoZWFkZXIgb2YgMyBieXRlcyAqLwo+IC0JCXNlcV9kYXRhID0gc2VxX2Rh dGEgKyAzICsgc2VxX3NpemU7Cj4gKwkJc2VxX2RhdGEgKz0gcGFuZWxfc2VxX3NpemU7Cj4gKwo+ ICAJCWlmICgoc2VxX2RhdGEgLSAmc2VxdWVuY2UtPmRhdGFbMF0pID4gYmxvY2tfc2l6ZSkgewo+ IC0JCQlEUk1fRVJST1IoIlNlcXVlbmNlIHN0YXJ0IGlzIGJleW9uZCBzZXF1ZW5jZSBibG9jayBz aXplLCBjb3JydXB0ZWQgc2VxdWVuY2UgYmxvY2tcbiIpOwo+ICsJCQlEUk1fRVJST1IoIlNlcXVl bmNlIHN0YXJ0IGlzIGJleW9uZCBzZXEgYmxvY2sgc2l6ZVxuIik7Cj4gKwkJCURSTV9FUlJPUigi Q29ycnVwdGVkIHNlcXVlbmNlIGJsb2NrXG4iKTsKClBsZWFzZSBkb24ndCBhZGQgdHdvIGNvbnNl Y3V0aXZlIERSTV9FUlJPUnMgZm9yIHRoZSBzYW1lIGVycm9yLgoKPiAgCQkJcmV0dXJuOwo+ICAJ CX0KPiAgCX0KPiBAQCAtODQ1LDEzICs5MTYsMTQgQEAgcGFyc2VfbWlwaShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIpCj4gIAo+ ICAJLyogY2hlY2sgaWYgZm91bmQgc2VxdWVuY2UgaXMgY29tcGxldGVseSB3aXRoaW4gdGhlIHNl cXVlbmNlIGJsb2NrCj4gIAkgKiBqdXN0IGJlaW5nIHBhcmFub2lkICovCj4gLQlpZiAoc2VxX3Np emUgPiBibG9ja19zaXplKSB7Cj4gKwlpZiAocGFuZWxfc2VxX3NpemUgPiBibG9ja19zaXplKSB7 Cj4gIAkJRFJNX0VSUk9SKCJDb3JydXB0ZWQgc2VxdWVuY2Uvc2l6ZSwgYmFpbGluZyBvdXRcbiIp Owo+ICAJCXJldHVybjsKPiAgCX0KPiAgCj4gLQkvKiBza2lwIHRoZSBwYW5lbCBpZCgxIGJ5dGUp IGFuZCBzZXEgc2l6ZSgyIGJ5dGVzKSAqLwo+IC0JZGV2X3ByaXYtPnZidC5kc2kuZGF0YSA9IGtt ZW1kdXAoc2VxX2RhdGEgKyAzLCBzZXFfc2l6ZSwgR0ZQX0tFUk5FTCk7Cj4gKwo+ICsJZGV2X3By aXYtPnZidC5kc2kuZGF0YSA9IGttZW1kdXAoc2VxX2RhdGEsIHBhbmVsX3NlcV9zaXplLCBHRlBf S0VSTkVMKTsKPiArCj4gIAlpZiAoIWRldl9wcml2LT52YnQuZHNpLmRhdGEpCj4gIAkJcmV0dXJu Owo+ICAKPiBAQCAtODYwLDI5ICs5MzIsMzYgQEAgcGFyc2VfbWlwaShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIpCj4gIAkgKiBU aGVyZSBhcmUgb25seSA1IHR5cGVzIG9mIHNlcXVlbmNlcyBhcyBvZiBub3cKPiAgCSAqLwo+ICAJ ZGF0YSA9IGRldl9wcml2LT52YnQuZHNpLmRhdGE7Cj4gLQlkZXZfcHJpdi0+dmJ0LmRzaS5zaXpl ID0gc2VxX3NpemU7Cj4gKwlkZXZfcHJpdi0+dmJ0LmRzaS5zaXplID0gcGFuZWxfc2VxX3NpemU7 Cj4gIAo+ICAJLyogdHdvIGNvbnNlY3V0aXZlIDB4MDAgaW5kaWNhdGUgZW5kIG9mIGFsbCBzZXF1 ZW5jZXMgKi8KPiAtCXdoaWxlICgxKSB7Cj4gKwl3aGlsZSAoKmRhdGEgIT0gMCkgewo+ICAJCWlu dCBzZXFfaWQgPSAqZGF0YTsKPiArCQlpbnQgc2VxX3NpemU7Cgp1MzIKCj4gKwo+ICAJCWlmIChN SVBJX1NFUV9NQVggPiBzZXFfaWQgJiYgc2VxX2lkID4gTUlQSV9TRVFfVU5ERUZJTkVEKSB7Cj4g IAkJCWRldl9wcml2LT52YnQuZHNpLnNlcXVlbmNlW3NlcV9pZF0gPSBkYXRhOwo+ICAJCQlEUk1f REVCVUdfRFJJVkVSKCJGb3VuZCBtaXBpIHNlcXVlbmNlIC0gJWRcbiIsIHNlcV9pZCk7Cj4gIAkJ fSBlbHNlIHsKPiAtCQkJRFJNX0VSUk9SKCJ1bmRlZmluZWQgc2VxdWVuY2VcbiIpOwo+IC0JCQln b3RvIGVycjsKPiArCQkJRFJNX0VSUk9SKCJ1bmRlZmluZWQgc2VxdWVuY2UgLSAlZFxuIiwgc2Vx X2lkKTsKPiArCQkJc2VxX3NpemUgPSAqKGRhdGEgKyAxKTsKCk5lZWRzIHRvIGJlICooKGNvbnN0 IHUzMiAqKShkYXRhICsgMSkpIG9yIHlvdSdsbCBpZ25vcmUgMyBoaWdoZXN0IG9yZGVyCmJ5dGVz LgoKPiArCQkJaWYgKGRldl9wcml2LT52YnQuZHNpLnNlcV92ZXJzaW9uID49IDMpIHsKPiArCQkJ CWRhdGEgPSBkYXRhICsgc2VxX3NpemUgKyAxOwo+ICsJCQkJY29udGludWU7Cj4gKwkJCX0gZWxz ZQo+ICsJCQkJZ290byBlcnI7Cj4gIAkJfQo+ICAKPiAgCQkvKiBwYXJ0aWFsIHBhcnNpbmcgdG8g c2tpcCBlbGVtZW50cyAqLwo+IC0JCWRhdGEgPSBnb3RvX25leHRfc2VxdWVuY2UoZGF0YSwgJnNl cV9zaXplKTsKPiArCQlpZiAoZGV2X3ByaXYtPnZidC5kc2kuc2VxX3ZlcnNpb24gPj0gMykKPiAr CQkJZGF0YSA9IGdvdG9fbmV4dF9zZXF1ZW5jZV92MyhkYXRhLCAmcGFuZWxfc2VxX3NpemUpOwo+ ICsJCWVsc2UKPiArCQkJZGF0YSA9IGdvdG9fbmV4dF9zZXF1ZW5jZShkYXRhLCAmcGFuZWxfc2Vx X3NpemUpOwo+ICAKPiAgCQlpZiAoZGF0YSA9PSBOVUxMKSB7Cj4gIAkJCURSTV9FUlJPUigiU2Vx dWVuY2UgZWxlbWVudHMgZ29pbmcgYmV5b25kIGJsb2NrIGl0c2VsZi4gU2VxdWVuY2UgYmxvY2sg cGFyc2luZyBmYWlsZWRcbiIpOwo+ICAJCQlnb3RvIGVycjsKPiAgCQl9Cj4gLQo+IC0JCWlmICgq ZGF0YSA9PSAwKQo+IC0JCQlicmVhazsgLyogZW5kIG9mIHNlcXVlbmNlIHJlYWNoZWQgKi8KPiAg CX0KPiAgCj4gIAlEUk1fREVCVUdfRFJJVkVSKCJNSVBJIHJlbGF0ZWQgdmJ0IHBhcnNpbmcgY29t cGxldGVcbiIpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9z LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmgKPiBpbmRleCAyMWE3ZjNmLi43 YTRiYTQxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuaAo+IEBAIC05NDgsNiArOTQ4 LDEyIEBAIGVudW0gbWlwaV9zZXEgewo+ICAJTUlQSV9TRVFfRElTUExBWV9PTiwKPiAgCU1JUElf U0VRX0RJU1BMQVlfT0ZGLAo+ICAJTUlQSV9TRVFfREVBU1NFUlRfUkVTRVQsCj4gKwlNSVBJX1NF UV9CQUNLTElHSFRfT04sCj4gKwlNSVBJX1NFUV9CQUNLTElHSFRfT0ZGLAo+ICsJTUlQSV9TRVFf VEVBUl9PTiwKPiArCU1JUElfU0VRX1RFQVJfT0ZGLAo+ICsJTUlQSV9TRVFfUE9XRVJfT04sCj4g KwlNSVBJX1NFUV9QT1dFUl9PRkYsCj4gIAlNSVBJX1NFUV9NQVgKPiAgfTsKPiAgCj4gQEAgLTk1 Nyw2ICs5NjMsOCBAQCBlbnVtIG1pcGlfc2VxX2VsZW1lbnQgewo+ICAJTUlQSV9TRVFfRUxFTV9E RUxBWSwKPiAgCU1JUElfU0VRX0VMRU1fR1BJTywKPiAgCU1JUElfU0VRX0VMRU1fSTJDLAo+ICsJ TUlQSV9TRVFfRUxFTV9TUEksCj4gKwlNSVBJX1NFUV9FTEVNX1BNSUMsCj4gIAlNSVBJX1NFUV9F TEVNX1NUQVRVUywKCkFnYWluLCBNSVBJX1NFUV9FTEVNX1NUQVRVUyBpcyBub3Qgc3BlYy4KCj4g IAlNSVBJX1NFUV9FTEVNX01BWAo+ICB9Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2lfcGFuZWxfdmJ0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k c2lfcGFuZWxfdmJ0LmMKPiBpbmRleCA5OTg5ZjYxLi5jNmE2ZmExIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYwo+IEBAIC0zMTcsNiArMzE3LDggQEAg c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzZXFfbmFtZVtdID0gewo+ICAKPiAgc3RhdGljIHZv aWQgZ2VuZXJpY19leGVjX3NlcXVlbmNlKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgY29u c3QgdTggKmRhdGEpCj4gIHsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2kt PmJhc2UuYmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwo+ICAJZm5fbWlwaV9lbGVtX2V4ZWMgbWlwaV9lbGVtX2V4ZWM7Cj4g IAlpbnQgaW5kZXg7Cj4gIAo+IEBAIC0zMjcsNiArMzI5LDggQEAgc3RhdGljIHZvaWQgZ2VuZXJp Y19leGVjX3NlcXVlbmNlKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwgY29uc3QgdTggKmRh dGEpCj4gIAo+ICAJLyogZ28gdG8gdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIHNlcXVlbmNlICov Cj4gIAlkYXRhKys7Cj4gKwlpZiAoZGV2X3ByaXYtPnZidC5kc2kuc2VxX3ZlcnNpb24gPj0gMykK PiArCQlkYXRhID0gZGF0YSArIDQ7Cj4gIAo+ICAJLyogcGFyc2UgZWFjaCBieXRlIHRpbGwgd2Ug cmVhY2ggZW5kIG9mIHNlcXVlbmNlIGJ5dGUgLSAweDAwICovCj4gIAl3aGlsZSAoMSkgewo+IEBA IC0zNDAsNiArMzQ0LDkgQEAgc3RhdGljIHZvaWQgZ2VuZXJpY19leGVjX3NlcXVlbmNlKHN0cnVj dCBpbnRlbF9kc2kgKmludGVsX2RzaSwgY29uc3QgdTggKmRhdGEpCj4gIAkJLyogZ290byBlbGVt ZW50IHBheWxvYWQgKi8KPiAgCQlkYXRhKys7Cj4gIAo+ICsJCWlmIChkZXZfcHJpdi0+dmJ0LmRz aS5zZXFfdmVyc2lvbiA+PSAzKQo+ICsJCQlkYXRhKys7Cj4gKwo+ICAJCS8qIGV4ZWN1dGUgdGhl IGVsZW1lbnQgc3BlY2lmaWMgcm90aW5lcyAqLwo+ICAJCWRhdGEgPSBtaXBpX2VsZW1fZXhlYyhp bnRlbF9kc2ksIGRhdGEpOwo+ICAKPiAtLSAKPiAxLjcuOS41Cj4KPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QK PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkphbmkgTmlrdWxhLCBJbnRl bCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=