From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak M Subject: [MIPI SEQ PARSING v1 PATCH 4/9] drm/i915: Added support the v3 mipi sequence block Date: Tue, 28 Jul 2015 15:31:05 +0530 Message-ID: <1438077670-12953-5-git-send-email-m.deepak@intel.com> References: <1438077670-12953-1-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 976AB7206E for ; Tue, 28 Jul 2015 02:56:42 -0700 (PDT) In-Reply-To: <1438077670-12953-1-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 RnJvbTogdmtvcmphbmkgPHZpa2FzLmtvcmphbmlAaW50ZWwuY29tPgoKVGhlIEJsb2NrIDUzIG9m IHRoZSBWQlQsIHdoaWNoIGlzIHRoZSBNSVBJIHNlcXVlbmNlIGJsb2NrCmhhcyB1bmRlcmdvbmUg YSBkZXNpZ24gY2hhbmdlIGJlY2F1c2Ugb2Ygd2hpY2ggdGhlIHBhcnNpbmcKbG9naWMgaGFzIHRv IGJlIGNoYW5nZWQuCgpUaGUgY3VycmVudCBjb2RlIHdpbGwgaGFuZGxlIHRoZSBwYXJzaW5nIG9m IHYzIGFuZCBvdGhlcgpsb3dlciB2ZXJzaW9ucyBvZiB0aGUgTUlQSSBzZXF1ZW5jZSBibG9jay4K ClNpZ25lZC1vZmYtYnk6IHZrb3JqYW5pIDx2aWthcy5rb3JqYW5pQGludGVsLmNvbT4KU2lnbmVk LW9mZi1ieTogRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9iaW9zLmMgICAgICAgICAgfCAgMTE5ICsrKysrKysrKysrKysrKysrKysr KysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuaCAgICAgICAgICB8ICAg IDggKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYyB8ICAgIDcg KysKIDMgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYwppbmRleCA1ZTBmZjIyLi44NThiZDAyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYmlvcy5jCkBAIC00NSw2ICs0NSw3IEBAIGZpbmRfc2VjdGlvbihzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaW50IGluZGV4ID0gMDsKIAl1MzIgdG90 YWwsIGN1cnJlbnRfc2l6ZTsKIAl1OCBjdXJyZW50X2lkOworCXU4IHZlcnNpb247CiAKIAkvKiBz a2lwIHRvIGZpcnN0IHNlY3Rpb24gKi8KIAlpbmRleCArPSBiZGItPmhlYWRlcl9zaXplOwpAQCAt NTksNyArNjAsMTcgQEAgZmluZF9zZWN0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAkJY3VycmVudF9pZCA9ICooYmFzZSArIGluZGV4KTsKIAkJaW5kZXgrKzsKIAotCQlj dXJyZW50X3NpemUgPSAqKChjb25zdCB1MTYgKikoYmFzZSArIGluZGV4KSk7CisJCWlmIChjdXJy ZW50X2lkID09IEJEQl9NSVBJX1NFUVVFTkNFKSB7CisJCQl2ZXJzaW9uID0gKihiYXNlICsgaW5k ZXggKyAyKTsKKwkJCWlmICh2ZXJzaW9uID49IDMpCisJCQkJY3VycmVudF9zaXplID0gKigoY29u c3QgdTMyICopKGJhc2UgKworCQkJCQkJCQlpbmRleCArIDMpKTsKKwkJCWVsc2UKKwkJCQljdXJy ZW50X3NpemUgPSAqKChjb25zdCB1MTYgKikoYmFzZSArIGluZGV4KSk7CisJCX0gZWxzZSB7CisJ CQljdXJyZW50X3NpemUgPSAqKChjb25zdCB1MTYgKikoYmFzZSArIGluZGV4KSk7CisJCX0KKwog CQlpbmRleCArPSAyOwogCiAJCWlmIChpbmRleCArIGN1cnJlbnRfc2l6ZSA+IHRvdGFsKQpAQCAt NzQ4LDYgKzc1OSw1NSBAQCBzdGF0aWMgdTggKmdvdG9fbmV4dF9zZXF1ZW5jZSh1OCAqZGF0YSwg aW50ICpzaXplKQogCXJldHVybiBkYXRhOwogfQogCitzdGF0aWMgdTggKmdvdG9fbmV4dF9zZXF1 ZW5jZV92Myh1OCAqZGF0YSwgaW50ICpzaXplKQoreworCWludCB0bXAgPSAqc2l6ZTsKKwlpbnQg b3Bfc2l6ZTsKKworCWlmICgtLXRtcCA8IDApCisJCXJldHVybiBOVUxMOworCisJLyogU2tpcCB0 aGUgcGFuZWwgaWQgYW5kIHRoZSBzZXF1ZW5jZSBzaXplICovCisJZGF0YSA9IGRhdGEgKyA1Owor CXdoaWxlICgqZGF0YSAhPSAwKSB7CisJCXU4IGVsZW1lbnRfdHlwZSA9ICpkYXRhKys7CisKKwkJ c3dpdGNoIChlbGVtZW50X3R5cGUpIHsKKwkJZGVmYXVsdDoKKwkJCURSTV9FUlJPUigiVW5rbm93 biBlbGVtZW50IHR5cGUgJWRcbiIsIGVsZW1lbnRfdHlwZSk7CisJCWNhc2UgTUlQSV9TRVFfRUxF TV9TRU5EX1BLVDoKKwkJY2FzZSBNSVBJX1NFUV9FTEVNX0RFTEFZOgorCQljYXNlIE1JUElfU0VR X0VMRU1fR1BJTzoKKwkJY2FzZSBNSVBJX1NFUV9FTEVNX0kyQzoKKwkJY2FzZSBNSVBJX1NFUV9F TEVNX1NQSToKKwkJY2FzZSBNSVBJX1NFUV9FTEVNX1BNSUM6CisJCQkvKgorCQkJICogc2tpcCBi eSB0aGlzIGVsZW1lbnQgcGF5bG9hZCBzaXplCisJCQkgKiBza2lwIGVsZW0gaWQsIGNvbW1hbmQg ZmxhZyBhbmQgZGF0YSB0eXBlCisJCQkgKi8KKwkJCW9wX3NpemUgPSAqZGF0YSsrOworCQkJdG1w ID0gdG1wIC0gKG9wX3NpemUgKyAxKTsKKwkJCWlmICh0bXAgPCAwKQorCQkJCXJldHVybiBOVUxM OworCisJCQkvKiBza2lwIGJ5IGxlbiAqLworCQkJZGF0YSArPSBvcF9zaXplOworCQkJYnJlYWs7 CisJCX0KKwl9CisKKwkvKiBnb3RvIG5leHQgc2VxdWVuY2Ugb3IgZW5kIG9mIGJsb2NrIGJ5dGUg Ki8KKwlpZiAoLS10bXAgPCAwKQorCQlyZXR1cm4gTlVMTDsKKworCS8qIFNraXAgdGhlIGVuZCBl bGVtZW50IG1hcmtlciAqLworCWRhdGErKzsKKworCS8qIHVwZGF0ZSBhbW91bnQgb2YgZGF0YSBs ZWZ0IGZvciB0aGUgc2VxdWVuY2UgYmxvY2sgdG8gYmUgcGFyc2VkICovCisJKnNpemUgPSB0bXA7 CisJcmV0dXJuIGRhdGE7Cit9CisKIHN0YXRpYyB2b2lkCiBwYXJzZV9taXBpKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3Qgc3RydWN0IGJkYl9oZWFkZXIgKmJkYikKIHsK QEAgLTc1Nyw3ICs4MTcsNyBAQCBwYXJzZV9taXBpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgY29uc3Qgc3RydWN0IGJkYl9oZWFkZXIgKmJkYikKIAljb25zdCBzdHJ1Y3QgbWlw aV9wcHNfZGF0YSAqcHBzOwogCXU4ICpkYXRhOwogCWNvbnN0IHU4ICpzZXFfZGF0YTsKLQlpbnQg aSwgcGFuZWxfaWQsIHNlcV9zaXplOworCWludCBpLCBwYW5lbF9pZCwgcGFuZWxfc2VxX3NpemU7 CiAJdTE2IGJsb2NrX3NpemU7CiAKIAkvKiBwYXJzZSBNSVBJIGJsb2NrcyBvbmx5IGlmIExGUCB0 eXBlIGlzIE1JUEkgKi8KQEAgLTgxNCwyOSArODc0LDQwIEBAIHBhcnNlX21pcGkoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiKQog CiAJRFJNX0RFQlVHX0RSSVZFUigiRm91bmQgTUlQSSBzZXF1ZW5jZSBibG9ja1xuIik7CiAKLQli bG9ja19zaXplID0gZ2V0X2Jsb2Nrc2l6ZShzZXF1ZW5jZSk7Ci0KIAkvKgogCSAqIHBhcnNlIHRo ZSBzZXF1ZW5jZSBibG9jayBmb3IgaW5kaXZpZHVhbCBzZXF1ZW5jZXMKIAkgKi8KIAlkZXZfcHJp di0+dmJ0LmRzaS5zZXFfdmVyc2lvbiA9IHNlcXVlbmNlLT52ZXJzaW9uOwogCiAJc2VxX2RhdGEg PSAmc2VxdWVuY2UtPmRhdGFbMF07CisJaWYgKGRldl9wcml2LT52YnQuZHNpLnNlcV92ZXJzaW9u ID49IDMpIHsKKwkJYmxvY2tfc2l6ZSA9ICooKHVuc2lnbmVkIGludCAqKXNlcV9kYXRhKTsKKwkJ c2VxX2RhdGEgPSBzZXFfZGF0YSArIDQ7CisJfSBlbHNlCisJCWJsb2NrX3NpemUgPSBnZXRfYmxv Y2tzaXplKHNlcXVlbmNlKTsKIAogCS8qCiAJICogc2VxdWVuY2UgYmxvY2sgaXMgdmFyaWFibGUg bGVuZ3RoIGFuZCBoZW5jZSB3ZSBuZWVkIHRvIHBhcnNlIGFuZAogCSAqIGdldCB0aGUgc2VxdWVu Y2UgZGF0YSBmb3Igc3BlY2lmaWMgcGFuZWwgaWQKIAkgKi8KIAlmb3IgKGkgPSAwOyBpIDwgTUFY X01JUElfQ09ORklHVVJBVElPTlM7IGkrKykgewotCQlwYW5lbF9pZCA9ICpzZXFfZGF0YTsKLQkJ c2VxX3NpemUgPSAqKCh1MTYgKikgKHNlcV9kYXRhICsgMSkpOworCQlwYW5lbF9pZCA9ICpzZXFf ZGF0YSsrOworCQlpZiAoZGV2X3ByaXYtPnZidC5kc2kuc2VxX3ZlcnNpb24gPj0gMykgeworCQkJ cGFuZWxfc2VxX3NpemUgPSAqKCh1MzIgKilzZXFfZGF0YSk7CisJCQlzZXFfZGF0YSArPSBzaXpl b2YodTMyKTsKKwkJfSBlbHNlIHsKKwkJCXBhbmVsX3NlcV9zaXplID0gKigodTE2ICopc2VxX2Rh dGEpOworCQkJc2VxX2RhdGEgKz0gc2l6ZW9mKHUxNik7CisJCX0KKwogCQlpZiAocGFuZWxfaWQg PT0gcGFuZWxfdHlwZSkKIAkJCWJyZWFrOwogCi0JCS8qIHNraXAgdGhlIHNlcXVlbmNlIGluY2x1 ZGluZyBzZXEgaGVhZGVyIG9mIDMgYnl0ZXMgKi8KLQkJc2VxX2RhdGEgPSBzZXFfZGF0YSArIDMg KyBzZXFfc2l6ZTsKKwkJc2VxX2RhdGEgKz0gcGFuZWxfc2VxX3NpemU7CisKIAkJaWYgKChzZXFf ZGF0YSAtICZzZXF1ZW5jZS0+ZGF0YVswXSkgPiBibG9ja19zaXplKSB7Ci0JCQlEUk1fRVJST1Io IlNlcXVlbmNlIHN0YXJ0IGlzIGJleW9uZCBzZXF1ZW5jZSBibG9jayBzaXplLCBjb3JydXB0ZWQg c2VxdWVuY2UgYmxvY2tcbiIpOworCQkJRFJNX0VSUk9SKCJTZXF1ZW5jZSBzdGFydCBpcyBiZXlv bmQgc2VxIGJsb2NrIHNpemVcbiIpOworCQkJRFJNX0VSUk9SKCJDb3JydXB0ZWQgc2VxdWVuY2Ug YmxvY2tcbiIpOwogCQkJcmV0dXJuOwogCQl9CiAJfQpAQCAtODQ4LDEzICs5MTksMTQgQEAgcGFy c2VfbWlwaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGNvbnN0IHN0cnVjdCBi ZGJfaGVhZGVyICpiZGIpCiAKIAkvKiBjaGVjayBpZiBmb3VuZCBzZXF1ZW5jZSBpcyBjb21wbGV0 ZWx5IHdpdGhpbiB0aGUgc2VxdWVuY2UgYmxvY2sKIAkgKiBqdXN0IGJlaW5nIHBhcmFub2lkICov Ci0JaWYgKHNlcV9zaXplID4gYmxvY2tfc2l6ZSkgeworCWlmIChwYW5lbF9zZXFfc2l6ZSA+IGJs b2NrX3NpemUpIHsKIAkJRFJNX0VSUk9SKCJDb3JydXB0ZWQgc2VxdWVuY2Uvc2l6ZSwgYmFpbGlu ZyBvdXRcbiIpOwogCQlyZXR1cm47CiAJfQogCi0JLyogc2tpcCB0aGUgcGFuZWwgaWQoMSBieXRl KSBhbmQgc2VxIHNpemUoMiBieXRlcykgKi8KLQlkZXZfcHJpdi0+dmJ0LmRzaS5kYXRhID0ga21l bWR1cChzZXFfZGF0YSArIDMsIHNlcV9zaXplLCBHRlBfS0VSTkVMKTsKKworCWRldl9wcml2LT52 YnQuZHNpLmRhdGEgPSBrbWVtZHVwKHNlcV9kYXRhLCBwYW5lbF9zZXFfc2l6ZSwgR0ZQX0tFUk5F TCk7CisKIAlpZiAoIWRldl9wcml2LT52YnQuZHNpLmRhdGEpCiAJCXJldHVybjsKIApAQCAtODYz LDI5ICs5MzUsMzYgQEAgcGFyc2VfbWlwaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIpCiAJICogVGhlcmUgYXJlIG9ubHkgNSB0 eXBlcyBvZiBzZXF1ZW5jZXMgYXMgb2Ygbm93CiAJICovCiAJZGF0YSA9IGRldl9wcml2LT52YnQu ZHNpLmRhdGE7Ci0JZGV2X3ByaXYtPnZidC5kc2kuc2l6ZSA9IHNlcV9zaXplOworCWRldl9wcml2 LT52YnQuZHNpLnNpemUgPSBwYW5lbF9zZXFfc2l6ZTsKIAogCS8qIHR3byBjb25zZWN1dGl2ZSAw eDAwIGluZGljYXRlIGVuZCBvZiBhbGwgc2VxdWVuY2VzICovCi0Jd2hpbGUgKDEpIHsKKwl3aGls ZSAoKmRhdGEgIT0gMCkgewogCQlpbnQgc2VxX2lkID0gKmRhdGE7CisJCWludCBzZXFfc2l6ZTsK KwogCQlpZiAoTUlQSV9TRVFfTUFYID4gc2VxX2lkICYmIHNlcV9pZCA+IE1JUElfU0VRX1VOREVG SU5FRCkgewogCQkJZGV2X3ByaXYtPnZidC5kc2kuc2VxdWVuY2Vbc2VxX2lkXSA9IGRhdGE7CiAJ CQlEUk1fREVCVUdfRFJJVkVSKCJGb3VuZCBtaXBpIHNlcXVlbmNlIC0gJWRcbiIsIHNlcV9pZCk7 CiAJCX0gZWxzZSB7Ci0JCQlEUk1fRVJST1IoInVuZGVmaW5lZCBzZXF1ZW5jZVxuIik7Ci0JCQln b3RvIGVycjsKKwkJCURSTV9FUlJPUigidW5kZWZpbmVkIHNlcXVlbmNlIC0gJWRcbiIsIHNlcV9p ZCk7CisJCQlzZXFfc2l6ZSA9ICooZGF0YSArIDEpOworCQkJaWYgKGRldl9wcml2LT52YnQuZHNp LnNlcV92ZXJzaW9uID49IDMpIHsKKwkJCQlkYXRhID0gZGF0YSArIHNlcV9zaXplICsgMTsKKwkJ CQljb250aW51ZTsKKwkJCX0gZWxzZQorCQkJCWdvdG8gZXJyOwogCQl9CiAKIAkJLyogcGFydGlh bCBwYXJzaW5nIHRvIHNraXAgZWxlbWVudHMgKi8KLQkJZGF0YSA9IGdvdG9fbmV4dF9zZXF1ZW5j ZShkYXRhLCAmc2VxX3NpemUpOworCQlpZiAoZGV2X3ByaXYtPnZidC5kc2kuc2VxX3ZlcnNpb24g Pj0gMykKKwkJCWRhdGEgPSBnb3RvX25leHRfc2VxdWVuY2VfdjMoZGF0YSwgJnBhbmVsX3NlcV9z aXplKTsKKwkJZWxzZQorCQkJZGF0YSA9IGdvdG9fbmV4dF9zZXF1ZW5jZShkYXRhLCAmcGFuZWxf c2VxX3NpemUpOwogCiAJCWlmIChkYXRhID09IE5VTEwpIHsKIAkJCURSTV9FUlJPUigiU2VxdWVu Y2UgZWxlbWVudHMgZ29pbmcgYmV5b25kIGJsb2NrIGl0c2VsZi4gU2VxdWVuY2UgYmxvY2sgcGFy c2luZyBmYWlsZWRcbiIpOwogCQkJZ290byBlcnI7CiAJCX0KLQotCQlpZiAoKmRhdGEgPT0gMCkK LQkJCWJyZWFrOyAvKiBlbmQgb2Ygc2VxdWVuY2UgcmVhY2hlZCAqLwogCX0KIAogCURSTV9ERUJV R19EUklWRVIoIk1JUEkgcmVsYXRlZCB2YnQgcGFyc2luZyBjb21wbGV0ZVxuIik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9iaW9zLmgKaW5kZXggMTcwM2E4My4uOTRmMWYzYyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Jpb3MuaApAQCAtOTM0LDYgKzkzNCwxMiBAQCBlbnVtIG1pcGlfc2VxIHsKIAlNSVBJ X1NFUV9ESVNQTEFZX09OLAogCU1JUElfU0VRX0RJU1BMQVlfT0ZGLAogCU1JUElfU0VRX0RFQVNT RVJUX1JFU0VULAorCU1JUElfU0VRX0JBQ0tMSUdIVF9PTiwKKwlNSVBJX1NFUV9CQUNLTElHSFRf T0ZGLAorCU1JUElfU0VRX1RFQVJfT04sCisJTUlQSV9TRVFfVEVBUl9PRkYsCisJTUlQSV9TRVFf UE9XRVJfT04sCisJTUlQSV9TRVFfUE9XRVJfT0ZGLAogCU1JUElfU0VRX01BWAogfTsKIApAQCAt OTQzLDYgKzk0OSw4IEBAIGVudW0gbWlwaV9zZXFfZWxlbWVudCB7CiAJTUlQSV9TRVFfRUxFTV9E RUxBWSwKIAlNSVBJX1NFUV9FTEVNX0dQSU8sCiAJTUlQSV9TRVFfRUxFTV9JMkMsCisJTUlQSV9T RVFfRUxFTV9TUEksCisJTUlQSV9TRVFfRUxFTV9QTUlDLAogCU1JUElfU0VRX0VMRU1fU1RBVFVT LAogCU1JUElfU0VRX0VMRU1fTUFYCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHNpX3BhbmVsX3ZidC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNp X3BhbmVsX3ZidC5jCmluZGV4IGUwNjFhNDIuLjdlMGJhNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2lfcGFuZWxfdmJ0LmMKQEAgLTMxNSw2ICszMTUsOCBAQCBzdGF0aWMgY29u c3QgY2hhciAqIGNvbnN0IHNlcV9uYW1lW10gPSB7CiAKIHN0YXRpYyB2b2lkIGdlbmVyaWNfZXhl Y19zZXF1ZW5jZShzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksIGNvbnN0IHU4ICpkYXRhKQog eworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2UuYmFzZS5kZXY7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlm bl9taXBpX2VsZW1fZXhlYyBtaXBpX2VsZW1fZXhlYzsKIAlpbnQgaW5kZXg7CiAKQEAgLTMyNSw2 ICszMjcsOCBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX2V4ZWNfc2VxdWVuY2Uoc3RydWN0IGludGVs X2RzaSAqaW50ZWxfZHNpLCBjb25zdCB1OCAqZGF0YSkKIAogCS8qIGdvIHRvIHRoZSBmaXJzdCBl bGVtZW50IG9mIHRoZSBzZXF1ZW5jZSAqLwogCWRhdGErKzsKKwlpZiAoZGV2X3ByaXYtPnZidC5k c2kuc2VxX3ZlcnNpb24gPj0gMykKKwkJZGF0YSA9IGRhdGEgKyA0OwogCiAJLyogcGFyc2UgZWFj aCBieXRlIHRpbGwgd2UgcmVhY2ggZW5kIG9mIHNlcXVlbmNlIGJ5dGUgLSAweDAwICovCiAJd2hp bGUgKDEpIHsKQEAgLTMzOCw2ICszNDIsOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX2V4ZWNfc2Vx dWVuY2Uoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBjb25zdCB1OCAqZGF0YSkKIAkJLyog Z290byBlbGVtZW50IHBheWxvYWQgKi8KIAkJZGF0YSsrOwogCisJCWlmIChkZXZfcHJpdi0+dmJ0 LmRzaS5zZXFfdmVyc2lvbiA+PSAzKQorCQkJZGF0YSsrOworCiAJCS8qIGV4ZWN1dGUgdGhlIGVs ZW1lbnQgc3BlY2lmaWMgcm90aW5lcyAqLwogCQlkYXRhID0gbWlwaV9lbGVtX2V4ZWMoaW50ZWxf ZHNpLCBkYXRhKTsKIAotLSAKMS43LjkuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK