From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3FE0E6E2F6 for ; Thu, 14 Mar 2019 17:14:44 +0000 (UTC) From: Prathap Kumar Valsan Date: Thu, 14 Mar 2019 13:28:52 -0400 Message-Id: <20190314172852.16603-1-prathap.kumar.valsan@intel.com> In-Reply-To: <20190215214608.32021-1-prathap.kumar.valsan@intel.com> References: <20190215214608.32021-1-prathap.kumar.valsan@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v6] i915/gem_mocs_settings: Add mocs table for icelake List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org, Chris Wilson , Lis Tomasz Cc: De Marchi Lucas List-ID: RnJvbTogIkt1bWFyIFZhbHNhbiwgUHJhdGhhcCIgPHByYXRoYXAua3VtYXIudmFsc2FuQGludGVs LmNvbT4KClRoaXMgcGF0Y2ggYWRkcyBtb2NzIHRhYmxlIGZvciBpY2VsYWtlIHdpdGggZXhwZWN0 ZWQgTDMgYW5kIGVEUkFNCmNvbnRyb2wgdmFsdWVzLgoKU2lnbmVkLW9mZi1ieTogS3VtYXIgVmFs c2FuLCBQcmF0aGFwIDxwcmF0aGFwLmt1bWFyLnZhbHNhbkBpbnRlbC5jb20+Ci0tLQpDaGFuZ2Vz IGluIHY2OgotIFdlIG5lZWQgdG8gdGVzdCBub24tcHJpdmlsZWdlZCB3cml0ZSB0byBNT0NTCiAg aXMgZHJvcHBlZCBieSB0aGUgaGFyZHdhcmUuKEFzIHN1Z2dlc3RlZCBieSBDaHJpcykKQ2hhbmdl cyBpbiB2NToKLSBBcyBtb2NzIHRhYmxlIGlzIGdsb2JhbCwgdGVzdCBuZWVkIG5vdCB3cml0ZQog IG1vY3MgdGFibGUuIEJlbG93IGppcmEgaGFzIHRoZSBkaXNjdXNzaW9uLiAKICBodHRwczovL2pp cmEuZGV2dG9vbHMuaW50ZWwuY29tL2Jyb3dzZS9WTEstMTU2NwpDaGFuZ2VzIGluIHY0OgotIEwz IGNvbnRyb2wgcmVnaXN0ZXJzIGFyZSBnbG9iYWwgaW4gaWNlbGFrZS4KICBUZXN0IHZhbGlkYXRl cyB0aGF0IGRpcnR5IHdyaXRlcyBmcm9tIHVzZXJzcGFjZQogIHRvIEwzIGNvbnRyb2wgcmVnaXN0 ZXJzIGFyZSBiZWluZyBkcm9wcGVkLiAKQ2hhbmdlcyBpbiB2MzoKLSBUaGVyZSBhcmUgaG9sZXMg aW4gdGhlIG1vY3MgdGFibGUoTHVjYXMgUG9pbnRlZCBvdXQpLgogIEluIGljZWxha2UgaW5kZXgg MTYgYW5kIDE3IGFyZSByZXNlcnZlZC4KICBTbyB0ZXN0IHNob3VsZG4ndCBiZSBjaGVja2luZyB0 aGVtLgpDaGFuZ2VzIGluIHYyOgotIENsZWFuZWQgdXAgdGhlIGNvZGUgYmFzZWQgb24gcmV2aWV3 CiAgY29tbWVudHMgZnJvbSBMdWNhcyBhbmQgQ2hyaXMKCiB0ZXN0cy9pOTE1L2dlbV9tb2NzX3Nl dHRpbmdzLmMgfCAxNDcgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMTA5IGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3Rlc3RzL2k5MTUvZ2VtX21vY3Nfc2V0dGluZ3MuYyBiL3Rlc3RzL2k5MTUvZ2VtX21vY3Nfc2V0 dGluZ3MuYwppbmRleCA1YjNiNmJjMS4uM2FjYWE2MTUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUv Z2VtX21vY3Nfc2V0dGluZ3MuYworKysgYi90ZXN0cy9pOTE1L2dlbV9tb2NzX3NldHRpbmdzLmMK QEAgLTMyLDcgKzMyLDkgQEAKICNpbmNsdWRlICJpZ3RfcGVyZi5oIgogI2luY2x1ZGUgImlndF9z eXNmcy5oIgogCi0jZGVmaW5lIE1BWF9OVU1CRVJfTU9DU19SRUdJU1RFUlMJKDY0KQorI2RlZmlu ZSBHRU45X05VTV9NT0NTX0VOVFJJRVMgICA2MiAgLyogNjIgb3V0IG9mIDY0IC0gNjMgJiA2NCBh cmUgcmVzZXJ2ZWQuICovCisjZGVmaW5lIEdFTjExX05VTV9NT0NTX0VOVFJJRVMgIDY0ICAvKiA2 My02NCBhcmUgcmVzZXJ2ZWQsIGJ1dCBjb25maWd1cmVkLiAqLworCiBlbnVtIHsKIAlOT05FLAog CVJFU0VULApAQCAtNTIsOCArNTQsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB0ZXN0 X21vZGVzW10gPSB7CiAKICNkZWZpbmUgTU9DU19OT05fREVGQVVMVF9DVFgJKDE8PDApCiAjZGVm aW5lIE1PQ1NfRElSVFlfVkFMVUVTCSgxPDwxKQorI2RlZmluZSBNT0NTX05PTlBSSVZJTEVHRURf RElSVFlfVkFMVUVTCSgxPDwyKQogI2RlZmluZSBBTExfTU9DU19GTEFHUwkJKE1PQ1NfTk9OX0RF RkFVTFRfQ1RYIHwgXAotCQkJCSBNT0NTX0RJUlRZX1ZBTFVFUykKKwkJCQkgTU9DU19ESVJUWV9W QUxVRVMgfCBcCisJCQkJIE1PQ1NfTk9OUFJJVklMRUdFRF9ESVJUWV9WQUxVRVMpCiAKICNkZWZp bmUgR0VOOV9MTkNGQ01PQ1MwCQkoMHhCMDIwKQkvKiBMMyBDYWNoZSBDb250cm9sIGJhc2UgKi8K ICNkZWZpbmUgR0VOOV9HRlhfTU9DU18wCQkoMHhjODAwKQkvKiBHcmFwaGljcyBNT0NTIGJhc2Ug cmVnaXN0ZXIqLwpAQCAtNjEsMTAgKzY1LDEzIEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg dGVzdF9tb2Rlc1tdID0gewogI2RlZmluZSBHRU45X01GWDFfTU9DU18wCSgweGNBMDApCS8qIE1l ZGlhIDEgTU9DUyBiYXNlIHJlZ2lzdGVyKi8KICNkZWZpbmUgR0VOOV9WRUJPWF9NT0NTXzAJKDB4 Y0IwMCkJLyogVmlkZW8gTU9DUyBiYXNlIHJlZ2lzdGVyKi8KICNkZWZpbmUgR0VOOV9CTFRfTU9D U18wCQkoMHhjYzAwKQkvKiBCbGl0dGVyIE1PQ1MgYmFzZSByZWdpc3RlciovCisjZGVmaW5lIElD RUxBS0VfTU9DU19QVEUJezB4MDAwMDAwMDQsIDB4MDAzMCwgMHgxfQorI2RlZmluZSBNT0NTX1BU RQkJezB4MDAwMDAwMzgsIDB4MDAzMCwgMHgxfQogCiBzdHJ1Y3QgbW9jc19lbnRyeSB7CiAJdWlu dDMyX3QJY29udHJvbF92YWx1ZTsKIAl1aW50MTZfdAlsM2NjX3ZhbHVlOworCXVpbnQ4X3QgCXVz ZWQ7CiB9OwogCiBzdHJ1Y3QgbW9jc190YWJsZSB7CkBAIC03MywzNSArODAsNTggQEAgc3RydWN0 IG1vY3NfdGFibGUgewogfTsKIAogLyogVGhlIGZpcnN0IGVudHJpZXMgaW4gdGhlIE1PQ1MgdGFi bGVzIGFyZSBkZWZpbmVkIGJ5IHVBQkkgKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW9jc19lbnRy eSBza3lsYWtlX21vY3NfdGFibGVbXSA9IHsKLQl7IDB4MDAwMDAwMDksIDB4MDAxMCB9LAotCXsg MHgwMDAwMDAzOCwgMHgwMDMwIH0sCi0JeyAweDAwMDAwMDNiLCAweDAwMzAgfSwKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgbW9jc19lbnRyeSBpY2VsYWtlX21vY3NfdGFibGVbR0VOMTFfTlVNX01PQ1Nf RU5UUklFU10gPSB7CisJWzBdICA9IHsgMHgwMDAwMDAwNSwgMHgwMDEwLCAweDF9LAorCVsxXSAg PSBJQ0VMQUtFX01PQ1NfUFRFLAorCVsyXSAgPSB7IDB4MDAwMDAwMzcsIDB4MDAzMCwgMHgxfSwK KwlbM10gID0geyAweDAwMDAwMDA1LCAweDAwMTAsIDB4MX0sCisJWzRdICA9IHsgMHgwMDAwMDAw NSwgMHgwMDMwLCAweDF9LAorCVs1XSAgPSB7IDB4MDAwMDAwMzcsIDB4MDAxMCwgMHgxfSwKKwlb Nl0gID0geyAweDAwMDAwMDE3LCAweDAwMTAsIDB4MX0sCisJWzddICA9IHsgMHgwMDAwMDAxNywg MHgwMDMwLCAweDF9LAorCVs4XSAgPSB7IDB4MDAwMDAwMjcsIDB4MDAxMCwgMHgxfSwKKwlbOV0g ID0geyAweDAwMDAwMDI3LCAweDAwMzAsIDB4MX0sCisJWzEwXSA9IHsgMHgwMDAwMDA3NywgMHgw MDEwLCAweDF9LAorCVsxMV0gPSB7IDB4MDAwMDAwNzcsIDB4MDAzMCwgMHgxfSwKKwlbMTJdID0g eyAweDAwMDAwMDU3LCAweDAwMTAsIDB4MX0sCisJWzEzXSA9IHsgMHgwMDAwMDA1NywgMHgwMDMw LCAweDF9LAorCVsxNF0gPSB7IDB4MDAwMDAwNjcsIDB4MDAxMCwgMHgxfSwKKwlbMTVdID0geyAw eDAwMDAwMDY3LCAweDAwMzAsIDB4MX0sCisJWzE4XSA9IHsgMHgwMDA2MDAzNywgMHgwMDMwLCAw eDF9LAorCVsxOV0gPSB7IDB4MDAwMDA3MzcsIDB4MDAzMCwgMHgxfSwKKwlbMjBdID0geyAweDAw MDAwMzM3LCAweDAwMzAsIDB4MX0sCisJWzIxXSA9IHsgMHgwMDAwMDEzNywgMHgwMDMwLCAweDF9 LAorCVsyMl0gPSB7IDB4MDAwMDAzYjcsIDB4MDAzMCwgMHgxfSwKKwlbMjNdID0geyAweDAwMDAw N2I3LCAweDAwMzAsIDB4MX0sCisJWzI0IC4uLiA2MV0gPSBJQ0VMQUtFX01PQ1NfUFRFLAorCVs2 Ml0gPSB7IDB4MDAwMDAwMzcsIDB4MDAxMCwgMHgxfSwKKwlbNjNdID0geyAweDAwMDAwMDM3LCAw eDAwMTAsIDB4MX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG1vY3NfZW50cnkgc2t5bGFr ZV9tb2NzX3RhYmxlW0dFTjlfTlVNX01PQ1NfRU5UUklFU10gPSB7CisJWzBdID0geyAweDAwMDAw MDA5LCAweDAwMTAsIDB4MX0sCisJWzFdID0gTU9DU19QVEUsCisJWzJdID0geyAweDAwMDAwMDNi LCAweDAwMzAsIDB4MX0sCisJWzMgLi4uIEdFTjlfTlVNX01PQ1NfRU5UUklFUyAtIDFdID0gTU9D U19QVEUsCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IG1vY3NfZW50cnkgZGlydHlfc2t5bGFr ZV9tb2NzX3RhYmxlW10gPSB7Ci0JeyAweDAwMDAzRkZGLCAweDAwM0YgfSwgLyogbm8gc25vb3Ag Yml0ICovCi0JeyAweDAwMDAzRkZGLCAweDAwM0YgfSwKLQl7IDB4MDAwMDNGRkYsIDB4MDAzRiB9 LAorc3RhdGljIGNvbnN0IHN0cnVjdCBtb2NzX2VudHJ5IGRpcnR5X3NreWxha2VfbW9jc190YWJs ZVtHRU45X05VTV9NT0NTX0VOVFJJRVNdID0geworCVswIC4uLiBHRU45X05VTV9NT0NTX0VOVFJJ RVMgLSAxXSA9IHsgMHgwMDAwM0ZGRiwgMHgwMDNGLCAweDEgfSwKIH07CiAKLXN0YXRpYyBjb25z dCBzdHJ1Y3QgbW9jc19lbnRyeSBicm94dG9uX21vY3NfdGFibGVbXSA9IHsKLQl7IDB4MDAwMDAw MDksIDB4MDAxMCB9LAotCXsgMHgwMDAwMDAzOCwgMHgwMDMwIH0sCi0JeyAweDAwMDAwMDM5LCAw eDAwMzAgfSwKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW9jc19lbnRyeSBicm94dG9uX21vY3NfdGFi bGVbR0VOOV9OVU1fTU9DU19FTlRSSUVTXSA9IHsKKwlbMF0gPSB7IDB4MDAwMDAwMDksIDB4MDAx MCwgMHgxfSwKKwlbMV0gPSBNT0NTX1BURSwKKwlbMl0gPSB7IDB4MDAwMDAwMzksIDB4MDAzMCwg MHgxfSwKKwlbMyAuLi4gR0VOOV9OVU1fTU9DU19FTlRSSUVTIC0gMV0gPSBNT0NTX1BURSwKIH07 CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW9jc19lbnRyeSBkaXJ0eV9icm94dG9uX21vY3NfdGFi bGVbXSA9IHsKLQl7IDB4MDAwMDdGRkYsIDB4MDAzRiB9LAotCXsgMHgwMDAwN0ZGRiwgMHgwMDNG IH0sCi0JeyAweDAwMDA3RkZGLCAweDAwM0YgfSwKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW9jc19l bnRyeSBkaXJ0eV9icm94dG9uX21vY3NfdGFibGVbR0VOOV9OVU1fTU9DU19FTlRSSUVTXSA9IHsK KwlbMCAuLi4gR0VOOV9OVU1fTU9DU19FTlRSSUVTIC0gMV0gPSB7IDB4MDAwMDdGRkYsIDB4MDAz RiwgMHgxIH0sCiB9OwogCi1zdGF0aWMgY29uc3QgdWludDMyX3Qgd3JpdGVfdmFsdWVzW10gPSB7 Ci0JMHhGRkZGRkZGRiwKLQkweEZGRkZGRkZGLAotCTB4RkZGRkZGRkYsCi0JMHhGRkZGRkZGRgor c3RhdGljIGNvbnN0IHVpbnQzMl90IHdyaXRlX3ZhbHVlc1tHRU45X05VTV9NT0NTX0VOVFJJRVNd ID0geworCVswIC4uLiBHRU45X05VTV9NT0NTX0VOVFJJRVMgLSAxXSA9IDB4RkZGRkZGRkYsCiB9 OwogCiBzdGF0aWMgYm9vbCBnZXRfbW9jc19zZXR0aW5ncyhpbnQgZmQsIHN0cnVjdCBtb2NzX3Rh YmxlICp0YWJsZSwgYm9vbCBkaXJ0eSkKQEAgLTEyNyw2ICsxNTcsMTAgQEAgc3RhdGljIGJvb2wg Z2V0X21vY3Nfc2V0dGluZ3MoaW50IGZkLCBzdHJ1Y3QgbW9jc190YWJsZSAqdGFibGUsIGJvb2wg ZGlydHkpCiAJCQl0YWJsZS0+dGFibGUgPSBicm94dG9uX21vY3NfdGFibGU7CiAJCX0KIAkJcmVz dWx0ID0gdHJ1ZTsKKwl9IGVsc2UgaWYgKElTX0lDRUxBS0UoZGV2aWQpKSB7CisJCXRhYmxlLT5z aXplICA9IEFSUkFZX1NJWkUoaWNlbGFrZV9tb2NzX3RhYmxlKTsKKwkJdGFibGUtPnRhYmxlID0g aWNlbGFrZV9tb2NzX3RhYmxlOworCQlyZXN1bHQgPSB0cnVlOwogCX0KIAogCXJldHVybiByZXN1 bHQ7CkBAIC0yMzgsNyArMjcyLDggQEAgc3RhdGljIHZvaWQgd3JpdGVfcmVnaXN0ZXJzKGludCBm ZCwKIAkJCSAgICB1aW50MzJfdCByZWdfYmFzZSwKIAkJCSAgICBjb25zdCB1aW50MzJfdCAqdmFs dWVzLAogCQkJICAgIHVpbnQzMl90IHNpemUsCi0JCQkgICAgdWludDMyX3QgZW5naW5lX2lkKQor CQkJICAgIHVpbnQzMl90IGVuZ2luZV9pZCwKKwkJCSAgICBib29sIHByaXZpbGVnZWQpCiB7CiAJ c3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqOwogCXN0cnVjdCBkcm1faTkxNV9n ZW1fZXhlY2J1ZmZlcjIgZXhlY2J1ZjsKQEAgLTI1NCw3ICsyODksMTAgQEAgc3RhdGljIHZvaWQg d3JpdGVfcmVnaXN0ZXJzKGludCBmZCwKIAlleGVjYnVmLmJ1ZmZlcl9jb3VudCA9IDE7CiAJZXhl Y2J1Zi5iYXRjaF9sZW4gPSBjcmVhdGVfd3JpdGVfYmF0Y2goYmF0Y2gsIHZhbHVlcywgc2l6ZSwg cmVnX2Jhc2UpOwogCWk5MTVfZXhlY2J1ZmZlcjJfc2V0X2NvbnRleHRfaWQoZXhlY2J1ZiwgY3R4 X2lkKTsKLQlleGVjYnVmLmZsYWdzID0gSTkxNV9FWEVDX1NFQ1VSRSB8IGVuZ2luZV9pZDsKKwlp ZiAocHJpdmlsZWdlZCkKKwkJZXhlY2J1Zi5mbGFncyA9IEk5MTVfRVhFQ19TRUNVUkUgfCBlbmdp bmVfaWQ7CisJZWxzZQorCQlleGVjYnVmLmZsYWdzID0gZW5naW5lX2lkOwogCiAJZ2VtX3dyaXRl KGZkLCBoYW5kbGUsIDAsIGJhdGNoLCBleGVjYnVmLmJhdGNoX2xlbik7CiAJZ2VtX2V4ZWNidWYo ZmQsICZleGVjYnVmKTsKQEAgLTI4Myw5ICszMjEsMTIgQEAgc3RhdGljIHZvaWQgY2hlY2tfY29u dHJvbF9yZWdpc3RlcnMoaW50IGZkLAogCXJlYWRfcmVncyA9IGdlbV9tbWFwX19jcHUoZmQsIGRz dF9oYW5kbGUsIDAsIDQwOTYsIFBST1RfUkVBRCk7CiAKIAlnZW1fc2V0X2RvbWFpbihmZCwgZHN0 X2hhbmRsZSwgSTkxNV9HRU1fRE9NQUlOX0NQVSwgMCk7Ci0JZm9yIChpbnQgaW5kZXggPSAwOyBp bmRleCA8IHRhYmxlLnNpemU7IGluZGV4KyspCisJZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8 IHRhYmxlLnNpemU7IGluZGV4KyspIHsKKwkJaWYgKCF0YWJsZS50YWJsZVtpbmRleF0udXNlZCkK KwkJCWNvbnRpbnVlOwogCQlpZ3RfYXNzZXJ0X2VxX3UzMihyZWFkX3JlZ3NbaW5kZXhdLAogCQkJ CSAgdGFibGUudGFibGVbaW5kZXhdLmNvbnRyb2xfdmFsdWUpOworCX0KIAogCW11bm1hcChyZWFk X3JlZ3MsIDQwOTYpOwogCWdlbV9jbG9zZShmZCwgZHN0X2hhbmRsZSk7CkBAIC0zMTUsMTAgKzM1 NiwxNCBAQCBzdGF0aWMgdm9pZCBjaGVja19sM2NjX3JlZ2lzdGVycyhpbnQgZmQsCiAJZ2VtX3Nl dF9kb21haW4oZmQsIGRzdF9oYW5kbGUsIEk5MTVfR0VNX0RPTUFJTl9DUFUsIDApOwogCiAJZm9y IChpbmRleCA9IDA7IGluZGV4IDwgdGFibGUuc2l6ZSAvIDI7IGluZGV4KyspIHsKLQkJaWd0X2Fz c2VydF9lcV91MzIocmVhZF9yZWdzW2luZGV4XSAmIDB4ZmZmZiwKLQkJCQkgIHRhYmxlLnRhYmxl W2luZGV4ICogMl0ubDNjY192YWx1ZSk7Ci0JCWlndF9hc3NlcnRfZXFfdTMyKHJlYWRfcmVnc1tp bmRleF0gPj4gMTYsCi0JCQkJICB0YWJsZS50YWJsZVtpbmRleCAqIDIgKyAxXS5sM2NjX3ZhbHVl KTsKKwkJaWYgKHRhYmxlLnRhYmxlW2luZGV4ICogMl0udXNlZCkgeworCQkJaWd0X2Fzc2VydF9l cV91MzIocmVhZF9yZWdzW2luZGV4XSAmIDB4ZmZmZiwKKwkJCQkJICB0YWJsZS50YWJsZVtpbmRl eCAqIDJdLmwzY2NfdmFsdWUpOworCQl9CisJCWlmICh0YWJsZS50YWJsZVtpbmRleCAqIDIgKyAx XS51c2VkKSB7CisJCQlpZ3RfYXNzZXJ0X2VxX3UzMihyZWFkX3JlZ3NbaW5kZXhdID4+IDE2LAor CQkJCQkgIHRhYmxlLnRhYmxlW2luZGV4ICogMiArIDFdLmwzY2NfdmFsdWUpOworCQl9CiAJfQog CiAJaWYgKHRhYmxlLnNpemUgJiAxKQpAQCAtMzcyLDE2ICs0MTcsMjMgQEAgc3RhdGljIHZvaWQg Y2hlY2tfbW9jc192YWx1ZXMoaW50IGZkLCB1bnNpZ25lZCBlbmdpbmUsIHVpbnQzMl90IGN0eF9p ZCwgYm9vbCBkaXIKIAkJY2hlY2tfbDNjY19yZWdpc3RlcnMoZmQsIGVuZ2luZSwgY3R4X2lkLCBk aXJ0eSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdyaXRlX2RpcnR5X21vY3MoaW50IGZkLCB1bnNpZ25l ZCBlbmdpbmUsIHVpbnQzMl90IGN0eF9pZCkKK3N0YXRpYyB2b2lkIHdyaXRlX2RpcnR5X21vY3Mo aW50IGZkLCB1bnNpZ25lZCBlbmdpbmUsIHVpbnQzMl90IGN0eF9pZCwgYm9vbCBwcml2aWxlZ2Vk KQogeworCWludCBudW1fb2ZfbW9jc19lbnRyaWVzOworCisJaWYgKGludGVsX2dlbihpbnRlbF9n ZXRfZHJtX2RldmlkKGZkKSkgPj0gMTEpCisJCW51bV9vZl9tb2NzX2VudHJpZXMgPSBHRU4xMV9O VU1fTU9DU19FTlRSSUVTOworCWVsc2UKKwkJbnVtX29mX21vY3NfZW50cmllcyA9IEdFTjlfTlVN X01PQ1NfRU5UUklFUzsKKwogCXdyaXRlX3JlZ2lzdGVycyhmZCwgY3R4X2lkLCBnZXRfZW5naW5l X2Jhc2UoZW5naW5lKSwKLQkJCXdyaXRlX3ZhbHVlcywgQVJSQVlfU0laRSh3cml0ZV92YWx1ZXMp LAotCQkJZW5naW5lKTsKKwkJCXdyaXRlX3ZhbHVlcywgbnVtX29mX21vY3NfZW50cmllcywKKwkJ CWVuZ2luZSwgcHJpdmlsZWdlZCk7CiAKIAlpZiAoZW5naW5lID09IEk5MTVfRVhFQ19SRU5ERVIp CiAJCXdyaXRlX3JlZ2lzdGVycyhmZCwgY3R4X2lkLCBHRU45X0xOQ0ZDTU9DUzAsCi0JCQkJd3Jp dGVfdmFsdWVzLCBBUlJBWV9TSVpFKHdyaXRlX3ZhbHVlcyksCi0JCQkJZW5naW5lKTsKKwkJCQl3 cml0ZV92YWx1ZXMsIG51bV9vZl9tb2NzX2VudHJpZXMvMiwKKwkJCQllbmdpbmUsIHByaXZpbGVn ZWQpOwogfQogCiBzdGF0aWMgdm9pZCBydW5fdGVzdChpbnQgZmQsIHVuc2lnbmVkIGVuZ2luZSwg dW5zaWduZWQgZmxhZ3MsIHVuc2lnbmVkIG1vZGUpCkBAIC0zODksNiArNDQxLDE0IEBAIHN0YXRp YyB2b2lkIHJ1bl90ZXN0KGludCBmZCwgdW5zaWduZWQgZW5naW5lLCB1bnNpZ25lZCBmbGFncywg dW5zaWduZWQgbW9kZSkKIAl1aW50MzJfdCBjdHhfaWQgPSAwOwogCXVpbnQzMl90IGN0eF9jbGVh bl9pZDsKIAl1aW50MzJfdCBjdHhfZGlydHlfaWQ7CisJdWludDMyX3QgY3R4X25vbnByaXZpbGVn ZWRfZGlydHlfaWQ7CisKKwkvKiBBcyBtb2NzIGlzIGdsb2JhbCBmb3IgR0VOMTErLCB0cnlpbmcg cHJpdmlsZWdlZCB3cml0ZSB0byBkaXJ0eQorCSAqIHRoZSBtb2NzIGFuZCB0ZXN0aW5nIGNvbnRl eHQgc2F2ZSBhbmQgcmVzdG9yZSBvZiBtb2NzIGJldHdlZW4KKwkgKiBjb250ZXh0cyBpcyBib3Vu ZCB0byBmYWlsLgorCSAqLworCWlmIChmbGFncyAmIE1PQ1NfRElSVFlfVkFMVUVTKQorCQlpZ3Rf c2tpcF9vbihpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpID49IDExKTsKIAogCWdl bV9yZXF1aXJlX3JpbmcoZmQsIGVuZ2luZSk7CiAKQEAgLTQwMCwxMCArNDYwLDIwIEBAIHN0YXRp YyB2b2lkIHJ1bl90ZXN0KGludCBmZCwgdW5zaWduZWQgZW5naW5lLCB1bnNpZ25lZCBmbGFncywg dW5zaWduZWQgbW9kZSkKIAogCWlmIChmbGFncyAmIE1PQ1NfRElSVFlfVkFMVUVTKSB7CiAJCWN0 eF9kaXJ0eV9pZCA9IGdlbV9jb250ZXh0X2NyZWF0ZShmZCk7Ci0JCXdyaXRlX2RpcnR5X21vY3Mo ZmQsIGVuZ2luZSwgY3R4X2RpcnR5X2lkKTsKKwkJd3JpdGVfZGlydHlfbW9jcyhmZCwgZW5naW5l LCBjdHhfZGlydHlfaWQsIHRydWUpOwogCQljaGVja19tb2NzX3ZhbHVlcyhmZCwgZW5naW5lLCBj dHhfZGlydHlfaWQsIHRydWUpOwogCX0KIAorCS8qIE5vbi1wcml2aWxlZ2VkIHdyaXRlIHRvIGRp cnR5IHRoZSBtb2NzCisJICogc2hvdWxkIGJlIGlnbm9yZWQgYnkgdGhlIGhhcmR3YXJlCisJICov CisJaWYgKGZsYWdzICYgTU9DU19OT05QUklWSUxFR0VEX0RJUlRZX1ZBTFVFUykgeworCQljdHhf bm9ucHJpdmlsZWdlZF9kaXJ0eV9pZCA9IGdlbV9jb250ZXh0X2NyZWF0ZShmZCk7CisJCXdyaXRl X2RpcnR5X21vY3MoZmQsIGVuZ2luZSwgY3R4X25vbnByaXZpbGVnZWRfZGlydHlfaWQsIGZhbHNl KTsKKwkJY2hlY2tfbW9jc192YWx1ZXMoZmQsIGVuZ2luZSwgY3R4X25vbnByaXZpbGVnZWRfZGly dHlfaWQsIGZhbHNlKTsKKwl9CisKKwogCWNoZWNrX21vY3NfdmFsdWVzKGZkLCBlbmdpbmUsIGN0 eF9pZCwgZmFsc2UpOwogCiAJc3dpdGNoIChtb2RlKSB7CkBAIC00NzIsMTIgKzU0MiwxMyBAQCBp Z3RfbWFpbgogCQkJCQlpZiAoZmxhZ3MgJiYgZS0+ZXhlY19pZCAhPSBJOTE1X0VYRUNfUkVOREVS KQogCQkJCQkJY29udGludWU7CiAKLQkJCQkJaWd0X3N1YnRlc3RfZigibW9jcy0lcyVzJXMtJXMi LAorCQkJCQlpZ3Rfc3VidGVzdF9mKCJtb2NzLSVzJXMlcyVzLSVzIiwKIAkJCQkJCSAgICAgIHRl c3RfbW9kZXNbbW9kZV0sCiAJCQkJCQkgICAgICBmbGFncyAmIE1PQ1NfTk9OX0RFRkFVTFRfQ1RY ID8gIi1jdHgiOiAiIiwKIAkJCQkJCSAgICAgIGZsYWdzICYgTU9DU19ESVJUWV9WQUxVRVMgPyAi LWRpcnR5IiA6ICIiLAorCQkJCQkJICAgICAgZmxhZ3MgJiBNT0NTX05PTlBSSVZJTEVHRURfRElS VFlfVkFMVUVTID8gIi1ub25wcml2ZGlydHkiIDogIiIsCiAJCQkJCQkgICAgICBlLT5uYW1lKSB7 Ci0JCQkJCQlpZiAoZmxhZ3MgJiAoTU9DU19OT05fREVGQVVMVF9DVFggfCBNT0NTX0RJUlRZX1ZB TFVFUykpCisJCQkJCQlpZiAoZmxhZ3MgJiAoTU9DU19OT05fREVGQVVMVF9DVFggfCBNT0NTX0RJ UlRZX1ZBTFVFUyB8IE1PQ1NfTk9OUFJJVklMRUdFRF9ESVJUWV9WQUxVRVMpKQogCQkJCQkJCWdl bV9yZXF1aXJlX2NvbnRleHRzKGZkKTsKIAogCQkJCQkJcnVuX3Rlc3QoZmQsIGUtPmV4ZWNfaWQg fCBlLT5mbGFncywgZmxhZ3MsIG1vZGUpOwotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2lndC1kZXY=