From mboxrd@z Thu Jan 1 00:00:00 1970 From: Radhakrishna Sripada Subject: [PATCH v7 4/7] drm/i915/tgl: Gen-12 render decompression Date: Mon, 25 Nov 2019 16:26:32 -0800 Message-ID: <20191126002635.5779-5-radhakrishna.sripada@intel.com> References: <20191126002635.5779-1-radhakrishna.sripada@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7C30189DB4 for ; Tue, 26 Nov 2019 00:25:07 +0000 (UTC) In-Reply-To: <20191126002635.5779-1-radhakrishna.sripada@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: nanley.g.chery@intel.com, Lucas De Marchi , dhinakaran.pandiyan@intel.com, ville.syrjala@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+ CgpHZW4tMTIgZGlzcGxheSBkZWNvbXByZXNzaW9uIG9wZXJhdGVzIG9uIFktdGlsZWQgY29tcHJl c3NlZCBtYWluIHN1cmZhY2UuClRoZSBDQ1MgaXMgbGluZWFyIGFuZCBoYXMgNCBiaXRzIG9mIG1l dGFkYXRhIGZvciBlYWNoIG1haW4gc3VyZmFjZSBjYWNoZQpsaW5lIHBhaXIsIGEgc2l6ZSByYXRp byBvZiAxOjI1Ni4gR2VuLTEyIGRpc3BsYXkgZGVjb21wcmVzc2lvbiBpcwppbmNvbXBhdGlibGUg d2l0aCBidWZmZXJzIGNvbXByZXNzZWQgYnkgZWFybGllciBHUFVzLCBzbyBtYWtlIHVzZSBvZiBh IG5ldwptb2RpZmllciB0byBpZGVudGlmeSBnZW4tMTIgY29tcHJlc3Npb24uIEFub3RoZXIgbm90 YWJsZSBjaGFuZ2UgaXMgdGhhdApyZW5kZXIgZGVjb21wcmVzc2lvbiBpcyBzdXBwb3J0ZWQgb24g YWxsIHBsYW5lcyBleGNlcHQgY3Vyc29yIGFuZCBvbiBhbGwKcGlwZXMuIFN0YXJ0IGJ5IGFkZGlu ZyByZW5kZXIgZGVjb21wcmVzc2lvbiBzdXBwb3J0IGZvciBbQSxYXUJHUjg4OCBwaXhlbApmb3Jt YXRzLgoKdjI6IEZpeCBjaGVja3BhdGNoIHdhcm5pbmdzIChMdWNhcykKdjM6ClJlYmFzZSwgZGlz YWJsZSBjb2xvciBjbGVhciwgc3R5bGluZyBjaGFuZ2VzIGFuZCBtb2RpZnkKaW50ZWxfdGlsZV93 aWR0aF9ieXRlcyBhbmQgaW50ZWxfdGlsZV9oZWlnaHQgdG8gaGFuZGxlIGxpbmVhciBDQ1MKCkNj OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpDYzogTWF0 dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KQ2M6IE5hbmxleSBHIENoZXJ5IDxu YW5sZXkuZy5jaGVyeUBpbnRlbC5jb20+CkNjOiBKYXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0 cmFuZC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4u cGFuZGl5YW5AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2Fz LmRlbWFyY2hpQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXkuYyB8IDg1ICsrKysrKysrKysrKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5jICB8IDIzICsrKystLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaCAgICAgICAgICAgICAgfCAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDg0 IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggODVmMDA5NTAwMzQ0Li4xZWYxOTg4YjllMTIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCkBAIC0x OTcxLDYgKzE5NzEsMTAgQEAgaW50ZWxfdGlsZV93aWR0aF9ieXRlcyhjb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwgaW50IGNvbG9yX3BsYW5lKQogCQlpZiAoY29sb3JfcGxhbmUgPT0g MSkKIAkJCXJldHVybiAxMjg7CiAJCS8qIGZhbGwgdGhyb3VnaCAqLworCWNhc2UgSTkxNV9GT1JN QVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTOgorCQlpZiAoY29sb3JfcGxhbmUgPT0gMSkKKwkJ CXJldHVybiA2NDsKKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0Rf WV9USUxFRDoKIAkJaWYgKElTX0dFTihkZXZfcHJpdiwgMikgfHwgSEFTXzEyOF9CWVRFX1lfVElM SU5HKGRldl9wcml2KSkKIAkJCXJldHVybiAxMjg7CkBAIC0yMDA0LDggKzIwMDgsMTUgQEAgaW50 ZWxfdGlsZV93aWR0aF9ieXRlcyhjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50 IGNvbG9yX3BsYW5lKQogc3RhdGljIHVuc2lnbmVkIGludAogaW50ZWxfdGlsZV9oZWlnaHQoY29u c3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBjb2xvcl9wbGFuZSkKIHsKLQlyZXR1 cm4gaW50ZWxfdGlsZV9zaXplKHRvX2k5MTUoZmItPmRldikpIC8KLQkJaW50ZWxfdGlsZV93aWR0 aF9ieXRlcyhmYiwgY29sb3JfcGxhbmUpOworCXN3aXRjaCAoZmItPm1vZGlmaWVyKSB7CisJY2Fz ZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1M6CisJCWlmIChjb2xvcl9wbGFu ZSA9PSAxKQorCQkJcmV0dXJuIDE7CisJCS8qIGZhbGwgdGhyb3VnaCAqLworCWRlZmF1bHQ6CisJ CXJldHVybiBpbnRlbF90aWxlX3NpemUodG9faTkxNShmYi0+ZGV2KSkgLworCQkJaW50ZWxfdGls ZV93aWR0aF9ieXRlcyhmYiwgY29sb3JfcGxhbmUpOworCX0KIH0KIAogLyogUmV0dXJuIHRoZSB0 aWxlIGRpbWVuc2lvbnMgaW4gcGl4ZWwgdW5pdHMgKi8KQEAgLTIxMDQsNiArMjExNSw4IEBAIHN0 YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfc3VyZl9hbGlnbm1lbnQoY29uc3Qgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsCiAJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCiAJCQlyZXR1 cm4gMjU2ICogMTAyNDsKIAkJcmV0dXJuIDA7CisJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxF RF9HRU4xMl9SQ19DQ1M6CisJCXJldHVybiAxNiAqIDEwMjQ7CiAJY2FzZSBJOTE1X0ZPUk1BVF9N T0RfWV9USUxFRF9DQ1M6CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOgogCWNh c2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6CkBAIC0yMzAwLDcgKzIzMTMsOCBAQCBzdGF0aWMg dTMyIGludGVsX2FkanVzdF90aWxlX29mZnNldChpbnQgKngsIGludCAqeSwKIAogc3RhdGljIGJv b2wgaXNfc3VyZmFjZV9saW5lYXIodTY0IG1vZGlmaWVyLCBpbnQgY29sb3JfcGxhbmUpCiB7Ci0J cmV0dXJuIG1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUjsKKwlyZXR1cm4gbW9kaWZp ZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTElORUFSIHx8CisJICAgICAgIChtb2RpZmllciA9PSBJOTE1 X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1MgJiYgY29sb3JfcGxhbmUgPT0gMSk7CiB9 CiAKIHN0YXRpYyB1MzIgaW50ZWxfYWRqdXN0X2FsaWduZWRfb2Zmc2V0KGludCAqeCwgaW50ICp5 LApAQCAtMjQ4Nyw2ICsyNTAxLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9mYl9tb2Rp Zmllcl90b190aWxpbmcodTY0IGZiX21vZGlmaWVyKQogCQlyZXR1cm4gSTkxNV9USUxJTkdfWDsK IAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEOgogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lf VElMRURfQ0NTOgorCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTOgog CQlyZXR1cm4gSTkxNV9USUxJTkdfWTsKIAlkZWZhdWx0OgogCQlyZXR1cm4gSTkxNV9USUxJTkdf Tk9ORTsKQEAgLTI1MDcsNyArMjUyMiw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfZmJf bW9kaWZpZXJfdG9fdGlsaW5nKHU2NCBmYl9tb2RpZmllcikKICAqIHVzIGEgcmF0aW8gb2Ygb25l IGJ5dGUgaW4gdGhlIENDUyBmb3IgZWFjaCA4eDE2IHBpeGVscyBpbiB0aGUKICAqIG1haW4gc3Vy ZmFjZS4KICAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gY2NzX2Zvcm1h dHNbXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIHNrbF9jY3NfZm9y bWF0c1tdID0gewogCXsgLmZvcm1hdCA9IERSTV9GT1JNQVRfWFJHQjg4ODgsIC5kZXB0aCA9IDI0 LCAubnVtX3BsYW5lcyA9IDIsCiAJICAuY3BwID0geyA0LCAxLCB9LCAuaHN1YiA9IDgsIC52c3Vi ID0gMTYsIH0sCiAJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9YQkdSODg4OCwgLmRlcHRoID0gMjQs IC5udW1fcGxhbmVzID0gMiwKQEAgLTI1MTgsNiArMjUzMywyNCBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9mb3JtYXRfaW5mbyBjY3NfZm9ybWF0c1tdID0gewogCSAgLmNwcCA9IHsgNCwgMSwg fSwgLmhzdWIgPSA4LCAudnN1YiA9IDE2LCAuaGFzX2FscGhhID0gdHJ1ZSwgfSwKIH07CiAKKy8q CisgKiBHZW4tMTIgY29tcHJlc3Npb24gdXNlcyA0IGJpdHMgb2YgQ0NTIGRhdGEgZm9yIGVhY2gg Y2FjaGUgbGluZSBwYWlyIGluIHRoZQorICogbWFpbiBzdXJmYWNlLiBBbmQgZWFjaCA2NEIgQ0NT IGNhY2hlIGxpbmUgcmVwcmVzZW50cyBhbiBhcmVhIG9mIDR4MSBZLXRpbGVzCisgKiBpbiB0aGUg bWFpbiBzdXJmYWNlLiBXaXRoIDQgYnl0ZSBwaXhlbHMgYW5kIGVhY2ggWS10aWxlIGhhdmluZyBk aW1lbnNpb25zIG9mCisgKiAzMngzMiBwaXhlbHMsIHRoZSByYXRpbyB0dXJucyBvdXQgdG8gMUIg aW4gdGhlIENDUyBmb3IgZXZlcnkgMngzMiBwaXhlbHMgaW4KKyAqIHRoZSBtYWluIHN1cmZhY2Uu CisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIGdlbjEyX2Njc19mb3Jt YXRzW10gPSB7CisJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9YUkdCODg4OCwgLmRlcHRoID0gMjQs IC5udW1fcGxhbmVzID0gMiwKKwkgIC5jcHAgPSB7IDQsIDEsIH0sIC5oc3ViID0gMiwgLnZzdWIg PSAzMiwgfSwKKwl7IC5mb3JtYXQgPSBEUk1fRk9STUFUX1hCR1I4ODg4LCAuZGVwdGggPSAyNCwg Lm51bV9wbGFuZXMgPSAyLAorCSAgLmNwcCA9IHsgNCwgMSwgfSwgLmhzdWIgPSAyLCAudnN1YiA9 IDMyLCB9LAorCXsgLmZvcm1hdCA9IERSTV9GT1JNQVRfQVJHQjg4ODgsIC5kZXB0aCA9IDMyLCAu bnVtX3BsYW5lcyA9IDIsCisJICAuY3BwID0geyA0LCAxLCB9LCAuaHN1YiA9IDIsIC52c3ViID0g MzIsIC5oYXNfYWxwaGEgPSB0cnVlIH0sCisJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9BQkdSODg4 OCwgLmRlcHRoID0gMzIsIC5udW1fcGxhbmVzID0gMiwKKwkgIC5jcHAgPSB7IDQsIDEsIH0sIC5o c3ViID0gMiwgLnZzdWIgPSAzMiwgLmhhc19hbHBoYSA9IHRydWUgfSwKK307CisKIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICoKIGxvb2t1cF9mb3JtYXRfaW5mbyhjb25zdCBz dHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIGZvcm1hdHNbXSwKIAkJICAgaW50IG51bV9mb3JtYXRzLCB1 MzIgZm9ybWF0KQpAQCAtMjUzOCw4ICsyNTcxLDEyIEBAIGludGVsX2dldF9mb3JtYXRfaW5mbyhj b25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqY21kKQogCXN3aXRjaCAoY21kLT5tb2RpZmll clswXSkgewogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTOgogCWNhc2UgSTkxNV9G T1JNQVRfTU9EX1lmX1RJTEVEX0NDUzoKLQkJcmV0dXJuIGxvb2t1cF9mb3JtYXRfaW5mbyhjY3Nf Zm9ybWF0cywKLQkJCQkJICBBUlJBWV9TSVpFKGNjc19mb3JtYXRzKSwKKwkJcmV0dXJuIGxvb2t1 cF9mb3JtYXRfaW5mbyhza2xfY2NzX2Zvcm1hdHMsCisJCQkJCSAgQVJSQVlfU0laRShza2xfY2Nz X2Zvcm1hdHMpLAorCQkJCQkgIGNtZC0+cGl4ZWxfZm9ybWF0KTsKKwljYXNlIEk5MTVfRk9STUFU X01PRF9ZX1RJTEVEX0dFTjEyX1JDX0NDUzoKKwkJcmV0dXJuIGxvb2t1cF9mb3JtYXRfaW5mbyhn ZW4xMl9jY3NfZm9ybWF0cywKKwkJCQkJICBBUlJBWV9TSVpFKGdlbjEyX2Njc19mb3JtYXRzKSwK IAkJCQkJICBjbWQtPnBpeGVsX2Zvcm1hdCk7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIE5VTEw7CkBA IC0yNTQ4LDcgKzI1ODUsOCBAQCBpbnRlbF9nZXRfZm9ybWF0X2luZm8oY29uc3Qgc3RydWN0IGRy bV9tb2RlX2ZiX2NtZDIgKmNtZCkKIAogYm9vbCBpc19jY3NfbW9kaWZpZXIodTY0IG1vZGlmaWVy KQogewotCXJldHVybiBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1MgfHwK KwlyZXR1cm4gbW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NT IHx8CisJICAgICAgIG1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUyB8fAog CSAgICAgICBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOwogfQogCkBA IC0yNTk2LDggKzI2MzQsOSBAQCBzdGF0aWMgdTMyCiBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50 KGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgY29sb3JfcGxhbmUpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShmYi0+ZGV2KTsKKwl1 MzIgdGlsZV93aWR0aDsKIAotCWlmIChmYi0+bW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTElO RUFSKSB7CisJaWYgKGlzX3N1cmZhY2VfbGluZWFyKGZiLT5tb2RpZmllciwgY29sb3JfcGxhbmUp KSB7CiAJCXUzMiBtYXhfc3RyaWRlID0gaW50ZWxfcGxhbmVfZmJfbWF4X3N0cmlkZShkZXZfcHJp diwKIAkJCQkJCQkgICBmYi0+Zm9ybWF0LT5mb3JtYXQsCiAJCQkJCQkJICAgZmItPm1vZGlmaWVy KTsKQEAgLTI2MDYsMTMgKzI2NDUsMTQgQEAgaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChjb25z dCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50IGNvbG9yX3BsYW5lKQogCQkgKiBUbyBt YWtlIHJlbWFwcGluZyB3aXRoIGxpbmVhciBnZW5lcmFsbHkgZmVhc2libGUKIAkJICogd2UgbmVl ZCB0aGUgc3RyaWRlIHRvIGJlIHBhZ2UgYWxpZ25lZC4KIAkJICovCi0JCWlmIChmYi0+cGl0Y2hl c1tjb2xvcl9wbGFuZV0gPiBtYXhfc3RyaWRlKQorCQlpZiAoZmItPnBpdGNoZXNbY29sb3JfcGxh bmVdID4gbWF4X3N0cmlkZSAmJiAhaXNfY2NzX21vZGlmaWVyKGZiLT5tb2RpZmllcikpCiAJCQly ZXR1cm4gaW50ZWxfdGlsZV9zaXplKGRldl9wcml2KTsKIAkJZWxzZQogCQkJcmV0dXJuIDY0Owot CX0gZWxzZSB7Ci0JCXUzMiB0aWxlX3dpZHRoID0gaW50ZWxfdGlsZV93aWR0aF9ieXRlcyhmYiwg Y29sb3JfcGxhbmUpOworCX0KIAorCXRpbGVfd2lkdGggPSBpbnRlbF90aWxlX3dpZHRoX2J5dGVz KGZiLCBjb2xvcl9wbGFuZSk7CisJaWYgKGlzX2Njc19tb2RpZmllcihmYi0+bW9kaWZpZXIpICYm IGNvbG9yX3BsYW5lID09IDApIHsKIAkJLyoKIAkJICogRGlzcGxheSBXQSAjMDUzMTogc2tsLGJ4 dCxrYmwsZ2xrCiAJCSAqCkBAIC0yNjIyLDEyICsyNjYyLDE2IEBAIGludGVsX2ZiX3N0cmlkZV9h bGlnbm1lbnQoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBjb2xvcl9wbGFu ZSkKIAkJICogcmVxdWlyZSB0aGUgZW50aXJlIGZiIHRvIGFjY29tbW9kYXRlIHRoYXQgdG8gYXZv aWQKIAkJICogcG90ZW50aWFsIHJ1bnRpbWUgZXJyb3JzIGF0IHBsYW5lIGNvbmZpZ3VyYXRpb24g dGltZS4KIAkJICovCi0JCWlmIChJU19HRU4oZGV2X3ByaXYsIDkpICYmIGlzX2Njc19tb2RpZmll cihmYi0+bW9kaWZpZXIpICYmCi0JCSAgICBjb2xvcl9wbGFuZSA9PSAwICYmIGZiLT53aWR0aCA+ IDM4NDApCisJCWlmIChJU19HRU4oZGV2X3ByaXYsIDkpICYmIGZiLT53aWR0aCA+IDM4NDApCisJ CQl0aWxlX3dpZHRoICo9IDQ7CisJCS8qCisJCSAqIFRoZSBtYWluIHN1cmZhY2UgcGl0Y2ggbXVz dCBiZSBwYWRkZWQgdG8gYSBtdWx0aXBsZSBvZiBmb3VyCisJCSAqIHRpbGUgd2lkdGhzLgorCQkg Ki8KKwkJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKIAkJCXRpbGVfd2lkdGgg Kj0gNDsKLQotCQlyZXR1cm4gdGlsZV93aWR0aDsKIAl9CisJcmV0dXJuIHRpbGVfd2lkdGg7CiB9 CiAKIGJvb2wgaW50ZWxfcGxhbmVfY2FuX3JlbWFwKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGUpCkBAIC0yNzM2LDYgKzI3ODAsNyBAQCBpbnRlbF9maWxsX2ZiX2lu Zm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJaW50IGNjc194LCBjY3Nf eTsKIAogCQkJaW50ZWxfdGlsZV9kaW1zKGZiLCBpLCAmdGlsZV93aWR0aCwgJnRpbGVfaGVpZ2h0 KTsKKwogCQkJdGlsZV93aWR0aCAqPSBoc3ViOwogCQkJdGlsZV9oZWlnaHQgKj0gdnN1YjsKIApA QCAtNDExMiw3ICs0MTU3LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBza2xfcGxhbmVfc3RyaWRl X211bHQoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiAJICogVGhlIHN0cmlkZSBp cyBlaXRoZXIgZXhwcmVzc2VkIGFzIGEgbXVsdGlwbGUgb2YgNjQgYnl0ZXMgY2h1bmtzIGZvcgog CSAqIGxpbmVhciBidWZmZXJzIG9yIGluIG51bWJlciBvZiB0aWxlcyBmb3IgdGlsZWQgYnVmZmVy cy4KIAkgKi8KLQlpZiAoZmItPm1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUikKKwlp ZiAoaXNfc3VyZmFjZV9saW5lYXIoZmItPm1vZGlmaWVyLCBjb2xvcl9wbGFuZSkpCiAJCXJldHVy biA2NDsKIAllbHNlIGlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHJvdGF0aW9uKSkKIAkJcmV0 dXJuIGludGVsX3RpbGVfaGVpZ2h0KGZiLCBjb2xvcl9wbGFuZSk7CkBAIC00MjQwLDYgKzQyODUs MTAgQEAgc3RhdGljIHUzMiBza2xfcGxhbmVfY3RsX3RpbGluZyh1NjQgZmJfbW9kaWZpZXIpCiAJ CXJldHVybiBQTEFORV9DVExfVElMRURfWTsKIAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVE X0NDUzoKIAkJcmV0dXJuIFBMQU5FX0NUTF9USUxFRF9ZIHwgUExBTkVfQ1RMX1JFTkRFUl9ERUNP TVBSRVNTSU9OX0VOQUJMRTsKKwljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JD X0NDUzoKKwkJcmV0dXJuIFBMQU5FX0NUTF9USUxFRF9ZIHwKKwkJICAgICAgIFBMQU5FX0NUTF9S RU5ERVJfREVDT01QUkVTU0lPTl9FTkFCTEUgfAorCQkgICAgICAgUExBTkVfQ1RMX0NMRUFSX0NP TE9SX0RJU0FCTEU7CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQ6CiAJCXJldHVybiBQ TEFORV9DVExfVElMRURfWUY7CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOgpA QCAtMTAwNzQsNyArMTAxMjMsOSBAQCBza3lsYWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAljYXNlIFBMQU5FX0NUTF9USUxFRF9ZOgogCQlwbGFu ZV9jb25maWctPnRpbGluZyA9IEk5MTVfVElMSU5HX1k7CiAJCWlmICh2YWwgJiBQTEFORV9DVExf UkVOREVSX0RFQ09NUFJFU1NJT05fRU5BQkxFKQotCQkJZmItPm1vZGlmaWVyID0gSTkxNV9GT1JN QVRfTU9EX1lfVElMRURfQ0NTOworCQkJZmItPm1vZGlmaWVyID0gSU5URUxfR0VOKGRldl9wcml2 KSA+PSAxMiA/CisJCQkJSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTIDoKKwkJ CQlJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1M7CiAJCWVsc2UKIAkJCWZiLT5tb2RpZmllciA9 IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEOwogCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5jCmluZGV4IDgzOTQ1MDJiMDkyZC4uNjdhOTAwNTk5MDBm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMKQEAgLTU4 Myw2ICs1ODMsNyBAQCBza2xfcHJvZ3JhbV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5l LAogCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmcGxhbmVf c3RhdGUtPmNrZXk7CiAJdTMyIHN1cmZfYWRkciA9IHBsYW5lX3N0YXRlLT5jb2xvcl9wbGFuZVtj b2xvcl9wbGFuZV0ub2Zmc2V0OwogCXUzMiBzdHJpZGUgPSBza2xfcGxhbmVfc3RyaWRlKHBsYW5l X3N0YXRlLCBjb2xvcl9wbGFuZSk7CisJdTMyIGF1eF9kaXN0ID0gcGxhbmVfc3RhdGUtPmNvbG9y X3BsYW5lWzFdLm9mZnNldCAtIHN1cmZfYWRkcjsKIAl1MzIgYXV4X3N0cmlkZSA9IHNrbF9wbGFu ZV9zdHJpZGUocGxhbmVfc3RhdGUsIDEpOwogCWludCBjcnRjX3ggPSBwbGFuZV9zdGF0ZS0+dWFw aS5kc3QueDE7CiAJaW50IGNydGNfeSA9IHBsYW5lX3N0YXRlLT51YXBpLmRzdC55MTsKQEAgLTYy NCw4ICs2MjUsMTAgQEAgc2tsX3Byb2dyYW1fcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFu ZSwKIAlJOTE1X1dSSVRFX0ZXKFBMQU5FX1NUUklERShwaXBlLCBwbGFuZV9pZCksIHN0cmlkZSk7 CiAJSTkxNV9XUklURV9GVyhQTEFORV9QT1MocGlwZSwgcGxhbmVfaWQpLCAoY3J0Y195IDw8IDE2 KSB8IGNydGNfeCk7CiAJSTkxNV9XUklURV9GVyhQTEFORV9TSVpFKHBpcGUsIHBsYW5lX2lkKSwg KHNyY19oIDw8IDE2KSB8IHNyY193KTsKLQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0FVWF9ESVNUKHBp cGUsIHBsYW5lX2lkKSwKLQkJICAgICAgKHBsYW5lX3N0YXRlLT5jb2xvcl9wbGFuZVsxXS5vZmZz ZXQgLSBzdXJmX2FkZHIpIHwgYXV4X3N0cmlkZSk7CisKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA8IDEyKQorCQlhdXhfZGlzdCB8PSBhdXhfc3RyaWRlOworCUk5MTVfV1JJVEVfRlcoUExBTkVf QVVYX0RJU1QocGlwZSwgcGxhbmVfaWQpLCBhdXhfZGlzdCk7CiAKIAlpZiAoaWNsX2lzX2hkcl9w bGFuZShkZXZfcHJpdiwgcGxhbmVfaWQpKQogCQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0NVU19DVEwo cGlwZSwgcGxhbmVfaWQpLCBwbGFuZV9zdGF0ZS0+Y3VzX2N0bCk7CkBAIC0yMTAyLDcgKzIxMDUs OCBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVja19mYihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkgICAgKGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9N T0RfWV9USUxFRCB8fAogCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9U SUxFRCB8fAogCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0ND UyB8fAotCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRF9DQ1Mp KSB7CisJICAgICBmYi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEX0NDUyB8 fAorCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JD X0NDUykpIHsKIAkJRFJNX0RFQlVHX0tNUygiWS9ZZiB0aWxpbmcgbm90IHN1cHBvcnRlZCBpbiBJ Ri1JRCBtb2RlXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMjU3Myw3ICsyNTc3LDgg QEAgc3RhdGljIGNvbnN0IHU2NCBza2xfcGxhbmVfZm9ybWF0X21vZGlmaWVyc19jY3NbXSA9IHsK IAlEUk1fRk9STUFUX01PRF9JTlZBTElECiB9OwogCi1zdGF0aWMgY29uc3QgdTY0IGdlbjEyX3Bs YW5lX2Zvcm1hdF9tb2RpZmllcnNfbm9jY3NbXSA9IHsKK3N0YXRpYyBjb25zdCB1NjQgZ2VuMTJf cGxhbmVfZm9ybWF0X21vZGlmaWVyc19jY3NbXSA9IHsKKwlJOTE1X0ZPUk1BVF9NT0RfWV9USUxF RF9HRU4xMl9SQ19DQ1MsCiAJSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQsCiAJSTkxNV9GT1JNQVRf TU9EX1hfVElMRUQsCiAJRFJNX0ZPUk1BVF9NT0RfTElORUFSLApAQCAtMjc0NCw2ICsyNzQ5LDcg QEAgc3RhdGljIGJvb2wgZ2VuMTJfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQoc3RydWN0IGRy bV9wbGFuZSAqX3BsYW5lLAogCWNhc2UgRFJNX0ZPUk1BVF9NT0RfTElORUFSOgogCWNhc2UgSTkx NV9GT1JNQVRfTU9EX1hfVElMRUQ6CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRDoKKwlj YXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JDX0NDUzoKIAkJYnJlYWs7CiAJZGVm YXVsdDoKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMjc1NCw2ICsyNzYwLDkgQEAgc3RhdGljIGJvb2wg Z2VuMTJfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQoc3RydWN0IGRybV9wbGFuZSAqX3BsYW5l LAogCWNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoKIAljYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6 CiAJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4OgorCQlpZiAoaXNfY2NzX21vZGlmaWVyKG1vZGlm aWVyKSkKKwkJCXJldHVybiB0cnVlOworCQkvKiBmYWxsIHRocm91Z2ggKi8KIAljYXNlIERSTV9G T1JNQVRfUkdCNTY1OgogCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMDoKIAljYXNlIERSTV9G T1JNQVRfWEJHUjIxMDEwMTA6CkBAIC0yOTYzLDEzICsyOTcyLDExIEBAIHNrbF91bml2ZXJzYWxf cGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJZm9ybWF0 cyA9IHNrbF9nZXRfcGxhbmVfZm9ybWF0cyhkZXZfcHJpdiwgcGlwZSwKIAkJCQkJCXBsYW5lX2lk LCAmbnVtX2Zvcm1hdHMpOwogCisJcGxhbmUtPmhhc19jY3MgPSBza2xfcGxhbmVfaGFzX2Njcyhk ZXZfcHJpdiwgcGlwZSwgcGxhbmVfaWQpOwogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEy KSB7Ci0JCS8qIFRPRE86IEltcGxlbWVudCBzdXBwb3J0IGZvciBnZW4tMTIgQ0NTIG1vZGlmaWVy cyAqLwotCQlwbGFuZS0+aGFzX2NjcyA9IGZhbHNlOwotCQltb2RpZmllcnMgPSBnZW4xMl9wbGFu ZV9mb3JtYXRfbW9kaWZpZXJzX25vY2NzOworCQltb2RpZmllcnMgPSBnZW4xMl9wbGFuZV9mb3Jt YXRfbW9kaWZpZXJzX2NjczsKIAkJcGxhbmVfZnVuY3MgPSAmZ2VuMTJfcGxhbmVfZnVuY3M7CiAJ fSBlbHNlIHsKLQkJcGxhbmUtPmhhc19jY3MgPSBza2xfcGxhbmVfaGFzX2NjcyhkZXZfcHJpdiwg cGlwZSwgcGxhbmVfaWQpOwogCQlpZiAocGxhbmUtPmhhc19jY3MpCiAJCQltb2RpZmllcnMgPSBz a2xfcGxhbmVfZm9ybWF0X21vZGlmaWVyc19jY3M7CiAJCWVsc2UKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCmluZGV4IDk0ZDBmNTkzZWViNy4uMmU0NDRhMThlZDBiIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKQEAgLTY4MDAsNiArNjgwMCw3IEBAIGVudW0gewogI2RlZmluZSAgIFBMQU5FX0NUTF9Z VVY0MjJfVllVWQkJCSgzIDw8IDE2KQogI2RlZmluZSAgIFBMQU5FX0NUTF9SRU5ERVJfREVDT01Q UkVTU0lPTl9FTkFCTEUJKDEgPDwgMTUpCiAjZGVmaW5lICAgUExBTkVfQ1RMX1RSSUNLTEVfRkVF RF9ESVNBQkxFCSgxIDw8IDE0KQorI2RlZmluZSAgIFBMQU5FX0NUTF9DTEVBUl9DT0xPUl9ESVNB QkxFCQkoMSA8PCAxMykgLyogVEdMKyAqLwogI2RlZmluZSAgIFBMQU5FX0NUTF9QTEFORV9HQU1N QV9ESVNBQkxFCQkoMSA8PCAxMykgLyogUHJlLUdMSyAqLwogI2RlZmluZSAgIFBMQU5FX0NUTF9U SUxFRF9NQVNLCQkJKDB4NyA8PCAxMCkKICNkZWZpbmUgICBQTEFORV9DVExfVElMRURfTElORUFS CQkoMCA8PCAxMCkKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6E023C432C0 for ; Tue, 26 Nov 2019 00:25:12 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 508C22075C for ; Tue, 26 Nov 2019 00:25:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 508C22075C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 59A9189DB8; Tue, 26 Nov 2019 00:25:09 +0000 (UTC) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7C30189DB4 for ; Tue, 26 Nov 2019 00:25:07 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Nov 2019 16:25:07 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,243,1571727600"; d="scan'208";a="291549108" Received: from invictus.jf.intel.com ([10.54.75.159]) by orsmga001.jf.intel.com with ESMTP; 25 Nov 2019 16:25:06 -0800 From: Radhakrishna Sripada To: intel-gfx@lists.freedesktop.org Date: Mon, 25 Nov 2019 16:26:32 -0800 Message-Id: <20191126002635.5779-5-radhakrishna.sripada@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191126002635.5779-1-radhakrishna.sripada@intel.com> References: <20191126002635.5779-1-radhakrishna.sripada@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v7 4/7] drm/i915/tgl: Gen-12 render decompression X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: nanley.g.chery@intel.com, Lucas De Marchi , dhinakaran.pandiyan@intel.com, ville.syrjala@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191126002632.2Fm5DcsuCx-pyzQ6DWQdPbG-UDO0LHDQicF_GKz_ymA@z> RnJvbTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+ CgpHZW4tMTIgZGlzcGxheSBkZWNvbXByZXNzaW9uIG9wZXJhdGVzIG9uIFktdGlsZWQgY29tcHJl c3NlZCBtYWluIHN1cmZhY2UuClRoZSBDQ1MgaXMgbGluZWFyIGFuZCBoYXMgNCBiaXRzIG9mIG1l dGFkYXRhIGZvciBlYWNoIG1haW4gc3VyZmFjZSBjYWNoZQpsaW5lIHBhaXIsIGEgc2l6ZSByYXRp byBvZiAxOjI1Ni4gR2VuLTEyIGRpc3BsYXkgZGVjb21wcmVzc2lvbiBpcwppbmNvbXBhdGlibGUg d2l0aCBidWZmZXJzIGNvbXByZXNzZWQgYnkgZWFybGllciBHUFVzLCBzbyBtYWtlIHVzZSBvZiBh IG5ldwptb2RpZmllciB0byBpZGVudGlmeSBnZW4tMTIgY29tcHJlc3Npb24uIEFub3RoZXIgbm90 YWJsZSBjaGFuZ2UgaXMgdGhhdApyZW5kZXIgZGVjb21wcmVzc2lvbiBpcyBzdXBwb3J0ZWQgb24g YWxsIHBsYW5lcyBleGNlcHQgY3Vyc29yIGFuZCBvbiBhbGwKcGlwZXMuIFN0YXJ0IGJ5IGFkZGlu ZyByZW5kZXIgZGVjb21wcmVzc2lvbiBzdXBwb3J0IGZvciBbQSxYXUJHUjg4OCBwaXhlbApmb3Jt YXRzLgoKdjI6IEZpeCBjaGVja3BhdGNoIHdhcm5pbmdzIChMdWNhcykKdjM6ClJlYmFzZSwgZGlz YWJsZSBjb2xvciBjbGVhciwgc3R5bGluZyBjaGFuZ2VzIGFuZCBtb2RpZnkKaW50ZWxfdGlsZV93 aWR0aF9ieXRlcyBhbmQgaW50ZWxfdGlsZV9oZWlnaHQgdG8gaGFuZGxlIGxpbmVhciBDQ1MKCkNj OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpDYzogTWF0 dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KQ2M6IE5hbmxleSBHIENoZXJ5IDxu YW5sZXkuZy5jaGVyeUBpbnRlbC5jb20+CkNjOiBKYXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0 cmFuZC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4u cGFuZGl5YW5AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2Fz LmRlbWFyY2hpQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXkuYyB8IDg1ICsrKysrKysrKysrKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5jICB8IDIzICsrKystLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaCAgICAgICAgICAgICAgfCAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDg0 IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggODVmMDA5NTAwMzQ0Li4xZWYxOTg4YjllMTIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCkBAIC0x OTcxLDYgKzE5NzEsMTAgQEAgaW50ZWxfdGlsZV93aWR0aF9ieXRlcyhjb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwgaW50IGNvbG9yX3BsYW5lKQogCQlpZiAoY29sb3JfcGxhbmUgPT0g MSkKIAkJCXJldHVybiAxMjg7CiAJCS8qIGZhbGwgdGhyb3VnaCAqLworCWNhc2UgSTkxNV9GT1JN QVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTOgorCQlpZiAoY29sb3JfcGxhbmUgPT0gMSkKKwkJ CXJldHVybiA2NDsKKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0Rf WV9USUxFRDoKIAkJaWYgKElTX0dFTihkZXZfcHJpdiwgMikgfHwgSEFTXzEyOF9CWVRFX1lfVElM SU5HKGRldl9wcml2KSkKIAkJCXJldHVybiAxMjg7CkBAIC0yMDA0LDggKzIwMDgsMTUgQEAgaW50 ZWxfdGlsZV93aWR0aF9ieXRlcyhjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50 IGNvbG9yX3BsYW5lKQogc3RhdGljIHVuc2lnbmVkIGludAogaW50ZWxfdGlsZV9oZWlnaHQoY29u c3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBjb2xvcl9wbGFuZSkKIHsKLQlyZXR1 cm4gaW50ZWxfdGlsZV9zaXplKHRvX2k5MTUoZmItPmRldikpIC8KLQkJaW50ZWxfdGlsZV93aWR0 aF9ieXRlcyhmYiwgY29sb3JfcGxhbmUpOworCXN3aXRjaCAoZmItPm1vZGlmaWVyKSB7CisJY2Fz ZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1M6CisJCWlmIChjb2xvcl9wbGFu ZSA9PSAxKQorCQkJcmV0dXJuIDE7CisJCS8qIGZhbGwgdGhyb3VnaCAqLworCWRlZmF1bHQ6CisJ CXJldHVybiBpbnRlbF90aWxlX3NpemUodG9faTkxNShmYi0+ZGV2KSkgLworCQkJaW50ZWxfdGls ZV93aWR0aF9ieXRlcyhmYiwgY29sb3JfcGxhbmUpOworCX0KIH0KIAogLyogUmV0dXJuIHRoZSB0 aWxlIGRpbWVuc2lvbnMgaW4gcGl4ZWwgdW5pdHMgKi8KQEAgLTIxMDQsNiArMjExNSw4IEBAIHN0 YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfc3VyZl9hbGlnbm1lbnQoY29uc3Qgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsCiAJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCiAJCQlyZXR1 cm4gMjU2ICogMTAyNDsKIAkJcmV0dXJuIDA7CisJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxF RF9HRU4xMl9SQ19DQ1M6CisJCXJldHVybiAxNiAqIDEwMjQ7CiAJY2FzZSBJOTE1X0ZPUk1BVF9N T0RfWV9USUxFRF9DQ1M6CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOgogCWNh c2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6CkBAIC0yMzAwLDcgKzIzMTMsOCBAQCBzdGF0aWMg dTMyIGludGVsX2FkanVzdF90aWxlX29mZnNldChpbnQgKngsIGludCAqeSwKIAogc3RhdGljIGJv b2wgaXNfc3VyZmFjZV9saW5lYXIodTY0IG1vZGlmaWVyLCBpbnQgY29sb3JfcGxhbmUpCiB7Ci0J cmV0dXJuIG1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUjsKKwlyZXR1cm4gbW9kaWZp ZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTElORUFSIHx8CisJICAgICAgIChtb2RpZmllciA9PSBJOTE1 X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1MgJiYgY29sb3JfcGxhbmUgPT0gMSk7CiB9 CiAKIHN0YXRpYyB1MzIgaW50ZWxfYWRqdXN0X2FsaWduZWRfb2Zmc2V0KGludCAqeCwgaW50ICp5 LApAQCAtMjQ4Nyw2ICsyNTAxLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9mYl9tb2Rp Zmllcl90b190aWxpbmcodTY0IGZiX21vZGlmaWVyKQogCQlyZXR1cm4gSTkxNV9USUxJTkdfWDsK IAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEOgogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lf VElMRURfQ0NTOgorCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTOgog CQlyZXR1cm4gSTkxNV9USUxJTkdfWTsKIAlkZWZhdWx0OgogCQlyZXR1cm4gSTkxNV9USUxJTkdf Tk9ORTsKQEAgLTI1MDcsNyArMjUyMiw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfZmJf bW9kaWZpZXJfdG9fdGlsaW5nKHU2NCBmYl9tb2RpZmllcikKICAqIHVzIGEgcmF0aW8gb2Ygb25l IGJ5dGUgaW4gdGhlIENDUyBmb3IgZWFjaCA4eDE2IHBpeGVscyBpbiB0aGUKICAqIG1haW4gc3Vy ZmFjZS4KICAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gY2NzX2Zvcm1h dHNbXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIHNrbF9jY3NfZm9y bWF0c1tdID0gewogCXsgLmZvcm1hdCA9IERSTV9GT1JNQVRfWFJHQjg4ODgsIC5kZXB0aCA9IDI0 LCAubnVtX3BsYW5lcyA9IDIsCiAJICAuY3BwID0geyA0LCAxLCB9LCAuaHN1YiA9IDgsIC52c3Vi ID0gMTYsIH0sCiAJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9YQkdSODg4OCwgLmRlcHRoID0gMjQs IC5udW1fcGxhbmVzID0gMiwKQEAgLTI1MTgsNiArMjUzMywyNCBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9mb3JtYXRfaW5mbyBjY3NfZm9ybWF0c1tdID0gewogCSAgLmNwcCA9IHsgNCwgMSwg fSwgLmhzdWIgPSA4LCAudnN1YiA9IDE2LCAuaGFzX2FscGhhID0gdHJ1ZSwgfSwKIH07CiAKKy8q CisgKiBHZW4tMTIgY29tcHJlc3Npb24gdXNlcyA0IGJpdHMgb2YgQ0NTIGRhdGEgZm9yIGVhY2gg Y2FjaGUgbGluZSBwYWlyIGluIHRoZQorICogbWFpbiBzdXJmYWNlLiBBbmQgZWFjaCA2NEIgQ0NT IGNhY2hlIGxpbmUgcmVwcmVzZW50cyBhbiBhcmVhIG9mIDR4MSBZLXRpbGVzCisgKiBpbiB0aGUg bWFpbiBzdXJmYWNlLiBXaXRoIDQgYnl0ZSBwaXhlbHMgYW5kIGVhY2ggWS10aWxlIGhhdmluZyBk aW1lbnNpb25zIG9mCisgKiAzMngzMiBwaXhlbHMsIHRoZSByYXRpbyB0dXJucyBvdXQgdG8gMUIg aW4gdGhlIENDUyBmb3IgZXZlcnkgMngzMiBwaXhlbHMgaW4KKyAqIHRoZSBtYWluIHN1cmZhY2Uu CisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIGdlbjEyX2Njc19mb3Jt YXRzW10gPSB7CisJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9YUkdCODg4OCwgLmRlcHRoID0gMjQs IC5udW1fcGxhbmVzID0gMiwKKwkgIC5jcHAgPSB7IDQsIDEsIH0sIC5oc3ViID0gMiwgLnZzdWIg PSAzMiwgfSwKKwl7IC5mb3JtYXQgPSBEUk1fRk9STUFUX1hCR1I4ODg4LCAuZGVwdGggPSAyNCwg Lm51bV9wbGFuZXMgPSAyLAorCSAgLmNwcCA9IHsgNCwgMSwgfSwgLmhzdWIgPSAyLCAudnN1YiA9 IDMyLCB9LAorCXsgLmZvcm1hdCA9IERSTV9GT1JNQVRfQVJHQjg4ODgsIC5kZXB0aCA9IDMyLCAu bnVtX3BsYW5lcyA9IDIsCisJICAuY3BwID0geyA0LCAxLCB9LCAuaHN1YiA9IDIsIC52c3ViID0g MzIsIC5oYXNfYWxwaGEgPSB0cnVlIH0sCisJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9BQkdSODg4 OCwgLmRlcHRoID0gMzIsIC5udW1fcGxhbmVzID0gMiwKKwkgIC5jcHAgPSB7IDQsIDEsIH0sIC5o c3ViID0gMiwgLnZzdWIgPSAzMiwgLmhhc19hbHBoYSA9IHRydWUgfSwKK307CisKIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICoKIGxvb2t1cF9mb3JtYXRfaW5mbyhjb25zdCBz dHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIGZvcm1hdHNbXSwKIAkJICAgaW50IG51bV9mb3JtYXRzLCB1 MzIgZm9ybWF0KQpAQCAtMjUzOCw4ICsyNTcxLDEyIEBAIGludGVsX2dldF9mb3JtYXRfaW5mbyhj b25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqY21kKQogCXN3aXRjaCAoY21kLT5tb2RpZmll clswXSkgewogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTOgogCWNhc2UgSTkxNV9G T1JNQVRfTU9EX1lmX1RJTEVEX0NDUzoKLQkJcmV0dXJuIGxvb2t1cF9mb3JtYXRfaW5mbyhjY3Nf Zm9ybWF0cywKLQkJCQkJICBBUlJBWV9TSVpFKGNjc19mb3JtYXRzKSwKKwkJcmV0dXJuIGxvb2t1 cF9mb3JtYXRfaW5mbyhza2xfY2NzX2Zvcm1hdHMsCisJCQkJCSAgQVJSQVlfU0laRShza2xfY2Nz X2Zvcm1hdHMpLAorCQkJCQkgIGNtZC0+cGl4ZWxfZm9ybWF0KTsKKwljYXNlIEk5MTVfRk9STUFU X01PRF9ZX1RJTEVEX0dFTjEyX1JDX0NDUzoKKwkJcmV0dXJuIGxvb2t1cF9mb3JtYXRfaW5mbyhn ZW4xMl9jY3NfZm9ybWF0cywKKwkJCQkJICBBUlJBWV9TSVpFKGdlbjEyX2Njc19mb3JtYXRzKSwK IAkJCQkJICBjbWQtPnBpeGVsX2Zvcm1hdCk7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIE5VTEw7CkBA IC0yNTQ4LDcgKzI1ODUsOCBAQCBpbnRlbF9nZXRfZm9ybWF0X2luZm8oY29uc3Qgc3RydWN0IGRy bV9tb2RlX2ZiX2NtZDIgKmNtZCkKIAogYm9vbCBpc19jY3NfbW9kaWZpZXIodTY0IG1vZGlmaWVy KQogewotCXJldHVybiBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1MgfHwK KwlyZXR1cm4gbW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NT IHx8CisJICAgICAgIG1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUyB8fAog CSAgICAgICBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOwogfQogCkBA IC0yNTk2LDggKzI2MzQsOSBAQCBzdGF0aWMgdTMyCiBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50 KGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgY29sb3JfcGxhbmUpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShmYi0+ZGV2KTsKKwl1 MzIgdGlsZV93aWR0aDsKIAotCWlmIChmYi0+bW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTElO RUFSKSB7CisJaWYgKGlzX3N1cmZhY2VfbGluZWFyKGZiLT5tb2RpZmllciwgY29sb3JfcGxhbmUp KSB7CiAJCXUzMiBtYXhfc3RyaWRlID0gaW50ZWxfcGxhbmVfZmJfbWF4X3N0cmlkZShkZXZfcHJp diwKIAkJCQkJCQkgICBmYi0+Zm9ybWF0LT5mb3JtYXQsCiAJCQkJCQkJICAgZmItPm1vZGlmaWVy KTsKQEAgLTI2MDYsMTMgKzI2NDUsMTQgQEAgaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChjb25z dCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50IGNvbG9yX3BsYW5lKQogCQkgKiBUbyBt YWtlIHJlbWFwcGluZyB3aXRoIGxpbmVhciBnZW5lcmFsbHkgZmVhc2libGUKIAkJICogd2UgbmVl ZCB0aGUgc3RyaWRlIHRvIGJlIHBhZ2UgYWxpZ25lZC4KIAkJICovCi0JCWlmIChmYi0+cGl0Y2hl c1tjb2xvcl9wbGFuZV0gPiBtYXhfc3RyaWRlKQorCQlpZiAoZmItPnBpdGNoZXNbY29sb3JfcGxh bmVdID4gbWF4X3N0cmlkZSAmJiAhaXNfY2NzX21vZGlmaWVyKGZiLT5tb2RpZmllcikpCiAJCQly ZXR1cm4gaW50ZWxfdGlsZV9zaXplKGRldl9wcml2KTsKIAkJZWxzZQogCQkJcmV0dXJuIDY0Owot CX0gZWxzZSB7Ci0JCXUzMiB0aWxlX3dpZHRoID0gaW50ZWxfdGlsZV93aWR0aF9ieXRlcyhmYiwg Y29sb3JfcGxhbmUpOworCX0KIAorCXRpbGVfd2lkdGggPSBpbnRlbF90aWxlX3dpZHRoX2J5dGVz KGZiLCBjb2xvcl9wbGFuZSk7CisJaWYgKGlzX2Njc19tb2RpZmllcihmYi0+bW9kaWZpZXIpICYm IGNvbG9yX3BsYW5lID09IDApIHsKIAkJLyoKIAkJICogRGlzcGxheSBXQSAjMDUzMTogc2tsLGJ4 dCxrYmwsZ2xrCiAJCSAqCkBAIC0yNjIyLDEyICsyNjYyLDE2IEBAIGludGVsX2ZiX3N0cmlkZV9h bGlnbm1lbnQoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBjb2xvcl9wbGFu ZSkKIAkJICogcmVxdWlyZSB0aGUgZW50aXJlIGZiIHRvIGFjY29tbW9kYXRlIHRoYXQgdG8gYXZv aWQKIAkJICogcG90ZW50aWFsIHJ1bnRpbWUgZXJyb3JzIGF0IHBsYW5lIGNvbmZpZ3VyYXRpb24g dGltZS4KIAkJICovCi0JCWlmIChJU19HRU4oZGV2X3ByaXYsIDkpICYmIGlzX2Njc19tb2RpZmll cihmYi0+bW9kaWZpZXIpICYmCi0JCSAgICBjb2xvcl9wbGFuZSA9PSAwICYmIGZiLT53aWR0aCA+ IDM4NDApCisJCWlmIChJU19HRU4oZGV2X3ByaXYsIDkpICYmIGZiLT53aWR0aCA+IDM4NDApCisJ CQl0aWxlX3dpZHRoICo9IDQ7CisJCS8qCisJCSAqIFRoZSBtYWluIHN1cmZhY2UgcGl0Y2ggbXVz dCBiZSBwYWRkZWQgdG8gYSBtdWx0aXBsZSBvZiBmb3VyCisJCSAqIHRpbGUgd2lkdGhzLgorCQkg Ki8KKwkJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKIAkJCXRpbGVfd2lkdGgg Kj0gNDsKLQotCQlyZXR1cm4gdGlsZV93aWR0aDsKIAl9CisJcmV0dXJuIHRpbGVfd2lkdGg7CiB9 CiAKIGJvb2wgaW50ZWxfcGxhbmVfY2FuX3JlbWFwKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGUpCkBAIC0yNzM2LDYgKzI3ODAsNyBAQCBpbnRlbF9maWxsX2ZiX2lu Zm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJaW50IGNjc194LCBjY3Nf eTsKIAogCQkJaW50ZWxfdGlsZV9kaW1zKGZiLCBpLCAmdGlsZV93aWR0aCwgJnRpbGVfaGVpZ2h0 KTsKKwogCQkJdGlsZV93aWR0aCAqPSBoc3ViOwogCQkJdGlsZV9oZWlnaHQgKj0gdnN1YjsKIApA QCAtNDExMiw3ICs0MTU3LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBza2xfcGxhbmVfc3RyaWRl X211bHQoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiAJICogVGhlIHN0cmlkZSBp cyBlaXRoZXIgZXhwcmVzc2VkIGFzIGEgbXVsdGlwbGUgb2YgNjQgYnl0ZXMgY2h1bmtzIGZvcgog CSAqIGxpbmVhciBidWZmZXJzIG9yIGluIG51bWJlciBvZiB0aWxlcyBmb3IgdGlsZWQgYnVmZmVy cy4KIAkgKi8KLQlpZiAoZmItPm1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUikKKwlp ZiAoaXNfc3VyZmFjZV9saW5lYXIoZmItPm1vZGlmaWVyLCBjb2xvcl9wbGFuZSkpCiAJCXJldHVy biA2NDsKIAllbHNlIGlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHJvdGF0aW9uKSkKIAkJcmV0 dXJuIGludGVsX3RpbGVfaGVpZ2h0KGZiLCBjb2xvcl9wbGFuZSk7CkBAIC00MjQwLDYgKzQyODUs MTAgQEAgc3RhdGljIHUzMiBza2xfcGxhbmVfY3RsX3RpbGluZyh1NjQgZmJfbW9kaWZpZXIpCiAJ CXJldHVybiBQTEFORV9DVExfVElMRURfWTsKIAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVE X0NDUzoKIAkJcmV0dXJuIFBMQU5FX0NUTF9USUxFRF9ZIHwgUExBTkVfQ1RMX1JFTkRFUl9ERUNP TVBSRVNTSU9OX0VOQUJMRTsKKwljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JD X0NDUzoKKwkJcmV0dXJuIFBMQU5FX0NUTF9USUxFRF9ZIHwKKwkJICAgICAgIFBMQU5FX0NUTF9S RU5ERVJfREVDT01QUkVTU0lPTl9FTkFCTEUgfAorCQkgICAgICAgUExBTkVfQ1RMX0NMRUFSX0NP TE9SX0RJU0FCTEU7CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQ6CiAJCXJldHVybiBQ TEFORV9DVExfVElMRURfWUY7CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOgpA QCAtMTAwNzQsNyArMTAxMjMsOSBAQCBza3lsYWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAljYXNlIFBMQU5FX0NUTF9USUxFRF9ZOgogCQlwbGFu ZV9jb25maWctPnRpbGluZyA9IEk5MTVfVElMSU5HX1k7CiAJCWlmICh2YWwgJiBQTEFORV9DVExf UkVOREVSX0RFQ09NUFJFU1NJT05fRU5BQkxFKQotCQkJZmItPm1vZGlmaWVyID0gSTkxNV9GT1JN QVRfTU9EX1lfVElMRURfQ0NTOworCQkJZmItPm1vZGlmaWVyID0gSU5URUxfR0VOKGRldl9wcml2 KSA+PSAxMiA/CisJCQkJSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTIDoKKwkJ CQlJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1M7CiAJCWVsc2UKIAkJCWZiLT5tb2RpZmllciA9 IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEOwogCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5jCmluZGV4IDgzOTQ1MDJiMDkyZC4uNjdhOTAwNTk5MDBm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMKQEAgLTU4 Myw2ICs1ODMsNyBAQCBza2xfcHJvZ3JhbV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5l LAogCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmcGxhbmVf c3RhdGUtPmNrZXk7CiAJdTMyIHN1cmZfYWRkciA9IHBsYW5lX3N0YXRlLT5jb2xvcl9wbGFuZVtj b2xvcl9wbGFuZV0ub2Zmc2V0OwogCXUzMiBzdHJpZGUgPSBza2xfcGxhbmVfc3RyaWRlKHBsYW5l X3N0YXRlLCBjb2xvcl9wbGFuZSk7CisJdTMyIGF1eF9kaXN0ID0gcGxhbmVfc3RhdGUtPmNvbG9y X3BsYW5lWzFdLm9mZnNldCAtIHN1cmZfYWRkcjsKIAl1MzIgYXV4X3N0cmlkZSA9IHNrbF9wbGFu ZV9zdHJpZGUocGxhbmVfc3RhdGUsIDEpOwogCWludCBjcnRjX3ggPSBwbGFuZV9zdGF0ZS0+dWFw aS5kc3QueDE7CiAJaW50IGNydGNfeSA9IHBsYW5lX3N0YXRlLT51YXBpLmRzdC55MTsKQEAgLTYy NCw4ICs2MjUsMTAgQEAgc2tsX3Byb2dyYW1fcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFu ZSwKIAlJOTE1X1dSSVRFX0ZXKFBMQU5FX1NUUklERShwaXBlLCBwbGFuZV9pZCksIHN0cmlkZSk7 CiAJSTkxNV9XUklURV9GVyhQTEFORV9QT1MocGlwZSwgcGxhbmVfaWQpLCAoY3J0Y195IDw8IDE2 KSB8IGNydGNfeCk7CiAJSTkxNV9XUklURV9GVyhQTEFORV9TSVpFKHBpcGUsIHBsYW5lX2lkKSwg KHNyY19oIDw8IDE2KSB8IHNyY193KTsKLQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0FVWF9ESVNUKHBp cGUsIHBsYW5lX2lkKSwKLQkJICAgICAgKHBsYW5lX3N0YXRlLT5jb2xvcl9wbGFuZVsxXS5vZmZz ZXQgLSBzdXJmX2FkZHIpIHwgYXV4X3N0cmlkZSk7CisKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA8IDEyKQorCQlhdXhfZGlzdCB8PSBhdXhfc3RyaWRlOworCUk5MTVfV1JJVEVfRlcoUExBTkVf QVVYX0RJU1QocGlwZSwgcGxhbmVfaWQpLCBhdXhfZGlzdCk7CiAKIAlpZiAoaWNsX2lzX2hkcl9w bGFuZShkZXZfcHJpdiwgcGxhbmVfaWQpKQogCQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0NVU19DVEwo cGlwZSwgcGxhbmVfaWQpLCBwbGFuZV9zdGF0ZS0+Y3VzX2N0bCk7CkBAIC0yMTAyLDcgKzIxMDUs OCBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVja19mYihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkgICAgKGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9N T0RfWV9USUxFRCB8fAogCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9U SUxFRCB8fAogCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0ND UyB8fAotCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRF9DQ1Mp KSB7CisJICAgICBmYi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEX0NDUyB8 fAorCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JD X0NDUykpIHsKIAkJRFJNX0RFQlVHX0tNUygiWS9ZZiB0aWxpbmcgbm90IHN1cHBvcnRlZCBpbiBJ Ri1JRCBtb2RlXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMjU3Myw3ICsyNTc3LDgg QEAgc3RhdGljIGNvbnN0IHU2NCBza2xfcGxhbmVfZm9ybWF0X21vZGlmaWVyc19jY3NbXSA9IHsK IAlEUk1fRk9STUFUX01PRF9JTlZBTElECiB9OwogCi1zdGF0aWMgY29uc3QgdTY0IGdlbjEyX3Bs YW5lX2Zvcm1hdF9tb2RpZmllcnNfbm9jY3NbXSA9IHsKK3N0YXRpYyBjb25zdCB1NjQgZ2VuMTJf cGxhbmVfZm9ybWF0X21vZGlmaWVyc19jY3NbXSA9IHsKKwlJOTE1X0ZPUk1BVF9NT0RfWV9USUxF RF9HRU4xMl9SQ19DQ1MsCiAJSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQsCiAJSTkxNV9GT1JNQVRf TU9EX1hfVElMRUQsCiAJRFJNX0ZPUk1BVF9NT0RfTElORUFSLApAQCAtMjc0NCw2ICsyNzQ5LDcg QEAgc3RhdGljIGJvb2wgZ2VuMTJfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQoc3RydWN0IGRy bV9wbGFuZSAqX3BsYW5lLAogCWNhc2UgRFJNX0ZPUk1BVF9NT0RfTElORUFSOgogCWNhc2UgSTkx NV9GT1JNQVRfTU9EX1hfVElMRUQ6CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRDoKKwlj YXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JDX0NDUzoKIAkJYnJlYWs7CiAJZGVm YXVsdDoKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMjc1NCw2ICsyNzYwLDkgQEAgc3RhdGljIGJvb2wg Z2VuMTJfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQoc3RydWN0IGRybV9wbGFuZSAqX3BsYW5l LAogCWNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoKIAljYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6 CiAJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4OgorCQlpZiAoaXNfY2NzX21vZGlmaWVyKG1vZGlm aWVyKSkKKwkJCXJldHVybiB0cnVlOworCQkvKiBmYWxsIHRocm91Z2ggKi8KIAljYXNlIERSTV9G T1JNQVRfUkdCNTY1OgogCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMDoKIAljYXNlIERSTV9G T1JNQVRfWEJHUjIxMDEwMTA6CkBAIC0yOTYzLDEzICsyOTcyLDExIEBAIHNrbF91bml2ZXJzYWxf cGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJZm9ybWF0 cyA9IHNrbF9nZXRfcGxhbmVfZm9ybWF0cyhkZXZfcHJpdiwgcGlwZSwKIAkJCQkJCXBsYW5lX2lk LCAmbnVtX2Zvcm1hdHMpOwogCisJcGxhbmUtPmhhc19jY3MgPSBza2xfcGxhbmVfaGFzX2Njcyhk ZXZfcHJpdiwgcGlwZSwgcGxhbmVfaWQpOwogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEy KSB7Ci0JCS8qIFRPRE86IEltcGxlbWVudCBzdXBwb3J0IGZvciBnZW4tMTIgQ0NTIG1vZGlmaWVy cyAqLwotCQlwbGFuZS0+aGFzX2NjcyA9IGZhbHNlOwotCQltb2RpZmllcnMgPSBnZW4xMl9wbGFu ZV9mb3JtYXRfbW9kaWZpZXJzX25vY2NzOworCQltb2RpZmllcnMgPSBnZW4xMl9wbGFuZV9mb3Jt YXRfbW9kaWZpZXJzX2NjczsKIAkJcGxhbmVfZnVuY3MgPSAmZ2VuMTJfcGxhbmVfZnVuY3M7CiAJ fSBlbHNlIHsKLQkJcGxhbmUtPmhhc19jY3MgPSBza2xfcGxhbmVfaGFzX2NjcyhkZXZfcHJpdiwg cGlwZSwgcGxhbmVfaWQpOwogCQlpZiAocGxhbmUtPmhhc19jY3MpCiAJCQltb2RpZmllcnMgPSBz a2xfcGxhbmVfZm9ybWF0X21vZGlmaWVyc19jY3M7CiAJCWVsc2UKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCmluZGV4IDk0ZDBmNTkzZWViNy4uMmU0NDRhMThlZDBiIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKQEAgLTY4MDAsNiArNjgwMCw3IEBAIGVudW0gewogI2RlZmluZSAgIFBMQU5FX0NUTF9Z VVY0MjJfVllVWQkJCSgzIDw8IDE2KQogI2RlZmluZSAgIFBMQU5FX0NUTF9SRU5ERVJfREVDT01Q UkVTU0lPTl9FTkFCTEUJKDEgPDwgMTUpCiAjZGVmaW5lICAgUExBTkVfQ1RMX1RSSUNLTEVfRkVF RF9ESVNBQkxFCSgxIDw8IDE0KQorI2RlZmluZSAgIFBMQU5FX0NUTF9DTEVBUl9DT0xPUl9ESVNB QkxFCQkoMSA8PCAxMykgLyogVEdMKyAqLwogI2RlZmluZSAgIFBMQU5FX0NUTF9QTEFORV9HQU1N QV9ESVNBQkxFCQkoMSA8PCAxMykgLyogUHJlLUdMSyAqLwogI2RlZmluZSAgIFBMQU5FX0NUTF9U SUxFRF9NQVNLCQkJKDB4NyA8PCAxMCkKICNkZWZpbmUgICBQTEFORV9DVExfVElMRURfTElORUFS CQkoMCA8PCAxMCkKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4