From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak M Subject: [MIPI SEQ PARSING v2 PATCH 05/11] drm/i915: Added support the v3 mipi sequence block Date: Thu, 10 Sep 2015 04:54:24 +0530 Message-ID: <1441841070-11532-6-git-send-email-m.deepak@intel.com> References: <1441841070-11532-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 3118E6E322 for ; Wed, 9 Sep 2015 16:20:51 -0700 (PDT) In-Reply-To: <1441841070-11532-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 CnYyOiByZWJhc2UKClNpZ25lZC1vZmYtYnk6IHZrb3JqYW5pIDx2aWthcy5rb3JqYW5pQGludGVs LmNvbT4KU2lnbmVkLW9mZi1ieTogRGVlcGFrIE0gPG0uZGVlcGFrQGludGVsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMgICAgICAgICAgfCAgMTE5ICsrKysrKysr KysrKysrKysrKysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuaCAg ICAgICAgICB8ICAgIDggKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92 YnQuYyB8ICAgIDcgKysKIDMgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDIwIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3Mu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYwppbmRleCAzNGExMDQyLi5jZWE2 NDFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jCkBAIC00NSw2ICs0NSw3IEBAIGZpbmRf c2VjdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaW50IGluZGV4ID0g MDsKIAl1MzIgdG90YWwsIGN1cnJlbnRfc2l6ZTsKIAl1OCBjdXJyZW50X2lkOworCXU4IHZlcnNp b247CiAKIAkvKiBza2lwIHRvIGZpcnN0IHNlY3Rpb24gKi8KIAlpbmRleCArPSBiZGItPmhlYWRl cl9zaXplOwpAQCAtNTYsNyArNTcsMTcgQEAgZmluZF9zZWN0aW9uKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIAkJY3VycmVudF9pZCA9ICooYmFzZSArIGluZGV4KTsKIAkJaW5k ZXgrKzsKIAotCQljdXJyZW50X3NpemUgPSAqKChjb25zdCB1MTYgKikoYmFzZSArIGluZGV4KSk7 CisJCWlmIChjdXJyZW50X2lkID09IEJEQl9NSVBJX1NFUVVFTkNFKSB7CisJCQl2ZXJzaW9uID0g KihiYXNlICsgaW5kZXggKyAyKTsKKwkJCWlmICh2ZXJzaW9uID49IDMpCisJCQkJY3VycmVudF9z aXplID0gKigoY29uc3QgdTMyICopKGJhc2UgKworCQkJCQkJCQlpbmRleCArIDMpKTsKKwkJCWVs c2UKKwkJCQljdXJyZW50X3NpemUgPSAqKChjb25zdCB1MTYgKikoYmFzZSArIGluZGV4KSk7CisJ CX0gZWxzZSB7CisJCQljdXJyZW50X3NpemUgPSAqKChjb25zdCB1MTYgKikoYmFzZSArIGluZGV4 KSk7CisJCX0KKwogCQlpbmRleCArPSAyOwogCiAJCWlmIChpbmRleCArIGN1cnJlbnRfc2l6ZSA+ IHRvdGFsKQpAQCAtNzQ1LDYgKzc1Niw1NSBAQCBzdGF0aWMgdTggKmdvdG9fbmV4dF9zZXF1ZW5j ZSh1OCAqZGF0YSwgaW50ICpzaXplKQogCXJldHVybiBkYXRhOwogfQogCitzdGF0aWMgdTggKmdv dG9fbmV4dF9zZXF1ZW5jZV92Myh1OCAqZGF0YSwgaW50ICpzaXplKQoreworCWludCB0bXAgPSAq c2l6ZTsKKwlpbnQgb3Bfc2l6ZTsKKworCWlmICgtLXRtcCA8IDApCisJCXJldHVybiBOVUxMOwor CisJLyogU2tpcCB0aGUgcGFuZWwgaWQgYW5kIHRoZSBzZXF1ZW5jZSBzaXplICovCisJZGF0YSA9 IGRhdGEgKyA1OworCXdoaWxlICgqZGF0YSAhPSAwKSB7CisJCXU4IGVsZW1lbnRfdHlwZSA9ICpk YXRhKys7CisKKwkJc3dpdGNoIChlbGVtZW50X3R5cGUpIHsKKwkJZGVmYXVsdDoKKwkJCURSTV9F UlJPUigiVW5rbm93biBlbGVtZW50IHR5cGUgJWRcbiIsIGVsZW1lbnRfdHlwZSk7CisJCWNhc2Ug TUlQSV9TRVFfRUxFTV9TRU5EX1BLVDoKKwkJY2FzZSBNSVBJX1NFUV9FTEVNX0RFTEFZOgorCQlj YXNlIE1JUElfU0VRX0VMRU1fR1BJTzoKKwkJY2FzZSBNSVBJX1NFUV9FTEVNX0kyQzoKKwkJY2Fz ZSBNSVBJX1NFUV9FTEVNX1NQSToKKwkJY2FzZSBNSVBJX1NFUV9FTEVNX1BNSUM6CisJCQkvKgor CQkJICogc2tpcCBieSB0aGlzIGVsZW1lbnQgcGF5bG9hZCBzaXplCisJCQkgKiBza2lwIGVsZW0g aWQsIGNvbW1hbmQgZmxhZyBhbmQgZGF0YSB0eXBlCisJCQkgKi8KKwkJCW9wX3NpemUgPSAqZGF0 YSsrOworCQkJdG1wID0gdG1wIC0gKG9wX3NpemUgKyAxKTsKKwkJCWlmICh0bXAgPCAwKQorCQkJ CXJldHVybiBOVUxMOworCisJCQkvKiBza2lwIGJ5IGxlbiAqLworCQkJZGF0YSArPSBvcF9zaXpl OworCQkJYnJlYWs7CisJCX0KKwl9CisKKwkvKiBnb3RvIG5leHQgc2VxdWVuY2Ugb3IgZW5kIG9m IGJsb2NrIGJ5dGUgKi8KKwlpZiAoLS10bXAgPCAwKQorCQlyZXR1cm4gTlVMTDsKKworCS8qIFNr aXAgdGhlIGVuZCBlbGVtZW50IG1hcmtlciAqLworCWRhdGErKzsKKworCS8qIHVwZGF0ZSBhbW91 bnQgb2YgZGF0YSBsZWZ0IGZvciB0aGUgc2VxdWVuY2UgYmxvY2sgdG8gYmUgcGFyc2VkICovCisJ KnNpemUgPSB0bXA7CisJcmV0dXJuIGRhdGE7Cit9CisKIHN0YXRpYyB2b2lkCiBwYXJzZV9taXBp KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3Qgc3RydWN0IGJkYl9oZWFk ZXIgKmJkYikKIHsKQEAgLTc1NCw3ICs4MTQsNyBAQCBwYXJzZV9taXBpKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3Qgc3RydWN0IGJkYl9oZWFkZXIgKmJkYikKIAljb25z dCBzdHJ1Y3QgbWlwaV9wcHNfZGF0YSAqcHBzOwogCXU4ICpkYXRhOwogCWNvbnN0IHU4ICpzZXFf ZGF0YTsKLQlpbnQgaSwgcGFuZWxfaWQsIHNlcV9zaXplOworCWludCBpLCBwYW5lbF9pZCwgcGFu ZWxfc2VxX3NpemU7CiAJdTE2IGJsb2NrX3NpemU7CiAKIAkvKiBwYXJzZSBNSVBJIGJsb2NrcyBv bmx5IGlmIExGUCB0eXBlIGlzIE1JUEkgKi8KQEAgLTgxMSwyOSArODcxLDQwIEBAIHBhcnNlX21p cGkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBjb25zdCBzdHJ1Y3QgYmRiX2hl YWRlciAqYmRiKQogCiAJRFJNX0RFQlVHX0RSSVZFUigiRm91bmQgTUlQSSBzZXF1ZW5jZSBibG9j a1xuIik7CiAKLQlibG9ja19zaXplID0gZ2V0X2Jsb2Nrc2l6ZShzZXF1ZW5jZSk7Ci0KIAkvKgog CSAqIHBhcnNlIHRoZSBzZXF1ZW5jZSBibG9jayBmb3IgaW5kaXZpZHVhbCBzZXF1ZW5jZXMKIAkg Ki8KIAlkZXZfcHJpdi0+dmJ0LmRzaS5zZXFfdmVyc2lvbiA9IHNlcXVlbmNlLT52ZXJzaW9uOwog CiAJc2VxX2RhdGEgPSAmc2VxdWVuY2UtPmRhdGFbMF07CisJaWYgKGRldl9wcml2LT52YnQuZHNp LnNlcV92ZXJzaW9uID49IDMpIHsKKwkJYmxvY2tfc2l6ZSA9ICooKHVuc2lnbmVkIGludCAqKXNl cV9kYXRhKTsKKwkJc2VxX2RhdGEgPSBzZXFfZGF0YSArIDQ7CisJfSBlbHNlCisJCWJsb2NrX3Np emUgPSBnZXRfYmxvY2tzaXplKHNlcXVlbmNlKTsKIAogCS8qCiAJICogc2VxdWVuY2UgYmxvY2sg aXMgdmFyaWFibGUgbGVuZ3RoIGFuZCBoZW5jZSB3ZSBuZWVkIHRvIHBhcnNlIGFuZAogCSAqIGdl dCB0aGUgc2VxdWVuY2UgZGF0YSBmb3Igc3BlY2lmaWMgcGFuZWwgaWQKIAkgKi8KIAlmb3IgKGkg PSAwOyBpIDwgTUFYX01JUElfQ09ORklHVVJBVElPTlM7IGkrKykgewotCQlwYW5lbF9pZCA9ICpz ZXFfZGF0YTsKLQkJc2VxX3NpemUgPSAqKCh1MTYgKikgKHNlcV9kYXRhICsgMSkpOworCQlwYW5l bF9pZCA9ICpzZXFfZGF0YSsrOworCQlpZiAoZGV2X3ByaXYtPnZidC5kc2kuc2VxX3ZlcnNpb24g Pj0gMykgeworCQkJcGFuZWxfc2VxX3NpemUgPSAqKCh1MzIgKilzZXFfZGF0YSk7CisJCQlzZXFf ZGF0YSArPSBzaXplb2YodTMyKTsKKwkJfSBlbHNlIHsKKwkJCXBhbmVsX3NlcV9zaXplID0gKigo dTE2ICopc2VxX2RhdGEpOworCQkJc2VxX2RhdGEgKz0gc2l6ZW9mKHUxNik7CisJCX0KKwogCQlp ZiAocGFuZWxfaWQgPT0gcGFuZWxfdHlwZSkKIAkJCWJyZWFrOwogCi0JCS8qIHNraXAgdGhlIHNl cXVlbmNlIGluY2x1ZGluZyBzZXEgaGVhZGVyIG9mIDMgYnl0ZXMgKi8KLQkJc2VxX2RhdGEgPSBz ZXFfZGF0YSArIDMgKyBzZXFfc2l6ZTsKKwkJc2VxX2RhdGEgKz0gcGFuZWxfc2VxX3NpemU7CisK IAkJaWYgKChzZXFfZGF0YSAtICZzZXF1ZW5jZS0+ZGF0YVswXSkgPiBibG9ja19zaXplKSB7Ci0J CQlEUk1fRVJST1IoIlNlcXVlbmNlIHN0YXJ0IGlzIGJleW9uZCBzZXF1ZW5jZSBibG9jayBzaXpl LCBjb3JydXB0ZWQgc2VxdWVuY2UgYmxvY2tcbiIpOworCQkJRFJNX0VSUk9SKCJTZXF1ZW5jZSBz dGFydCBpcyBiZXlvbmQgc2VxIGJsb2NrIHNpemVcbiIpOworCQkJRFJNX0VSUk9SKCJDb3JydXB0 ZWQgc2VxdWVuY2UgYmxvY2tcbiIpOwogCQkJcmV0dXJuOwogCQl9CiAJfQpAQCAtODQ1LDEzICs5 MTYsMTQgQEAgcGFyc2VfbWlwaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGNv bnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIpCiAKIAkvKiBjaGVjayBpZiBmb3VuZCBzZXF1ZW5j ZSBpcyBjb21wbGV0ZWx5IHdpdGhpbiB0aGUgc2VxdWVuY2UgYmxvY2sKIAkgKiBqdXN0IGJlaW5n IHBhcmFub2lkICovCi0JaWYgKHNlcV9zaXplID4gYmxvY2tfc2l6ZSkgeworCWlmIChwYW5lbF9z ZXFfc2l6ZSA+IGJsb2NrX3NpemUpIHsKIAkJRFJNX0VSUk9SKCJDb3JydXB0ZWQgc2VxdWVuY2Uv c2l6ZSwgYmFpbGluZyBvdXRcbiIpOwogCQlyZXR1cm47CiAJfQogCi0JLyogc2tpcCB0aGUgcGFu ZWwgaWQoMSBieXRlKSBhbmQgc2VxIHNpemUoMiBieXRlcykgKi8KLQlkZXZfcHJpdi0+dmJ0LmRz aS5kYXRhID0ga21lbWR1cChzZXFfZGF0YSArIDMsIHNlcV9zaXplLCBHRlBfS0VSTkVMKTsKKwor CWRldl9wcml2LT52YnQuZHNpLmRhdGEgPSBrbWVtZHVwKHNlcV9kYXRhLCBwYW5lbF9zZXFfc2l6 ZSwgR0ZQX0tFUk5FTCk7CisKIAlpZiAoIWRldl9wcml2LT52YnQuZHNpLmRhdGEpCiAJCXJldHVy bjsKIApAQCAtODYwLDI5ICs5MzIsMzYgQEAgcGFyc2VfbWlwaShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIpCiAJICogVGhlcmUg YXJlIG9ubHkgNSB0eXBlcyBvZiBzZXF1ZW5jZXMgYXMgb2Ygbm93CiAJICovCiAJZGF0YSA9IGRl dl9wcml2LT52YnQuZHNpLmRhdGE7Ci0JZGV2X3ByaXYtPnZidC5kc2kuc2l6ZSA9IHNlcV9zaXpl OworCWRldl9wcml2LT52YnQuZHNpLnNpemUgPSBwYW5lbF9zZXFfc2l6ZTsKIAogCS8qIHR3byBj b25zZWN1dGl2ZSAweDAwIGluZGljYXRlIGVuZCBvZiBhbGwgc2VxdWVuY2VzICovCi0Jd2hpbGUg KDEpIHsKKwl3aGlsZSAoKmRhdGEgIT0gMCkgewogCQlpbnQgc2VxX2lkID0gKmRhdGE7CisJCWlu dCBzZXFfc2l6ZTsKKwogCQlpZiAoTUlQSV9TRVFfTUFYID4gc2VxX2lkICYmIHNlcV9pZCA+IE1J UElfU0VRX1VOREVGSU5FRCkgewogCQkJZGV2X3ByaXYtPnZidC5kc2kuc2VxdWVuY2Vbc2VxX2lk XSA9IGRhdGE7CiAJCQlEUk1fREVCVUdfRFJJVkVSKCJGb3VuZCBtaXBpIHNlcXVlbmNlIC0gJWRc biIsIHNlcV9pZCk7CiAJCX0gZWxzZSB7Ci0JCQlEUk1fRVJST1IoInVuZGVmaW5lZCBzZXF1ZW5j ZVxuIik7Ci0JCQlnb3RvIGVycjsKKwkJCURSTV9FUlJPUigidW5kZWZpbmVkIHNlcXVlbmNlIC0g JWRcbiIsIHNlcV9pZCk7CisJCQlzZXFfc2l6ZSA9ICooZGF0YSArIDEpOworCQkJaWYgKGRldl9w cml2LT52YnQuZHNpLnNlcV92ZXJzaW9uID49IDMpIHsKKwkJCQlkYXRhID0gZGF0YSArIHNlcV9z aXplICsgMTsKKwkJCQljb250aW51ZTsKKwkJCX0gZWxzZQorCQkJCWdvdG8gZXJyOwogCQl9CiAK IAkJLyogcGFydGlhbCBwYXJzaW5nIHRvIHNraXAgZWxlbWVudHMgKi8KLQkJZGF0YSA9IGdvdG9f bmV4dF9zZXF1ZW5jZShkYXRhLCAmc2VxX3NpemUpOworCQlpZiAoZGV2X3ByaXYtPnZidC5kc2ku c2VxX3ZlcnNpb24gPj0gMykKKwkJCWRhdGEgPSBnb3RvX25leHRfc2VxdWVuY2VfdjMoZGF0YSwg JnBhbmVsX3NlcV9zaXplKTsKKwkJZWxzZQorCQkJZGF0YSA9IGdvdG9fbmV4dF9zZXF1ZW5jZShk YXRhLCAmcGFuZWxfc2VxX3NpemUpOwogCiAJCWlmIChkYXRhID09IE5VTEwpIHsKIAkJCURSTV9F UlJPUigiU2VxdWVuY2UgZWxlbWVudHMgZ29pbmcgYmV5b25kIGJsb2NrIGl0c2VsZi4gU2VxdWVu Y2UgYmxvY2sgcGFyc2luZyBmYWlsZWRcbiIpOwogCQkJZ290byBlcnI7CiAJCX0KLQotCQlpZiAo KmRhdGEgPT0gMCkKLQkJCWJyZWFrOyAvKiBlbmQgb2Ygc2VxdWVuY2UgcmVhY2hlZCAqLwogCX0K IAogCURSTV9ERUJVR19EUklWRVIoIk1JUEkgcmVsYXRlZCB2YnQgcGFyc2luZyBjb21wbGV0ZVxu Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmgKaW5kZXggMjFhN2YzZi4uN2E0YmE0MSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuaApAQCAtOTQ4LDYgKzk0OCwxMiBAQCBlbnVtIG1pcGlf c2VxIHsKIAlNSVBJX1NFUV9ESVNQTEFZX09OLAogCU1JUElfU0VRX0RJU1BMQVlfT0ZGLAogCU1J UElfU0VRX0RFQVNTRVJUX1JFU0VULAorCU1JUElfU0VRX0JBQ0tMSUdIVF9PTiwKKwlNSVBJX1NF UV9CQUNLTElHSFRfT0ZGLAorCU1JUElfU0VRX1RFQVJfT04sCisJTUlQSV9TRVFfVEVBUl9PRkYs CisJTUlQSV9TRVFfUE9XRVJfT04sCisJTUlQSV9TRVFfUE9XRVJfT0ZGLAogCU1JUElfU0VRX01B WAogfTsKIApAQCAtOTU3LDYgKzk2Myw4IEBAIGVudW0gbWlwaV9zZXFfZWxlbWVudCB7CiAJTUlQ SV9TRVFfRUxFTV9ERUxBWSwKIAlNSVBJX1NFUV9FTEVNX0dQSU8sCiAJTUlQSV9TRVFfRUxFTV9J MkMsCisJTUlQSV9TRVFfRUxFTV9TUEksCisJTUlQSV9TRVFfRUxFTV9QTUlDLAogCU1JUElfU0VR X0VMRU1fU1RBVFVTLAogCU1JUElfU0VRX0VMRU1fTUFYCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BhbmVsX3ZidC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHNpX3BhbmVsX3ZidC5jCmluZGV4IDk5ODlmNjEuLmM2YTZmYTEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGFuZWxfdmJ0LmMKQEAgLTMxNyw2ICszMTcsOCBA QCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNlcV9uYW1lW10gPSB7CiAKIHN0YXRpYyB2b2lk IGdlbmVyaWNfZXhlY19zZXF1ZW5jZShzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksIGNvbnN0 IHU4ICpkYXRhKQogeworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2Uu YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKIAlmbl9taXBpX2VsZW1fZXhlYyBtaXBpX2VsZW1fZXhlYzsKIAlpbnQgaW5kZXg7 CiAKQEAgLTMyNyw2ICszMjksOCBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX2V4ZWNfc2VxdWVuY2Uo c3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBjb25zdCB1OCAqZGF0YSkKIAogCS8qIGdvIHRv IHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBzZXF1ZW5jZSAqLwogCWRhdGErKzsKKwlpZiAoZGV2 X3ByaXYtPnZidC5kc2kuc2VxX3ZlcnNpb24gPj0gMykKKwkJZGF0YSA9IGRhdGEgKyA0OwogCiAJ LyogcGFyc2UgZWFjaCBieXRlIHRpbGwgd2UgcmVhY2ggZW5kIG9mIHNlcXVlbmNlIGJ5dGUgLSAw eDAwICovCiAJd2hpbGUgKDEpIHsKQEAgLTM0MCw2ICszNDQsOSBAQCBzdGF0aWMgdm9pZCBnZW5l cmljX2V4ZWNfc2VxdWVuY2Uoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBjb25zdCB1OCAq ZGF0YSkKIAkJLyogZ290byBlbGVtZW50IHBheWxvYWQgKi8KIAkJZGF0YSsrOwogCisJCWlmIChk ZXZfcHJpdi0+dmJ0LmRzaS5zZXFfdmVyc2lvbiA+PSAzKQorCQkJZGF0YSsrOworCiAJCS8qIGV4 ZWN1dGUgdGhlIGVsZW1lbnQgc3BlY2lmaWMgcm90aW5lcyAqLwogCQlkYXRhID0gbWlwaV9lbGVt X2V4ZWMoaW50ZWxfZHNpLCBkYXRhKTsKIAotLSAKMS43LjkuNQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK