From mboxrd@z Thu Jan 1 00:00:00 1970 From: deepak.s@linux.intel.com Subject: [PATCH v6] drm/i915/vlv: WA for Turbo and RC6 to work together. Date: Sun, 30 Mar 2014 11:58:48 +0530 Message-ID: <1396160928-2793-1-git-send-email-deepak.s@linux.intel.com> References: <1395902101-9869-1-git-send-email-deepak.s@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 44C3E6E01D for ; Sat, 29 Mar 2014 23:29:00 -0700 (PDT) In-Reply-To: <1395902101-9869-1-git-send-email-deepak.s@linux.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 RnJvbTogRGVlcGFrIFMgPGRlZXBhay5zQGxpbnV4LmludGVsLmNvbT4KCldpdGggUkM2IGVuYWJs ZWQsIEJZVCBoYXMgYW4gSFcgaXNzdWUgaW4gZGV0ZXJtaW5pbmcgdGhlIHJpZ2h0CkdmeCBidXN5 bmVzcy4KV0EgZm9yIFR1cmJvICsgUkM2OiBVc2UgU1cgYmFzZWQgR2Z4IGJ1c3ktbmVzcyBkZXRl Y3Rpb24gdG8gZGVjaWRlCm9uIGluY3JlYXNpbmcvZGVjcmVhc2luZyB0aGUgZnJlcS4gVGhpcyBs b2dpYyB3aWxsIG1vbml0b3IgQzAKY291bnRlcnMgb2YgcmVuZGVyL21lZGlhIHBvd2VyLXdlbGxz IG92ZXIgRUkgcGVyaW9kIGFuZCB0YWtlcwpuZWNlc3NhcnkgYWN0aW9uIGJhc2VkIG9uIHRoZXNl IHZhbHVlcwoKdjI6IFJlZmFjdG9yIGR1cGxpY2F0ZSBjb2RlLiAoVmlsbGUpCgp2MzogUmVmb3Jt YXQgdGhlIGNvbW1lbnRzLiAoVmlsbGUpCgp2NDogRW5hYmxlIHJlcXVpcmVkIGNvdW50ZXJzIGFu ZCByZW1vdmUgdW53YW50ZWQgY29kZSAoVmlsbGUpCgp2NTogQWRkZWQgZnJlcXVlbmN5IGNoYW5n ZSBhY2NlbGVyYXRpb24gc3VwcG9ydCBhbmQgcmVtb3ZlIGtlcm5lbC1kb2MKc3R5bGUgY29tbWVu dHMuIChWaWxsZSkKCnY2OiBVcGRhdGVkIGNvbW1lbnQgc2VjdGlvbiBhbmQgRml4IHcvYSBjb21t ZW50LiAoVmlsbGUpCgpTaWduZWQtb2ZmLWJ5OiBEZWVwYWsgUyA8ZGVlcGFrLnNAbGludXguaW50 ZWwuY29tPgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIHwgIDE1ICsr KysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIHwgMTM1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmggfCAgMTIgKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyB8ICAxMyArKyst CiA0IGZpbGVzIGNoYW5nZWQsIDE3MCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDdjMjEyZjMuLmM0OGVhOTMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaApAQCAtODE2LDYgKzgxNiwxMiBAQCBzdHJ1Y3QgaTkxNV9zdXNwZW5kX3NhdmVk X3JlZ2lzdGVycyB7CiAJdTMyIHNhdmVQQ0hfUE9SVF9IT1RQTFVHOwogfTsKIAorc3RydWN0IGlu dGVsX3Jwc19laV9jYWxjIHsKKwl1MzIgY3pfdHNfZWk7CisJdTMyIHJlbmRlcl9laV9jMDsKKwl1 MzIgbWVkaWFfZWlfYzA7Cit9OworCiBzdHJ1Y3QgaW50ZWxfZ2VuNl9wb3dlcl9tZ210IHsKIAkv KiB3b3JrIGFuZCBwbV9paXIgYXJlIHByb3RlY3RlZCBieSBkZXZfcHJpdi0+aXJxX2xvY2sgKi8K IAlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKQEAgLTg0Myw2ICs4NDksOCBAQCBzdHJ1Y3QgaW50 ZWxfZ2VuNl9wb3dlcl9tZ210IHsKIAlib29sIHJwX3VwX21hc2tlZDsKIAlib29sIHJwX2Rvd25f bWFza2VkOwogCisJdTMyIGVpX2ludGVycnVwdF9jb3VudDsKKwogCWludCBsYXN0X2FkajsKIAll bnVtIHsgTE9XX1BPV0VSLCBCRVRXRUVOLCBISUdIX1BPV0VSIH0gcG93ZXI7CiAKQEAgLTE0MDMs NiArMTQxMSwxMyBAQCB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkvKiBnZW42 KyBycHMgc3RhdGUgKi8KIAlzdHJ1Y3QgaW50ZWxfZ2VuNl9wb3dlcl9tZ210IHJwczsKIAorCS8q IHJwcyB3YSB1cCBlaSBjYWxjdWxhdGlvbiAqLworCXN0cnVjdCBpbnRlbF9ycHNfZWlfY2FsYyBy cHNfdXBfZWk7CisKKwkvKiBycHMgd2EgZG93biBlaSBjYWxjdWxhdGlvbiAqLworCXN0cnVjdCBp bnRlbF9ycHNfZWlfY2FsYyBycHNfZG93bl9laTsKKworCiAJLyogaWxrLW9ubHkgaXBzL3JwcyBz dGF0ZS4gRXZlcnl0aGluZyBpbiBoZXJlIGlzIHByb3RlY3RlZCBieSB0aGUgZ2xvYmFsCiAJICog bWNoZGV2X2xvY2sgaW4gaW50ZWxfcG0uYyAqLwogCXN0cnVjdCBpbnRlbF9pbGtfcG93ZXJfbWdt dCBpcHM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCAzMDBmMTI3Li4zNDE4NDNkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTExMjEsNiArMTEyMSwxMzIgQEAgdm9pZCBnZW42X3Nl dF9wbV9tYXNrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl9CiB9CiAKK3N0 YXRpYyB1MzIgdmx2X2MwX3Jlc2lkZW5jeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCisJCQkJc3RydWN0ICBpbnRlbF9ycHNfZWlfY2FsYyAqcnBzX2VpKQoreworCXUzMiBjel90 cywgY3pfZnJlcV9raHo7CisJdTMyIHJlbmRlcl9jb3VudCwgbWVkaWFfY291bnQ7CisJdTMyIGVs YXBzZWRfcmVuZGVyLCBlbGFwc2VkX21lZGlhLCBlbGFwc2VkX3RpbWU7CisJdTMyIHJlc2lkZW5j eSA9IDA7CisKKwljel90cyA9IHZsdl9wdW5pdF9yZWFkKGRldl9wcml2LCBQVU5JVF9SRUdfQ1pf VElNRVNUQU1QKTsKKwljel9mcmVxX2toeiA9IERJVl9ST1VORF9DTE9TRVNUKGRldl9wcml2LT5t ZW1fZnJlcSAqIDEwMDAsIDQpOworCisJcmVuZGVyX2NvdW50ID0gSTkxNV9SRUFEKFZMVl9SRU5E RVJfQzBfQ09VTlRfUkVHKTsKKwltZWRpYV9jb3VudCA9IEk5MTVfUkVBRChWTFZfTUVESUFfQzBf Q09VTlRfUkVHKTsKKworCWlmIChycHNfZWktPmN6X3RzX2VpID09IDApIHsKKwkJcnBzX2VpLT5j el90c19laSA9IGN6X3RzOworCQlycHNfZWktPnJlbmRlcl9laV9jMCA9IHJlbmRlcl9jb3VudDsK KwkJcnBzX2VpLT5tZWRpYV9laV9jMCA9IG1lZGlhX2NvdW50OworCisJCXJldHVybiBkZXZfcHJp di0+cnBzLmN1cl9mcmVxOworCX0KKworCWVsYXBzZWRfdGltZSA9IGN6X3RzIC0gcnBzX2VpLT5j el90c19laTsKKwlycHNfZWktPmN6X3RzX2VpID0gY3pfdHM7CisKKwllbGFwc2VkX3JlbmRlciA9 IHJlbmRlcl9jb3VudCAtIHJwc19laS0+cmVuZGVyX2VpX2MwOworCXJwc19laS0+cmVuZGVyX2Vp X2MwID0gcmVuZGVyX2NvdW50OworCisJZWxhcHNlZF9tZWRpYSA9IG1lZGlhX2NvdW50IC0gcnBz X2VpLT5tZWRpYV9laV9jMDsKKwlycHNfZWktPm1lZGlhX2VpX2MwID0gbWVkaWFfY291bnQ7CisK KwkvKiBDb252ZXJ0IGFsbCB0aGUgY291bnRlcnMgaW50byBjb21tb24gdW5pdCBvZiBtaWxsaSBz ZWMgKi8KKwllbGFwc2VkX3RpbWUgLz0gVkxWX0NaX0NMT0NLX1RPX01JTExJX1NFQzsKKwllbGFw c2VkX3JlbmRlciAvPSAgY3pfZnJlcV9raHo7CisJZWxhcHNlZF9tZWRpYSAvPSBjel9mcmVxX2to ejsKKworCS8qCisJICogQ2FsY3VsYXRlIG92ZXJhbGwgQzAgcmVzaWRlbmN5IHBlcmNlbnRhZ2UK KwkgKiBvbmx5IGlmIGVsYXBzZWQgdGltZSBpcyBub24gemVybworCSAqLworCWlmIChlbGFwc2Vk X3RpbWUpIHsKKwkJcmVzaWRlbmN5ID0KKwkJCSgobWF4KGVsYXBzZWRfcmVuZGVyLCBlbGFwc2Vk X21lZGlhKSAqIDEwMCkKKwkJCQkvIGVsYXBzZWRfdGltZSk7CisJfQorCisJcmV0dXJuIHJlc2lk ZW5jeTsKK30KKworCisvKioKKyAqIHZsdl9jYWxjX2RlbGF5X2Zyb21fQzBfY291bnRlcnMgLSBJ bmNyZWFzZS9EZWNyZWFzZSBmcmVxIGJhc2VkIG9uIEdQVQorICogYnVzeS1uZXNzIGNhbGN1bGF0 ZWQgZnJvbSBDMCBjb3VudGVycyBvZiByZW5kZXIgJiBtZWRpYSBwb3dlciB3ZWxscworICogQGRl dl9wcml2OiBEUk0gZGV2aWNlIHByaXZhdGUKKyAqCisgKi8KK3N0YXRpYyB1MzIgdmx2X2NhbGNf ZGVsYXlfZnJvbV9DMF9jb3VudGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cit7CisJdTMyIHJlc2lkZW5jeV9DMF91cCA9IDAsIHJlc2lkZW5jeV9DMF9kb3duID0gMDsKKwl1 OCBuZXdfZGVsYXksIGFkajsKKworCWRldl9wcml2LT5ycHMuZWlfaW50ZXJydXB0X2NvdW50Kys7 CisKKwlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldl9wcml2LT5ycHMuaHdfbG9jaykpOwor CisKKwlpZiAoZGV2X3ByaXYtPnJwc191cF9laS5jel90c19laSA9PSAwKSB7CisJCXZsdl9jMF9y ZXNpZGVuY3koZGV2X3ByaXYsICZkZXZfcHJpdi0+cnBzX3VwX2VpKTsKKwkJdmx2X2MwX3Jlc2lk ZW5jeShkZXZfcHJpdiwgJmRldl9wcml2LT5ycHNfZG93bl9laSk7CisJCXJldHVybiBkZXZfcHJp di0+cnBzLmN1cl9mcmVxOworCX0KKworCisJLyoKKwkgKiBUbyBkb3duIHRocm90dGxlLCBDMCBy ZXNpZGVuY3kgc2hvdWxkIGJlIGxlc3MgdGhhbiBkb3duIHRocmVzaG9sZAorCSAqIGZvciBjb250 aW5vdXMgRUkgaW50ZXJ2YWxzLiBTbyBjYWxjdWxhdGUgZG93biBFSSBjb3VudGVycworCSAqIG9u Y2UgaW4gVkxWX0lOVF9DT1VOVF9GT1JfRE9XTl9FSQorCSAqLworCWlmIChkZXZfcHJpdi0+cnBz LmVpX2ludGVycnVwdF9jb3VudCA9PSBWTFZfSU5UX0NPVU5UX0ZPUl9ET1dOX0VJKSB7CisKKwkJ ZGV2X3ByaXYtPnJwcy5laV9pbnRlcnJ1cHRfY291bnQgPSAwOworCisJCXJlc2lkZW5jeV9DMF9k b3duID0gdmx2X2MwX3Jlc2lkZW5jeShkZXZfcHJpdiwKKwkJCQkJCSZkZXZfcHJpdi0+cnBzX2Rv d25fZWkpOworCX0gZWxzZSB7CisJCXJlc2lkZW5jeV9DMF91cCA9IHZsdl9jMF9yZXNpZGVuY3ko ZGV2X3ByaXYsCisJCQkJCQkmZGV2X3ByaXYtPnJwc191cF9laSk7CisJfQorCisJbmV3X2RlbGF5 ID0gZGV2X3ByaXYtPnJwcy5jdXJfZnJlcTsKKworCWFkaiA9IGRldl9wcml2LT5ycHMubGFzdF9h ZGo7CisJLyogQzAgcmVzaWRlbmN5IGlzIGdyZWF0ZXIgdGhhbiBVUCB0aHJlc2hvbGQuIEluY3Jl YXNlIEZyZXF1ZW5jeSAqLworCWlmIChyZXNpZGVuY3lfQzBfdXAgPj0gVkxWX1JQX1VQX0VJX1RI UkVTSE9MRCkgeworCQlpZiAoYWRqID4gMCkKKwkJCWFkaiAqPSAyOworCQllbHNlCisJCQlhZGog PSAxOworCisJCWlmIChkZXZfcHJpdi0+cnBzLmN1cl9mcmVxIDwgZGV2X3ByaXYtPnJwcy5tYXhf ZnJlcV9zb2Z0bGltaXQpCisJCQluZXdfZGVsYXkgPSBkZXZfcHJpdi0+cnBzLmN1cl9mcmVxICsg YWRqOworCisJCS8qCisJCSAqIEZvciBiZXR0ZXIgcGVyZm9ybWFuY2UsIGp1bXAgZGlyZWN0bHkK KwkJICogdG8gUlBlIGlmIHdlJ3JlIGJlbG93IGl0LgorCQkgKi8KKwkJaWYgKG5ld19kZWxheSA8 IGRldl9wcml2LT5ycHMuZWZmaWNpZW50X2ZyZXEpCisJCQluZXdfZGVsYXkgPSBkZXZfcHJpdi0+ cnBzLmVmZmljaWVudF9mcmVxOworCisJfSBlbHNlIGlmICghZGV2X3ByaXYtPnJwcy5laV9pbnRl cnJ1cHRfY291bnQgJiYKKwkJCShyZXNpZGVuY3lfQzBfZG93biA8IFZMVl9SUF9ET1dOX0VJX1RI UkVTSE9MRCkpIHsKKwkJaWYgKGFkaiA8IDApCisJCQlhZGogKj0gMjsKKwkJZWxzZQorCQkJYWRq ID0gLTE7CisJCS8qCisJCSAqIFRoaXMgbWVhbnMsIEMwIHJlc2lkZW5jeSBpcyBsZXNzIHRoYW4g ZG93biB0aHJlc2hvbGQgb3ZlcgorCQkgKiBhIHBlcmlvZCBvZiBWTFZfSU5UX0NPVU5UX0ZPUl9E T1dOX0VJLiBTbywgcmVkdWNlIHRoZSBmcmVxCisJCSAqLworCQlpZiAoZGV2X3ByaXYtPnJwcy5j dXJfZnJlcSA+IGRldl9wcml2LT5ycHMubWF4X2ZyZXFfc29mdGxpbWl0KQorCQkJbmV3X2RlbGF5 ID0gZGV2X3ByaXYtPnJwcy5jdXJfZnJlcSArIGFkajsKKwl9CisKKwlyZXR1cm4gbmV3X2RlbGF5 OworfQorCiBzdGF0aWMgdm9pZCBnZW42X3BtX3Jwc193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKIHsKIAlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gY29udGFpbmVyX29mKHdv cmssIGRybV9pOTE1X3ByaXZhdGVfdCwKQEAgLTExNjMsNiArMTI4OSw4IEBAIHN0YXRpYyB2b2lk IGdlbjZfcG1fcnBzX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQllbHNlCiAJCQlu ZXdfZGVsYXkgPSBkZXZfcHJpdi0+cnBzLm1pbl9mcmVxX3NvZnRsaW1pdDsKIAkJYWRqID0gMDsK Kwl9IGVsc2UgaWYgKHBtX2lpciAmIEdFTjZfUE1fUlBfVVBfRUlfRVhQSVJFRCkgeworCQluZXdf ZGVsYXkgPSB2bHZfY2FsY19kZWxheV9mcm9tX0MwX2NvdW50ZXJzKGRldl9wcml2KTsKIAl9IGVs c2UgaWYgKHBtX2lpciAmIEdFTjZfUE1fUlBfRE9XTl9USFJFU0hPTEQpIHsKIAkJaWYgKGFkaiA8 IDApCiAJCQlhZGogKj0gMjsKQEAgLTMwNTMsNiArMzE4MSw3IEBAIHN0YXRpYyB2b2lkIGdlbjVf Z3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQlwbV9pcnFzIHw9 IFBNX1ZFQk9YX1VTRVJfSU5URVJSVVBUOwogCiAJCWRldl9wcml2LT5wbV9pcnFfbWFzayA9IDB4 ZmZmZmZmZmY7CisKIAkJSTkxNV9XUklURShHRU42X1BNSUlSLCBJOTE1X1JFQUQoR0VONl9QTUlJ UikpOwogCQlJOTE1X1dSSVRFKEdFTjZfUE1JTVIsIGRldl9wcml2LT5wbV9pcnFfbWFzayk7CiAJ CUk5MTVfV1JJVEUoR0VONl9QTUlFUiwgcG1faXJxcyk7CkBAIC00MDk1LDcgKzQyMjQsMTEgQEAg dm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCUlOSVRfV09SSygm ZGV2X3ByaXYtPmwzX3Bhcml0eS5lcnJvcl93b3JrLCBpdnlicmlkZ2VfcGFyaXR5X3dvcmspOwog CiAJLyogTGV0J3MgdHJhY2sgdGhlIGVuYWJsZWQgcnBzIGV2ZW50cyAqLwotCWRldl9wcml2LT5w bV9ycHNfZXZlbnRzID0gR0VONl9QTV9SUFNfRVZFTlRTOworCWlmIChJU19WQUxMRVlWSUVXKGRl dikpCisJCS8qIFdhR3N2UkMwUmVzaWRlbm5jeU1ldGhvZDpWTFYgKi8KKwkJZGV2X3ByaXYtPnBt X3Jwc19ldmVudHMgPSBHRU42X1BNX1JQX1VQX0VJX0VYUElSRUQ7CisJZWxzZQorCQlkZXZfcHJp di0+cG1fcnBzX2V2ZW50cyA9IEdFTjZfUE1fUlBTX0VWRU5UUzsKIAogCXNldHVwX3RpbWVyKCZk ZXZfcHJpdi0+Z3B1X2Vycm9yLmhhbmdjaGVja190aW1lciwKIAkJICAgIGk5MTVfaGFuZ2NoZWNr X2VsYXBzZWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCA5MjdhN2MxLi5lMzM0YmYxIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTUwNiw2ICs1MDYsNyBAQCBlbnVtIHB1bml0X3Bv d2VyX3dlbGwgewogI2RlZmluZSBQVU5JVF9SRUdfR1BVX0ZSRVFfU1RTCQkJMHhkOAogI2RlZmlu ZSAgIEdFTkZSRVFTVEFUVVMJCQkJKDE8PDApCiAjZGVmaW5lIFBVTklUX1JFR19NRURJQV9UVVJC T19GUkVRX1JFUQkJMHhkYworI2RlZmluZSBQVU5JVF9SRUdfQ1pfVElNRVNUQU1QCQkJMHhjZQog CiAjZGVmaW5lIFBVTklUX0ZVU0VfQlVTMgkJCQkweGY2IC8qIGJpdHMgNDc6NDAgKi8KICNkZWZp bmUgUFVOSVRfRlVTRV9CVVMxCQkJCTB4ZjUgLyogYml0cyA1NTo0OCAqLwpAQCAtNTIxLDYgKzUy MiwxMSBAQCBlbnVtIHB1bml0X3Bvd2VyX3dlbGwgewogI2RlZmluZSAgIEZCX0ZNQVhfVk1JTl9G UkVRX0xPX1NISUZUCQkyNwogI2RlZmluZSAgIEZCX0ZNQVhfVk1JTl9GUkVRX0xPX01BU0sJCTB4 ZjgwMDAwMDAKIAorI2RlZmluZSBWTFZfQ1pfQ0xPQ0tfVE9fTUlMTElfU0VDCQkxMDAwMDAKKyNk ZWZpbmUgVkxWX1JQX1VQX0VJX1RIUkVTSE9MRAkJCTkwCisjZGVmaW5lIFZMVl9SUF9ET1dOX0VJ X1RIUkVTSE9MRAkJNzAKKyNkZWZpbmUgVkxWX0lOVF9DT1VOVF9GT1JfRE9XTl9FSQkJNQorCiAv KiB2bHYyIG5vcnRoIGNsb2NrIGhhcyAqLwogI2RlZmluZSBDQ0tfRlVTRV9SRUcJCQkJMHg4CiAj ZGVmaW5lICBDQ0tfRlVTRV9IUExMX0ZSRVFfTUFTSwkJMHgzCkBAIC00OTg0LDYgKzQ5OTAsNyBA QCBlbnVtIHB1bml0X3Bvd2VyX3dlbGwgewogI2RlZmluZSAgVkxWX0dUTENfUFdfU1RBVFVTCQkJ MHgxMzAwOTQKICNkZWZpbmUgVkxWX0dUTENfUFdfUkVOREVSX1NUQVRVU19NQVNLCQkweDgwCiAj ZGVmaW5lIFZMVl9HVExDX1BXX01FRElBX1NUQVRVU19NQVNLCQkweDIwCisjZGVmaW5lIFZMVl9H VExDX1NVUlZJVkFCSUxJVFlfUkVHICAgICAgICAgICAgICAweDEzMDA5OAogI2RlZmluZSAgRk9S Q0VXQUtFX01UCQkJCTB4YTE4OCAvKiBtdWx0aS10aHJlYWRlZCAqLwogI2RlZmluZSAgIEZPUkNF V0FLRV9LRVJORUwJCQkweDEKICNkZWZpbmUgICBGT1JDRVdBS0VfVVNFUgkJCTB4MgpAQCAtNTEx MiwxMiArNTExOSwxNSBAQCBlbnVtIHB1bml0X3Bvd2VyX3dlbGwgewogI2RlZmluZSBHRU42X0dU X0dGWF9SQzZfTE9DS0VECQkJMHgxMzgxMDQKICNkZWZpbmUgVkxWX0NPVU5URVJfQ09OVFJPTAkJ CTB4MTM4MTA0CiAjZGVmaW5lICAgVkxWX0NPVU5UX1JBTkdFX0hJR0gJCQkoMTw8MTUpCisjZGVm aW5lICAgVkxWX01FRElBX1JDMF9DT1VOVF9FTgkJKDE8PDUpCisjZGVmaW5lICAgVkxWX1JFTkRF Ul9SQzBfQ09VTlRfRU4JCSgxPDw0KQogI2RlZmluZSAgIFZMVl9NRURJQV9SQzZfQ09VTlRfRU4J CSgxPDwxKQogI2RlZmluZSAgIFZMVl9SRU5ERVJfUkM2X0NPVU5UX0VOCQkoMTw8MCkKICNkZWZp bmUgR0VONl9HVF9HRlhfUkM2CQkJCTB4MTM4MTA4CiAjZGVmaW5lIEdFTjZfR1RfR0ZYX1JDNnAJ CQkweDEzODEwQwogI2RlZmluZSBHRU42X0dUX0dGWF9SQzZwcAkJCTB4MTM4MTEwCi0KKyNkZWZp bmUgVkxWX1JFTkRFUl9DMF9DT1VOVF9SRUcJCTB4MTM4MTE4CisjZGVmaW5lIFZMVl9NRURJQV9D MF9DT1VOVF9SRUcJCQkweDEzODExQwogI2RlZmluZSBHRU42X1BDT0RFX01BSUxCT1gJCQkweDEz ODEyNAogI2RlZmluZSAgIEdFTjZfUENPREVfUkVBRFkJCQkoMTw8MzEpCiAjZGVmaW5lICAgR0VO Nl9SRUFEX09DX1BBUkFNUwkJCTB4YwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggYjY2YTQz Yi4uMzA3MzBiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC0zMDk3LDkgKzMwOTcsMTMg QEAgc3RhdGljIHZvaWQgdmx2X3NldF9ycHNfaWRsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJCQkJflZMVl9HRlhfQ0xLX0ZPUkNFX09OX0JJVCk7CiAKIAkvKiBVbm1hc2sg VXAgaW50ZXJydXB0cyAqLwotCWRldl9wcml2LT5ycHMucnBfdXBfbWFza2VkID0gdHJ1ZTsKLQln ZW42X3NldF9wbV9tYXNrKGRldl9wcml2LCBHRU42X1BNX1JQX0RPV05fVEhSRVNIT0xELAorCWlm IChkZXZfcHJpdi0+cG1fcnBzX2V2ZW50cyAmIEdFTjZfUE1fUlBfVVBfRUlfRVhQSVJFRCkKKwkJ STkxNV9XUklURShHRU42X1BNSU5UUk1TSywgfmRldl9wcml2LT5wbV9ycHNfZXZlbnRzKTsKKwll bHNlIHsKKwkJZGV2X3ByaXYtPnJwcy5ycF91cF9tYXNrZWQgPSB0cnVlOworCQlnZW42X3NldF9w bV9tYXNrKGRldl9wcml2LCBHRU42X1BNX1JQX0RPV05fVEhSRVNIT0xELAogCQkJCQkJZGV2X3By aXYtPnJwcy5taW5fZnJlcV9zb2Z0bGltaXQpOworCX0KIH0KIAogdm9pZCBnZW42X3Jwc19pZGxl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKQEAgLTM2MTksNiArMzYyMyw3IEBA IHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfZW5hYmxlX3JwcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCUk5MTVfV1JJVEUoR0VONl9SUF9ET1dOX0VJLCAzNTAwMDApOwogCiAJSTkxNV9XUklURShH RU42X1JQX0lETEVfSFlTVEVSU0lTLCAxMCk7CisJSTkxNV9XUklURShHRU42X1JQX0RPV05fVElN RU9VVCwgMHhmNDI0MCk7CiAKIAlJOTE1X1dSSVRFKEdFTjZfUlBfQ09OVFJPTCwKIAkJICAgR0VO Nl9SUF9NRURJQV9UVVJCTyB8CkBAIC0zNjM5LDkgKzM2NDQsMTEgQEAgc3RhdGljIHZvaWQgdmFs bGV5dmlld19lbmFibGVfcnBzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAkvKiBhbGxvd3Mg UkM2IHJlc2lkZW5jeSBjb3VudGVyIHRvIHdvcmsgKi8KIAlJOTE1X1dSSVRFKFZMVl9DT1VOVEVS X0NPTlRST0wsCi0JCSAgIF9NQVNLRURfQklUX0VOQUJMRShWTFZfQ09VTlRfUkFOR0VfSElHSCB8 CisJCSAgIF9NQVNLRURfQklUX0VOQUJMRShWTFZfTUVESUFfUkMwX0NPVU5UX0VOIHwKKwkJCQkg ICAgICBWTFZfUkVOREVSX1JDMF9DT1VOVF9FTiB8CiAJCQkJICAgICAgVkxWX01FRElBX1JDNl9D T1VOVF9FTiB8CiAJCQkJICAgICAgVkxWX1JFTkRFUl9SQzZfQ09VTlRfRU4pKTsKKwogCWlmIChp bnRlbF9lbmFibGVfcmM2KGRldikgJiBJTlRFTF9SQzZfRU5BQkxFKQogCQlyYzZfbW9kZSA9IEdF TjdfUkNfQ1RMX1RPX01PREUgfCBWTFZfUkNfQ1RMX0NUWF9SU1RfUEFSQUxMRUw7CiAKLS0gCjEu OS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=