From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Pietrasiewicz Subject: [PATCHv3/RFC 4/4] drm/rockchip: Add support for afbc Date: Thu, 21 Nov 2019 18:22:47 +0100 Message-ID: <20191121172247.31150-5-andrzej.p@collabora.com> References: <20191119083429.GA2881@jamwan02-TSP300> <20191121172247.31150-1-andrzej.p@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) by gabe.freedesktop.org (Postfix) with ESMTPS id 06F626F4B7 for ; Thu, 21 Nov 2019 17:23:00 +0000 (UTC) In-Reply-To: <20191121172247.31150-1-andrzej.p@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Ayan Halder , kernel@collabora.com, David Airlie , Liviu Dudau , James Wang , Mihail Atanassov , Sean Paul , Mark Yao List-Id: dri-devel@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGFmYmMgaGFuZGxpbmcuIGFmYmMgaXMgYSBjb21w cmVzc2VkIGZvcm1hdAp3aGljaCByZWR1Y2VzIHRoZSBuZWNlc3NhcnkgbWVtb3J5IGJhbmR3aWR0 aC4KCkNvLWRldmVsb3BlZC1ieTogTWFyayBZYW8gPG1hcmsueWFvQHJvY2stY2hpcHMuY29tPgpT aWduZWQtb2ZmLWJ5OiBNYXJrIFlhbyA8bWFyay55YW9Acm9jay1jaGlwcy5jb20+ClNpZ25lZC1v ZmYtYnk6IEFuZHJ6ZWogUGlldHJhc2lld2ljeiA8YW5kcnplai5wQGNvbGxhYm9yYS5jb20+Ci0t LQogZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9mYi5jICB8ICAyOSArKysr CiBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jIHwgMTQyICsrKysr KysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3Zv cC5oIHwgIDEyICsrCiBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5j IHwgIDg0ICsrKysrKysrKysrLQogNCBmaWxlcyBjaGFuZ2VkLCAyNjMgaW5zZXJ0aW9ucygrKSwg NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9j a2NoaXBfZHJtX2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Zi LmMKaW5kZXggY2EwMTIzNGMwMzdjLi43ZWFhM2ZkYzAzYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvcm9ja2NoaXBfZHJtX2ZiLmMKQEAgLTgsNiArOCw3IEBACiAKICNpbmNsdWRlIDxk cm0vZHJtLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KKyNpbmNsdWRlIDxkcm0vZHJt X2FmYmMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2RhbWFnZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxk cm0vZHJtX2ZiX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CkBAIC0xOCw2 ICsxOSw4IEBACiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX2ZiLmgiCiAjaW5jbHVkZSAicm9ja2No aXBfZHJtX2dlbS5oIgogCisjZGVmaW5lIFJPQ0tDSElQX01BWF9BRkJDX1dJRFRICTI1NjAKKwog c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3Mgcm9ja2NoaXBfZHJtX2Zi X2Z1bmNzID0gewogCS5kZXN0cm95ICAgICAgID0gZHJtX2dlbV9mYl9kZXN0cm95LAogCS5jcmVh dGVfaGFuZGxlID0gZHJtX2dlbV9mYl9jcmVhdGVfaGFuZGxlLApAQCAtMzIsNiArMzUsMzIgQEAg cm9ja2NoaXBfZmJfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRy bV9tb2RlX2ZiX2NtZDIgKm1vZGVfY20KIAlpbnQgcmV0OwogCWludCBpOwogCisJaWYgKGRybV9p c19hZmJjKG1vZGVfY21kLT5tb2RpZmllclswXSkpIHsKKwkJc3RydWN0IGRybV9hZmJjIGFmYmM7 CisKKwkJZHJtX2FmYmNfZ2V0X3BhcmFtZXRlcnMobW9kZV9jbWQsICZhZmJjKTsKKworCQlpZiAo YWZiYy5vZmZzZXQpIHsKKwkJCURSTV9XQVJOKCJBRkJDIHBsYW5lIG9mZnNldCBtdXN0IGJlIHpl cm8hXG4iKTsKKworCQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisJCX0KKworCQlpZiAoYWZi Yy50aWxlX3cgIT0gMTYgfHwgYWZiYy50aWxlX2ggIT0gMTYpIHsKKwkJCURSTV9XQVJOKCJVbnN1 cHBvcnRlZCBhZmJjIHRpbGUgdy9oIFslZC8lZF1cbiIsCisJCQkJIGFmYmMudGlsZV93LCBhZmJj LnRpbGVfaCk7CisKKwkJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOworCQl9CisKKwkJaWYgKGFm YmMud2lkdGggPiBST0NLQ0hJUF9NQVhfQUZCQ19XSURUSCkgeworCQkJRFJNX1dBUk4oIlVuc3Vw cG9ydGVkIHdpZHRoICVkPiVkXG4iLAorCQkJCSBhZmJjLndpZHRoLCBST0NLQ0hJUF9NQVhfQUZC Q19XSURUSCk7CisKKwkJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOworCQl9CisJfQorCiAJZmIg PSBremFsbG9jKHNpemVvZigqZmIpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWZiKQogCQlyZXR1cm4g RVJSX1BUUigtRU5PTUVNKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9kcm1fdm9wLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJt X3ZvcC5jCmluZGV4IGQwNGIzNDkyYmRhYy4uMzFmNzJiYTYxMzYxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKQEAgLTkxLDkgKzkxLDIyIEBACiAjZGVm aW5lIFZPUF9XSU5fVE9fSU5ERVgodm9wX3dpbikgXAogCSgodm9wX3dpbikgLSAodm9wX3dpbikt PnZvcC0+d2luKQogCisjZGVmaW5lIFZPUF9BRkJDX1NFVCh2b3AsIG5hbWUsIHYpIFwKKwlkbyB7 IFwKKwkJaWYgKCh2b3ApLT5kYXRhLT5hZmJjKSBcCisJCQl2b3BfcmVnX3NldCgodm9wKSwgJih2 b3ApLT5kYXRhLT5hZmJjLT5uYW1lLCBcCisJCQkJMCwgfjAsIHYsICNuYW1lKTsgXAorCX0gd2hp bGUgKDApCisKICNkZWZpbmUgdG9fdm9wKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qgdm9wLCBj cnRjKQogI2RlZmluZSB0b192b3Bfd2luKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qgdm9wX3dp biwgYmFzZSkKIAorI2RlZmluZSBBRkJDX0ZNVF9SR0I1NjUJCTB4MAorI2RlZmluZSBBRkJDX0ZN VF9VOFU4VThVOAkweDUKKyNkZWZpbmUgQUZCQ19GTVRfVThVOFU4CQkweDQKKworI2RlZmluZSBB RkJDX1RJTEVfMTZ4MTYJCUJJVCg0KQorCiAvKgogICogVGhlIGNvZWZmaWNpZW50cyBvZiB0aGUg Zm9sbG93aW5nIG1hdHJpeCBhcmUgYWxsIGZpeGVkIHBvaW50cy4KICAqIFRoZSBmb3JtYXQgaXMg UzIuMTAgZm9yIHRoZSAzeDMgcGFydCBvZiB0aGUgbWF0cml4LCBhbmQgUzkuMTIgZm9yIHRoZSBv ZmZzZXRzLgpAQCAtMTY2LDYgKzE3OSw3IEBAIHN0cnVjdCB2b3AgewogCS8qIG9wdGlvbmFsIGlu dGVybmFsIHJnYiBlbmNvZGVyICovCiAJc3RydWN0IHJvY2tjaGlwX3JnYiAqcmdiOwogCisJc3Ry dWN0IHZvcF93aW4gKmFmYmNfd2luOwogCXN0cnVjdCB2b3Bfd2luIHdpbltdOwogfTsKIApAQCAt Mjc0LDYgKzI4OCwyOSBAQCBzdGF0aWMgZW51bSB2b3BfZGF0YV9mb3JtYXQgdm9wX2NvbnZlcnRf Zm9ybWF0KHVpbnQzMl90IGZvcm1hdCkKIAl9CiB9CiAKK3N0YXRpYyBpbnQgdm9wX2NvbnZlcnRf YWZiY19mb3JtYXQodWludDMyX3QgZm9ybWF0KQoreworCXN3aXRjaCAoZm9ybWF0KSB7CisJY2Fz ZSBEUk1fRk9STUFUX1hSR0I4ODg4OgorCWNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4ODoKKwljYXNl IERSTV9GT1JNQVRfWEJHUjg4ODg6CisJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4OgorCQlyZXR1 cm4gQUZCQ19GTVRfVThVOFU4VTg7CisJY2FzZSBEUk1fRk9STUFUX1JHQjg4ODoKKwljYXNlIERS TV9GT1JNQVRfQkdSODg4OgorCQlyZXR1cm4gQUZCQ19GTVRfVThVOFU4OworCWNhc2UgRFJNX0ZP Uk1BVF9SR0I1NjU6CisJY2FzZSBEUk1fRk9STUFUX0JHUjU2NToKKwkJcmV0dXJuIEFGQkNfRk1U X1JHQjU2NTsKKwkvKiBlaXRoZXIgb2YgdGhlIGJlbG93IHNob3VsZCBub3QgYmUgcmVhY2hhYmxl ICovCisJZGVmYXVsdDoKKwkJRFJNX1dBUk5fT05DRSgidW5zdXBwb3J0ZWQgQUZCQyBmb3JtYXRb JTA4eF1cbiIsIGZvcm1hdCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAtRUlO VkFMOworfQorCiBzdGF0aWMgdWludDE2X3Qgc2NsX3ZvcF9jYWxfc2NhbGUoZW51bSBzY2FsZV9t b2RlIG1vZGUsIHVpbnQzMl90IHNyYywKIAkJCQkgIHVpbnQzMl90IGRzdCwgYm9vbCBpc19ob3Jp em9udGFsLAogCQkJCSAgaW50IHZzdV9tb2RlLCBpbnQgKnZza2lwbGluZXMpCkBAIC01OTgsNiAr NjM1LDE1IEBAIHN0YXRpYyBpbnQgdm9wX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX3N0YXRlKQogCQkJdm9wX3dpbl9kaXNhYmxlKHZvcCwg dm9wX3dpbik7CiAJCX0KIAl9CisKKwlpZiAodm9wLT5kYXRhLT5hZmJjKSB7CisJCS8qCisJCSAq IERpc2FibGUgQUZCQyBhbmQgZm9yZ2V0IHRoZXJlIHdhcyBhIHZvcCB3aW5kb3cgd2l0aCBBRkJD CisJCSAqLworCQlWT1BfQUZCQ19TRVQodm9wLCBlbmFibGUsIDApOworCQl2b3AtPmFmYmNfd2lu ID0gTlVMTDsKKwl9CisKIAlzcGluX3VubG9jaygmdm9wLT5yZWdfbG9jayk7CiAKIAl2b3BfY2Zn X2RvbmUodm9wKTsKQEAgLTcxMCw2ICs3NTYsMzQgQEAgc3RhdGljIHZvaWQgdm9wX3BsYW5lX2Rl c3Ryb3koc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiAJZHJtX3BsYW5lX2NsZWFudXAocGxhbmUp OwogfQogCitzdGF0aWMgYm9vbCByb2NrY2hpcF9tb2Rfc3VwcG9ydGVkKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAorCQkJCSAgIHUzMiBmb3JtYXQsIHU2NCBtb2RpZmllcikKK3sKKwljb25zdCBz dHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICppbmZvOworCisJaWYgKFdBUk5fT04obW9kaWZpZXIgPT0g RFJNX0ZPUk1BVF9NT0RfSU5WQUxJRCkpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChtb2RpZmll ciA9PSBEUk1fRk9STUFUX01PRF9MSU5FQVIpCisJCXJldHVybiB0cnVlOworCisJaWYgKG1vZGlm aWVyICE9CisJCURSTV9GT1JNQVRfTU9EX0FSTV9BRkJDKEFGQkNfRk9STUFUX01PRF9CTE9DS19T SVpFXzE2eDE2IHwKKwkJQUZCQ19GT1JNQVRfTU9EX1NQQVJTRSkpIHsKKwkJRFJNX0RFQlVHX0tN UygiVW5zdXBwb3J0ZWQgZm9ybWF0IG1vZGlmZXIgMHglbGx4XG4iLCBtb2RpZmllcik7CisKKwkJ cmV0dXJuIGZhbHNlOworCX0KKworCWluZm8gPSBkcm1fZm9ybWF0X2luZm8oZm9ybWF0KTsKKwlp ZiAoaW5mby0+bnVtX3BsYW5lcyAhPSAxKSB7CisJCURSTV9ERUJVR19LTVMoIkFGQkMgYnVmZmVy cyBleHBlY3Qgb25lIHBsYW5lXG4iKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVybiB0 cnVlOworfQorCiBzdGF0aWMgaW50IHZvcF9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCiAJCQkgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKIHsKQEAg LTc1OCw2ICs4MzIsMzQgQEAgc3RhdGljIGludCB2b3BfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKKwlpZiAoZmItPm1v ZGlmaWVyID09CisJCURSTV9GT1JNQVRfTU9EX0FSTV9BRkJDKEFGQkNfRk9STUFUX01PRF9CTE9D S19TSVpFXzE2eDE2IHwKKwkJQUZCQ19GT1JNQVRfTU9EX1NQQVJTRSkpIHsKKwkJc3RydWN0IHZv cCAqdm9wID0gdG9fdm9wKGNydGMpOworCisJCWlmICghdm9wLT5kYXRhLT5hZmJjKSB7CisJCQlE Uk1fRVJST1IoInZvcCBkb2VzIG5vdCBzdXBwb3J0IEFGQkNcbiIpOworCQkJcmV0dXJuIC1FSU5W QUw7CisJCX0KKworCQlyZXQgPSB2b3BfY29udmVydF9hZmJjX2Zvcm1hdChmYi0+Zm9ybWF0LT5m b3JtYXQpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJaWYgKHN0YXRlLT5z cmMueDEgfHwgc3RhdGUtPnNyYy55MSkgeworCQkJRFJNX0VSUk9SKCJhZmJjIGRvZXMgbm90IHN1 cHBvcnQgb2Zmc2V0IGRpc3BsYXlcbiIpOworCQkJRFJNX0VSUk9SKCJ4cG9zPSVkLCB5cG9zPSVk LCBvZmZzZXQ9JWRcbiIsCisJCQkJICBzdGF0ZS0+c3JjLngxLCBzdGF0ZS0+c3JjLnkxLCBmYi0+ b2Zmc2V0c1swXSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWlmIChzdGF0ZS0+cm90 YXRpb24gJiYgc3RhdGUtPnJvdGF0aW9uICE9IERSTV9NT0RFX1JPVEFURV8wKSB7CisJCQlEUk1f RVJST1IoImFmYmMgZG9lcyBub3Qgc3VwcG9ydCByb3RhdGlvblxuIik7CisJCQlEUk1fRVJST1Io InJvdGF0aW9uPSVkXG4iLCBzdGF0ZS0+cm90YXRpb24pOworCQkJcmV0dXJuIC1FSU5WQUw7CisJ CX0KKwl9CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNzczLDYgKzg3NSwxMSBAQCBzdGF0aWMgdm9p ZCB2b3BfcGxhbmVfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJc3Bp bl9sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKIAogCXZvcF93aW5fZGlzYWJsZSh2b3AsIHZvcF93aW4p OworCS8qCisJICogRm9yZ2V0IGFib3V0IHRoZSBBRkJDIHdpbmRvdyBpZiBpdCBpcyBiZWluZyBk aXNhYmxlZAorCSAqLworCWlmICh2b3Bfd2luID09IHZvcC0+YWZiY193aW4pCisJCXZvcC0+YWZi Y193aW4gPSBOVUxMOwogCiAJc3Bpbl91bmxvY2soJnZvcC0+cmVnX2xvY2spOwogfQpAQCAtODEy LDYgKzkxOSwxMyBAQCBzdGF0aWMgdm9pZCB2b3BfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKIAlpZiAoV0FSTl9PTighdm9wLT5pc19lbmFibGVkKSkKIAkJcmV0 dXJuOwogCisJLyoKKwkgKiBJZiB1cGRhdGluZyB0aGUgQUZCQyB3aW5kb3cgdGhlbiBhc3N1bWUg dGhhdAorCSAqIGFmdGVyIHRoZSB1cGRhdGUgdGhlcmUgd2lsbCBiZSBubyBBRkJDIHdpbmRvdy4K KwkgKi8KKwlpZiAodm9wX3dpbiA9PSB2b3AtPmFmYmNfd2luKQorCQl2b3AtPmFmYmNfd2luID0g TlVMTDsKKwogCWlmICghc3RhdGUtPnZpc2libGUpIHsKIAkJdm9wX3BsYW5lX2F0b21pY19kaXNh YmxlKHBsYW5lLCBvbGRfc3RhdGUpOwogCQlyZXR1cm47CkBAIC04NDYsNiArOTYwLDIzIEBAIHN0 YXRpYyB2b2lkIHZvcF9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAogCiAJc3Bpbl9sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKIAorCWlmIChmYi0+bW9kaWZpZXIgPT0K KwkJRFJNX0ZPUk1BVF9NT0RfQVJNX0FGQkMoQUZCQ19GT1JNQVRfTU9EX0JMT0NLX1NJWkVfMTZ4 MTYgfAorCQlBRkJDX0ZPUk1BVF9NT0RfU1BBUlNFKSkgeworCQlpbnQgYWZiY19mb3JtYXQgPSB2 b3BfY29udmVydF9hZmJjX2Zvcm1hdChmYi0+Zm9ybWF0LT5mb3JtYXQpOworCisJCVZPUF9BRkJD X1NFVCh2b3AsIGZvcm1hdCwgYWZiY19mb3JtYXQgfCBBRkJDX1RJTEVfMTZ4MTYpOworCQlWT1Bf QUZCQ19TRVQodm9wLCBocmVnX2Jsb2NrX3NwbGl0LCAwKTsKKwkJVk9QX0FGQkNfU0VUKHZvcCwg d2luX3NlbCwgVk9QX1dJTl9UT19JTkRFWCh2b3Bfd2luKSk7CisJCVZPUF9BRkJDX1NFVCh2b3As IGhkcl9wdHIsIGRtYV9hZGRyKTsKKwkJVk9QX0FGQkNfU0VUKHZvcCwgcGljX3NpemUsIGFjdF9p bmZvKTsKKworCQkvKgorCQkgKiBUaGUgd2luZG93IGJlaW5nIHVkYXRlZCBiZWNvbWVzIHRoZSBB RkJDIHdpbmRvdworCQkgKi8KKwkJdm9wLT5hZmJjX3dpbiA9IHZvcF93aW47CisJfQorCiAJVk9Q X1dJTl9TRVQodm9wLCB3aW4sIGZvcm1hdCwgZm9ybWF0KTsKIAlWT1BfV0lOX1NFVCh2b3AsIHdp biwgeXJnYl92aXIsIERJVl9ST1VORF9VUChmYi0+cGl0Y2hlc1swXSwgNCkpOwogCVZPUF9XSU5f U0VUKHZvcCwgd2luLCB5cmdiX21zdCwgZG1hX2FkZHIpOwpAQCAtMTAwMSw2ICsxMTMyLDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3Mgdm9wX3BsYW5lX2Z1bmNzID0gewog CS5yZXNldCA9IGRybV9hdG9taWNfaGVscGVyX3BsYW5lX3Jlc2V0LAogCS5hdG9taWNfZHVwbGlj YXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRlLAogCS5h dG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3Rh dGUsCisJLmZvcm1hdF9tb2Rfc3VwcG9ydGVkID0gcm9ja2NoaXBfbW9kX3N1cHBvcnRlZCwKIH07 CiAKIHN0YXRpYyBpbnQgdm9wX2NydGNfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpCkBAIC0xMzQwLDYgKzE0NzIsMTAgQEAgc3RhdGljIHZvaWQgdm9wX2NydGNfYXRvbWljX2Zs dXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCXNwaW5fbG9jaygmdm9wLT5yZWdfbG9jayk7 CiAKKwkvKgorCSAqIEVuYWJsZSBBRkJDIGlmIHRoZXJlIGlzIHNvbWUgQUZCQyB3aW5kb3csIGRp c2FibGUgb3RoZXJ3aXNlCisJICovCisJVk9QX0FGQkNfU0VUKHZvcCwgZW5hYmxlLCB2b3AtPmFm YmNfd2luICE9IE5VTEwpOwogCXZvcF9jZmdfZG9uZSh2b3ApOwogCiAJc3Bpbl91bmxvY2soJnZv cC0+cmVnX2xvY2spOwpAQCAtMTYzNCw3ICsxNzcwLDggQEAgc3RhdGljIGludCB2b3BfY3JlYXRl X2NydGMoc3RydWN0IHZvcCAqdm9wKQogCQkJCQkgICAgICAgMCwgJnZvcF9wbGFuZV9mdW5jcywK IAkJCQkJICAgICAgIHdpbl9kYXRhLT5waHktPmRhdGFfZm9ybWF0cywKIAkJCQkJICAgICAgIHdp bl9kYXRhLT5waHktPm5mb3JtYXRzLAotCQkJCQkgICAgICAgTlVMTCwgd2luX2RhdGEtPnR5cGUs IE5VTEwpOworCQkJCQkgICAgICAgd2luX2RhdGEtPnBoeS0+Zm9ybWF0X21vZGlmaWVycywKKwkJ CQkJICAgICAgIHdpbl9kYXRhLT50eXBlLCBOVUxMKTsKIAkJaWYgKHJldCkgewogCQkJRFJNX0RF Vl9FUlJPUih2b3AtPmRldiwgImZhaWxlZCB0byBpbml0IHBsYW5lICVkXG4iLAogCQkJCSAgICAg IHJldCk7CkBAIC0xNjc4LDcgKzE4MTUsOCBAQCBzdGF0aWMgaW50IHZvcF9jcmVhdGVfY3J0Yyhz dHJ1Y3Qgdm9wICp2b3ApCiAJCQkJCSAgICAgICAmdm9wX3BsYW5lX2Z1bmNzLAogCQkJCQkgICAg ICAgd2luX2RhdGEtPnBoeS0+ZGF0YV9mb3JtYXRzLAogCQkJCQkgICAgICAgd2luX2RhdGEtPnBo eS0+bmZvcm1hdHMsCi0JCQkJCSAgICAgICBOVUxMLCB3aW5fZGF0YS0+dHlwZSwgTlVMTCk7CisJ CQkJCSAgICAgICB3aW5fZGF0YS0+cGh5LT5mb3JtYXRfbW9kaWZpZXJzLAorCQkJCQkgICAgICAg d2luX2RhdGEtPnR5cGUsIE5VTEwpOwogCQlpZiAocmV0KSB7CiAJCQlEUk1fREVWX0VSUk9SKHZv cC0+ZGV2LCAiZmFpbGVkIHRvIGluaXQgb3ZlcmxheSAlZFxuIiwKIAkJCQkgICAgICByZXQpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaCBi L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmgKaW5kZXggMGIzZDE4 YzQ1N2IyLi4zZjRlODhhNzgzZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9yb2NrY2hpcF9kcm1fdm9wLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2RybV92b3AuaApAQCAtMzQsNiArMzQsMTYgQEAgc3RydWN0IHZvcF9yZWcgewogCWJvb2wg cmVsYXhlZDsKIH07CiAKK3N0cnVjdCB2b3BfYWZiYyB7CisJc3RydWN0IHZvcF9yZWcgZW5hYmxl OworCXN0cnVjdCB2b3BfcmVnIHdpbl9zZWw7CisJc3RydWN0IHZvcF9yZWcgZm9ybWF0OworCXN0 cnVjdCB2b3BfcmVnIGhyZWdfYmxvY2tfc3BsaXQ7CisJc3RydWN0IHZvcF9yZWcgcGljX3NpemU7 CisJc3RydWN0IHZvcF9yZWcgaGRyX3B0cjsKKwlzdHJ1Y3Qgdm9wX3JlZyByc3RuOworfTsKKwog c3RydWN0IHZvcF9tb2Rlc2V0IHsKIAlzdHJ1Y3Qgdm9wX3JlZyBodG90YWxfcHc7CiAJc3RydWN0 IHZvcF9yZWcgaGFjdF9zdF9lbmQ7CkBAIC0xMzQsNiArMTQ0LDcgQEAgc3RydWN0IHZvcF93aW5f cGh5IHsKIAljb25zdCBzdHJ1Y3Qgdm9wX3NjbF9yZWdzICpzY2w7CiAJY29uc3QgdWludDMyX3Qg KmRhdGFfZm9ybWF0czsKIAl1aW50MzJfdCBuZm9ybWF0czsKKwljb25zdCB1aW50NjRfdCAqZm9y bWF0X21vZGlmaWVyczsKIAogCXN0cnVjdCB2b3BfcmVnIGVuYWJsZTsKIAlzdHJ1Y3Qgdm9wX3Jl ZyBnYXRlOwpAQCAtMTczLDYgKzE4NCw3IEBAIHN0cnVjdCB2b3BfZGF0YSB7CiAJY29uc3Qgc3Ry dWN0IHZvcF9taXNjICptaXNjOwogCWNvbnN0IHN0cnVjdCB2b3BfbW9kZXNldCAqbW9kZXNldDsK IAljb25zdCBzdHJ1Y3Qgdm9wX291dHB1dCAqb3V0cHV0OworCWNvbnN0IHN0cnVjdCB2b3BfYWZi YyAqYWZiYzsKIAljb25zdCBzdHJ1Y3Qgdm9wX3dpbl95dXYyeXV2X2RhdGEgKndpbl95dXYyeXV2 OwogCWNvbnN0IHN0cnVjdCB2b3Bfd2luX2RhdGEgKndpbjsKIAl1bnNpZ25lZCBpbnQgd2luX3Np emU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3Jl Zy5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYwppbmRleCA3 YTlkOTc5YzhkNWQuLmYwY2YxYjA0NTkxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv cm9ja2NoaXBfdm9wX3JlZy5jCkBAIC01MCw2ICs1MCwxOCBAQCBzdGF0aWMgY29uc3QgdWludDMy X3QgZm9ybWF0c193aW5fZnVsbFtdID0gewogCURSTV9GT1JNQVRfTlYyNCwKIH07CiAKK3N0YXRp YyBjb25zdCB1aW50NjRfdCBmb3JtYXRfbW9kaWZpZXJzX3dpbl9mdWxsW10gPSB7CisJRFJNX0ZP Uk1BVF9NT0RfTElORUFSLAorCURSTV9GT1JNQVRfTU9EX0lOVkFMSUQsCit9OworCitzdGF0aWMg Y29uc3QgdWludDY0X3QgZm9ybWF0X21vZGlmaWVyc193aW5fZnVsbF9hZmJjW10gPSB7CisJRFJN X0ZPUk1BVF9NT0RfQVJNX0FGQkMoQUZCQ19GT1JNQVRfTU9EX0JMT0NLX1NJWkVfMTZ4MTYgfAor CQkJCUFGQkNfRk9STUFUX01PRF9TUEFSU0UpLAorCURSTV9GT1JNQVRfTU9EX0xJTkVBUiwKKwlE Uk1fRk9STUFUX01PRF9JTlZBTElELAorfTsKKwogc3RhdGljIGNvbnN0IHVpbnQzMl90IGZvcm1h dHNfd2luX2xpdGVbXSA9IHsKIAlEUk1fRk9STUFUX1hSR0I4ODg4LAogCURSTV9GT1JNQVRfQVJH Qjg4ODgsCkBAIC02MSw2ICs3MywxMSBAQCBzdGF0aWMgY29uc3QgdWludDMyX3QgZm9ybWF0c193 aW5fbGl0ZVtdID0gewogCURSTV9GT1JNQVRfQkdSNTY1LAogfTsKIAorc3RhdGljIGNvbnN0IHVp bnQ2NF90IGZvcm1hdF9tb2RpZmllcnNfd2luX2xpdGVbXSA9IHsKKwlEUk1fRk9STUFUX01PRF9M SU5FQVIsCisJRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRCwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgdm9wX3NjbF9yZWdzIHJrMzAzNl93aW5fc2NsID0gewogCS5zY2FsZV95cmdiX3ggPSBWT1Bf UkVHKFJLMzAzNl9XSU4wX1NDTF9GQUNUT1JfWVJHQiwgMHhmZmZmLCAweDApLAogCS5zY2FsZV95 cmdiX3kgPSBWT1BfUkVHKFJLMzAzNl9XSU4wX1NDTF9GQUNUT1JfWVJHQiwgMHhmZmZmLCAxNiks CkBAIC03Miw2ICs4OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX3dpbl9waHkgcmszMDM2 X3dpbjBfZGF0YSA9IHsKIAkuc2NsID0gJnJrMzAzNl93aW5fc2NsLAogCS5kYXRhX2Zvcm1hdHMg PSBmb3JtYXRzX3dpbl9mdWxsLAogCS5uZm9ybWF0cyA9IEFSUkFZX1NJWkUoZm9ybWF0c193aW5f ZnVsbCksCisJLmZvcm1hdF9tb2RpZmllcnMgPSBmb3JtYXRfbW9kaWZpZXJzX3dpbl9mdWxsLAog CS5lbmFibGUgPSBWT1BfUkVHKFJLMzAzNl9TWVNfQ1RSTCwgMHgxLCAwKSwKIAkuZm9ybWF0ID0g Vk9QX1JFRyhSSzMwMzZfU1lTX0NUUkwsIDB4NywgMyksCiAJLnJiX3N3YXAgPSBWT1BfUkVHKFJL MzAzNl9TWVNfQ1RSTCwgMHgxLCAxNSksCkBAIC04Nyw2ICsxMDUsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHZvcF93aW5fcGh5IHJrMzAzNl93aW4wX2RhdGEgPSB7CiBzdGF0aWMgY29uc3Qgc3Ry dWN0IHZvcF93aW5fcGh5IHJrMzAzNl93aW4xX2RhdGEgPSB7CiAJLmRhdGFfZm9ybWF0cyA9IGZv cm1hdHNfd2luX2xpdGUsCiAJLm5mb3JtYXRzID0gQVJSQVlfU0laRShmb3JtYXRzX3dpbl9saXRl KSwKKwkuZm9ybWF0X21vZGlmaWVycyA9IGZvcm1hdF9tb2RpZmllcnNfd2luX2xpdGUsCiAJLmVu YWJsZSA9IFZPUF9SRUcoUkszMDM2X1NZU19DVFJMLCAweDEsIDEpLAogCS5mb3JtYXQgPSBWT1Bf UkVHKFJLMzAzNl9TWVNfQ1RSTCwgMHg3LCA2KSwKIAkucmJfc3dhcCA9IFZPUF9SRUcoUkszMDM2 X1NZU19DVFJMLCAweDEsIDE5KSwKQEAgLTE1Myw2ICsxNzIsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHZvcF9kYXRhIHJrMzAzNl92b3AgPSB7CiBzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF93aW5f cGh5IHJrMzEyNl93aW4xX2RhdGEgPSB7CiAJLmRhdGFfZm9ybWF0cyA9IGZvcm1hdHNfd2luX2xp dGUsCiAJLm5mb3JtYXRzID0gQVJSQVlfU0laRShmb3JtYXRzX3dpbl9saXRlKSwKKwkuZm9ybWF0 X21vZGlmaWVycyA9IGZvcm1hdF9tb2RpZmllcnNfd2luX2xpdGUsCiAJLmVuYWJsZSA9IFZPUF9S RUcoUkszMDM2X1NZU19DVFJMLCAweDEsIDEpLAogCS5mb3JtYXQgPSBWT1BfUkVHKFJLMzAzNl9T WVNfQ1RSTCwgMHg3LCA2KSwKIAkucmJfc3dhcCA9IFZPUF9SRUcoUkszMDM2X1NZU19DVFJMLCAw eDEsIDE5KSwKQEAgLTIzNCw2ICsyNTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF93aW5f cGh5IHB4MzBfd2luMF9kYXRhID0gewogCS5zY2wgPSAmcHgzMF93aW5fc2NsLAogCS5kYXRhX2Zv cm1hdHMgPSBmb3JtYXRzX3dpbl9mdWxsLAogCS5uZm9ybWF0cyA9IEFSUkFZX1NJWkUoZm9ybWF0 c193aW5fZnVsbCksCisJLmZvcm1hdF9tb2RpZmllcnMgPSBmb3JtYXRfbW9kaWZpZXJzX3dpbl9m dWxsLAogCS5lbmFibGUgPSBWT1BfUkVHKFBYMzBfV0lOMF9DVFJMMCwgMHgxLCAwKSwKIAkuZm9y bWF0ID0gVk9QX1JFRyhQWDMwX1dJTjBfQ1RSTDAsIDB4NywgMSksCiAJLnJiX3N3YXAgPSBWT1Bf UkVHKFBYMzBfV0lOMF9DVFJMMCwgMHgxLCAxMiksCkBAIC0yNDksNiArMjcwLDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCB2b3Bfd2luX3BoeSBweDMwX3dpbjBfZGF0YSA9IHsKIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgdm9wX3dpbl9waHkgcHgzMF93aW4xX2RhdGEgPSB7CiAJLmRhdGFfZm9ybWF0cyA9 IGZvcm1hdHNfd2luX2xpdGUsCiAJLm5mb3JtYXRzID0gQVJSQVlfU0laRShmb3JtYXRzX3dpbl9s aXRlKSwKKwkuZm9ybWF0X21vZGlmaWVycyA9IGZvcm1hdF9tb2RpZmllcnNfd2luX2xpdGUsCiAJ LmVuYWJsZSA9IFZPUF9SRUcoUFgzMF9XSU4xX0NUUkwwLCAweDEsIDApLAogCS5mb3JtYXQgPSBW T1BfUkVHKFBYMzBfV0lOMV9DVFJMMCwgMHg3LCA0KSwKIAkucmJfc3dhcCA9IFZPUF9SRUcoUFgz MF9XSU4xX0NUUkwwLCAweDEsIDEyKSwKQEAgLTI2MSw2ICsyODMsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHZvcF93aW5fcGh5IHB4MzBfd2luMV9kYXRhID0gewogc3RhdGljIGNvbnN0IHN0cnVj dCB2b3Bfd2luX3BoeSBweDMwX3dpbjJfZGF0YSA9IHsKIAkuZGF0YV9mb3JtYXRzID0gZm9ybWF0 c193aW5fbGl0ZSwKIAkubmZvcm1hdHMgPSBBUlJBWV9TSVpFKGZvcm1hdHNfd2luX2xpdGUpLAor CS5mb3JtYXRfbW9kaWZpZXJzID0gZm9ybWF0X21vZGlmaWVyc193aW5fbGl0ZSwKIAkuZ2F0ZSA9 IFZPUF9SRUcoUFgzMF9XSU4yX0NUUkwwLCAweDEsIDQpLAogCS5lbmFibGUgPSBWT1BfUkVHKFBY MzBfV0lOMl9DVFJMMCwgMHgxLCAwKSwKIAkuZm9ybWF0ID0gVk9QX1JFRyhQWDMwX1dJTjJfQ1RS TDAsIDB4MywgNSksCkBAIC0zMTYsNiArMzM5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3Bf d2luX3BoeSByazMwNjZfd2luMF9kYXRhID0gewogCS5zY2wgPSAmcmszMDY2X3dpbl9zY2wsCiAJ LmRhdGFfZm9ybWF0cyA9IGZvcm1hdHNfd2luX2Z1bGwsCiAJLm5mb3JtYXRzID0gQVJSQVlfU0la RShmb3JtYXRzX3dpbl9mdWxsKSwKKwkuZm9ybWF0X21vZGlmaWVycyA9IGZvcm1hdF9tb2RpZmll cnNfd2luX2Z1bGwsCiAJLmVuYWJsZSA9IFZPUF9SRUcoUkszMDY2X1NZU19DVFJMMSwgMHgxLCAw KSwKIAkuZm9ybWF0ID0gVk9QX1JFRyhSSzMwNjZfU1lTX0NUUkwwLCAweDcsIDQpLAogCS5yYl9z d2FwID0gVk9QX1JFRyhSSzMwNjZfU1lTX0NUUkwwLCAweDEsIDE5KSwKQEAgLTMzMiw2ICszNTYs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF93aW5fcGh5IHJrMzA2Nl93aW4xX2RhdGEgPSB7 CiAJLnNjbCA9ICZyazMwNjZfd2luX3NjbCwKIAkuZGF0YV9mb3JtYXRzID0gZm9ybWF0c193aW5f ZnVsbCwKIAkubmZvcm1hdHMgPSBBUlJBWV9TSVpFKGZvcm1hdHNfd2luX2Z1bGwpLAorCS5mb3Jt YXRfbW9kaWZpZXJzID0gZm9ybWF0X21vZGlmaWVyc193aW5fZnVsbCwKIAkuZW5hYmxlID0gVk9Q X1JFRyhSSzMwNjZfU1lTX0NUUkwxLCAweDEsIDEpLAogCS5mb3JtYXQgPSBWT1BfUkVHKFJLMzA2 Nl9TWVNfQ1RSTDAsIDB4NywgNyksCiAJLnJiX3N3YXAgPSBWT1BfUkVHKFJLMzA2Nl9TWVNfQ1RS TDAsIDB4MSwgMjMpLApAQCAtMzQ3LDYgKzM3Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9w X3dpbl9waHkgcmszMDY2X3dpbjFfZGF0YSA9IHsKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX3dp bl9waHkgcmszMDY2X3dpbjJfZGF0YSA9IHsKIAkuZGF0YV9mb3JtYXRzID0gZm9ybWF0c193aW5f bGl0ZSwKIAkubmZvcm1hdHMgPSBBUlJBWV9TSVpFKGZvcm1hdHNfd2luX2xpdGUpLAorCS5mb3Jt YXRfbW9kaWZpZXJzID0gZm9ybWF0X21vZGlmaWVyc193aW5fbGl0ZSwKIAkuZW5hYmxlID0gVk9Q X1JFRyhSSzMwNjZfU1lTX0NUUkwxLCAweDEsIDIpLAogCS5mb3JtYXQgPSBWT1BfUkVHKFJLMzA2 Nl9TWVNfQ1RSTDAsIDB4NywgMTApLAogCS5yYl9zd2FwID0gVk9QX1JFRyhSSzMwNjZfU1lTX0NU UkwwLCAweDEsIDI3KSwKQEAgLTQyNiw2ICs0NTIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZv cF93aW5fcGh5IHJrMzE4OF93aW4wX2RhdGEgPSB7CiAJLnNjbCA9ICZyazMxODhfd2luX3NjbCwK IAkuZGF0YV9mb3JtYXRzID0gZm9ybWF0c193aW5fZnVsbCwKIAkubmZvcm1hdHMgPSBBUlJBWV9T SVpFKGZvcm1hdHNfd2luX2Z1bGwpLAorCS5mb3JtYXRfbW9kaWZpZXJzID0gZm9ybWF0X21vZGlm aWVyc193aW5fZnVsbCwKIAkuZW5hYmxlID0gVk9QX1JFRyhSSzMxODhfU1lTX0NUUkwsIDB4MSwg MCksCiAJLmZvcm1hdCA9IFZPUF9SRUcoUkszMTg4X1NZU19DVFJMLCAweDcsIDMpLAogCS5yYl9z d2FwID0gVk9QX1JFRyhSSzMxODhfU1lTX0NUUkwsIDB4MSwgMTUpLApAQCAtNDQwLDYgKzQ2Nyw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX3dpbl9waHkgcmszMTg4X3dpbjBfZGF0YSA9IHsK IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX3dpbl9waHkgcmszMTg4X3dpbjFfZGF0YSA9IHsKIAku ZGF0YV9mb3JtYXRzID0gZm9ybWF0c193aW5fbGl0ZSwKIAkubmZvcm1hdHMgPSBBUlJBWV9TSVpF KGZvcm1hdHNfd2luX2xpdGUpLAorCS5mb3JtYXRfbW9kaWZpZXJzID0gZm9ybWF0X21vZGlmaWVy c193aW5fbGl0ZSwKIAkuZW5hYmxlID0gVk9QX1JFRyhSSzMxODhfU1lTX0NUUkwsIDB4MSwgMSks CiAJLmZvcm1hdCA9IFZPUF9SRUcoUkszMTg4X1NZU19DVFJMLCAweDcsIDYpLAogCS5yYl9zd2Fw ID0gVk9QX1JFRyhSSzMxODhfU1lTX0NUUkwsIDB4MSwgMTkpLApAQCAtNTQ1LDYgKzU3Myw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX3dpbl9waHkgcmszMjg4X3dpbjAxX2RhdGEgPSB7CiAJ LnNjbCA9ICZyazMyODhfd2luX2Z1bGxfc2NsLAogCS5kYXRhX2Zvcm1hdHMgPSBmb3JtYXRzX3dp bl9mdWxsLAogCS5uZm9ybWF0cyA9IEFSUkFZX1NJWkUoZm9ybWF0c193aW5fZnVsbCksCisJLmZv cm1hdF9tb2RpZmllcnMgPSBmb3JtYXRfbW9kaWZpZXJzX3dpbl9mdWxsLAogCS5lbmFibGUgPSBW T1BfUkVHKFJLMzI4OF9XSU4wX0NUUkwwLCAweDEsIDApLAogCS5mb3JtYXQgPSBWT1BfUkVHKFJL MzI4OF9XSU4wX0NUUkwwLCAweDcsIDEpLAogCS5yYl9zd2FwID0gVk9QX1JFRyhSSzMyODhfV0lO MF9DVFJMMCwgMHgxLCAxMiksCkBAIC01NjMsNiArNTkyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCB2b3Bfd2luX3BoeSByazMyODhfd2luMDFfZGF0YSA9IHsKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dm9wX3dpbl9waHkgcmszMjg4X3dpbjIzX2RhdGEgPSB7CiAJLmRhdGFfZm9ybWF0cyA9IGZvcm1h dHNfd2luX2xpdGUsCiAJLm5mb3JtYXRzID0gQVJSQVlfU0laRShmb3JtYXRzX3dpbl9saXRlKSwK KwkuZm9ybWF0X21vZGlmaWVycyA9IGZvcm1hdF9tb2RpZmllcnNfd2luX2xpdGUsCiAJLmVuYWJs ZSA9IFZPUF9SRUcoUkszMjg4X1dJTjJfQ1RSTDAsIDB4MSwgNCksCiAJLmdhdGUgPSBWT1BfUkVH KFJLMzI4OF9XSU4yX0NUUkwwLCAweDEsIDApLAogCS5mb3JtYXQgPSBWT1BfUkVHKFJLMzI4OF9X SU4yX0NUUkwwLCAweDcsIDEpLApAQCAtNjc3LDYgKzcwNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgdm9wX3dpbl9waHkgcmszMzY4X3dpbjAxX2RhdGEgPSB7CiAJLnNjbCA9ICZyazMyODhfd2lu X2Z1bGxfc2NsLAogCS5kYXRhX2Zvcm1hdHMgPSBmb3JtYXRzX3dpbl9mdWxsLAogCS5uZm9ybWF0 cyA9IEFSUkFZX1NJWkUoZm9ybWF0c193aW5fZnVsbCksCisJLmZvcm1hdF9tb2RpZmllcnMgPSBm b3JtYXRfbW9kaWZpZXJzX3dpbl9mdWxsLAogCS5lbmFibGUgPSBWT1BfUkVHKFJLMzM2OF9XSU4w X0NUUkwwLCAweDEsIDApLAogCS5mb3JtYXQgPSBWT1BfUkVHKFJLMzM2OF9XSU4wX0NUUkwwLCAw eDcsIDEpLAogCS5yYl9zd2FwID0gVk9QX1JFRyhSSzMzNjhfV0lOMF9DVFJMMCwgMHgxLCAxMiks CkBAIC02OTcsNiArNzI4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3Bfd2luX3BoeSByazMz Njhfd2luMDFfZGF0YSA9IHsKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX3dpbl9waHkgcmszMzY4 X3dpbjIzX2RhdGEgPSB7CiAJLmRhdGFfZm9ybWF0cyA9IGZvcm1hdHNfd2luX2xpdGUsCiAJLm5m b3JtYXRzID0gQVJSQVlfU0laRShmb3JtYXRzX3dpbl9saXRlKSwKKwkuZm9ybWF0X21vZGlmaWVy cyA9IGZvcm1hdF9tb2RpZmllcnNfd2luX2xpdGUsCiAJLmdhdGUgPSBWT1BfUkVHKFJLMzM2OF9X SU4yX0NUUkwwLCAweDEsIDApLAogCS5lbmFibGUgPSBWT1BfUkVHKFJLMzM2OF9XSU4yX0NUUkww LCAweDEsIDQpLAogCS5mb3JtYXQgPSBWT1BfUkVHKFJLMzM2OF9XSU4yX0NUUkwwLCAweDMsIDUp LApAQCAtODE3LDYgKzg0OSw1MyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF93aW5feXV2Mnl1 dl9kYXRhIHJrMzM5OV92b3BfYmlnX3dpbl95dXYyeXV2X2RhdGFbXSA9IHsKIAkgIC55MnJfZW4g PSBWT1BfUkVHKFJLMzM5OV9ZVVYyWVVWX1dJTiwgMHgxLCA5KSB9LAogCXsgLmJhc2UgPSAweEMw LCAucGh5ID0gJnJrMzM5OV95dXYyeXV2X3dpbjIzX2RhdGEgfSwKIAl7IC5iYXNlID0gMHgxMjAs IC5waHkgPSAmcmszMzk5X3l1djJ5dXZfd2luMjNfZGF0YSB9LAorCit9OworCitzdGF0aWMgY29u c3Qgc3RydWN0IHZvcF93aW5fcGh5IHJrMzM5OV93aW4wMV9kYXRhID0geworCS5zY2wgPSAmcmsz Mjg4X3dpbl9mdWxsX3NjbCwKKwkuZGF0YV9mb3JtYXRzID0gZm9ybWF0c193aW5fZnVsbCwKKwku bmZvcm1hdHMgPSBBUlJBWV9TSVpFKGZvcm1hdHNfd2luX2Z1bGwpLAorCS5mb3JtYXRfbW9kaWZp ZXJzID0gZm9ybWF0X21vZGlmaWVyc193aW5fZnVsbF9hZmJjLAorCS5lbmFibGUgPSBWT1BfUkVH KFJLMzI4OF9XSU4wX0NUUkwwLCAweDEsIDApLAorCS5mb3JtYXQgPSBWT1BfUkVHKFJLMzI4OF9X SU4wX0NUUkwwLCAweDcsIDEpLAorCS5yYl9zd2FwID0gVk9QX1JFRyhSSzMyODhfV0lOMF9DVFJM MCwgMHgxLCAxMiksCisJLnlfbWlyX2VuID0gVk9QX1JFRyhSSzMyODhfV0lOMF9DVFJMMCwgMHgx LCAyMiksCisJLmFjdF9pbmZvID0gVk9QX1JFRyhSSzMyODhfV0lOMF9BQ1RfSU5GTywgMHgxZmZm MWZmZiwgMCksCisJLmRzcF9pbmZvID0gVk9QX1JFRyhSSzMyODhfV0lOMF9EU1BfSU5GTywgMHgw ZmZmMGZmZiwgMCksCisJLmRzcF9zdCA9IFZPUF9SRUcoUkszMjg4X1dJTjBfRFNQX1NULCAweDFm ZmYxZmZmLCAwKSwKKwkueXJnYl9tc3QgPSBWT1BfUkVHKFJLMzI4OF9XSU4wX1lSR0JfTVNULCAw eGZmZmZmZmZmLCAwKSwKKwkudXZfbXN0ID0gVk9QX1JFRyhSSzMyODhfV0lOMF9DQlJfTVNULCAw eGZmZmZmZmZmLCAwKSwKKwkueXJnYl92aXIgPSBWT1BfUkVHKFJLMzI4OF9XSU4wX1ZJUiwgMHgz ZmZmLCAwKSwKKwkudXZfdmlyID0gVk9QX1JFRyhSSzMyODhfV0lOMF9WSVIsIDB4M2ZmZiwgMTYp LAorCS5zcmNfYWxwaGFfY3RsID0gVk9QX1JFRyhSSzMyODhfV0lOMF9TUkNfQUxQSEFfQ1RSTCwg MHhmZiwgMCksCisJLmRzdF9hbHBoYV9jdGwgPSBWT1BfUkVHKFJLMzI4OF9XSU4wX0RTVF9BTFBI QV9DVFJMLCAweGZmLCAwKSwKK307CisKKy8qCisgKiByazMzOTkgdm9wIGJpZyB3aW5kb3dzIHJl Z2lzdGVyIGxheW91dCBpcyBzYW1lIGFzIHJrMzI4OCwgYnV0IHdlCisgKiBoYXZlIGEgc2VwYXJh dGUgcmszMzk5IHdpbiBkYXRhIGFycmF5IGhlcmUgc28gdGhhdCB3ZSBjYW4gYWR2ZXJ0aXNlCisg KiBBRkJDIG9uIHRoZSBwcmltYXJ5IHBsYW5lLgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHZv cF93aW5fZGF0YSByazMzOTlfdm9wX3dpbl9kYXRhW10gPSB7CisJeyAuYmFzZSA9IDB4MDAsIC5w aHkgPSAmcmszMzk5X3dpbjAxX2RhdGEsCisJICAudHlwZSA9IERSTV9QTEFORV9UWVBFX1BSSU1B UlkgfSwKKwl7IC5iYXNlID0gMHg0MCwgLnBoeSA9ICZyazMyODhfd2luMDFfZGF0YSwKKwkgIC50 eXBlID0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSB9LAorCXsgLmJhc2UgPSAweDAwLCAucGh5ID0g JnJrMzI4OF93aW4yM19kYXRhLAorCSAgLnR5cGUgPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZIH0s CisJeyAuYmFzZSA9IDB4NTAsIC5waHkgPSAmcmszMjg4X3dpbjIzX2RhdGEsCisJICAudHlwZSA9 IERSTV9QTEFORV9UWVBFX0NVUlNPUiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB2b3Bf YWZiYyByazMzOTlfdm9wX2FmYmMgPSB7CisJLnJzdG4gPSBWT1BfUkVHKFJLMzM5OV9BRkJDRDBf Q1RSTCwgMHgxLCAzKSwKKwkuZW5hYmxlID0gVk9QX1JFRyhSSzMzOTlfQUZCQ0QwX0NUUkwsIDB4 MSwgMCksCisJLndpbl9zZWwgPSBWT1BfUkVHKFJLMzM5OV9BRkJDRDBfQ1RSTCwgMHgzLCAxKSwK KwkuZm9ybWF0ID0gVk9QX1JFRyhSSzMzOTlfQUZCQ0QwX0NUUkwsIDB4MWYsIDE2KSwKKwkuaHJl Z19ibG9ja19zcGxpdCA9IFZPUF9SRUcoUkszMzk5X0FGQkNEMF9DVFJMLCAweDEsIDIxKSwKKwku aGRyX3B0ciA9IFZPUF9SRUcoUkszMzk5X0FGQkNEMF9IRFJfUFRSLCAweGZmZmZmZmZmLCAwKSwK KwkucGljX3NpemUgPSBWT1BfUkVHKFJLMzM5OV9BRkJDRDBfUElDX1NJWkUsIDB4ZmZmZmZmZmYs IDApLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfZGF0YSByazMzOTlfdm9wX2JpZyA9 IHsKQEAgLTgyNiw5ICs5MDUsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfZGF0YSByazMz OTlfdm9wX2JpZyA9IHsKIAkuY29tbW9uID0gJnJrMzI4OF9jb21tb24sCiAJLm1vZGVzZXQgPSAm cmszMjg4X21vZGVzZXQsCiAJLm91dHB1dCA9ICZyazMzOTlfb3V0cHV0LAorCS5hZmJjID0gJnJr MzM5OV92b3BfYWZiYywKIAkubWlzYyA9ICZyazMzNjhfbWlzYywKLQkud2luID0gcmszMzY4X3Zv cF93aW5fZGF0YSwKLQkud2luX3NpemUgPSBBUlJBWV9TSVpFKHJrMzM2OF92b3Bfd2luX2RhdGEp LAorCS53aW4gPSByazMzOTlfdm9wX3dpbl9kYXRhLAorCS53aW5fc2l6ZSA9IEFSUkFZX1NJWkUo cmszMzk5X3ZvcF93aW5fZGF0YSksCiAJLndpbl95dXYyeXV2ID0gcmszMzk5X3ZvcF9iaWdfd2lu X3l1djJ5dXZfZGF0YSwKIH07CiAKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVs