From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: [PATCH v6 08/19] drm/i915/gen8: Add 4 level switching infrastructure and lrc support Date: Wed, 29 Jul 2015 17:23:52 +0100 Message-ID: <1438187043-34267-9-git-send-email-michel.thierry@intel.com> References: <1438187043-34267-1-git-send-email-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 42AA76EC22 for ; Wed, 29 Jul 2015 09:24:14 -0700 (PDT) In-Reply-To: <1438187043-34267-1-git-send-email-michel.thierry@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: akash.goel@intel.com List-Id: intel-gfx@lists.freedesktop.org SW4gNjRiICg0OGJpdCBjYW5vbmljYWwpIFBQR1RUIGFkZHJlc3NpbmcsIHRoZSBQRFAwIHJlZ2lz dGVyIGNvbnRhaW5zCnRoZSBiYXNlIGFkZHJlc3MgdG8gUE1MNCwgd2hpbGUgdGhlIG90aGVyIFBE UCByZWdpc3RlcnMgYXJlIGlnbm9yZWQuCgpJbiBMUkMsIHRoZSBhZGRyZXNzaW5nIG1vZGUgbXVz dCBiZSBzcGVjaWZpZWQgaW4gZXZlcnkgY29udGV4dApkZXNjcmlwdG9yLCBhbmQgdGhlIGJhc2Ug YWRkcmVzcyB0byBQTUw0IGlzIHN0b3JlZCBpbiB0aGUgcmVnIHN0YXRlLgoKdjI6IFBNTDQgdXBk YXRlIGluIGxlZ2FjeSBjb250ZXh0IHN3aXRjaCBpcyBsZWZ0IGZvciBoaXN0b3JpYyByZWFzb25z LAp0aGUgcHJlZmVycmVkIG1vZGUgb2Ygb3BlcmF0aW9uIGlzIHdpdGggbHJjIGNvbnRleHQgYmFz ZWQgc3VibWlzc2lvbi4KdjM6IHMvZ2VuOF9tYXBfcGFnZV9kaXJlY3RvcnkvZ2VuOF9zZXR1cF9w YWdlX2RpcmVjdG9yeSBhbmQKcy9nZW44X21hcF9wYWdlX2RpcmVjdG9yeV9wb2ludGVyL2dlbjhf c2V0dXBfcGFnZV9kaXJlY3RvcnlfcG9pbnRlci4KQWxzbywgY2xmbHVzaCB3aWxsIGJlIG5lZWRl ZCBmb3IgYnh0LiAoQWthc2gpCnY0OiBTcXVhc2hlZCBscmMtc3BlY2lmaWMgY29kZSBhbmQgdXNl IGEgbWFjcm8gdG8gc2V0IFBNTDQgcmVnaXN0ZXIuCnY1OiBSZWJhc2UgYWZ0ZXIgTWlrYSdzIHBw Z3R0IGNsZWFudXAgLyBzY3JhdGNoIG1lcmdlIHBhdGNoIHNlcmllcy4KUERQIHVwZGF0ZSBpbiBi Yl9zdGFydCBpcyBvbmx5IGZvciBsZWdhY3kgMzJiIG1vZGUuCnY2OiBSZWJhc2UgYWZ0ZXIgZmlu YWwgbWVyZ2VkIHZlcnNpb24gb2YgTWlrYSdzIHBwZ3R0L3NjcmF0Y2gKcGF0Y2hlcy4Kdjc6IFRo ZXJlIGlzIG5vIG5lZWQgdG8gdXBkYXRlIHRoZSBwbWw0IHJlZ2lzdGVyIHZhbHVlIGluCmV4ZWNs aXN0c191cGRhdGVfY29udGV4dC4gKEFrYXNoKQp2ODogTW92ZSBwZCBhbmQgcGRwIHNldHVwIGZ1 bmN0aW9ucyB0byBhIHByZXZpb3VzIHBhdGNoLCB0aGV5IGRvIG5vdApiZWxvbmcgaGVyZS4gKEFr YXNoKQoKQ2M6IEFrYXNoIEdvZWwgPGFrYXNoLmdvZWxAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBCZW4gV2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+ClNpZ25lZC1vZmYtYnk6IE1pY2hlbCBU aGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+ICh2MispCi0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgfCAxNyArKysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaCAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyAgICB8IDYwICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDMgZmls ZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCA0MTc5YjgwLi5jNmM4YWY3IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtNjU2LDggKzY1Niw4IEBAIHN0YXRpYyBpbnQgZ2VuOF93 cml0ZV9wZHAoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJcmV0dXJuIDA7CiB9 CiAKLXN0YXRpYyBpbnQgZ2VuOF9tbV9zd2l0Y2goc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0 LAotCQkJICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKK3N0YXRpYyBpbnQgZ2Vu OF9sZWdhY3lfbW1fc3dpdGNoKHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCwKKwkJCQkgc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CiAJaW50IGksIHJldDsKIApAQCAtNjcy LDYgKzY3MiwxMiBAQCBzdGF0aWMgaW50IGdlbjhfbW1fc3dpdGNoKHN0cnVjdCBpOTE1X2h3X3Bw Z3R0ICpwcGd0dCwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBnZW44XzQ4Yl9tbV9zd2l0 Y2goc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAorCQkJICAgICAgc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEpCit7CisJcmV0dXJuIGdlbjhfd3JpdGVfcGRwKHJlcSwgMCwgcHhf ZG1hKCZwcGd0dC0+cG1sNCkpOworfQorCiBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFyX3B0 ZV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJCQkgICAgICAgc3RydWN0 IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlciAqcGRwLAogCQkJCSAgICAgICB1aW50NjRfdCBz dGFydCwKQEAgLTEzMTgsMTQgKzEzMjQsMTMgQEAgc3RhdGljIGludCBnZW44X3BwZ3R0X2luaXQo c3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KQogCXBwZ3R0LT5iYXNlLnVuYmluZF92bWEgPSBw cGd0dF91bmJpbmRfdm1hOwogCXBwZ3R0LT5iYXNlLmJpbmRfdm1hID0gcHBndHRfYmluZF92bWE7 CiAKLQlwcGd0dC0+c3dpdGNoX21tID0gZ2VuOF9tbV9zd2l0Y2g7Ci0KIAlpZiAoVVNFU19GVUxM XzQ4QklUX1BQR1RUKHBwZ3R0LT5iYXNlLmRldikpIHsKIAkJcmV0ID0gc2V0dXBfcHgocHBndHQt PmJhc2UuZGV2LCAmcHBndHQtPnBtbDQpOwogCQlpZiAocmV0KQogCQkJZ290byBmcmVlX3NjcmF0 Y2g7CiAKIAkJcHBndHQtPmJhc2UudG90YWwgPSAxVUxMIDw8IDQ4OworCQlwcGd0dC0+c3dpdGNo X21tID0gZ2VuOF80OGJfbW1fc3dpdGNoOwogCX0gZWxzZSB7CiAJCXJldCA9IF9fcGRwX2luaXQo ZmFsc2UsICZwcGd0dC0+cGRwKTsKIAkJaWYgKHJldCkKQEAgLTEzNDAsNiArMTM0NSw3IEBAIHN0 YXRpYyBpbnQgZ2VuOF9wcGd0dF9pbml0KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKIAkJ CSAqLwogCQkJcHBndHQtPmJhc2UudG90YWwgPSB0b19pOTE1KHBwZ3R0LT5iYXNlLmRldiktPmd0 dC5iYXNlLnRvdGFsOwogCisJCXBwZ3R0LT5zd2l0Y2hfbW0gPSBnZW44X2xlZ2FjeV9tbV9zd2l0 Y2g7CiAJCXRyYWNlX2k5MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlcl9lbnRyeV9hbGxvYygmcHBn dHQtPmJhc2UsCiAJCQkJCQkJICAgICAgMCwgMCwKIAkJCQkJCQkgICAgICBHRU44X1BNTDRFX1NI SUZUKTsKQEAgLTE1MzcsOCArMTU0Myw5IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfZW5hYmxl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaW50IGo7CiAKIAlmb3JfZWFjaF9yaW5nKHJpbmcs IGRldl9wcml2LCBqKSB7CisJCXUzMiBmb3VyX2xldmVsID0gVVNFU19GVUxMXzQ4QklUX1BQR1RU KGRldikgPyBHRU44X0dGWF9QUEdUVF80OEIgOiAwOwogCQlJOTE1X1dSSVRFKFJJTkdfTU9ERV9H RU43KHJpbmcpLAotCQkJICAgX01BU0tFRF9CSVRfRU5BQkxFKEdGWF9QUEdUVF9FTkFCTEUpKTsK KwkJCSAgIF9NQVNLRURfQklUX0VOQUJMRShHRlhfUFBHVFRfRU5BQkxFIHwgZm91cl9sZXZlbCkp OwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggM2E3NzY3OC4uNWJkMWI2YSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC0xNjcwLDYgKzE2NzAsNyBAQCBlbnVtIHNrbF9k aXNwX3Bvd2VyX3dlbGxzIHsKICNkZWZpbmUgICBHRlhfUkVQTEFZX01PREUJCSgxPDwxMSkKICNk ZWZpbmUgICBHRlhfUFNNSV9HUkFOVUxBUklUWQkJKDE8PDEwKQogI2RlZmluZSAgIEdGWF9QUEdU VF9FTkFCTEUJCSgxPDw5KQorI2RlZmluZSAgIEdFTjhfR0ZYX1BQR1RUXzQ4QgkJKDE8PDcpCiAK ICNkZWZpbmUgVkxWX0RJU1BMQVlfQkFTRSAweDE4MDAwMAogI2RlZmluZSBWTFZfTUlQSV9CQVNF IFZMVl9ESVNQTEFZX0JBU0UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggOTliYmE4ZS4u MGI2NTE4OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTE5NiwxMyArMTk2LDIxIEBA CiAJcmVnX3N0YXRlW0NUWF9QRFAgIyMgbiAjIyBfTERXKzFdID0gbG93ZXJfMzJfYml0cyhfYWRk cik7IFwKIH0KIAorI2RlZmluZSBBU1NJR05fQ1RYX1BNTDQocHBndHQsIHJlZ19zdGF0ZSkgeyBc CisJcmVnX3N0YXRlW0NUWF9QRFAwX1VEVyArIDFdID0gdXBwZXJfMzJfYml0cyhweF9kbWEoJnBw Z3R0LT5wbWw0KSk7IFwKKwlyZWdfc3RhdGVbQ1RYX1BEUDBfTERXICsgMV0gPSBsb3dlcl8zMl9i aXRzKHB4X2RtYSgmcHBndHQtPnBtbDQpKTsgXAorfQorCiBlbnVtIHsKIAlBRFZBTkNFRF9DT05U RVhUID0gMCwKLQlMRUdBQ1lfQ09OVEVYVCwKKwlMRUdBQ1lfMzJCX0NPTlRFWFQsCiAJQURWQU5D RURfQURfQ09OVEVYVCwKIAlMRUdBQ1lfNjRCX0NPTlRFWFQKIH07Ci0jZGVmaW5lIEdFTjhfQ1RY X01PREVfU0hJRlQgMworI2RlZmluZSBHRU44X0NUWF9BRERSRVNTSU5HX01PREVfU0hJRlQgMwor I2RlZmluZSBHRU44X0NUWF9BRERSRVNTSU5HX01PREUoZGV2KSAgKFVTRVNfRlVMTF80OEJJVF9Q UEdUVChkZXYpID9cCisJCUxFR0FDWV82NEJfQ09OVEVYVCA6XAorCQlMRUdBQ1lfMzJCX0NPTlRF WFQpCiBlbnVtIHsKIAlGQVVMVF9BTkRfSEFORyA9IDAsCiAJRkFVTFRfQU5EX0hBTFQsIC8qIERl YnVnIG9ubHkgKi8KQEAgLTI3Myw3ICsyODEsNyBAQCBzdGF0aWMgdWludDY0X3QgZXhlY2xpc3Rz X2N0eF9kZXNjcmlwdG9yKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCiAJV0FSTl9P TihscmNhICYgMHhGRkZGRkZGRjAwMDAwRkZGVUxMKTsKIAogCWRlc2MgPSBHRU44X0NUWF9WQUxJ RDsKLQlkZXNjIHw9IExFR0FDWV9DT05URVhUIDw8IEdFTjhfQ1RYX01PREVfU0hJRlQ7CisJZGVz YyB8PSBHRU44X0NUWF9BRERSRVNTSU5HX01PREUoZGV2KSA8PCBHRU44X0NUWF9BRERSRVNTSU5H X01PREVfU0hJRlQ7CiAJaWYgKElTX0dFTjgoY3R4X29iai0+YmFzZS5kZXYpKQogCQlkZXNjIHw9 IEdFTjhfQ1RYX0wzTExDX0NPSEVSRU5UOwogCWRlc2MgfD0gR0VOOF9DVFhfUFJJVklMRUdFOwpA QCAtMzQ4LDEwICszNTYsMTIgQEAgc3RhdGljIGludCBleGVjbGlzdHNfdXBkYXRlX2NvbnRleHQo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKIAlyZWdfc3RhdGVbQ1RYX1JJTkdfVEFJ TCsxXSA9IHJxLT50YWlsOwogCXJlZ19zdGF0ZVtDVFhfUklOR19CVUZGRVJfU1RBUlQrMV0gPSBp OTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQocmJfb2JqKTsKIAotCS8qIFRydWUgUFBHVFQgd2l0aCBk eW5hbWljIHBhZ2UgYWxsb2NhdGlvbjogdXBkYXRlIFBEUCByZWdpc3RlcnMgYW5kCi0JICogcG9p bnQgdGhlIHVuYWxsb2NhdGVkIFBEUHMgdG8gdGhlIHNjcmF0Y2ggcGFnZQotCSAqLwotCWlmIChw cGd0dCkgeworCWlmIChwcGd0dCAmJiAhVVNFU19GVUxMXzQ4QklUX1BQR1RUKHBwZ3R0LT5iYXNl LmRldikpIHsKKwkJLyogVHJ1ZSAzMmIgUFBHVFQgd2l0aCBkeW5hbWljIHBhZ2UgYWxsb2NhdGlv bjogdXBkYXRlIFBEUAorCQkgKiByZWdpc3RlcnMgYW5kIHBvaW50IHRoZSB1bmFsbG9jYXRlZCBQ RFBzIHRvIHNjcmF0Y2ggcGFnZS4KKwkJICogUE1MNCBpcyBhbGxvY2F0ZWQgZHVyaW5nIHBwZ3R0 IGluaXQsIHNvIHRoaXMgaXMgbm90IG5lZWRlZAorCQkgKiBpbiA0OC1iaXQgbW9kZS4KKwkJICov CiAJCUFTU0lHTl9DVFhfUERQKHBwZ3R0LCByZWdfc3RhdGUsIDMpOwogCQlBU1NJR05fQ1RYX1BE UChwcGd0dCwgcmVnX3N0YXRlLCAyKTsKIAkJQVNTSUdOX0NUWF9QRFAocHBndHQsIHJlZ19zdGF0 ZSwgMSk7CkBAIC0xNTEyLDEyICsxNTIyLDE1IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2JiX3N0 YXJ0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCSAqIElkZWFsbHksIHdlIHNo b3VsZCBzZXQgRm9yY2UgUEQgUmVzdG9yZSBpbiBjdHggZGVzY3JpcHRvciwKIAkgKiBidXQgd2Ug Y2FuJ3QuIEZvcmNlIFJlc3RvcmUgd291bGQgYmUgYSBzZWNvbmQgb3B0aW9uLCBidXQKIAkgKiBp dCBpcyB1bnNhZmUgaW4gY2FzZSBvZiBsaXRlLXJlc3RvcmUgKGJlY2F1c2UgdGhlIGN0eCBpcwot CSAqIG5vdCBpZGxlKS4gKi8KKwkgKiBub3QgaWRsZSkuIFBNTDQgaXMgYWxsb2NhdGVkIGR1cmlu ZyBwcGd0dCBpbml0IHNvIHRoaXMgaXMKKwkgKiBub3QgbmVlZGVkIGluIDQ4LWJpdC4qLwogCWlm IChyZXEtPmN0eC0+cHBndHQgJiYKIAkgICAgKGludGVsX3JpbmdfZmxhZyhyZXEtPnJpbmcpICYg cmVxLT5jdHgtPnBwZ3R0LT5wZF9kaXJ0eV9yaW5ncykpIHsKLQkJcmV0ID0gaW50ZWxfbG9naWNh bF9yaW5nX2VtaXRfcGRwcyhyZXEpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKKwkJaWYg KEdFTjhfQ1RYX0FERFJFU1NJTkdfTU9ERShyZXEtPmk5MTUpID09IExFR0FDWV8zMkJfQ09OVEVY VCkgeworCQkJcmV0ID0gaW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcGRwcyhyZXEpOworCQkJaWYg KHJldCkKKwkJCQlyZXR1cm4gcmV0OworCQl9CiAKIAkJcmVxLT5jdHgtPnBwZ3R0LT5wZF9kaXJ0 eV9yaW5ncyAmPSB+aW50ZWxfcmluZ19mbGFnKHJlcS0+cmluZyk7CiAJfQpAQCAtMjE5OCwxMyAr MjIxMSwyNCBAQCBwb3B1bGF0ZV9scl9jb250ZXh0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgs IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfbwogCXJlZ19zdGF0ZVtDVFhfUERQMF9V RFddID0gR0VOOF9SSU5HX1BEUF9VRFcocmluZywgMCk7CiAJcmVnX3N0YXRlW0NUWF9QRFAwX0xE V10gPSBHRU44X1JJTkdfUERQX0xEVyhyaW5nLCAwKTsKIAotCS8qIFdpdGggZHluYW1pYyBwYWdl IGFsbG9jYXRpb24sIFBEUHMgbWF5IG5vdCBiZSBhbGxvY2F0ZWQgYXQgdGhpcyBwb2ludCwKLQkg KiBQb2ludCB0aGUgdW5hbGxvY2F0ZWQgUERQcyB0byB0aGUgc2NyYXRjaCBwYWdlCi0JICovCi0J QVNTSUdOX0NUWF9QRFAocHBndHQsIHJlZ19zdGF0ZSwgMyk7Ci0JQVNTSUdOX0NUWF9QRFAocHBn dHQsIHJlZ19zdGF0ZSwgMik7Ci0JQVNTSUdOX0NUWF9QRFAocHBndHQsIHJlZ19zdGF0ZSwgMSk7 Ci0JQVNTSUdOX0NUWF9QRFAocHBndHQsIHJlZ19zdGF0ZSwgMCk7CisJaWYgKFVTRVNfRlVMTF80 OEJJVF9QUEdUVChwcGd0dC0+YmFzZS5kZXYpKSB7CisJCS8qIDY0YiBQUEdUVCAoNDhiaXQgY2Fu b25pY2FsKQorCQkgKiBQRFAwX0RFU0NSSVBUT1IgY29udGFpbnMgdGhlIGJhc2UgYWRkcmVzcyB0 byBQTUw0IGFuZAorCQkgKiBvdGhlciBQRFAgRGVzY3JpcHRvcnMgYXJlIGlnbm9yZWQuCisJCSAq LworCQlBU1NJR05fQ1RYX1BNTDQocHBndHQsIHJlZ19zdGF0ZSk7CisJfSBlbHNlIHsKKwkJLyog MzJiIFBQR1RUCisJCSAqIFBEUCpfREVTQ1JJUFRPUiBjb250YWlucyB0aGUgYmFzZSBhZGRyZXNz IG9mIHNwYWNlIHN1cHBvcnRlZC4KKwkJICogV2l0aCBkeW5hbWljIHBhZ2UgYWxsb2NhdGlvbiwg UERQcyBtYXkgbm90IGJlIGFsbG9jYXRlZCBhdAorCQkgKiB0aGlzIHBvaW50LiBQb2ludCB0aGUg dW5hbGxvY2F0ZWQgUERQcyB0byB0aGUgc2NyYXRjaCBwYWdlCisJCSAqLworCQlBU1NJR05fQ1RY X1BEUChwcGd0dCwgcmVnX3N0YXRlLCAzKTsKKwkJQVNTSUdOX0NUWF9QRFAocHBndHQsIHJlZ19z dGF0ZSwgMik7CisJCUFTU0lHTl9DVFhfUERQKHBwZ3R0LCByZWdfc3RhdGUsIDEpOworCQlBU1NJ R05fQ1RYX1BEUChwcGd0dCwgcmVnX3N0YXRlLCAwKTsKKwl9CisKIAlpZiAocmluZy0+aWQgPT0g UkNTKSB7CiAJCXJlZ19zdGF0ZVtDVFhfTFJJX0hFQURFUl8yXSA9IE1JX0xPQURfUkVHSVNURVJf SU1NKDEpOwogCQlyZWdfc3RhdGVbQ1RYX1JfUFdSX0NMS19TVEFURV0gPSBHRU44X1JfUFdSX0NM S19TVEFURTsKLS0gCjIuNC41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=