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: Mon, 28 Apr 2014 20:19:03 +0530 Message-ID: <1398696543-17999-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 4F9826E5E1 for ; Mon, 28 Apr 2014 07:49:10 -0700 (PDT) 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 KysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIHwgMTMzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmggfCAgMTEgKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyB8ICAxMiArKyst CiA0IGZpbGVzIGNoYW5nZWQsIDE2NyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDYxMzZhYWIuLjUyNTE5NDYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaApAQCAtODE5LDYgKzgxOSwxMiBAQCBzdHJ1Y3QgaTkxNV9zdXNwZW5kX3NhdmVk X3JlZ2lzdGVycyB7CiAJdTMyIHNhdmVQQ0hfUE9SVF9IT1RQTFVHOwogfTsKIAorc3RydWN0IGlu dGVsX3Jwc19laV9jYWxjIHsKKwl1MzIgY3pfdHNfZWk7CisJdTMyIHJlbmRlcl9laV9jMDsKKwl1 MzIgbWVkaWFfZWlfYzA7Cit9OworCiBzdHJ1Y3QgaW50ZWxfZ2VuNl9wb3dlcl9tZ210IHsKIAkv KiB3b3JrIGFuZCBwbV9paXIgYXJlIHByb3RlY3RlZCBieSBkZXZfcHJpdi0+aXJxX2xvY2sgKi8K IAlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKQEAgLTg0Myw2ICs4NDksOCBAQCBzdHJ1Y3QgaW50 ZWxfZ2VuNl9wb3dlcl9tZ210IHsKIAl1OCBycDFfZnJlcTsJCS8qICJsZXNzIHRoYW4iIFJQMCBw b3dlci9mcmVxZW5jeSAqLwogCXU4IHJwMF9mcmVxOwkJLyogTm9uLW92ZXJjbG9ja2VkIG1heCBm cmVxdWVuY3kuICovCiAKKwl1MzIgZWlfaW50ZXJydXB0X2NvdW50OworCiAJaW50IGxhc3RfYWRq OwogCWVudW0geyBMT1dfUE9XRVIsIEJFVFdFRU4sIEhJR0hfUE9XRVIgfSBwb3dlcjsKIApAQCAt MTQxNCw2ICsxNDIyLDEzIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkvKiBnZW42KyBy cHMgc3RhdGUgKi8KIAlzdHJ1Y3QgaW50ZWxfZ2VuNl9wb3dlcl9tZ210IHJwczsKIAorCS8qIHJw cyB3YSB1cCBlaSBjYWxjdWxhdGlvbiAqLworCXN0cnVjdCBpbnRlbF9ycHNfZWlfY2FsYyBycHNf dXBfZWk7CisKKwkvKiBycHMgd2EgZG93biBlaSBjYWxjdWxhdGlvbiAqLworCXN0cnVjdCBpbnRl bF9ycHNfZWlfY2FsYyBycHNfZG93bl9laTsKKworCiAJLyogaWxrLW9ubHkgaXBzL3JwcyBzdGF0 ZS4gRXZlcnl0aGluZyBpbiBoZXJlIGlzIHByb3RlY3RlZCBieSB0aGUgZ2xvYmFsCiAJICogbWNo ZGV2X2xvY2sgaW4gaW50ZWxfcG0uYyAqLwogCXN0cnVjdCBpbnRlbF9pbGtfcG93ZXJfbWdtdCBp cHM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCAyNDQ2ZTYxLi43ZDJlZmM4IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfaXJxLmMKQEAgLTExMTYsNiArMTExNiwxMzEgQEAgc3RhdGljIHZvaWQgbm90 aWZ5X3Jpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpOTE1X3F1ZXVlX2hhbmdjaGVjayhk ZXYpOwogfQogCitzdGF0aWMgdTMyIHZsdl9jMF9yZXNpZGVuY3koc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAorCQkJCXN0cnVjdCAgaW50ZWxfcnBzX2VpX2NhbGMgKnJwc19laSkK K3sKKwl1MzIgY3pfdHMsIGN6X2ZyZXFfa2h6OworCXUzMiByZW5kZXJfY291bnQsIG1lZGlhX2Nv dW50OworCXUzMiBlbGFwc2VkX3JlbmRlciwgZWxhcHNlZF9tZWRpYSwgZWxhcHNlZF90aW1lOwor CXUzMiByZXNpZGVuY3kgPSAwOworCisJY3pfdHMgPSB2bHZfcHVuaXRfcmVhZChkZXZfcHJpdiwg UFVOSVRfUkVHX0NaX1RJTUVTVEFNUCk7CisJY3pfZnJlcV9raHogPSBESVZfUk9VTkRfQ0xPU0VT VChkZXZfcHJpdi0+bWVtX2ZyZXEgKiAxMDAwLCA0KTsKKworCXJlbmRlcl9jb3VudCA9IEk5MTVf UkVBRChWTFZfUkVOREVSX0MwX0NPVU5UX1JFRyk7CisJbWVkaWFfY291bnQgPSBJOTE1X1JFQUQo VkxWX01FRElBX0MwX0NPVU5UX1JFRyk7CisKKwlpZiAocnBzX2VpLT5jel90c19laSA9PSAwKSB7 CisJCXJwc19laS0+Y3pfdHNfZWkgPSBjel90czsKKwkJcnBzX2VpLT5yZW5kZXJfZWlfYzAgPSBy ZW5kZXJfY291bnQ7CisJCXJwc19laS0+bWVkaWFfZWlfYzAgPSBtZWRpYV9jb3VudDsKKworCQly ZXR1cm4gZGV2X3ByaXYtPnJwcy5jdXJfZnJlcTsKKwl9CisKKwllbGFwc2VkX3RpbWUgPSBjel90 cyAtIHJwc19laS0+Y3pfdHNfZWk7CisJcnBzX2VpLT5jel90c19laSA9IGN6X3RzOworCisJZWxh cHNlZF9yZW5kZXIgPSByZW5kZXJfY291bnQgLSBycHNfZWktPnJlbmRlcl9laV9jMDsKKwlycHNf ZWktPnJlbmRlcl9laV9jMCA9IHJlbmRlcl9jb3VudDsKKworCWVsYXBzZWRfbWVkaWEgPSBtZWRp YV9jb3VudCAtIHJwc19laS0+bWVkaWFfZWlfYzA7CisJcnBzX2VpLT5tZWRpYV9laV9jMCA9IG1l ZGlhX2NvdW50OworCisJLyogQ29udmVydCBhbGwgdGhlIGNvdW50ZXJzIGludG8gY29tbW9uIHVu aXQgb2YgbWlsbGkgc2VjICovCisJZWxhcHNlZF90aW1lIC89IFZMVl9DWl9DTE9DS19UT19NSUxM SV9TRUM7CisJZWxhcHNlZF9yZW5kZXIgLz0gIGN6X2ZyZXFfa2h6OworCWVsYXBzZWRfbWVkaWEg Lz0gY3pfZnJlcV9raHo7CisKKwkvKgorCSAqIENhbGN1bGF0ZSBvdmVyYWxsIEMwIHJlc2lkZW5j eSBwZXJjZW50YWdlCisJICogb25seSBpZiBlbGFwc2VkIHRpbWUgaXMgbm9uIHplcm8KKwkgKi8K KwlpZiAoZWxhcHNlZF90aW1lKSB7CisJCXJlc2lkZW5jeSA9CisJCQkoKG1heChlbGFwc2VkX3Jl bmRlciwgZWxhcHNlZF9tZWRpYSkgKiAxMDApCisJCQkJLyBlbGFwc2VkX3RpbWUpOworCX0KKwor CXJldHVybiByZXNpZGVuY3k7Cit9CisKKy8qKgorICogdmx2X2NhbGNfZGVsYXlfZnJvbV9DMF9j b3VudGVycyAtIEluY3JlYXNlL0RlY3JlYXNlIGZyZXEgYmFzZWQgb24gR1BVCisgKiBidXN5LW5l c3MgY2FsY3VsYXRlZCBmcm9tIEMwIGNvdW50ZXJzIG9mIHJlbmRlciAmIG1lZGlhIHBvd2VyIHdl bGxzCisgKiBAZGV2X3ByaXY6IERSTSBkZXZpY2UgcHJpdmF0ZQorICoKKyAqLworc3RhdGljIHUz MiB2bHZfY2FsY19kZWxheV9mcm9tX0MwX2NvdW50ZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKK3sKKwl1MzIgcmVzaWRlbmN5X0MwX3VwID0gMCwgcmVzaWRlbmN5X0MwX2Rv d24gPSAwOworCXU4IG5ld19kZWxheSwgYWRqOworCisJZGV2X3ByaXYtPnJwcy5laV9pbnRlcnJ1 cHRfY291bnQrKzsKKworCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2X3ByaXYtPnJwcy5o d19sb2NrKSk7CisKKworCWlmIChkZXZfcHJpdi0+cnBzX3VwX2VpLmN6X3RzX2VpID09IDApIHsK KwkJdmx2X2MwX3Jlc2lkZW5jeShkZXZfcHJpdiwgJmRldl9wcml2LT5ycHNfdXBfZWkpOworCQl2 bHZfYzBfcmVzaWRlbmN5KGRldl9wcml2LCAmZGV2X3ByaXYtPnJwc19kb3duX2VpKTsKKwkJcmV0 dXJuIGRldl9wcml2LT5ycHMuY3VyX2ZyZXE7CisJfQorCisKKwkvKgorCSAqIFRvIGRvd24gdGhy b3R0bGUsIEMwIHJlc2lkZW5jeSBzaG91bGQgYmUgbGVzcyB0aGFuIGRvd24gdGhyZXNob2xkCisJ ICogZm9yIGNvbnRpbm91cyBFSSBpbnRlcnZhbHMuIFNvIGNhbGN1bGF0ZSBkb3duIEVJIGNvdW50 ZXJzCisJICogb25jZSBpbiBWTFZfSU5UX0NPVU5UX0ZPUl9ET1dOX0VJCisJICovCisJaWYgKGRl dl9wcml2LT5ycHMuZWlfaW50ZXJydXB0X2NvdW50ID09IFZMVl9JTlRfQ09VTlRfRk9SX0RPV05f RUkpIHsKKworCQlkZXZfcHJpdi0+cnBzLmVpX2ludGVycnVwdF9jb3VudCA9IDA7CisKKwkJcmVz aWRlbmN5X0MwX2Rvd24gPSB2bHZfYzBfcmVzaWRlbmN5KGRldl9wcml2LAorCQkJCQkJJmRldl9w cml2LT5ycHNfZG93bl9laSk7CisJfSBlbHNlIHsKKwkJcmVzaWRlbmN5X0MwX3VwID0gdmx2X2Mw X3Jlc2lkZW5jeShkZXZfcHJpdiwKKwkJCQkJCSZkZXZfcHJpdi0+cnBzX3VwX2VpKTsKKwl9CisK KwluZXdfZGVsYXkgPSBkZXZfcHJpdi0+cnBzLmN1cl9mcmVxOworCisJYWRqID0gZGV2X3ByaXYt PnJwcy5sYXN0X2FkajsKKwkvKiBDMCByZXNpZGVuY3kgaXMgZ3JlYXRlciB0aGFuIFVQIHRocmVz aG9sZC4gSW5jcmVhc2UgRnJlcXVlbmN5ICovCisJaWYgKHJlc2lkZW5jeV9DMF91cCA+PSBWTFZf UlBfVVBfRUlfVEhSRVNIT0xEKSB7CisJCWlmIChhZGogPiAwKQorCQkJYWRqICo9IDI7CisJCWVs c2UKKwkJCWFkaiA9IDE7CisKKwkJaWYgKGRldl9wcml2LT5ycHMuY3VyX2ZyZXEgPCBkZXZfcHJp di0+cnBzLm1heF9mcmVxX3NvZnRsaW1pdCkKKwkJCW5ld19kZWxheSA9IGRldl9wcml2LT5ycHMu Y3VyX2ZyZXEgKyBhZGo7CisKKwkJLyoKKwkJICogRm9yIGJldHRlciBwZXJmb3JtYW5jZSwganVt cCBkaXJlY3RseQorCQkgKiB0byBSUGUgaWYgd2UncmUgYmVsb3cgaXQuCisJCSAqLworCQlpZiAo bmV3X2RlbGF5IDwgZGV2X3ByaXYtPnJwcy5lZmZpY2llbnRfZnJlcSkKKwkJCW5ld19kZWxheSA9 IGRldl9wcml2LT5ycHMuZWZmaWNpZW50X2ZyZXE7CisKKwl9IGVsc2UgaWYgKCFkZXZfcHJpdi0+ cnBzLmVpX2ludGVycnVwdF9jb3VudCAmJgorCQkJKHJlc2lkZW5jeV9DMF9kb3duIDwgVkxWX1JQ X0RPV05fRUlfVEhSRVNIT0xEKSkgeworCQlpZiAoYWRqIDwgMCkKKwkJCWFkaiAqPSAyOworCQll bHNlCisJCQlhZGogPSAtMTsKKwkJLyoKKwkJICogVGhpcyBtZWFucywgQzAgcmVzaWRlbmN5IGlz IGxlc3MgdGhhbiBkb3duIHRocmVzaG9sZCBvdmVyCisJCSAqIGEgcGVyaW9kIG9mIFZMVl9JTlRf Q09VTlRfRk9SX0RPV05fRUkuIFNvLCByZWR1Y2UgdGhlIGZyZXEKKwkJICovCisJCWlmIChkZXZf cHJpdi0+cnBzLmN1cl9mcmVxID4gZGV2X3ByaXYtPnJwcy5taW5fZnJlcV9zb2Z0bGltaXQpCisJ CQluZXdfZGVsYXkgPSBkZXZfcHJpdi0+cnBzLmN1cl9mcmVxICsgYWRqOworCX0KKworCXJldHVy biBuZXdfZGVsYXk7Cit9CisKIHN0YXRpYyB2b2lkIGdlbjZfcG1fcnBzX3dvcmsoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 CkBAIC0xMTU4LDYgKzEyODMsOCBAQCBzdGF0aWMgdm9pZCBnZW42X3BtX3Jwc193b3JrKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKIAkJZWxzZQogCQkJbmV3X2RlbGF5ID0gZGV2X3ByaXYtPnJw cy5taW5fZnJlcV9zb2Z0bGltaXQ7CiAJCWFkaiA9IDA7CisJfSBlbHNlIGlmIChwbV9paXIgJiBH RU42X1BNX1JQX1VQX0VJX0VYUElSRUQpIHsKKwkJbmV3X2RlbGF5ID0gdmx2X2NhbGNfZGVsYXlf ZnJvbV9DMF9jb3VudGVycyhkZXZfcHJpdik7CiAJfSBlbHNlIGlmIChwbV9paXIgJiBHRU42X1BN X1JQX0RPV05fVEhSRVNIT0xEKSB7CiAJCWlmIChhZGogPCAwKQogCQkJYWRqICo9IDI7CkBAIC00 MDMxLDcgKzQxNTgsMTEgQEAgdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCUlOSVRfV09SSygmZGV2X3ByaXYtPmwzX3Bhcml0eS5lcnJvcl93b3JrLCBpdnlicmlk Z2VfcGFyaXR5X3dvcmspOwogCiAJLyogTGV0J3MgdHJhY2sgdGhlIGVuYWJsZWQgcnBzIGV2ZW50 cyAqLwotCWRldl9wcml2LT5wbV9ycHNfZXZlbnRzID0gR0VONl9QTV9SUFNfRVZFTlRTOworCWlm IChJU19WQUxMRVlWSUVXKGRldikpCisJCS8qIFdhR3N2UkMwUmVzaWRlbm5jeU1ldGhvZDpWTFYg Ki8KKwkJZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMgPSBHRU42X1BNX1JQX1VQX0VJX0VYUElSRUQ7 CisJZWxzZQorCQlkZXZfcHJpdi0+cG1fcnBzX2V2ZW50cyA9IEdFTjZfUE1fUlBTX0VWRU5UUzsK IAogCXNldHVwX3RpbWVyKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLmhhbmdjaGVja190aW1lciwKIAkJ ICAgIGk5MTVfaGFuZ2NoZWNrX2VsYXBzZWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCAw ZWZmMzM3Li4yZjhiODYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTUxNiw2ICs1MTYs NyBAQCBlbnVtIHB1bml0X3Bvd2VyX3dlbGwgewogI2RlZmluZSBQVU5JVF9SRUdfR1BVX0ZSRVFf U1RTCQkJMHhkOAogI2RlZmluZSAgIEdFTkZSRVFTVEFUVVMJCQkJKDE8PDApCiAjZGVmaW5lIFBV TklUX1JFR19NRURJQV9UVVJCT19GUkVRX1JFUQkJMHhkYworI2RlZmluZSBQVU5JVF9SRUdfQ1pf VElNRVNUQU1QCQkJMHhjZQogCiAjZGVmaW5lIFBVTklUX0ZVU0VfQlVTMgkJCQkweGY2IC8qIGJp dHMgNDc6NDAgKi8KICNkZWZpbmUgUFVOSVRfRlVTRV9CVVMxCQkJCTB4ZjUgLyogYml0cyA1NTo0 OCAqLwpAQCAtNTMxLDYgKzUzMiwxMSBAQCBlbnVtIHB1bml0X3Bvd2VyX3dlbGwgewogI2RlZmlu ZSAgIEZCX0ZNQVhfVk1JTl9GUkVRX0xPX1NISUZUCQkyNwogI2RlZmluZSAgIEZCX0ZNQVhfVk1J Tl9GUkVRX0xPX01BU0sJCTB4ZjgwMDAwMDAKIAorI2RlZmluZSBWTFZfQ1pfQ0xPQ0tfVE9fTUlM TElfU0VDCQkxMDAwMDAKKyNkZWZpbmUgVkxWX1JQX1VQX0VJX1RIUkVTSE9MRAkJCTkwCisjZGVm aW5lIFZMVl9SUF9ET1dOX0VJX1RIUkVTSE9MRAkJNzAKKyNkZWZpbmUgVkxWX0lOVF9DT1VOVF9G T1JfRE9XTl9FSQkJNQorCiAvKiB2bHYyIG5vcnRoIGNsb2NrIGhhcyAqLwogI2RlZmluZSBDQ0tf RlVTRV9SRUcJCQkJMHg4CiAjZGVmaW5lICBDQ0tfRlVTRV9IUExMX0ZSRVFfTUFTSwkJMHgzCkBA IC01MDA2LDYgKzUwMTIsNyBAQCBlbnVtIHB1bml0X3Bvd2VyX3dlbGwgewogI2RlZmluZSAgIFZM Vl9HVExDX0FMTE9XV0FLRUVSUgkJCSgxIDw8IDEpCiAjZGVmaW5lICAgVkxWX0dUTENfUFdfTUVE SUFfU1RBVFVTX01BU0sJCSgxIDw8IDUpCiAjZGVmaW5lICAgVkxWX0dUTENfUFdfUkVOREVSX1NU QVRVU19NQVNLCSgxIDw8IDcpCisjZGVmaW5lIFZMVl9HVExDX1NVUlZJVkFCSUxJVFlfUkVHICAg ICAgICAgICAgICAweDEzMDA5OAogI2RlZmluZSAgRk9SQ0VXQUtFX01UCQkJCTB4YTE4OCAvKiBt dWx0aS10aHJlYWRlZCAqLwogI2RlZmluZSAgIEZPUkNFV0FLRV9LRVJORUwJCQkweDEKICNkZWZp bmUgICBGT1JDRVdBS0VfVVNFUgkJCTB4MgpAQCAtNTEzNCw2ICs1MTQxLDggQEAgZW51bSBwdW5p dF9wb3dlcl93ZWxsIHsKICNkZWZpbmUgR0VONl9HVF9HRlhfUkM2X0xPQ0tFRAkJCTB4MTM4MTA0 CiAjZGVmaW5lIFZMVl9DT1VOVEVSX0NPTlRST0wJCQkweDEzODEwNAogI2RlZmluZSAgIFZMVl9D T1VOVF9SQU5HRV9ISUdICQkJKDE8PDE1KQorI2RlZmluZSAgIFZMVl9NRURJQV9SQzBfQ09VTlRf RU4JCSgxPDw1KQorI2RlZmluZSAgIFZMVl9SRU5ERVJfUkMwX0NPVU5UX0VOCQkoMTw8NCkKICNk ZWZpbmUgICBWTFZfTUVESUFfUkM2X0NPVU5UX0VOCQkoMTw8MSkKICNkZWZpbmUgICBWTFZfUkVO REVSX1JDNl9DT1VOVF9FTgkJKDE8PDApCiAjZGVmaW5lIEdFTjZfR1RfR0ZYX1JDNgkJCQkweDEz ODEwOApAQCAtNTE0Miw2ICs1MTUxLDggQEAgZW51bSBwdW5pdF9wb3dlcl93ZWxsIHsKIAogI2Rl ZmluZSBHRU42X0dUX0dGWF9SQzZwCQkJMHgxMzgxMEMKICNkZWZpbmUgR0VONl9HVF9HRlhfUkM2 cHAJCQkweDEzODExMAorI2RlZmluZSBWTFZfUkVOREVSX0MwX0NPVU5UX1JFRwkJMHgxMzgxMTgK KyNkZWZpbmUgVkxWX01FRElBX0MwX0NPVU5UX1JFRwkJCTB4MTM4MTFDCiAKICNkZWZpbmUgR0VO Nl9QQ09ERV9NQUlMQk9YCQkJMHgxMzgxMjQKICNkZWZpbmUgICBHRU42X1BDT0RFX1JFQURZCQkJ KDE8PDMxKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggZDQ5ZWMwMi4uZWRhNmRhOTMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMzE0Miw4ICszMTQyLDExIEBAIHN0YXRpYyB2b2lk IHZsdl9zZXRfcnBzX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJ dmx2X2ZvcmNlX2dmeF9jbG9jayhkZXZfcHJpdiwgZmFsc2UpOwogCi0JSTkxNV9XUklURShHRU42 X1BNSU5UUk1TSywKLQkJICAgZ2VuNl9ycHNfcG1fbWFzayhkZXZfcHJpdiwgZGV2X3ByaXYtPnJw cy5jdXJfZnJlcSkpOworCWlmIChkZXZfcHJpdi0+cG1fcnBzX2V2ZW50cyAmIEdFTjZfUE1fUlBf VVBfRUlfRVhQSVJFRCkKKwkJSTkxNV9XUklURShHRU42X1BNSU5UUk1TSywgfmRldl9wcml2LT5w bV9ycHNfZXZlbnRzKTsKKwllbHNlIAorCQlJOTE1X1dSSVRFKEdFTjZfUE1JTlRSTVNLLAorCQkJ ICAgZ2VuNl9ycHNfcG1fbWFzayhkZXZfcHJpdiwgZGV2X3ByaXYtPnJwcy5jdXJfZnJlcSkpOwog fQogCiB2b2lkIGdlbjZfcnBzX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQpAQCAtMzc1NCw2ICszNzU3LDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19lbmFibGVfcnBz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJSTkxNV9XUklURShHRU42X1JQX0RPV05fRUksIDM1 MDAwMCk7CiAKIAlJOTE1X1dSSVRFKEdFTjZfUlBfSURMRV9IWVNURVJTSVMsIDEwKTsKKwlJOTE1 X1dSSVRFKEdFTjZfUlBfRE9XTl9USU1FT1VULCAweGY0MjQwKTsKIAogCUk5MTVfV1JJVEUoR0VO Nl9SUF9DT05UUk9MLAogCQkgICBHRU42X1JQX01FRElBX1RVUkJPIHwKQEAgLTM3NzQsOSArMzc3 OCwxMSBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2VuYWJsZV9ycHMoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAogCS8qIGFsbG93cyBSQzYgcmVzaWRlbmN5IGNvdW50ZXIgdG8gd29yayAqLwog CUk5MTVfV1JJVEUoVkxWX0NPVU5URVJfQ09OVFJPTCwKLQkJICAgX01BU0tFRF9CSVRfRU5BQkxF KFZMVl9DT1VOVF9SQU5HRV9ISUdIIHwKKwkJICAgX01BU0tFRF9CSVRfRU5BQkxFKFZMVl9NRURJ QV9SQzBfQ09VTlRfRU4gfAorCQkJCSAgICAgIFZMVl9SRU5ERVJfUkMwX0NPVU5UX0VOIHwKIAkJ CQkgICAgICBWTFZfTUVESUFfUkM2X0NPVU5UX0VOIHwKIAkJCQkgICAgICBWTFZfUkVOREVSX1JD Nl9DT1VOVF9FTikpOworCiAJaWYgKGludGVsX2VuYWJsZV9yYzYoZGV2KSAmIElOVEVMX1JDNl9F TkFCTEUpCiAJCXJjNl9tb2RlID0gR0VON19SQ19DVExfVE9fTU9ERSB8IFZMVl9SQ19DVExfQ1RY X1JTVF9QQVJBTExFTDsKIAotLSAKMS44LjUuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK