From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [RFC 17/37] drm/i915/guc: Add support for GuC ADS (Addition Data Structure) Date: Mon, 23 Nov 2015 11:41:52 +0000 Message-ID: <1448278932-31551-18-git-send-email-John.C.Harrison@Intel.com> References: <1448278932-31551-1-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 270396E554 for ; Mon, 23 Nov 2015 03:42:35 -0800 (PST) In-Reply-To: <1448278932-31551-1-git-send-email-John.C.Harrison@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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogRGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KClRoZSBHdUMgZmly bXdhcmUgdXNlcyB0aGlzIGZvciB2YXJpb3VzIHB1cnBvc2VzOyBpdCBzZWVtcyB0byBiZQpyZXF1 aXJlZCBmb3IgcHJlZW1wdGlvbiB0byB3b3JrLgoKRm9yOiBWSVotMjAyMQpTaWduZWQtb2ZmLWJ5 OiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oICAgICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8IDU3ICsrKysrKysrKysrKysrKysrKysrKystCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAgMiArCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oICAgICAgfCA3MyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyAg ICB8IDE0ICsrKystLQogNSBmaWxlcyBjaGFuZ2VkLCAxNDEgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19yZWcu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCmluZGV4IGI1MWI4MjguLjEw OTQ3ZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCkBAIC00MCw2ICs0MCw3IEBA CiAjZGVmaW5lICAgR1NfTUlBX0NPUkVfU1RBVEUJCSAgKDEgPDwgR1NfTUlBX1NISUZUKQogCiAj ZGVmaW5lIFNPRlRfU0NSQVRDSChuKQkJCSgweGMxODAgKyAoKG4pICogNCkpCisjZGVmaW5lIFNP RlRfU0NSQVRDSF9DT1VOVAkJMTYKIAogI2RlZmluZSBVT1NfUlNBX1NDUkFUQ0goaSkJCSgweGMy MDAgKyAoaSkgKiA0KQogI2RlZmluZSAgIFVPU19SU0FfU0NSQVRDSF9NQVhfQ09VTlQJICA2NApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCmluZGV4IGQxMWJiYTku LjAzNWYxMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1p c3Npb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMK QEAgLTYxMSw5ICs2MTEsMTAgQEAgc3RhdGljIGludCBndWNfYWRkX3dvcmtxdWV1ZV9pdGVtKHN0 cnVjdCBpOTE1X2d1Y19jbGllbnQgKmdjLAogCXdxaS0+Y29udGV4dF9kZXNjID0gKHUzMilpbnRl bF9scl9jb250ZXh0X2Rlc2NyaXB0b3IocnEtPmN0eCwgcnEtPnJpbmcpOwogCiAJLyogVGhlIEd1 QyBmaXJtd2FyZSB3YW50cyB0aGUgdGFpbCBpbmRleCBpbiBRV29yZHMsIG5vdCBieXRlcyAqLwor CVdBUk5fT04ocnEtPnJpbmdidWYtPnRhaWwgJiA3KTsKIAl0YWlsID0gcnEtPnJpbmdidWYtPnRh aWwgPj4gMzsKIAl3cWktPnJpbmdfdGFpbCA9IHRhaWwgPDwgV1FfUklOR19UQUlMX1NISUZUOwot CXdxaS0+ZmVuY2VfaWQgPSAwOyAvKlhYWDogd2hhdCBmZW5jZSB0byBiZSBoZXJlICovCisJd3Fp LT5mZW5jZV9pZCA9IHJxLT5zZXFubzsgLypYWFg6IHdoYXQgZmVuY2UgdG8gYmUgaGVyZSAqLwog CiAJa3VubWFwX2F0b21pYyhiYXNlKTsKIApAQCAtOTI2LDYgKzkyNyw1NyBAQCBzdGF0aWMgdm9p ZCBndWNfY3JlYXRlX2xvZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJZ3VjLT5sb2dfZmxhZ3Mg PSAob2Zmc2V0IDw8IEdVQ19MT0dfQlVGX0FERFJfU0hJRlQpIHwgZmxhZ3M7CiB9CiAKK3N0YXRp YyB2b2lkIGd1Y19jcmVhdGVfYWRkb24oc3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7CisJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlzdHJ1Y3QgZ3VjX2FkcyAqYWRzOworCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisJdTMyIHNpemUs IGk7CisKKwkvKiBUaGUgYWRzIG9iaiBpbmNsdWRlcyB0aGUgc3RydWN0IGl0c2VsZiwgcGx1cyBt ZW1vcnkgZm9yIEd1QyB0byB1c2UKKwkgKiBpbnRlcm5hbGx5IHRvIHNhdmUgTU1JTyByZWdpc3Rl cnMgYW5kIHN0YXRlcyB3aGVuIHJlc2V0IG9yIFBNIHN0YXRlCisJICogY2hhbmdlIGhhcHBlbnMu ICovCisJc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZW9mKHN0cnVjdCBndWNfYWRzKSkgKworCQlQQUdF X0FMSUdOKHNpemVvZihzdHJ1Y3QgZ3VjX21taW9fcmVnX3N0YXRlKSkgKworCQlHVUNfTUFYX1Mz X1NBVkVfU1BBQ0VfUEFHRVMgKiBQQUdFX1NJWkU7CisKKwlvYmogPSBndWMtPmFkc19vYmo7CisJ aWYgKCFvYmopIHsKKwkJb2JqID0gZ2VtX2FsbG9jYXRlX2d1Y19vYmooZGV2X3ByaXYtPmRldiwg c2l6ZSk7CisJCWlmICghb2JqKQorCQkJcmV0dXJuOworCisJCWd1Yy0+YWRzX29iaiA9IG9iajsK Kwl9CisKKwlwYWdlID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKG9iaiwgMCk7CisJYWRzID0g a21hcF9hdG9taWMocGFnZSk7CisJaWYgKCFhZHMpIHsKKwkJZ3VjLT5hZHNfb2JqID0gTlVMTDsK KwkJZ2VtX3JlbGVhc2VfZ3VjX29iaihvYmopOworCQlyZXR1cm47CisJfQorCisJLyogVE9ETzog RmlsbCB1cCB0aGUgcmVnaXN0ZXIgdGFibGUgaGVyZSAqLworCWFkcy0+bW1pb19yZWdfc3RhdGVf YWRkciA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopICsKKwkJCVBBR0VfQUxJR04oc2l6 ZW9mKHN0cnVjdCBndWNfYWRzKSk7CisKKwlhZHMtPmd1Y19zdGF0ZV9zYXZlZF9idWZmZXIgPSBh ZHMtPm1taW9fcmVnX3N0YXRlX2FkZHIgKworCQkJUEFHRV9BTElHTihzaXplb2Yoc3RydWN0IGd1 Y19tbWlvX3JlZ19zdGF0ZSkpOworCisJLyogVE9ETzogYSBHb2xkZXJuIENvbnRleHQgaXMgbmVl ZGVkIGJ5IEd1QyB0byBpbml0aWFsaXplIGxyYyBjb250ZXh0CisJICogYWZ0ZXIgcmVzZXQuIEhl cmUgd2UgdXNlIHRoZSByZW5kZXIgcmluZyBkZWZhdWx0IGNvbnRleHQuICovCisJcmluZyA9ICZk ZXZfcHJpdi0+cmluZ1tSQ1NdOworCWFkcy0+Z29sZGVuX2NvbnRleHRfbHJjYSA9IHJpbmctPnN0 YXR1c19wYWdlLmdmeF9hZGRyOworCisJZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkK KwkJYWRzLT5lbmdfc3RhdGVfc2l6ZVtpXSA9IGludGVsX2xyX2NvbnRleHRfc2l6ZShyaW5nKTsK KworCWt1bm1hcF9hdG9taWMoYWRzKTsKK30KKwogLyoKICAqIFNldCB1cCB0aGUgbWVtb3J5IHJl c291cmNlcyB0byBiZSBzaGFyZWQgd2l0aCB0aGUgR3VDLiAgQXQgdGhpcyBwb2ludCwKICAqIHdl IHJlcXVpcmUganVzdCBvbmUgb2JqZWN0IHRoYXQgY2FuIGJlIG1hcHBlZCB0aHJvdWdoIHRoZSBH R1RULgpAQCAtOTUzLDYgKzEwMDUsNyBAQCBpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWRhX2luaXQoJmd1Yy0+Y3R4X2lkcyk7CiAKIAlndWNf Y3JlYXRlX2xvZyhndWMpOworCWd1Y19jcmVhdGVfYWRkb24oZ3VjKTsKIAogCXJldHVybiAwOwog fQpAQCAtMTAwMCw2ICsxMDUzLDggQEAgdm9pZCBpOTE1X2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+ Z3VjOwogCisJZ2VtX3JlbGVhc2VfZ3VjX29iaihkZXZfcHJpdi0+Z3VjLmFkc19vYmopOworCWd1 Yy0+YWRzX29iaiA9IE5VTEw7CiAJZ2VtX3JlbGVhc2VfZ3VjX29iaihkZXZfcHJpdi0+Z3VjLmxv Z19vYmopOwogCWd1Yy0+bG9nX29iaiA9IE5VTEw7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgK aW5kZXggMDc5MzcxMy4uMTUwZDU5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3VjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKQEAgLTkw LDYgKzkwLDggQEAgc3RydWN0IGludGVsX2d1YyB7CiAJdWludDMyX3QgbG9nX2ZsYWdzOwogCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpsb2dfb2JqOwogCisJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmFkc19vYmo7CisKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X3Bv b2xfb2JqOwogCXN0cnVjdCBpZGEgY3R4X2lkczsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3aWYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Y19md2lmLmgKaW5kZXggMTEwNDk2YS4uOWY1YmUxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3aWYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWNfZndpZi5oCkBAIC04MSwxMSArODEsMTQgQEAKICNkZWZpbmUgR1VDX0NUTF9DVFhJTkZP CQkJMAogI2RlZmluZSAgIEdVQ19DVExfQ1RYTlVNX0lOMTZfU0hJRlQJMAogI2RlZmluZSAgIEdV Q19DVExfQkFTRV9BRERSX1NISUZUCTEyCisKICNkZWZpbmUgR1VDX0NUTF9BUkFUX0hJR0gJCTEK ICNkZWZpbmUgR1VDX0NUTF9BUkFUX0xPVwkJMgorCiAjZGVmaW5lIEdVQ19DVExfREVWSUNFX0lO Rk8JCTMKICNkZWZpbmUgICBHVUNfQ1RMX0dUVFlQRV9TSElGVAkJMAogI2RlZmluZSAgIEdVQ19D VExfQ09SRUZBTUlMWV9TSElGVAk3CisKICNkZWZpbmUgR1VDX0NUTF9MT0dfUEFSQU1TCQk0CiAj ZGVmaW5lICAgR1VDX0xPR19WQUxJRAkJCSgxIDw8IDApCiAjZGVmaW5lICAgR1VDX0xPR19OT1RJ RllfT05fSEFMRl9GVUxMCSgxIDw8IDEpCkBAIC05Nyw5ICsxMDAsMTIgQEAKICNkZWZpbmUgICBH VUNfTE9HX0lTUl9QQUdFUwkJMwogI2RlZmluZSAgIEdVQ19MT0dfSVNSX1NISUZUCQk5CiAjZGVm aW5lICAgR1VDX0xPR19CVUZfQUREUl9TSElGVAkxMgorCiAjZGVmaW5lIEdVQ19DVExfUEFHRV9G QVVMVF9DT05UUk9MCTUKKwogI2RlZmluZSBHVUNfQ1RMX1dBCQkJNgogI2RlZmluZSAgIEdVQ19D VExfV0FfVUtfQllfRFJJVkVSCSgxIDw8IDMpCisKICNkZWZpbmUgR1VDX0NUTF9GRUFUVVJFCQkJ NwogI2RlZmluZSAgIEdVQ19DVExfVkNTMl9FTkFCTEVECQkoMSA8PCAwKQogI2RlZmluZSAgIEdV Q19DVExfS0VSTkVMX1NVQk1JU1NJT05TCSgxIDw8IDEpCkBAIC0xMDksNiArMTE1LDcgQEAKICNk ZWZpbmUgICBHVUNfQ1RMX1BSRUVNUFRJT05fTE9HCSgxIDw8IDUpCiAjZGVmaW5lICAgR1VDX0NU TF9FTkFCTEVfU0xQQwkJKDEgPDwgNykKICNkZWZpbmUgICBHVUNfQ1RMX1JFU0VUX09OX1BSRU1Q VF9GQUlMVVJFCSgxIDw8IDgpCisKICNkZWZpbmUgR1VDX0NUTF9ERUJVRwkJCTgKICNkZWZpbmUg ICBHVUNfTE9HX1ZFUkJPU0lUWV9TSElGVAkwCiAjZGVmaW5lICAgR1VDX0xPR19WRVJCT1NJVFlf TE9XCQkoMCA8PCBHVUNfTE9HX1ZFUkJPU0lUWV9TSElGVCkKQEAgLTExOCw5ICsxMjUsMTkgQEAK IC8qIFZlcmJvc2l0eSByYW5nZS1jaGVjayBsaW1pdHMsIHdpdGhvdXQgdGhlIHNoaWZ0ICovCiAj ZGVmaW5lCSAgR1VDX0xPR19WRVJCT1NJVFlfTUlOCQkwCiAjZGVmaW5lCSAgR1VDX0xPR19WRVJC T1NJVFlfTUFYCQkzCi0jZGVmaW5lIEdVQ19DVExfUlNSVkQJCQk5CisjZGVmaW5lCSAgR1VDX0xP R19WRVJCT1NJVFlfTUFTSwkweDAwMDAwMDBmCisjZGVmaW5lCSAgR1VDX0xPR19ERVNUSU5BVElP Tl9NQVNLCSgzIDw8IDQpCisjZGVmaW5lICAgR1VDX0xPR19ESVNBQkxFRAkJKDEgPDwgNikKKyNk ZWZpbmUgICBHVUNfUFJPRklMRV9FTkFCTEVECQkoMSA8PCA3KQorI2RlZmluZSAgIEdVQ19XUV9U UkFDS19FTkFCTEVECQkoMSA8PCA4KQorI2RlZmluZSAgIEdVQ19BRFNfRU5BQkxFRAkJKDEgPDwg OSkKKyNkZWZpbmUgICBHVUNfREVCVUdfUkVTRVJWRUQJCSgxIDw8IDEwKQorI2RlZmluZSAgIEdV Q19BRFNfQUREUl9TSElGVAkJMTEKKyNkZWZpbmUgICBHVUNfQURTX0FERFJfTUFTSwkJMHhmZmZm ZjgwMAorCisjZGVmaW5lIEdVQ19DVExfUlNSVkQJCQk5CS8vIEdmeEFkZHJlc3NLbVNoYXJlZERh dGE/CiAKLSNkZWZpbmUgR1VDX0NUTF9NQVhfRFdPUkRTCQkoR1VDX0NUTF9SU1JWRCArIDEpCisj ZGVmaW5lIEdVQ19DVExfTUFYX0RXT1JEUwkJKFNPRlRfU0NSQVRDSF9DT1VOVCAtIDIpIC8qIFsx Li4xNF0gKi8KIAogLyoqCiAgKiBET0M6IEd1QyBGaXJtd2FyZSBMYXlvdXQKQEAgLTMwNCwxNiAr MzIxLDY4IEBAIHN0cnVjdCBndWNfY29udGV4dF9kZXNjIHsKICNkZWZpbmUgR1VDX1BPV0VSX0Qy CQkzCiAjZGVmaW5lIEdVQ19QT1dFUl9EMwkJNAogCisvKiBHdUMgQWRkaXRpb25hbCBEYXRhIFN0 cnVjdCAqLworCisjZGVmaW5lIEdVQ19SRUdTRVRfRkxBR1NfTk9ORQkJMHgwCisjZGVmaW5lIEdV Q19SRUdTRVRfUE9XRVJDWUNMRQkJMHgxCisjZGVmaW5lIEdVQ19SRUdTRVRfTUFTS0VECQkweDIK KyNkZWZpbmUgR1VDX1JFR1NFVF9FTkdJTkVSRVNFVAkJMHg0CisjZGVmaW5lIEdVQ19SRUdTRVRf U0FWRV9ERUZBVUxUX1ZBTFVFCTB4OAorI2RlZmluZSBHVUNfUkVHU0VUX1NBVkVfQ1VSUkVOVF9W QUxVRQkweDEwCisKKyNkZWZpbmUgR1VDX1JFR1NFVF9NQVhfUkVHSVNURVJTX1BFUl9TRVQJMjAK KworI2RlZmluZSBLTV9NTUlPX1dISVRFX0xJU1RfTUFYX09GRlNFVFMgMTIKK3N0cnVjdCBndWNf bW1pb193aGl0ZV9saXN0IHsKKwl1MzIgbW1pb19zdGFydDsKKwl1MzIgb2Zmc2V0c1tLTV9NTUlP X1dISVRFX0xJU1RfTUFYX09GRlNFVFNdOworCXUzMiBjb3VudDsKK30gX19wYWNrZWQ7CisKK3N0 cnVjdCBndWNfbW1pb19yZWcgeworCXUzMiBvZmZzZXQ7CisJdTMyIHZhbHVlOworCXUzMiBGbGFn czsKK30gX19wYWNrZWQ7CisKK3N0cnVjdCBndWNfbW1pb19yZWdzZXQgeworCXN0cnVjdCBndWNf bW1pb19yZWcgcmVnaXN0ZXJzW0dVQ19SRUdTRVRfTUFYX1JFR0lTVEVSU19QRVJfU0VUXTsKKwl1 MzIgdmFsdWVzX3ZhbGlkOworCXUzMiBudW1iZXJfb2ZfcmVnaXN0ZXJzOworfSBfX3BhY2tlZDsK Kworc3RydWN0IGd1Y19tbWlvX3JlZ19zdGF0ZSB7CisJc3RydWN0IGd1Y19tbWlvX3JlZ3NldCBn bG9iYWxfcmVnOworCXN0cnVjdCBndWNfbW1pb19yZWdzZXQgbm9kZV9yZWdbSTkxNV9OVU1fUklO R1NdOworCS8qIE1NSU8gcmVnaXN0ZXJzIHRoYXQgYXJlIHNldCBhcyBub24gcHJpdmlsZWdlZCAq LworCXN0cnVjdCBndWNfbW1pb193aGl0ZV9saXN0IG1taW9fd2hpdGVfbGlzdFtJOTE1X05VTV9S SU5HU107Cit9IF9fcGFja2VkOworCisjZGVmaW5lIEdVQ19NQVhfUzNfU0FWRV9TUEFDRV9QQUdF UwkxMAorCisvKiBBZGRpdGlvbmFsIERhdGEgU3RydWN0ICovCitzdHJ1Y3QgZ3VjX2FkcyB7CisJ dTMyIG1taW9fcmVnX3N0YXRlX2FkZHI7CisJdTMyIGd1Y19zdGF0ZV9zYXZlZF9idWZmZXI7CisJ dTMyIGdvbGRlbl9jb250ZXh0X2xyY2E7CisJdTMyIHNjaGVkdWxlcl9wb2xpY2llczsKKwl1MzIg cmVzZXJ2ZWQwWzNdOworCXUzMiBlbmdfc3RhdGVfc2l6ZVtJOTE1X05VTV9SSU5HU107CisJdTMy IHJlc2VydmVkMls0XTsKK30gX19wYWNrZWQ7CisKIC8qIFRoaXMgQWN0aW9uIHdpbGwgYmUgcHJv Z3JhbW1lZCBpbiBDMTgwIC0gU09GVF9TQ1JBVENIX09fUkVHICovCiBlbnVtIGhvc3QyZ3VjX2Fj dGlvbiB7CiAJSE9TVDJHVUNfQUNUSU9OX0RFRkFVTFQgPSAweDAsCiAJSE9TVDJHVUNfQUNUSU9O X1JFUVVFU1RfUFJFRU1QVElPTiA9IDB4MiwKKwlIT1NUMkdVQ19BQ1RJT05fUkVRVUVTVF9FTkdJ TkVfUkVTRVQgPSAweDMsCiAJSE9TVDJHVUNfQUNUSU9OX1NBTVBMRV9GT1JDRVdBS0UgPSAweDYs CiAJSE9TVDJHVUNfQUNUSU9OX0FMTE9DQVRFX0RPT1JCRUxMID0gMHgxMCwKIAlIT1NUMkdVQ19B Q1RJT05fREVBTExPQ0FURV9ET09SQkVMTCA9IDB4MjAsCiAJSE9TVDJHVUNfQUNUSU9OX0VOVEVS X1NfU1RBVEUgPSAweDUwMSwKIAlIT1NUMkdVQ19BQ1RJT05fRVhJVF9TX1NUQVRFID0gMHg1MDIs CiAJSE9TVDJHVUNfQUNUSU9OX1NMUENfUkVRVUVTVCA9IDB4MzAwMywKKwlIT1NUMkdVQ19BQ1RJ T05fQVVUSEVOVElDQVRFX0hVQyA9IDB4NDAwMCwKIAlIT1NUMkdVQ19BQ1RJT05fTElNSVQKIH07 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwppbmRleCA1NTA5MjFmLi5j ZTY5MmNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCkBAIC0xNjUs MTggKzE2NSwyNiBAQCBzdGF0aWMgdm9pZCBzZXRfZ3VjX2luaXRfcGFyYW1zKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCWk5MTUuZ3VjX2xvZ19sZXZlbCA8PCBHVUNfTE9H X1ZFUkJPU0lUWV9TSElGVDsKIAl9CiAKKwlpZiAoZ3VjLT5hZHNfb2JqKSB7CisJCXUzMiBhZHMg PSAodTMyKWk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChndWMtPmFkc19vYmopOworCQlhZHMgPj49 IFBBR0VfU0hJRlQ7CisKKwkJcGFyYW1zW0dVQ19DVExfREVCVUddIHw9IGFkcyA8PCBHVUNfQURT X0FERFJfU0hJRlQ7CisJCXBhcmFtc1tHVUNfQ1RMX0RFQlVHXSB8PSBHVUNfQURTX0VOQUJMRUQ7 CisJfQorCiAJLyogSWYgR3VDIHN1Ym1pc3Npb24gaXMgZW5hYmxlZCwgc2V0IHVwIGFkZGl0aW9u YWwgcGFyYW1ldGVycyBoZXJlICovCiAJaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKSB7 Ci0JCXUzMiBwZ3MgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoZGV2X3ByaXYtPmd1Yy5jdHhf cG9vbF9vYmopOwogCQl1MzIgY3R4X2luXzE2ID0gR1VDX01BWF9HUFVfQ09OVEVYVFMgLyAxNjsK LQorCQl1MzIgcGdzID0gKHUzMilpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoZ3VjLT5jdHhfcG9v bF9vYmopOwogCQlwZ3MgPj49IFBBR0VfU0hJRlQ7CisKIAkJcGFyYW1zW0dVQ19DVExfQ1RYSU5G T10gPSAocGdzIDw8IEdVQ19DVExfQkFTRV9BRERSX1NISUZUKSB8CiAJCQkoY3R4X2luXzE2IDw8 IEdVQ19DVExfQ1RYTlVNX0lOMTZfU0hJRlQpOwogCiAJCXBhcmFtc1tHVUNfQ1RMX0ZFQVRVUkVd IHw9IEdVQ19DVExfS0VSTkVMX1NVQk1JU1NJT05TOwogCi0JCS8qIFVubWFzayB0aGlzIGJpdCB0 byBlbmFibGUgdGhlIEd1QydzIGludGVybmFsIHNjaGVkdWxlciAqLworCQkvKiBDbGVhciB0aGlz IGJpdCB0byBlbmFibGUgdGhlIEd1QydzIGludGVybmFsIHNjaGVkdWxlciAqLwogCQlwYXJhbXNb R1VDX0NUTF9GRUFUVVJFXSAmPSB+R1VDX0NUTF9ESVNBQkxFX1NDSEVEVUxFUjsKIAl9CiAKLS0g CjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=