From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: [PATCH 02/10] drm/i915/cnl: Add AUX-F support Date: Mon, 29 Jan 2018 15:22:15 -0800 Message-ID: <20180129232223.766-2-rodrigo.vivi@intel.com> References: <20180129232223.766-1-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 048926E33B for ; Mon, 29 Jan 2018 23:22:24 +0000 (UTC) In-Reply-To: <20180129232223.766-1-rodrigo.vivi@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: Lucas De Marchi , Dhinakaran Pandiyan , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gc29tZSBDYW5ub25sYWtlIFNLVXMgd2UgaGF2ZSBhIGRlZGljYXRlZCBBdXggZm9yIHBvcnQg RiwKdGhhdCBpcyBvbmx5IHRoZSBmdWxsIHNwbGl0IGJldHdlZW4gcG9ydCBBIGFuZCBwb3J0IEUu CgpUaGVyZSBpcyBzdGlsbCBubyBBdXggRSBmb3IgUG9ydCBFLCBhcyBpbiBwcmV2aW91cyBwbGF0 Zm9ybXMsCmJlY2F1c2UgcG9ydF9FIHN0aWxsIG1lYW5zIHNoYXJlZCBsYW5lcyB3aXRoIHBvcnQg QS4KCnYyOiBSZWJhc2UuCnYzOiBBZGQgY291cGxlIG1pc3NlZCBQT1JUX0YgY2FzZXMgb24gaW50 ZWxfZHAuCnY0OiBSZWJhc2UgYW5kIGZpeCBjb21taXQgbWVzc2FnZS4KdjU6IFNxdWFzaCBJbXJl J3MgImRybS9pOTE1OiBBZGQgbWlzc2luZyBBVVhfRiBwb3dlciB3ZWxsIHN0cmluZyIKdjY6IFJl YmFzZSBvbiB0b3Agb2YgZGlzcGxheSBoZWFkZXJzIHJld29yay4Kdjc6IHMvSVNfQ0FOTk9OTEFL RS9JU19DTkxfV0lUSF9QT1JUX0YgKERLKQp2ODogRml4IEF1eCBiaXRzIGZvciBQb3J0IEYgKERL KQp2OTogRml4IFZCVCBkZWZpbml0aW9uIG9mIFBvcnQgRiAoREspLgp2MTA6IFNxdWFzaCBwb3dl ciB3ZWxsIGFkZGl0aW9uIHRvIHRoaXMgcGF0Y2ggdG8gYXZvaWQKICAgICB3YXJucyBhcyBwb2lu dGVkIGJ5IERLLgp2MTE6IENsZWFuIHVwIHNxdWFzaGVkIGNvbW1pdCBtZXNzYWdlLiAoRGF2aWQp CnYxMjogUmVtb3ZlIHVubmVjZXNzYXJ5IGhhbmRsaW5nIGZvciBvbGRlciBwbGF0Zm9ybXMgKERL KQogICAgIEFkZGluZyBBVVhfRiB0byBQRzIgZm9sbG93aW5nIG90aGVyIGV4aXN0ZW50IG9uZXMu IChESykKCkNjOiBEYXZpZCBXZWluZWhhbGwgPGRhdmlkLndlaW5laGFsbEBsaW51eC5pbnRlbC5j b20+CkNjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNv bT4KQ2M6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlAaW50ZWwuY29tPgpDYzogSW1y ZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgpDYzogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQu bmF2YXJlQGludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGlu dGVsLmNvbT4KUmV2aWV3ZWQtYnk6IERhdmlkIFdlaW5laGFsbCA8ZGF2aWQud2VpbmVoYWxsQGxp bnV4LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2Fy YW4ucGFuZGl5YW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggICAgICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAg ICB8ICA2ICsrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgIHwg IDkgKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggICAgfCAg MSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgICAgfCAgNiArKysrKysK IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8IDIyICsrKysrKysrKysr KysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCmluZGV4IDU3MDJlYmYxNzk3NC4uZjg5YTFhMGEyNWM4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKQEAgLTEyNTUsNiArMTI1NSw3IEBAIGVudW0gbW9kZXNldF9yZXN0b3Jl IHsKICNkZWZpbmUgRFBfQVVYX0IgMHgxMAogI2RlZmluZSBEUF9BVVhfQyAweDIwCiAjZGVmaW5l IERQX0FVWF9EIDB4MzAKKyNkZWZpbmUgRFBfQVVYX0YgMHg2MAogCiAjZGVmaW5lIEREQ19QSU5f QiAgMHgwNQogI2RlZmluZSBERENfUElOX0MgIDB4MDQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmlu ZGV4IGY2NDNkNWFkN2ZmNy4uNGQ4NGIxYzQxYTk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMK QEAgLTI1ODUsNiArMjU4NSw5IEBAIGdlbjhfZGVfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgbWFzdGVyX2N0bCkKIAkJCQkJICAgIEdFTjlfQVVYX0NI QU5ORUxfQyB8CiAJCQkJCSAgICBHRU45X0FVWF9DSEFOTkVMX0Q7CiAKKwkJCWlmIChJU19DTkxf V0lUSF9QT1JUX0YoZGV2X3ByaXYpKQorCQkJCXRtcF9tYXNrIHw9IENOTF9BVVhfQ0hBTk5FTF9G OworCiAJCQlpZiAoaWlyICYgdG1wX21hc2spIHsKIAkJCQlkcF9hdXhfaXJxX2hhbmRsZXIoZGV2 X3ByaXYpOwogCQkJCWZvdW5kID0gdHJ1ZTsKQEAgLTM2MjMsNiArMzYyNiw5IEBAIHN0YXRpYyB2 b2lkIGdlbjhfZGVfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAkJZGVfcGlwZV9tYXNrZWQgfD0gR0VOOF9ERV9QSVBFX0lSUV9GQVVMVF9FUlJPUlM7 CiAJfQogCisJaWYgKElTX0NOTF9XSVRIX1BPUlRfRihkZXZfcHJpdikpCisJCWRlX3BvcnRfbWFz a2VkIHw9IENOTF9BVVhfQ0hBTk5FTF9GOworCiAJZGVfcGlwZV9lbmFibGVzID0gZGVfcGlwZV9t YXNrZWQgfCBHRU44X1BJUEVfVkJMQU5LIHwKIAkJCQkJICAgR0VOOF9QSVBFX0ZJRk9fVU5ERVJS VU47CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IDY0OTMzZmQ3NGNiNi4uNDRmNDY1OTMx NzJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTEzMTIsNiArMTMxMiw3IEBAIGVudW0g aTkxNV9wb3dlcl93ZWxsX2lkIHsKIAlDTkxfRElTUF9QV19BVVhfQiA9IEdMS19ESVNQX1BXX0FV WF9CLAogCUNOTF9ESVNQX1BXX0FVWF9DID0gR0xLX0RJU1BfUFdfQVVYX0MsCiAJQ05MX0RJU1Bf UFdfQVVYX0QsCisJQ05MX0RJU1BfUFdfQVVYX0YsCiAKIAlTS0xfRElTUF9QV18xID0gMTQsCiAJ U0tMX0RJU1BfUFdfMiwKQEAgLTUyODQsNiArNTI4NSwxMyBAQCBlbnVtIHsKICNkZWZpbmUgX0RQ RF9BVVhfQ0hfREFUQTQJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0 MzIwKQogI2RlZmluZSBfRFBEX0FVWF9DSF9EQVRBNQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9t bWlvX29mZnNldCArIDB4NjQzMjQpCiAKKyNkZWZpbmUgX0RQRl9BVVhfQ0hfQ1RMCQkoZGV2X3By aXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQ1MTApCisjZGVmaW5lIF9EUEZfQVVY X0NIX0RBVEExCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDUxNCkK KyNkZWZpbmUgX0RQRl9BVVhfQ0hfREFUQTIJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19v ZmZzZXQgKyAweDY0NTE4KQorI2RlZmluZSBfRFBGX0FVWF9DSF9EQVRBMwkoZGV2X3ByaXYtPmlu Zm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQ1MWMpCisjZGVmaW5lIF9EUEZfQVVYX0NIX0RB VEE0CShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDUyMCkKKyNkZWZp bmUgX0RQRl9BVVhfQ0hfREFUQTUJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQg KyAweDY0NTI0KQorCiAjZGVmaW5lIERQX0FVWF9DSF9DVEwocG9ydCkJX01NSU9fUE9SVChwb3J0 LCBfRFBBX0FVWF9DSF9DVEwsIF9EUEJfQVVYX0NIX0NUTCkKICNkZWZpbmUgRFBfQVVYX0NIX0RB VEEocG9ydCwgaSkJX01NSU8oX1BPUlQocG9ydCwgX0RQQV9BVVhfQ0hfREFUQTEsIF9EUEJfQVVY X0NIX0RBVEExKSArIChpKSAqIDQpIC8qIDUgcmVnaXN0ZXJzICovCiAKQEAgLTY5MzksNiArNjk0 Nyw3IEBAIGVudW0gewogI2RlZmluZSBHRU44X0RFX1BPUlRfSU1SIF9NTUlPKDB4NDQ0NDQpCiAj ZGVmaW5lIEdFTjhfREVfUE9SVF9JSVIgX01NSU8oMHg0NDQ0OCkKICNkZWZpbmUgR0VOOF9ERV9Q T1JUX0lFUiBfTU1JTygweDQ0NDRjKQorI2RlZmluZSAgQ05MX0FVWF9DSEFOTkVMX0YJCSgxIDw8 IDI4KQogI2RlZmluZSAgR0VOOV9BVVhfQ0hBTk5FTF9ECQkoMSA8PCAyNykKICNkZWZpbmUgIEdF TjlfQVVYX0NIQU5ORUxfQwkJKDEgPDwgMjYpCiAjZGVmaW5lICBHRU45X0FVWF9DSEFOTkVMX0IJ CSgxIDw8IDI1KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCmluZGV4IGU0NzYzODkz MWI1MS4uMzBmYTIwNDFhNDVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCkBA IC0xNzIsNiArMTcyLDcgQEAgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiB7CiAJUE9X RVJfRE9NQUlOX0FVWF9CLAogCVBPV0VSX0RPTUFJTl9BVVhfQywKIAlQT1dFUl9ET01BSU5fQVVY X0QsCisJUE9XRVJfRE9NQUlOX0FVWF9GLAogCVBPV0VSX0RPTUFJTl9HTUJVUywKIAlQT1dFUl9E T01BSU5fTU9ERVNFVCwKIAlQT1dFUl9ET01BSU5fR1RfSVJRLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMKaW5kZXggYTJlODg3OTk5OTE1Li45MzRmZWNjZmVjZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYwpAQCAtMTMyMyw2ICsxMzIzLDkgQEAgc3RhdGljIGVudW0gcG9ydCBpbnRlbF9hdXhfcG9y dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJY2FzZSBEUF9BVVhfRDoKIAkJ YXV4X3BvcnQgPSBQT1JUX0Q7CiAJCWJyZWFrOworCWNhc2UgRFBfQVVYX0Y6CisJCWF1eF9wb3J0 ID0gUE9SVF9GOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlNSVNTSU5HX0NBU0UoaW5mby0+YWx0 ZXJuYXRlX2F1eF9jaGFubmVsKTsKIAkJYXV4X3BvcnQgPSBQT1JUX0E7CkBAIC02MjI0LDYgKzYy MjcsOSBAQCBpbnRlbF9kcF9pbml0X2Nvbm5lY3Rvcl9wb3J0X2luZm8oc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCiAJCS8qIEZJWE1FOiBDaGVjayBWQlQgZm9yIGFj dHVhbCB3aXJpbmcgb2YgUE9SVCBFICovCiAJCWludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluID0g UE9XRVJfRE9NQUlOX0FVWF9EOwogCQlicmVhazsKKwljYXNlIFBPUlRfRjoKKwkJaW50ZWxfZHAt PmF1eF9wb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fQVVYX0Y7CisJCWJyZWFrOwogCWRlZmF1 bHQ6CiAJCU1JU1NJTkdfQ0FTRShlbmNvZGVyLT5wb3J0KTsKIAl9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ydW50aW1lX3BtLmMKaW5kZXggNWIxYWE0YjljNzJjLi5hMjc0ZTkzMGYwNDUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKQEAgLTEyNCw2ICsxMjQsOCBA QCBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbl9zdHIoZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2Vy X2RvbWFpbiBkb21haW4pCiAJCXJldHVybiAiQVVYX0MiOwogCWNhc2UgUE9XRVJfRE9NQUlOX0FV WF9EOgogCQlyZXR1cm4gIkFVWF9EIjsKKwljYXNlIFBPV0VSX0RPTUFJTl9BVVhfRjoKKwkJcmV0 dXJuICJBVVhfRiI7CiAJY2FzZSBQT1dFUl9ET01BSU5fR01CVVM6CiAJCXJldHVybiAiR01CVVMi OwogCWNhc2UgUE9XRVJfRE9NQUlOX0lOSVQ6CkBAIC0xODI4LDYgKzE4MzAsNyBAQCB2b2lkIGlu dGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQikgfCAgICAgICAgICAgICAgICAgICAgICAgXAog CUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9DKSB8CQkJXAogCUJJVF9VTEwoUE9XRVJfRE9NQUlO X0FVWF9EKSB8CQkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9GKSB8CQkJXAogCUJJVF9V TEwoUE9XRVJfRE9NQUlOX0FVRElPKSB8CQkJXAogCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1ZHQSkg fAkJCQlcCiAJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCkBAIC0xODU1LDYgKzE4NTgsOSBA QCB2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKICNkZWZpbmUgQ05MX0RJU1BMQVlfQVVYX0RfUE9XRVJfRE9NQUlOUyAoCQlcCiAJ QklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0QpIHwJCQlcCiAJQklUX1VMTChQT1dFUl9ET01BSU5f SU5JVCkpCisjZGVmaW5lIENOTF9ESVNQTEFZX0FVWF9GX1BPV0VSX0RPTUFJTlMgKAkJXAorCUJJ VF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9GKSB8CQkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lO SVQpKQogI2RlZmluZSBDTkxfRElTUExBWV9EQ19PRkZfUE9XRVJfRE9NQUlOUyAoCQlcCiAJQ05M X0RJU1BMQVlfUE9XRVJXRUxMXzJfUE9XRVJfRE9NQUlOUyB8CQlcCiAJQklUX1VMTChQT1dFUl9E T01BSU5fR1RfSVJRKSB8CQkJXApAQCAtMjQwNSw2ICsyNDExLDEyIEBAIHN0YXRpYyBzdHJ1Y3Qg aTkxNV9wb3dlcl93ZWxsIGNubF9wb3dlcl93ZWxsc1tdID0gewogCQkub3BzID0gJmhzd19wb3dl cl93ZWxsX29wcywKIAkJLmlkID0gU0tMX0RJU1BfUFdfRERJX0QsCiAJfSwKKwl7CisJCS5uYW1l ID0gIkFVWCBGIiwKKwkJLmRvbWFpbnMgPSBDTkxfRElTUExBWV9BVVhfRl9QT1dFUl9ET01BSU5T LAorCQkub3BzID0gJmhzd19wb3dlcl93ZWxsX29wcywKKwkJLmlkID0gQ05MX0RJU1BfUFdfQVVY X0YsCisJfSwKIH07CiAKIHN0YXRpYyBpbnQKQEAgLTI1MjAsNiArMjUzMiwxNiBAQCBpbnQgaW50 ZWxfcG93ZXJfZG9tYWluc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAkJc2V0X3Bvd2VyX3dlbGxzKHBvd2VyX2RvbWFpbnMsIHNrbF9wb3dlcl93ZWxscyk7CiAJfSBl bHNlIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2KSkgewogCQlzZXRfcG93ZXJfd2VsbHMocG93 ZXJfZG9tYWlucywgY25sX3Bvd2VyX3dlbGxzKTsKKworCQkvKgorCQkgKiBBdXggSU8gaXMgZ2V0 dGluZyBlbmFibGVkIGZvciBhbGwgcG9ydHMKKwkJICogcmVnYXJkbGVzcyB0aGUgcHJlc2VuY2Ug b3IgdXNlLiBTbywgaW4gb3JkZXIgdG8gYXZvaWQKKwkJICogdGltZW91dHMsIGxldHMgcmVtb3Zl IGl0IGZyb20gdGhlIGxpc3QKKwkJICogZm9yIHRoZSBTS1VzIHdpdGhvdXQgcG9ydCBGLgorCQkg Ki8KKwkJaWYgKCFJU19DTkxfV0lUSF9QT1JUX0YoZGV2X3ByaXYpKQorCQkJcG93ZXJfZG9tYWlu cy0+cG93ZXJfd2VsbF9jb3VudCAtPSAxOworCiAJfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldl9w cml2KSkgewogCQlzZXRfcG93ZXJfd2VsbHMocG93ZXJfZG9tYWlucywgYnh0X3Bvd2VyX3dlbGxz KTsKIAl9IGVsc2UgaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Ci0tIAoyLjEzLjYKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=