From mboxrd@z Thu Jan 1 00:00:00 1970 From: Radhakrishna Sripada Subject: [PATCH v6 04/10] drm/i915/tgl: Gen-12 render decompression Date: Mon, 28 Oct 2019 13:40:35 -0700 Message-ID: <20191028204041.13507-5-radhakrishna.sripada@intel.com> References: <20191028204041.13507-1-radhakrishna.sripada@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6E4506EA18 for ; Mon, 28 Oct 2019 20:38:48 +0000 (UTC) In-Reply-To: <20191028204041.13507-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 ZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggYjhlZjk5ZWFjMjU0Li4xOTRlNTA4NDMwZGIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCkBAIC0x OTM2LDYgKzE5MzYsMTAgQEAgaW50ZWxfdGlsZV93aWR0aF9ieXRlcyhjb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwgaW50IGNvbG9yX3BsYW5lKQogCQlpZiAoY29sb3JfcGxhbmUgPT0g MSkKIAkJCXJldHVybiAxMjg7CiAJCS8qIGZhbGwgdGhyb3VnaCAqLworCWNhc2UgSTkxNV9GT1JN QVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTOgorCQlpZiAoY29sb3JfcGxhbmUgPT0gMSkKKwkJ CXJldHVybiA2NDsKKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0Rf WV9USUxFRDoKIAkJaWYgKElTX0dFTihkZXZfcHJpdiwgMikgfHwgSEFTXzEyOF9CWVRFX1lfVElM SU5HKGRldl9wcml2KSkKIAkJCXJldHVybiAxMjg7CkBAIC0xOTY5LDggKzE5NzMsMTUgQEAgaW50 ZWxfdGlsZV93aWR0aF9ieXRlcyhjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50 IGNvbG9yX3BsYW5lKQogc3RhdGljIHVuc2lnbmVkIGludAogaW50ZWxfdGlsZV9oZWlnaHQoY29u c3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBjb2xvcl9wbGFuZSkKIHsKLQlyZXR1 cm4gaW50ZWxfdGlsZV9zaXplKHRvX2k5MTUoZmItPmRldikpIC8KLQkJaW50ZWxfdGlsZV93aWR0 aF9ieXRlcyhmYiwgY29sb3JfcGxhbmUpOworCXN3aXRjaCAoZmItPm1vZGlmaWVyKSB7CisJY2Fz ZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1M6CisJCWlmIChjb2xvcl9wbGFu ZSA9PSAxKQorCQkJcmV0dXJuIDE7CisJCS8qIGZhbGwgdGhyb3VnaCAqLworCWRlZmF1bHQ6CisJ CXJldHVybiBpbnRlbF90aWxlX3NpemUodG9faTkxNShmYi0+ZGV2KSkgLworCQkJaW50ZWxfdGls ZV93aWR0aF9ieXRlcyhmYiwgY29sb3JfcGxhbmUpOworCX0KIH0KIAogLyogUmV0dXJuIHRoZSB0 aWxlIGRpbWVuc2lvbnMgaW4gcGl4ZWwgdW5pdHMgKi8KQEAgLTIwNjksNiArMjA4MCw4IEBAIHN0 YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfc3VyZl9hbGlnbm1lbnQoY29uc3Qgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsCiAJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCiAJCQlyZXR1 cm4gMjU2ICogMTAyNDsKIAkJcmV0dXJuIDA7CisJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxF RF9HRU4xMl9SQ19DQ1M6CisJCXJldHVybiAxNiAqIDEwMjQ7CiAJY2FzZSBJOTE1X0ZPUk1BVF9N T0RfWV9USUxFRF9DQ1M6CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOgogCWNh c2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6CkBAIC0yMjY1LDcgKzIyNzgsOCBAQCBzdGF0aWMg dTMyIGludGVsX2FkanVzdF90aWxlX29mZnNldChpbnQgKngsIGludCAqeSwKIAogc3RhdGljIGJv b2wgaXNfc3VyZmFjZV9saW5lYXIodTY0IG1vZGlmaWVyLCBpbnQgY29sb3JfcGxhbmUpCiB7Ci0J cmV0dXJuIG1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUjsKKwlyZXR1cm4gbW9kaWZp ZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTElORUFSIHx8CisJICAgICAgIChtb2RpZmllciA9PSBJOTE1 X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1MgJiYgY29sb3JfcGxhbmUgPT0gMSk7CiB9 CiAKIHN0YXRpYyB1MzIgaW50ZWxfYWRqdXN0X2FsaWduZWRfb2Zmc2V0KGludCAqeCwgaW50ICp5 LApAQCAtMjQ1Miw2ICsyNDY2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9mYl9tb2Rp Zmllcl90b190aWxpbmcodTY0IGZiX21vZGlmaWVyKQogCQlyZXR1cm4gSTkxNV9USUxJTkdfWDsK IAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEOgogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lf VElMRURfQ0NTOgorCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTOgog CQlyZXR1cm4gSTkxNV9USUxJTkdfWTsKIAlkZWZhdWx0OgogCQlyZXR1cm4gSTkxNV9USUxJTkdf Tk9ORTsKQEAgLTI0NzIsNyArMjQ4Nyw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfZmJf bW9kaWZpZXJfdG9fdGlsaW5nKHU2NCBmYl9tb2RpZmllcikKICAqIHVzIGEgcmF0aW8gb2Ygb25l IGJ5dGUgaW4gdGhlIENDUyBmb3IgZWFjaCA4eDE2IHBpeGVscyBpbiB0aGUKICAqIG1haW4gc3Vy ZmFjZS4KICAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gY2NzX2Zvcm1h dHNbXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIHNrbF9jY3NfZm9y bWF0c1tdID0gewogCXsgLmZvcm1hdCA9IERSTV9GT1JNQVRfWFJHQjg4ODgsIC5kZXB0aCA9IDI0 LCAubnVtX3BsYW5lcyA9IDIsCiAJICAuY3BwID0geyA0LCAxLCB9LCAuaHN1YiA9IDgsIC52c3Vi ID0gMTYsIH0sCiAJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9YQkdSODg4OCwgLmRlcHRoID0gMjQs IC5udW1fcGxhbmVzID0gMiwKQEAgLTI0ODMsNiArMjQ5OCwyNCBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9mb3JtYXRfaW5mbyBjY3NfZm9ybWF0c1tdID0gewogCSAgLmNwcCA9IHsgNCwgMSwg fSwgLmhzdWIgPSA4LCAudnN1YiA9IDE2LCAuaGFzX2FscGhhID0gdHJ1ZSwgfSwKIH07CiAKKy8q CisgKiBHZW4tMTIgY29tcHJlc3Npb24gdXNlcyA0IGJpdHMgb2YgQ0NTIGRhdGEgZm9yIGVhY2gg Y2FjaGUgbGluZSBwYWlyIGluIHRoZQorICogbWFpbiBzdXJmYWNlLiBBbmQgZWFjaCA2NEIgQ0NT IGNhY2hlIGxpbmUgcmVwcmVzZW50cyBhbiBhcmVhIG9mIDR4MSBZLXRpbGVzCisgKiBpbiB0aGUg bWFpbiBzdXJmYWNlLiBXaXRoIDQgYnl0ZSBwaXhlbHMgYW5kIGVhY2ggWS10aWxlIGhhdmluZyBk aW1lbnNpb25zIG9mCisgKiAzMngzMiBwaXhlbHMsIHRoZSByYXRpbyB0dXJucyBvdXQgdG8gMUIg aW4gdGhlIENDUyBmb3IgZXZlcnkgMngzMiBwaXhlbHMgaW4KKyAqIHRoZSBtYWluIHN1cmZhY2Uu CisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIGdlbjEyX2Njc19mb3Jt YXRzW10gPSB7CisJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9YUkdCODg4OCwgLmRlcHRoID0gMjQs IC5udW1fcGxhbmVzID0gMiwKKwkgIC5jcHAgPSB7IDQsIDEsIH0sIC5oc3ViID0gMiwgLnZzdWIg PSAzMiwgfSwKKwl7IC5mb3JtYXQgPSBEUk1fRk9STUFUX1hCR1I4ODg4LCAuZGVwdGggPSAyNCwg Lm51bV9wbGFuZXMgPSAyLAorCSAgLmNwcCA9IHsgNCwgMSwgfSwgLmhzdWIgPSAyLCAudnN1YiA9 IDMyLCB9LAorCXsgLmZvcm1hdCA9IERSTV9GT1JNQVRfQVJHQjg4ODgsIC5kZXB0aCA9IDMyLCAu bnVtX3BsYW5lcyA9IDIsCisJICAuY3BwID0geyA0LCAxLCB9LCAuaHN1YiA9IDIsIC52c3ViID0g MzIsIC5oYXNfYWxwaGEgPSB0cnVlIH0sCisJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9BQkdSODg4 OCwgLmRlcHRoID0gMzIsIC5udW1fcGxhbmVzID0gMiwKKwkgIC5jcHAgPSB7IDQsIDEsIH0sIC5o c3ViID0gMiwgLnZzdWIgPSAzMiwgLmhhc19hbHBoYSA9IHRydWUgfSwKK307CisKIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICoKIGxvb2t1cF9mb3JtYXRfaW5mbyhjb25zdCBz dHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIGZvcm1hdHNbXSwKIAkJICAgaW50IG51bV9mb3JtYXRzLCB1 MzIgZm9ybWF0KQpAQCAtMjUwMyw4ICsyNTM2LDEyIEBAIGludGVsX2dldF9mb3JtYXRfaW5mbyhj b25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqY21kKQogCXN3aXRjaCAoY21kLT5tb2RpZmll clswXSkgewogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTOgogCWNhc2UgSTkxNV9G T1JNQVRfTU9EX1lmX1RJTEVEX0NDUzoKLQkJcmV0dXJuIGxvb2t1cF9mb3JtYXRfaW5mbyhjY3Nf Zm9ybWF0cywKLQkJCQkJICBBUlJBWV9TSVpFKGNjc19mb3JtYXRzKSwKKwkJcmV0dXJuIGxvb2t1 cF9mb3JtYXRfaW5mbyhza2xfY2NzX2Zvcm1hdHMsCisJCQkJCSAgQVJSQVlfU0laRShza2xfY2Nz X2Zvcm1hdHMpLAorCQkJCQkgIGNtZC0+cGl4ZWxfZm9ybWF0KTsKKwljYXNlIEk5MTVfRk9STUFU X01PRF9ZX1RJTEVEX0dFTjEyX1JDX0NDUzoKKwkJcmV0dXJuIGxvb2t1cF9mb3JtYXRfaW5mbyhn ZW4xMl9jY3NfZm9ybWF0cywKKwkJCQkJICBBUlJBWV9TSVpFKGdlbjEyX2Njc19mb3JtYXRzKSwK IAkJCQkJICBjbWQtPnBpeGVsX2Zvcm1hdCk7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIE5VTEw7CkBA IC0yNTEzLDcgKzI1NTAsOCBAQCBpbnRlbF9nZXRfZm9ybWF0X2luZm8oY29uc3Qgc3RydWN0IGRy bV9tb2RlX2ZiX2NtZDIgKmNtZCkKIAogYm9vbCBpc19jY3NfbW9kaWZpZXIodTY0IG1vZGlmaWVy KQogewotCXJldHVybiBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1MgfHwK KwlyZXR1cm4gbW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NT IHx8CisJICAgICAgIG1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUyB8fAog CSAgICAgICBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOwogfQogCkBA IC0yNTU4LDggKzI1OTYsOSBAQCBzdGF0aWMgdTMyCiBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50 KGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgY29sb3JfcGxhbmUpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShmYi0+ZGV2KTsKKwl1 MzIgdGlsZV93aWR0aDsKIAotCWlmIChmYi0+bW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTElO RUFSKSB7CisJaWYgKGlzX3N1cmZhY2VfbGluZWFyKGZiLT5tb2RpZmllciwgY29sb3JfcGxhbmUp KSB7CiAJCXUzMiBtYXhfc3RyaWRlID0gaW50ZWxfcGxhbmVfZmJfbWF4X3N0cmlkZShkZXZfcHJp diwKIAkJCQkJCQkgICBmYi0+Zm9ybWF0LT5mb3JtYXQsCiAJCQkJCQkJICAgZmItPm1vZGlmaWVy KTsKQEAgLTI1NjgsMTMgKzI2MDcsMTQgQEAgaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChjb25z dCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50IGNvbG9yX3BsYW5lKQogCQkgKiBUbyBt YWtlIHJlbWFwcGluZyB3aXRoIGxpbmVhciBnZW5lcmFsbHkgZmVhc2libGUKIAkJICogd2UgbmVl ZCB0aGUgc3RyaWRlIHRvIGJlIHBhZ2UgYWxpZ25lZC4KIAkJICovCi0JCWlmIChmYi0+cGl0Y2hl c1tjb2xvcl9wbGFuZV0gPiBtYXhfc3RyaWRlKQorCQlpZiAoZmItPnBpdGNoZXNbY29sb3JfcGxh bmVdID4gbWF4X3N0cmlkZSAmJiAhaXNfY2NzX21vZGlmaWVyKGZiLT5tb2RpZmllcikpCiAJCQly ZXR1cm4gaW50ZWxfdGlsZV9zaXplKGRldl9wcml2KTsKIAkJZWxzZQogCQkJcmV0dXJuIDY0Owot CX0gZWxzZSB7Ci0JCXUzMiB0aWxlX3dpZHRoID0gaW50ZWxfdGlsZV93aWR0aF9ieXRlcyhmYiwg Y29sb3JfcGxhbmUpOworCX0KIAorCXRpbGVfd2lkdGggPSBpbnRlbF90aWxlX3dpZHRoX2J5dGVz KGZiLCBjb2xvcl9wbGFuZSk7CisJaWYgKGlzX2Njc19tb2RpZmllcihmYi0+bW9kaWZpZXIpICYm IGNvbG9yX3BsYW5lID09IDApIHsKIAkJLyoKIAkJICogRGlzcGxheSBXQSAjMDUzMTogc2tsLGJ4 dCxrYmwsZ2xrCiAJCSAqCkBAIC0yNTg0LDEyICsyNjI0LDE2IEBAIGludGVsX2ZiX3N0cmlkZV9h bGlnbm1lbnQoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBjb2xvcl9wbGFu ZSkKIAkJICogcmVxdWlyZSB0aGUgZW50aXJlIGZiIHRvIGFjY29tbW9kYXRlIHRoYXQgdG8gYXZv aWQKIAkJICogcG90ZW50aWFsIHJ1bnRpbWUgZXJyb3JzIGF0IHBsYW5lIGNvbmZpZ3VyYXRpb24g dGltZS4KIAkJICovCi0JCWlmIChJU19HRU4oZGV2X3ByaXYsIDkpICYmIGlzX2Njc19tb2RpZmll cihmYi0+bW9kaWZpZXIpICYmCi0JCSAgICBjb2xvcl9wbGFuZSA9PSAwICYmIGZiLT53aWR0aCA+ IDM4NDApCisJCWlmIChJU19HRU4oZGV2X3ByaXYsIDkpICYmIGZiLT53aWR0aCA+IDM4NDApCisJ CQl0aWxlX3dpZHRoICo9IDQ7CisJCS8qCisJCSAqIFRoZSBtYWluIHN1cmZhY2UgcGl0Y2ggbXVz dCBiZSBwYWRkZWQgdG8gYSBtdWx0aXBsZSBvZiBmb3VyCisJCSAqIHRpbGUgd2lkdGhzLgorCQkg Ki8KKwkJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKIAkJCXRpbGVfd2lkdGgg Kj0gNDsKLQotCQlyZXR1cm4gdGlsZV93aWR0aDsKIAl9CisJcmV0dXJuIHRpbGVfd2lkdGg7CiB9 CiAKIGJvb2wgaW50ZWxfcGxhbmVfY2FuX3JlbWFwKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGUpCkBAIC0yNjk4LDYgKzI3NDIsNyBAQCBpbnRlbF9maWxsX2ZiX2lu Zm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJaW50IGNjc194LCBjY3Nf eTsKIAogCQkJaW50ZWxfdGlsZV9kaW1zKGZiLCBpLCAmdGlsZV93aWR0aCwgJnRpbGVfaGVpZ2h0 KTsKKwogCQkJdGlsZV93aWR0aCAqPSBoc3ViOwogCQkJdGlsZV9oZWlnaHQgKj0gdnN1YjsKIApA QCAtNDA0MSw3ICs0MDg2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBza2xfcGxhbmVfc3RyaWRl X211bHQoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiAJICogVGhlIHN0cmlkZSBp cyBlaXRoZXIgZXhwcmVzc2VkIGFzIGEgbXVsdGlwbGUgb2YgNjQgYnl0ZXMgY2h1bmtzIGZvcgog CSAqIGxpbmVhciBidWZmZXJzIG9yIGluIG51bWJlciBvZiB0aWxlcyBmb3IgdGlsZWQgYnVmZmVy cy4KIAkgKi8KLQlpZiAoZmItPm1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUikKKwlp ZiAoaXNfc3VyZmFjZV9saW5lYXIoZmItPm1vZGlmaWVyLCBjb2xvcl9wbGFuZSkpCiAJCXJldHVy biA2NDsKIAllbHNlIGlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHJvdGF0aW9uKSkKIAkJcmV0 dXJuIGludGVsX3RpbGVfaGVpZ2h0KGZiLCBjb2xvcl9wbGFuZSk7CkBAIC00MTY3LDYgKzQyMTIs MTAgQEAgc3RhdGljIHUzMiBza2xfcGxhbmVfY3RsX3RpbGluZyh1NjQgZmJfbW9kaWZpZXIpCiAJ CXJldHVybiBQTEFORV9DVExfVElMRURfWTsKIAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVE X0NDUzoKIAkJcmV0dXJuIFBMQU5FX0NUTF9USUxFRF9ZIHwgUExBTkVfQ1RMX1JFTkRFUl9ERUNP TVBSRVNTSU9OX0VOQUJMRTsKKwljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JD X0NDUzoKKwkJcmV0dXJuIFBMQU5FX0NUTF9USUxFRF9ZIHwKKwkJICAgICAgIFBMQU5FX0NUTF9S RU5ERVJfREVDT01QUkVTU0lPTl9FTkFCTEUgfAorCQkgICAgICAgUExBTkVfQ1RMX0NMRUFSX0NP TE9SX0RJU0FCTEU7CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQ6CiAJCXJldHVybiBQ TEFORV9DVExfVElMRURfWUY7CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOgpA QCAtOTk5Myw3ICsxMDA0Miw5IEBAIHNreWxha2VfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCWNhc2UgUExBTkVfQ1RMX1RJTEVEX1k6CiAJCXBsYW5l X2NvbmZpZy0+dGlsaW5nID0gSTkxNV9USUxJTkdfWTsKIAkJaWYgKHZhbCAmIFBMQU5FX0NUTF9S RU5ERVJfREVDT01QUkVTU0lPTl9FTkFCTEUpCi0JCQlmYi0+bW9kaWZpZXIgPSBJOTE1X0ZPUk1B VF9NT0RfWV9USUxFRF9DQ1M7CisJCQlmYi0+bW9kaWZpZXIgPSBJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDEyID8KKwkJCQlJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1MgOgorCQkJ CUk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUzsKIAkJZWxzZQogCQkJZmItPm1vZGlmaWVyID0g STkxNV9GT1JNQVRfTU9EX1lfVElMRUQ7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMKaW5kZXggZWRjNDFmYzQwNzI2Li5iNjQ5NDY0MzE4M2Qg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYwpAQCAtNTgy LDYgKzU4Miw3IEBAIHNrbF9wcm9ncmFtX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUs CiAJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZwbGFuZV9z dGF0ZS0+Y2tleTsKIAl1MzIgc3VyZl9hZGRyID0gcGxhbmVfc3RhdGUtPmNvbG9yX3BsYW5lW2Nv bG9yX3BsYW5lXS5vZmZzZXQ7CiAJdTMyIHN0cmlkZSA9IHNrbF9wbGFuZV9zdHJpZGUocGxhbmVf c3RhdGUsIGNvbG9yX3BsYW5lKTsKKwl1MzIgYXV4X2Rpc3QgPSBwbGFuZV9zdGF0ZS0+Y29sb3Jf cGxhbmVbMV0ub2Zmc2V0IC0gc3VyZl9hZGRyOwogCXUzMiBhdXhfc3RyaWRlID0gc2tsX3BsYW5l X3N0cmlkZShwbGFuZV9zdGF0ZSwgMSk7CiAJaW50IGNydGNfeCA9IHBsYW5lX3N0YXRlLT5iYXNl LmRzdC54MTsKIAlpbnQgY3J0Y195ID0gcGxhbmVfc3RhdGUtPmJhc2UuZHN0LnkxOwpAQCAtNjIz LDggKzYyNCwxMCBAQCBza2xfcHJvZ3JhbV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5l LAogCUk5MTVfV1JJVEVfRlcoUExBTkVfU1RSSURFKHBpcGUsIHBsYW5lX2lkKSwgc3RyaWRlKTsK IAlJOTE1X1dSSVRFX0ZXKFBMQU5FX1BPUyhwaXBlLCBwbGFuZV9pZCksIChjcnRjX3kgPDwgMTYp IHwgY3J0Y194KTsKIAlJOTE1X1dSSVRFX0ZXKFBMQU5FX1NJWkUocGlwZSwgcGxhbmVfaWQpLCAo c3JjX2ggPDwgMTYpIHwgc3JjX3cpOwotCUk5MTVfV1JJVEVfRlcoUExBTkVfQVVYX0RJU1QocGlw ZSwgcGxhbmVfaWQpLAotCQkgICAgICAocGxhbmVfc3RhdGUtPmNvbG9yX3BsYW5lWzFdLm9mZnNl dCAtIHN1cmZfYWRkcikgfCBhdXhfc3RyaWRlKTsKKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgMTIpCisJCWF1eF9kaXN0IHw9IGF1eF9zdHJpZGU7CisJSTkxNV9XUklURV9GVyhQTEFORV9B VVhfRElTVChwaXBlLCBwbGFuZV9pZCksIGF1eF9kaXN0KTsKIAogCWlmIChpY2xfaXNfaGRyX3Bs YW5lKGRldl9wcml2LCBwbGFuZV9pZCkpIHsKIAkJdTMyIGN1c19jdGwgPSAwOwpAQCAtMjExMCw3 ICsyMTEzLDggQEAgc3RhdGljIGludCBza2xfcGxhbmVfY2hlY2tfZmIoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJICAgIChmYi0+bW9kaWZpZXIgPT0gSTkxNV9G T1JNQVRfTU9EX1lfVElMRUQgfHwKIAkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9N T0RfWWZfVElMRUQgfHwKIAkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9U SUxFRF9DQ1MgfHwKLQkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElM RURfQ0NTKSkgeworCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxF RF9DQ1MgfHwKKwkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9H RU4xMl9SQ19DQ1MpKSB7CiAJCURSTV9ERUJVR19LTVMoIlkvWWYgdGlsaW5nIG5vdCBzdXBwb3J0 ZWQgaW4gSUYtSUQgbW9kZVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTI1NDYsNyAr MjU1MCw4IEBAIHN0YXRpYyBjb25zdCB1NjQgc2tsX3BsYW5lX2Zvcm1hdF9tb2RpZmllcnNfY2Nz W10gPSB7CiAJRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRAogfTsKIAotc3RhdGljIGNvbnN0IHU2NCBn ZW4xMl9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzX25vY2NzW10gPSB7CitzdGF0aWMgY29uc3QgdTY0 IGdlbjEyX3BsYW5lX2Zvcm1hdF9tb2RpZmllcnNfY2NzW10gPSB7CisJSTkxNV9GT1JNQVRfTU9E X1lfVElMRURfR0VOMTJfUkNfQ0NTLAogCUk5MTVfRk9STUFUX01PRF9ZX1RJTEVELAogCUk5MTVf Rk9STUFUX01PRF9YX1RJTEVELAogCURSTV9GT1JNQVRfTU9EX0xJTkVBUiwKQEAgLTI3MTAsNiAr MjcxNSw3IEBAIHN0YXRpYyBib29sIGdlbjEyX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkKHN0 cnVjdCBkcm1fcGxhbmUgKl9wbGFuZSwKIAljYXNlIERSTV9GT1JNQVRfTU9EX0xJTkVBUjoKIAlj YXNlIEk5MTVfRk9STUFUX01PRF9YX1RJTEVEOgogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElM RUQ6CisJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1M6CiAJCWJyZWFr OwogCWRlZmF1bHQ6CiAJCXJldHVybiBmYWxzZTsKQEAgLTI3MjAsNiArMjcyNiw5IEBAIHN0YXRp YyBib29sIGdlbjEyX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkKHN0cnVjdCBkcm1fcGxhbmUg Kl9wbGFuZSwKIAljYXNlIERSTV9GT1JNQVRfWEJHUjg4ODg6CiAJY2FzZSBEUk1fRk9STUFUX0FS R0I4ODg4OgogCWNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoKKwkJaWYgKGlzX2Njc19tb2RpZmll cihtb2RpZmllcikpCisJCQlyZXR1cm4gdHJ1ZTsKKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2Fz ZSBEUk1fRk9STUFUX1JHQjU2NToKIAljYXNlIERSTV9GT1JNQVRfWFJHQjIxMDEwMTA6CiAJY2Fz ZSBEUk1fRk9STUFUX1hCR1IyMTAxMDEwOgpAQCAtMjkyOSwxMyArMjkzOCwxMSBAQCBza2xfdW5p dmVyc2FsX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ CWZvcm1hdHMgPSBza2xfZ2V0X3BsYW5lX2Zvcm1hdHMoZGV2X3ByaXYsIHBpcGUsCiAJCQkJCQlw bGFuZV9pZCwgJm51bV9mb3JtYXRzKTsKIAorCXBsYW5lLT5oYXNfY2NzID0gc2tsX3BsYW5lX2hh c19jY3MoZGV2X3ByaXYsIHBpcGUsIHBsYW5lX2lkKTsKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSAxMikgewotCQkvKiBUT0RPOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2VuLTEyIENDUyBt b2RpZmllcnMgKi8KLQkJcGxhbmUtPmhhc19jY3MgPSBmYWxzZTsKLQkJbW9kaWZpZXJzID0gZ2Vu MTJfcGxhbmVfZm9ybWF0X21vZGlmaWVyc19ub2NjczsKKwkJbW9kaWZpZXJzID0gZ2VuMTJfcGxh bmVfZm9ybWF0X21vZGlmaWVyc19jY3M7CiAJCXBsYW5lX2Z1bmNzID0gJmdlbjEyX3BsYW5lX2Z1 bmNzOwogCX0gZWxzZSB7Ci0JCXBsYW5lLT5oYXNfY2NzID0gc2tsX3BsYW5lX2hhc19jY3MoZGV2 X3ByaXYsIHBpcGUsIHBsYW5lX2lkKTsKIAkJaWYgKHBsYW5lLT5oYXNfY2NzKQogCQkJbW9kaWZp ZXJzID0gc2tsX3BsYW5lX2Zvcm1hdF9tb2RpZmllcnNfY2NzOwogCQllbHNlCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAppbmRleCBmYjMzYjE2NGNlNTUuLjQ5ZmU0ZjBkZjI0ZiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCkBAIC02NzEyLDYgKzY3MTIsNyBAQCBlbnVtIHsKICNkZWZpbmUgICBQTEFO RV9DVExfWVVWNDIyX1ZZVVkJCQkoMyA8PCAxNikKICNkZWZpbmUgICBQTEFORV9DVExfUkVOREVS X0RFQ09NUFJFU1NJT05fRU5BQkxFCSgxIDw8IDE1KQogI2RlZmluZSAgIFBMQU5FX0NUTF9UUklD S0xFX0ZFRURfRElTQUJMRQkoMSA8PCAxNCkKKyNkZWZpbmUgICBQTEFORV9DVExfQ0xFQVJfQ09M T1JfRElTQUJMRQkJKDEgPDwgMTMpIC8qIFRHTCsgKi8KICNkZWZpbmUgICBQTEFORV9DVExfUExB TkVfR0FNTUFfRElTQUJMRQkJKDEgPDwgMTMpIC8qIFByZS1HTEsgKi8KICNkZWZpbmUgICBQTEFO RV9DVExfVElMRURfTUFTSwkJCSgweDcgPDwgMTApCiAjZGVmaW5lICAgUExBTkVfQ1RMX1RJTEVE X0xJTkVBUgkJKDAgPDwgMTApCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeA== 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 6A372CA9EC0 for ; Mon, 28 Oct 2019 20:38:54 +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 4B5E821721 for ; Mon, 28 Oct 2019 20:38:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4B5E821721 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 9699B6EA1E; Mon, 28 Oct 2019 20:38:52 +0000 (UTC) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6E4506EA18 for ; Mon, 28 Oct 2019 20:38:48 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Oct 2019 13:38:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,241,1569308400"; d="scan'208";a="202622119" Received: from invictus.jf.intel.com ([10.54.75.159]) by orsmga003.jf.intel.com with ESMTP; 28 Oct 2019 13:38:46 -0700 From: Radhakrishna Sripada To: intel-gfx@lists.freedesktop.org Date: Mon, 28 Oct 2019 13:40:35 -0700 Message-Id: <20191028204041.13507-5-radhakrishna.sripada@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191028204041.13507-1-radhakrishna.sripada@intel.com> References: <20191028204041.13507-1-radhakrishna.sripada@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v6 04/10] 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: <20191028204035._qWYe7hd0y1wNRF19j2H11RFpaWJvlpuDqkuApW-xW0@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 ZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggYjhlZjk5ZWFjMjU0Li4xOTRlNTA4NDMwZGIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCkBAIC0x OTM2LDYgKzE5MzYsMTAgQEAgaW50ZWxfdGlsZV93aWR0aF9ieXRlcyhjb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwgaW50IGNvbG9yX3BsYW5lKQogCQlpZiAoY29sb3JfcGxhbmUgPT0g MSkKIAkJCXJldHVybiAxMjg7CiAJCS8qIGZhbGwgdGhyb3VnaCAqLworCWNhc2UgSTkxNV9GT1JN QVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTOgorCQlpZiAoY29sb3JfcGxhbmUgPT0gMSkKKwkJ CXJldHVybiA2NDsKKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0Rf WV9USUxFRDoKIAkJaWYgKElTX0dFTihkZXZfcHJpdiwgMikgfHwgSEFTXzEyOF9CWVRFX1lfVElM SU5HKGRldl9wcml2KSkKIAkJCXJldHVybiAxMjg7CkBAIC0xOTY5LDggKzE5NzMsMTUgQEAgaW50 ZWxfdGlsZV93aWR0aF9ieXRlcyhjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50 IGNvbG9yX3BsYW5lKQogc3RhdGljIHVuc2lnbmVkIGludAogaW50ZWxfdGlsZV9oZWlnaHQoY29u c3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBjb2xvcl9wbGFuZSkKIHsKLQlyZXR1 cm4gaW50ZWxfdGlsZV9zaXplKHRvX2k5MTUoZmItPmRldikpIC8KLQkJaW50ZWxfdGlsZV93aWR0 aF9ieXRlcyhmYiwgY29sb3JfcGxhbmUpOworCXN3aXRjaCAoZmItPm1vZGlmaWVyKSB7CisJY2Fz ZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1M6CisJCWlmIChjb2xvcl9wbGFu ZSA9PSAxKQorCQkJcmV0dXJuIDE7CisJCS8qIGZhbGwgdGhyb3VnaCAqLworCWRlZmF1bHQ6CisJ CXJldHVybiBpbnRlbF90aWxlX3NpemUodG9faTkxNShmYi0+ZGV2KSkgLworCQkJaW50ZWxfdGls ZV93aWR0aF9ieXRlcyhmYiwgY29sb3JfcGxhbmUpOworCX0KIH0KIAogLyogUmV0dXJuIHRoZSB0 aWxlIGRpbWVuc2lvbnMgaW4gcGl4ZWwgdW5pdHMgKi8KQEAgLTIwNjksNiArMjA4MCw4IEBAIHN0 YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfc3VyZl9hbGlnbm1lbnQoY29uc3Qgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsCiAJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCiAJCQlyZXR1 cm4gMjU2ICogMTAyNDsKIAkJcmV0dXJuIDA7CisJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxF RF9HRU4xMl9SQ19DQ1M6CisJCXJldHVybiAxNiAqIDEwMjQ7CiAJY2FzZSBJOTE1X0ZPUk1BVF9N T0RfWV9USUxFRF9DQ1M6CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOgogCWNh c2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6CkBAIC0yMjY1LDcgKzIyNzgsOCBAQCBzdGF0aWMg dTMyIGludGVsX2FkanVzdF90aWxlX29mZnNldChpbnQgKngsIGludCAqeSwKIAogc3RhdGljIGJv b2wgaXNfc3VyZmFjZV9saW5lYXIodTY0IG1vZGlmaWVyLCBpbnQgY29sb3JfcGxhbmUpCiB7Ci0J cmV0dXJuIG1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUjsKKwlyZXR1cm4gbW9kaWZp ZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTElORUFSIHx8CisJICAgICAgIChtb2RpZmllciA9PSBJOTE1 X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1MgJiYgY29sb3JfcGxhbmUgPT0gMSk7CiB9 CiAKIHN0YXRpYyB1MzIgaW50ZWxfYWRqdXN0X2FsaWduZWRfb2Zmc2V0KGludCAqeCwgaW50ICp5 LApAQCAtMjQ1Miw2ICsyNDY2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9mYl9tb2Rp Zmllcl90b190aWxpbmcodTY0IGZiX21vZGlmaWVyKQogCQlyZXR1cm4gSTkxNV9USUxJTkdfWDsK IAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEOgogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lf VElMRURfQ0NTOgorCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTOgog CQlyZXR1cm4gSTkxNV9USUxJTkdfWTsKIAlkZWZhdWx0OgogCQlyZXR1cm4gSTkxNV9USUxJTkdf Tk9ORTsKQEAgLTI0NzIsNyArMjQ4Nyw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfZmJf bW9kaWZpZXJfdG9fdGlsaW5nKHU2NCBmYl9tb2RpZmllcikKICAqIHVzIGEgcmF0aW8gb2Ygb25l IGJ5dGUgaW4gdGhlIENDUyBmb3IgZWFjaCA4eDE2IHBpeGVscyBpbiB0aGUKICAqIG1haW4gc3Vy ZmFjZS4KICAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gY2NzX2Zvcm1h dHNbXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIHNrbF9jY3NfZm9y bWF0c1tdID0gewogCXsgLmZvcm1hdCA9IERSTV9GT1JNQVRfWFJHQjg4ODgsIC5kZXB0aCA9IDI0 LCAubnVtX3BsYW5lcyA9IDIsCiAJICAuY3BwID0geyA0LCAxLCB9LCAuaHN1YiA9IDgsIC52c3Vi ID0gMTYsIH0sCiAJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9YQkdSODg4OCwgLmRlcHRoID0gMjQs IC5udW1fcGxhbmVzID0gMiwKQEAgLTI0ODMsNiArMjQ5OCwyNCBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9mb3JtYXRfaW5mbyBjY3NfZm9ybWF0c1tdID0gewogCSAgLmNwcCA9IHsgNCwgMSwg fSwgLmhzdWIgPSA4LCAudnN1YiA9IDE2LCAuaGFzX2FscGhhID0gdHJ1ZSwgfSwKIH07CiAKKy8q CisgKiBHZW4tMTIgY29tcHJlc3Npb24gdXNlcyA0IGJpdHMgb2YgQ0NTIGRhdGEgZm9yIGVhY2gg Y2FjaGUgbGluZSBwYWlyIGluIHRoZQorICogbWFpbiBzdXJmYWNlLiBBbmQgZWFjaCA2NEIgQ0NT IGNhY2hlIGxpbmUgcmVwcmVzZW50cyBhbiBhcmVhIG9mIDR4MSBZLXRpbGVzCisgKiBpbiB0aGUg bWFpbiBzdXJmYWNlLiBXaXRoIDQgYnl0ZSBwaXhlbHMgYW5kIGVhY2ggWS10aWxlIGhhdmluZyBk aW1lbnNpb25zIG9mCisgKiAzMngzMiBwaXhlbHMsIHRoZSByYXRpbyB0dXJucyBvdXQgdG8gMUIg aW4gdGhlIENDUyBmb3IgZXZlcnkgMngzMiBwaXhlbHMgaW4KKyAqIHRoZSBtYWluIHN1cmZhY2Uu CisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIGdlbjEyX2Njc19mb3Jt YXRzW10gPSB7CisJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9YUkdCODg4OCwgLmRlcHRoID0gMjQs IC5udW1fcGxhbmVzID0gMiwKKwkgIC5jcHAgPSB7IDQsIDEsIH0sIC5oc3ViID0gMiwgLnZzdWIg PSAzMiwgfSwKKwl7IC5mb3JtYXQgPSBEUk1fRk9STUFUX1hCR1I4ODg4LCAuZGVwdGggPSAyNCwg Lm51bV9wbGFuZXMgPSAyLAorCSAgLmNwcCA9IHsgNCwgMSwgfSwgLmhzdWIgPSAyLCAudnN1YiA9 IDMyLCB9LAorCXsgLmZvcm1hdCA9IERSTV9GT1JNQVRfQVJHQjg4ODgsIC5kZXB0aCA9IDMyLCAu bnVtX3BsYW5lcyA9IDIsCisJICAuY3BwID0geyA0LCAxLCB9LCAuaHN1YiA9IDIsIC52c3ViID0g MzIsIC5oYXNfYWxwaGEgPSB0cnVlIH0sCisJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9BQkdSODg4 OCwgLmRlcHRoID0gMzIsIC5udW1fcGxhbmVzID0gMiwKKwkgIC5jcHAgPSB7IDQsIDEsIH0sIC5o c3ViID0gMiwgLnZzdWIgPSAzMiwgLmhhc19hbHBoYSA9IHRydWUgfSwKK307CisKIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICoKIGxvb2t1cF9mb3JtYXRfaW5mbyhjb25zdCBz dHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIGZvcm1hdHNbXSwKIAkJICAgaW50IG51bV9mb3JtYXRzLCB1 MzIgZm9ybWF0KQpAQCAtMjUwMyw4ICsyNTM2LDEyIEBAIGludGVsX2dldF9mb3JtYXRfaW5mbyhj b25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqY21kKQogCXN3aXRjaCAoY21kLT5tb2RpZmll clswXSkgewogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTOgogCWNhc2UgSTkxNV9G T1JNQVRfTU9EX1lmX1RJTEVEX0NDUzoKLQkJcmV0dXJuIGxvb2t1cF9mb3JtYXRfaW5mbyhjY3Nf Zm9ybWF0cywKLQkJCQkJICBBUlJBWV9TSVpFKGNjc19mb3JtYXRzKSwKKwkJcmV0dXJuIGxvb2t1 cF9mb3JtYXRfaW5mbyhza2xfY2NzX2Zvcm1hdHMsCisJCQkJCSAgQVJSQVlfU0laRShza2xfY2Nz X2Zvcm1hdHMpLAorCQkJCQkgIGNtZC0+cGl4ZWxfZm9ybWF0KTsKKwljYXNlIEk5MTVfRk9STUFU X01PRF9ZX1RJTEVEX0dFTjEyX1JDX0NDUzoKKwkJcmV0dXJuIGxvb2t1cF9mb3JtYXRfaW5mbyhn ZW4xMl9jY3NfZm9ybWF0cywKKwkJCQkJICBBUlJBWV9TSVpFKGdlbjEyX2Njc19mb3JtYXRzKSwK IAkJCQkJICBjbWQtPnBpeGVsX2Zvcm1hdCk7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIE5VTEw7CkBA IC0yNTEzLDcgKzI1NTAsOCBAQCBpbnRlbF9nZXRfZm9ybWF0X2luZm8oY29uc3Qgc3RydWN0IGRy bV9tb2RlX2ZiX2NtZDIgKmNtZCkKIAogYm9vbCBpc19jY3NfbW9kaWZpZXIodTY0IG1vZGlmaWVy KQogewotCXJldHVybiBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1MgfHwK KwlyZXR1cm4gbW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NT IHx8CisJICAgICAgIG1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUyB8fAog CSAgICAgICBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOwogfQogCkBA IC0yNTU4LDggKzI1OTYsOSBAQCBzdGF0aWMgdTMyCiBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50 KGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgY29sb3JfcGxhbmUpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShmYi0+ZGV2KTsKKwl1 MzIgdGlsZV93aWR0aDsKIAotCWlmIChmYi0+bW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTElO RUFSKSB7CisJaWYgKGlzX3N1cmZhY2VfbGluZWFyKGZiLT5tb2RpZmllciwgY29sb3JfcGxhbmUp KSB7CiAJCXUzMiBtYXhfc3RyaWRlID0gaW50ZWxfcGxhbmVfZmJfbWF4X3N0cmlkZShkZXZfcHJp diwKIAkJCQkJCQkgICBmYi0+Zm9ybWF0LT5mb3JtYXQsCiAJCQkJCQkJICAgZmItPm1vZGlmaWVy KTsKQEAgLTI1NjgsMTMgKzI2MDcsMTQgQEAgaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChjb25z dCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50IGNvbG9yX3BsYW5lKQogCQkgKiBUbyBt YWtlIHJlbWFwcGluZyB3aXRoIGxpbmVhciBnZW5lcmFsbHkgZmVhc2libGUKIAkJICogd2UgbmVl ZCB0aGUgc3RyaWRlIHRvIGJlIHBhZ2UgYWxpZ25lZC4KIAkJICovCi0JCWlmIChmYi0+cGl0Y2hl c1tjb2xvcl9wbGFuZV0gPiBtYXhfc3RyaWRlKQorCQlpZiAoZmItPnBpdGNoZXNbY29sb3JfcGxh bmVdID4gbWF4X3N0cmlkZSAmJiAhaXNfY2NzX21vZGlmaWVyKGZiLT5tb2RpZmllcikpCiAJCQly ZXR1cm4gaW50ZWxfdGlsZV9zaXplKGRldl9wcml2KTsKIAkJZWxzZQogCQkJcmV0dXJuIDY0Owot CX0gZWxzZSB7Ci0JCXUzMiB0aWxlX3dpZHRoID0gaW50ZWxfdGlsZV93aWR0aF9ieXRlcyhmYiwg Y29sb3JfcGxhbmUpOworCX0KIAorCXRpbGVfd2lkdGggPSBpbnRlbF90aWxlX3dpZHRoX2J5dGVz KGZiLCBjb2xvcl9wbGFuZSk7CisJaWYgKGlzX2Njc19tb2RpZmllcihmYi0+bW9kaWZpZXIpICYm IGNvbG9yX3BsYW5lID09IDApIHsKIAkJLyoKIAkJICogRGlzcGxheSBXQSAjMDUzMTogc2tsLGJ4 dCxrYmwsZ2xrCiAJCSAqCkBAIC0yNTg0LDEyICsyNjI0LDE2IEBAIGludGVsX2ZiX3N0cmlkZV9h bGlnbm1lbnQoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBjb2xvcl9wbGFu ZSkKIAkJICogcmVxdWlyZSB0aGUgZW50aXJlIGZiIHRvIGFjY29tbW9kYXRlIHRoYXQgdG8gYXZv aWQKIAkJICogcG90ZW50aWFsIHJ1bnRpbWUgZXJyb3JzIGF0IHBsYW5lIGNvbmZpZ3VyYXRpb24g dGltZS4KIAkJICovCi0JCWlmIChJU19HRU4oZGV2X3ByaXYsIDkpICYmIGlzX2Njc19tb2RpZmll cihmYi0+bW9kaWZpZXIpICYmCi0JCSAgICBjb2xvcl9wbGFuZSA9PSAwICYmIGZiLT53aWR0aCA+ IDM4NDApCisJCWlmIChJU19HRU4oZGV2X3ByaXYsIDkpICYmIGZiLT53aWR0aCA+IDM4NDApCisJ CQl0aWxlX3dpZHRoICo9IDQ7CisJCS8qCisJCSAqIFRoZSBtYWluIHN1cmZhY2UgcGl0Y2ggbXVz dCBiZSBwYWRkZWQgdG8gYSBtdWx0aXBsZSBvZiBmb3VyCisJCSAqIHRpbGUgd2lkdGhzLgorCQkg Ki8KKwkJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKIAkJCXRpbGVfd2lkdGgg Kj0gNDsKLQotCQlyZXR1cm4gdGlsZV93aWR0aDsKIAl9CisJcmV0dXJuIHRpbGVfd2lkdGg7CiB9 CiAKIGJvb2wgaW50ZWxfcGxhbmVfY2FuX3JlbWFwKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGUpCkBAIC0yNjk4LDYgKzI3NDIsNyBAQCBpbnRlbF9maWxsX2ZiX2lu Zm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJaW50IGNjc194LCBjY3Nf eTsKIAogCQkJaW50ZWxfdGlsZV9kaW1zKGZiLCBpLCAmdGlsZV93aWR0aCwgJnRpbGVfaGVpZ2h0 KTsKKwogCQkJdGlsZV93aWR0aCAqPSBoc3ViOwogCQkJdGlsZV9oZWlnaHQgKj0gdnN1YjsKIApA QCAtNDA0MSw3ICs0MDg2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBza2xfcGxhbmVfc3RyaWRl X211bHQoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiAJICogVGhlIHN0cmlkZSBp cyBlaXRoZXIgZXhwcmVzc2VkIGFzIGEgbXVsdGlwbGUgb2YgNjQgYnl0ZXMgY2h1bmtzIGZvcgog CSAqIGxpbmVhciBidWZmZXJzIG9yIGluIG51bWJlciBvZiB0aWxlcyBmb3IgdGlsZWQgYnVmZmVy cy4KIAkgKi8KLQlpZiAoZmItPm1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUikKKwlp ZiAoaXNfc3VyZmFjZV9saW5lYXIoZmItPm1vZGlmaWVyLCBjb2xvcl9wbGFuZSkpCiAJCXJldHVy biA2NDsKIAllbHNlIGlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHJvdGF0aW9uKSkKIAkJcmV0 dXJuIGludGVsX3RpbGVfaGVpZ2h0KGZiLCBjb2xvcl9wbGFuZSk7CkBAIC00MTY3LDYgKzQyMTIs MTAgQEAgc3RhdGljIHUzMiBza2xfcGxhbmVfY3RsX3RpbGluZyh1NjQgZmJfbW9kaWZpZXIpCiAJ CXJldHVybiBQTEFORV9DVExfVElMRURfWTsKIAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVE X0NDUzoKIAkJcmV0dXJuIFBMQU5FX0NUTF9USUxFRF9ZIHwgUExBTkVfQ1RMX1JFTkRFUl9ERUNP TVBSRVNTSU9OX0VOQUJMRTsKKwljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JD X0NDUzoKKwkJcmV0dXJuIFBMQU5FX0NUTF9USUxFRF9ZIHwKKwkJICAgICAgIFBMQU5FX0NUTF9S RU5ERVJfREVDT01QUkVTU0lPTl9FTkFCTEUgfAorCQkgICAgICAgUExBTkVfQ1RMX0NMRUFSX0NP TE9SX0RJU0FCTEU7CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQ6CiAJCXJldHVybiBQ TEFORV9DVExfVElMRURfWUY7CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOgpA QCAtOTk5Myw3ICsxMDA0Miw5IEBAIHNreWxha2VfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCWNhc2UgUExBTkVfQ1RMX1RJTEVEX1k6CiAJCXBsYW5l X2NvbmZpZy0+dGlsaW5nID0gSTkxNV9USUxJTkdfWTsKIAkJaWYgKHZhbCAmIFBMQU5FX0NUTF9S RU5ERVJfREVDT01QUkVTU0lPTl9FTkFCTEUpCi0JCQlmYi0+bW9kaWZpZXIgPSBJOTE1X0ZPUk1B VF9NT0RfWV9USUxFRF9DQ1M7CisJCQlmYi0+bW9kaWZpZXIgPSBJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDEyID8KKwkJCQlJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1MgOgorCQkJ CUk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUzsKIAkJZWxzZQogCQkJZmItPm1vZGlmaWVyID0g STkxNV9GT1JNQVRfTU9EX1lfVElMRUQ7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMKaW5kZXggZWRjNDFmYzQwNzI2Li5iNjQ5NDY0MzE4M2Qg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYwpAQCAtNTgy LDYgKzU4Miw3IEBAIHNrbF9wcm9ncmFtX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUs CiAJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZwbGFuZV9z dGF0ZS0+Y2tleTsKIAl1MzIgc3VyZl9hZGRyID0gcGxhbmVfc3RhdGUtPmNvbG9yX3BsYW5lW2Nv bG9yX3BsYW5lXS5vZmZzZXQ7CiAJdTMyIHN0cmlkZSA9IHNrbF9wbGFuZV9zdHJpZGUocGxhbmVf c3RhdGUsIGNvbG9yX3BsYW5lKTsKKwl1MzIgYXV4X2Rpc3QgPSBwbGFuZV9zdGF0ZS0+Y29sb3Jf cGxhbmVbMV0ub2Zmc2V0IC0gc3VyZl9hZGRyOwogCXUzMiBhdXhfc3RyaWRlID0gc2tsX3BsYW5l X3N0cmlkZShwbGFuZV9zdGF0ZSwgMSk7CiAJaW50IGNydGNfeCA9IHBsYW5lX3N0YXRlLT5iYXNl LmRzdC54MTsKIAlpbnQgY3J0Y195ID0gcGxhbmVfc3RhdGUtPmJhc2UuZHN0LnkxOwpAQCAtNjIz LDggKzYyNCwxMCBAQCBza2xfcHJvZ3JhbV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5l LAogCUk5MTVfV1JJVEVfRlcoUExBTkVfU1RSSURFKHBpcGUsIHBsYW5lX2lkKSwgc3RyaWRlKTsK IAlJOTE1X1dSSVRFX0ZXKFBMQU5FX1BPUyhwaXBlLCBwbGFuZV9pZCksIChjcnRjX3kgPDwgMTYp IHwgY3J0Y194KTsKIAlJOTE1X1dSSVRFX0ZXKFBMQU5FX1NJWkUocGlwZSwgcGxhbmVfaWQpLCAo c3JjX2ggPDwgMTYpIHwgc3JjX3cpOwotCUk5MTVfV1JJVEVfRlcoUExBTkVfQVVYX0RJU1QocGlw ZSwgcGxhbmVfaWQpLAotCQkgICAgICAocGxhbmVfc3RhdGUtPmNvbG9yX3BsYW5lWzFdLm9mZnNl dCAtIHN1cmZfYWRkcikgfCBhdXhfc3RyaWRlKTsKKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgMTIpCisJCWF1eF9kaXN0IHw9IGF1eF9zdHJpZGU7CisJSTkxNV9XUklURV9GVyhQTEFORV9B VVhfRElTVChwaXBlLCBwbGFuZV9pZCksIGF1eF9kaXN0KTsKIAogCWlmIChpY2xfaXNfaGRyX3Bs YW5lKGRldl9wcml2LCBwbGFuZV9pZCkpIHsKIAkJdTMyIGN1c19jdGwgPSAwOwpAQCAtMjExMCw3 ICsyMTEzLDggQEAgc3RhdGljIGludCBza2xfcGxhbmVfY2hlY2tfZmIoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJICAgIChmYi0+bW9kaWZpZXIgPT0gSTkxNV9G T1JNQVRfTU9EX1lfVElMRUQgfHwKIAkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9N T0RfWWZfVElMRUQgfHwKIAkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9U SUxFRF9DQ1MgfHwKLQkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElM RURfQ0NTKSkgeworCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxF RF9DQ1MgfHwKKwkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9H RU4xMl9SQ19DQ1MpKSB7CiAJCURSTV9ERUJVR19LTVMoIlkvWWYgdGlsaW5nIG5vdCBzdXBwb3J0 ZWQgaW4gSUYtSUQgbW9kZVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTI1NDYsNyAr MjU1MCw4IEBAIHN0YXRpYyBjb25zdCB1NjQgc2tsX3BsYW5lX2Zvcm1hdF9tb2RpZmllcnNfY2Nz W10gPSB7CiAJRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRAogfTsKIAotc3RhdGljIGNvbnN0IHU2NCBn ZW4xMl9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzX25vY2NzW10gPSB7CitzdGF0aWMgY29uc3QgdTY0 IGdlbjEyX3BsYW5lX2Zvcm1hdF9tb2RpZmllcnNfY2NzW10gPSB7CisJSTkxNV9GT1JNQVRfTU9E X1lfVElMRURfR0VOMTJfUkNfQ0NTLAogCUk5MTVfRk9STUFUX01PRF9ZX1RJTEVELAogCUk5MTVf Rk9STUFUX01PRF9YX1RJTEVELAogCURSTV9GT1JNQVRfTU9EX0xJTkVBUiwKQEAgLTI3MTAsNiAr MjcxNSw3IEBAIHN0YXRpYyBib29sIGdlbjEyX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkKHN0 cnVjdCBkcm1fcGxhbmUgKl9wbGFuZSwKIAljYXNlIERSTV9GT1JNQVRfTU9EX0xJTkVBUjoKIAlj YXNlIEk5MTVfRk9STUFUX01PRF9YX1RJTEVEOgogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElM RUQ6CisJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1M6CiAJCWJyZWFr OwogCWRlZmF1bHQ6CiAJCXJldHVybiBmYWxzZTsKQEAgLTI3MjAsNiArMjcyNiw5IEBAIHN0YXRp YyBib29sIGdlbjEyX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkKHN0cnVjdCBkcm1fcGxhbmUg Kl9wbGFuZSwKIAljYXNlIERSTV9GT1JNQVRfWEJHUjg4ODg6CiAJY2FzZSBEUk1fRk9STUFUX0FS R0I4ODg4OgogCWNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoKKwkJaWYgKGlzX2Njc19tb2RpZmll cihtb2RpZmllcikpCisJCQlyZXR1cm4gdHJ1ZTsKKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2Fz ZSBEUk1fRk9STUFUX1JHQjU2NToKIAljYXNlIERSTV9GT1JNQVRfWFJHQjIxMDEwMTA6CiAJY2Fz ZSBEUk1fRk9STUFUX1hCR1IyMTAxMDEwOgpAQCAtMjkyOSwxMyArMjkzOCwxMSBAQCBza2xfdW5p dmVyc2FsX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ CWZvcm1hdHMgPSBza2xfZ2V0X3BsYW5lX2Zvcm1hdHMoZGV2X3ByaXYsIHBpcGUsCiAJCQkJCQlw bGFuZV9pZCwgJm51bV9mb3JtYXRzKTsKIAorCXBsYW5lLT5oYXNfY2NzID0gc2tsX3BsYW5lX2hh c19jY3MoZGV2X3ByaXYsIHBpcGUsIHBsYW5lX2lkKTsKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSAxMikgewotCQkvKiBUT0RPOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgZ2VuLTEyIENDUyBt b2RpZmllcnMgKi8KLQkJcGxhbmUtPmhhc19jY3MgPSBmYWxzZTsKLQkJbW9kaWZpZXJzID0gZ2Vu MTJfcGxhbmVfZm9ybWF0X21vZGlmaWVyc19ub2NjczsKKwkJbW9kaWZpZXJzID0gZ2VuMTJfcGxh bmVfZm9ybWF0X21vZGlmaWVyc19jY3M7CiAJCXBsYW5lX2Z1bmNzID0gJmdlbjEyX3BsYW5lX2Z1 bmNzOwogCX0gZWxzZSB7Ci0JCXBsYW5lLT5oYXNfY2NzID0gc2tsX3BsYW5lX2hhc19jY3MoZGV2 X3ByaXYsIHBpcGUsIHBsYW5lX2lkKTsKIAkJaWYgKHBsYW5lLT5oYXNfY2NzKQogCQkJbW9kaWZp ZXJzID0gc2tsX3BsYW5lX2Zvcm1hdF9tb2RpZmllcnNfY2NzOwogCQllbHNlCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAppbmRleCBmYjMzYjE2NGNlNTUuLjQ5ZmU0ZjBkZjI0ZiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCkBAIC02NzEyLDYgKzY3MTIsNyBAQCBlbnVtIHsKICNkZWZpbmUgICBQTEFO RV9DVExfWVVWNDIyX1ZZVVkJCQkoMyA8PCAxNikKICNkZWZpbmUgICBQTEFORV9DVExfUkVOREVS X0RFQ09NUFJFU1NJT05fRU5BQkxFCSgxIDw8IDE1KQogI2RlZmluZSAgIFBMQU5FX0NUTF9UUklD S0xFX0ZFRURfRElTQUJMRQkoMSA8PCAxNCkKKyNkZWZpbmUgICBQTEFORV9DVExfQ0xFQVJfQ09M T1JfRElTQUJMRQkJKDEgPDwgMTMpIC8qIFRHTCsgKi8KICNkZWZpbmUgICBQTEFORV9DVExfUExB TkVfR0FNTUFfRElTQUJMRQkJKDEgPDwgMTMpIC8qIFByZS1HTEsgKi8KICNkZWZpbmUgICBQTEFO RV9DVExfVElMRURfTUFTSwkJCSgweDcgPDwgMTApCiAjZGVmaW5lICAgUExBTkVfQ1RMX1RJTEVE X0xJTkVBUgkJKDAgPDwgMTApCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeA==