From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: [PATCH 05/10] drm/i915/vlv: WA for Turbo and RC6 to work together. Date: Thu, 3 Jul 2014 17:33:01 -0400 Message-ID: <1404423186-2019-6-git-send-email-rodrigo.vivi@intel.com> References: <1404423186-2019-1-git-send-email-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f50.google.com (mail-pa0-f50.google.com [209.85.220.50]) by gabe.freedesktop.org (Postfix) with ESMTP id 756316E781 for ; Thu, 3 Jul 2014 14:33:19 -0700 (PDT) Received: by mail-pa0-f50.google.com with SMTP id bj1so865681pad.9 for ; Thu, 03 Jul 2014 14:33:19 -0700 (PDT) In-Reply-To: <1404423186-2019-1-git-send-email-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: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org RnJvbTogRGVlcGFrIFMgPGRlZXBhay5zQGxpbnV4LmludGVsLmNvbT4KCldpdGggUkM2IGVuYWJs ZWQsIEJZVCBoYXMgYW4gSFcgaXNzdWUgaW4gZGV0ZXJtaW5pbmcgdGhlIHJpZ2h0CkdmeCBidXN5 bmVzcy4KV0EgZm9yIFR1cmJvICsgUkM2OiBVc2UgU1cgYmFzZWQgR2Z4IGJ1c3ktbmVzcyBkZXRl Y3Rpb24gdG8gZGVjaWRlCm9uIGluY3JlYXNpbmcvZGVjcmVhc2luZyB0aGUgZnJlcS4gVGhpcyBs b2dpYyB3aWxsIG1vbml0b3IgQzAKY291bnRlcnMgb2YgcmVuZGVyL21lZGlhIHBvd2VyLXdlbGxz IG92ZXIgRUkgcGVyaW9kIGFuZCB0YWtlcwpuZWNlc3NhcnkgYWN0aW9uIGJhc2VkIG9uIHRoZXNl IHZhbHVlcwoKdjI6IFJlZmFjdG9yIGR1cGxpY2F0ZSBjb2RlLiAoVmlsbGUpCgp2MzogUmVmb3Jt YXQgdGhlIGNvbW1lbnRzLiAoVmlsbGUpCgp2NDogRW5hYmxlIHJlcXVpcmVkIGNvdW50ZXJzIGFu ZCByZW1vdmUgdW53YW50ZWQgY29kZSAoVmlsbGUpCgp2NTogQWRkZWQgZnJlcXVlbmN5IGNoYW5n ZSBhY2NlbGVyYXRpb24gc3VwcG9ydCBhbmQgcmVtb3ZlIGtlcm5lbC1kb2MKc3R5bGUgY29tbWVu dHMuIChWaWxsZSkKCnY2OiBVcGRhdGVkIGNvbW1lbnQgc2VjdGlvbiBhbmQgRml4IHcvYSBjb21t ZW50LiAoVmlsbGUpCgpTaWduZWQtb2ZmLWJ5OiBEZWVwYWsgUyA8ZGVlcGFrLnNAbGludXguaW50 ZWwuY29tPgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50 ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggfCAgMTUgKysrKysK IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgfCAxMzMgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCB8 ICAxMSArKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIHwgIDEyICsrKy0KIDQg ZmlsZXMgY2hhbmdlZCwgMTY3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKaW5kZXggMWJmMjc3ZS4uZGIzM2EzNCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCkBAIC04ODAsNiArODgwLDEyIEBAIHN0cnVjdCB2bHZfczBpeF9zdGF0ZSB7CiAJdTMy IGNsb2NrX2dhdGVfZGlzMjsKIH07CiAKK3N0cnVjdCBpbnRlbF9ycHNfZWlfY2FsYyB7CisJdTMy IGN6X3RzX2VpOworCXUzMiByZW5kZXJfZWlfYzA7CisJdTMyIG1lZGlhX2VpX2MwOworfTsKKwog c3RydWN0IGludGVsX2dlbjZfcG93ZXJfbWdtdCB7CiAJLyogd29yayBhbmQgcG1faWlyIGFyZSBw cm90ZWN0ZWQgYnkgZGV2X3ByaXYtPmlycV9sb2NrICovCiAJc3RydWN0IHdvcmtfc3RydWN0IHdv cms7CkBAIC05MDQsNiArOTEwLDggQEAgc3RydWN0IGludGVsX2dlbjZfcG93ZXJfbWdtdCB7CiAJ dTggcnAxX2ZyZXE7CQkvKiAibGVzcyB0aGFuIiBSUDAgcG93ZXIvZnJlcWVuY3kgKi8KIAl1OCBy cDBfZnJlcTsJCS8qIE5vbi1vdmVyY2xvY2tlZCBtYXggZnJlcXVlbmN5LiAqLwogCisJdTMyIGVp X2ludGVycnVwdF9jb3VudDsKKwogCWludCBsYXN0X2FkajsKIAllbnVtIHsgTE9XX1BPV0VSLCBC RVRXRUVOLCBISUdIX1BPV0VSIH0gcG93ZXI7CiAKQEAgLTE1MDQsNiArMTUxMiwxMyBAQCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJLyogZ2VuNisgcnBzIHN0YXRlICovCiAJc3RydWN0IGlu dGVsX2dlbjZfcG93ZXJfbWdtdCBycHM7CiAKKwkvKiBycHMgd2EgdXAgZWkgY2FsY3VsYXRpb24g Ki8KKwlzdHJ1Y3QgaW50ZWxfcnBzX2VpX2NhbGMgcnBzX3VwX2VpOworCisJLyogcnBzIHdhIGRv d24gZWkgY2FsY3VsYXRpb24gKi8KKwlzdHJ1Y3QgaW50ZWxfcnBzX2VpX2NhbGMgcnBzX2Rvd25f ZWk7CisKKwogCS8qIGlsay1vbmx5IGlwcy9ycHMgc3RhdGUuIEV2ZXJ5dGhpbmcgaW4gaGVyZSBp cyBwcm90ZWN0ZWQgYnkgdGhlIGdsb2JhbAogCSAqIG1jaGRldl9sb2NrIGluIGludGVsX3BtLmMg Ki8KIAlzdHJ1Y3QgaW50ZWxfaWxrX3Bvd2VyX21nbXQgaXBzOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKaW5kZXggMDIxN2E0MS4uN2FlMTdhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9pcnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC0x MjI1LDYgKzEyMjUsMTMxIEBAIHN0YXRpYyB2b2lkIG5vdGlmeV9yaW5nKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJaTkxNV9xdWV1ZV9oYW5nY2hlY2soZGV2KTsKIH0KIAorc3RhdGljIHUzMiB2 bHZfYzBfcmVzaWRlbmN5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQlz dHJ1Y3QgIGludGVsX3Jwc19laV9jYWxjICpycHNfZWkpCit7CisJdTMyIGN6X3RzLCBjel9mcmVx X2toejsKKwl1MzIgcmVuZGVyX2NvdW50LCBtZWRpYV9jb3VudDsKKwl1MzIgZWxhcHNlZF9yZW5k ZXIsIGVsYXBzZWRfbWVkaWEsIGVsYXBzZWRfdGltZTsKKwl1MzIgcmVzaWRlbmN5ID0gMDsKKwor CWN6X3RzID0gdmx2X3B1bml0X3JlYWQoZGV2X3ByaXYsIFBVTklUX1JFR19DWl9USU1FU1RBTVAp OworCWN6X2ZyZXFfa2h6ID0gRElWX1JPVU5EX0NMT1NFU1QoZGV2X3ByaXYtPm1lbV9mcmVxICog MTAwMCwgNCk7CisKKwlyZW5kZXJfY291bnQgPSBJOTE1X1JFQUQoVkxWX1JFTkRFUl9DMF9DT1VO VF9SRUcpOworCW1lZGlhX2NvdW50ID0gSTkxNV9SRUFEKFZMVl9NRURJQV9DMF9DT1VOVF9SRUcp OworCisJaWYgKHJwc19laS0+Y3pfdHNfZWkgPT0gMCkgeworCQlycHNfZWktPmN6X3RzX2VpID0g Y3pfdHM7CisJCXJwc19laS0+cmVuZGVyX2VpX2MwID0gcmVuZGVyX2NvdW50OworCQlycHNfZWkt Pm1lZGlhX2VpX2MwID0gbWVkaWFfY291bnQ7CisKKwkJcmV0dXJuIGRldl9wcml2LT5ycHMuY3Vy X2ZyZXE7CisJfQorCisJZWxhcHNlZF90aW1lID0gY3pfdHMgLSBycHNfZWktPmN6X3RzX2VpOwor CXJwc19laS0+Y3pfdHNfZWkgPSBjel90czsKKworCWVsYXBzZWRfcmVuZGVyID0gcmVuZGVyX2Nv dW50IC0gcnBzX2VpLT5yZW5kZXJfZWlfYzA7CisJcnBzX2VpLT5yZW5kZXJfZWlfYzAgPSByZW5k ZXJfY291bnQ7CisKKwllbGFwc2VkX21lZGlhID0gbWVkaWFfY291bnQgLSBycHNfZWktPm1lZGlh X2VpX2MwOworCXJwc19laS0+bWVkaWFfZWlfYzAgPSBtZWRpYV9jb3VudDsKKworCS8qIENvbnZl cnQgYWxsIHRoZSBjb3VudGVycyBpbnRvIGNvbW1vbiB1bml0IG9mIG1pbGxpIHNlYyAqLworCWVs YXBzZWRfdGltZSAvPSBWTFZfQ1pfQ0xPQ0tfVE9fTUlMTElfU0VDOworCWVsYXBzZWRfcmVuZGVy IC89ICBjel9mcmVxX2toejsKKwllbGFwc2VkX21lZGlhIC89IGN6X2ZyZXFfa2h6OworCisJLyoK KwkgKiBDYWxjdWxhdGUgb3ZlcmFsbCBDMCByZXNpZGVuY3kgcGVyY2VudGFnZQorCSAqIG9ubHkg aWYgZWxhcHNlZCB0aW1lIGlzIG5vbiB6ZXJvCisJICovCisJaWYgKGVsYXBzZWRfdGltZSkgewor CQlyZXNpZGVuY3kgPQorCQkJKChtYXgoZWxhcHNlZF9yZW5kZXIsIGVsYXBzZWRfbWVkaWEpICog MTAwKQorCQkJCS8gZWxhcHNlZF90aW1lKTsKKwl9CisKKwlyZXR1cm4gcmVzaWRlbmN5OworfQor CisvKioKKyAqIHZsdl9jYWxjX2RlbGF5X2Zyb21fQzBfY291bnRlcnMgLSBJbmNyZWFzZS9EZWNy ZWFzZSBmcmVxIGJhc2VkIG9uIEdQVQorICogYnVzeS1uZXNzIGNhbGN1bGF0ZWQgZnJvbSBDMCBj b3VudGVycyBvZiByZW5kZXIgJiBtZWRpYSBwb3dlciB3ZWxscworICogQGRldl9wcml2OiBEUk0g ZGV2aWNlIHByaXZhdGUKKyAqCisgKi8KK3N0YXRpYyB1MzIgdmx2X2NhbGNfZGVsYXlfZnJvbV9D MF9jb3VudGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJdTMyIHJl c2lkZW5jeV9DMF91cCA9IDAsIHJlc2lkZW5jeV9DMF9kb3duID0gMDsKKwl1OCBuZXdfZGVsYXks IGFkajsKKworCWRldl9wcml2LT5ycHMuZWlfaW50ZXJydXB0X2NvdW50Kys7CisKKwlXQVJOX09O KCFtdXRleF9pc19sb2NrZWQoJmRldl9wcml2LT5ycHMuaHdfbG9jaykpOworCisKKwlpZiAoZGV2 X3ByaXYtPnJwc191cF9laS5jel90c19laSA9PSAwKSB7CisJCXZsdl9jMF9yZXNpZGVuY3koZGV2 X3ByaXYsICZkZXZfcHJpdi0+cnBzX3VwX2VpKTsKKwkJdmx2X2MwX3Jlc2lkZW5jeShkZXZfcHJp diwgJmRldl9wcml2LT5ycHNfZG93bl9laSk7CisJCXJldHVybiBkZXZfcHJpdi0+cnBzLmN1cl9m cmVxOworCX0KKworCisJLyoKKwkgKiBUbyBkb3duIHRocm90dGxlLCBDMCByZXNpZGVuY3kgc2hv dWxkIGJlIGxlc3MgdGhhbiBkb3duIHRocmVzaG9sZAorCSAqIGZvciBjb250aW5vdXMgRUkgaW50 ZXJ2YWxzLiBTbyBjYWxjdWxhdGUgZG93biBFSSBjb3VudGVycworCSAqIG9uY2UgaW4gVkxWX0lO VF9DT1VOVF9GT1JfRE9XTl9FSQorCSAqLworCWlmIChkZXZfcHJpdi0+cnBzLmVpX2ludGVycnVw dF9jb3VudCA9PSBWTFZfSU5UX0NPVU5UX0ZPUl9ET1dOX0VJKSB7CisKKwkJZGV2X3ByaXYtPnJw cy5laV9pbnRlcnJ1cHRfY291bnQgPSAwOworCisJCXJlc2lkZW5jeV9DMF9kb3duID0gdmx2X2Mw X3Jlc2lkZW5jeShkZXZfcHJpdiwKKwkJCQkJCSZkZXZfcHJpdi0+cnBzX2Rvd25fZWkpOworCX0g ZWxzZSB7CisJCXJlc2lkZW5jeV9DMF91cCA9IHZsdl9jMF9yZXNpZGVuY3koZGV2X3ByaXYsCisJ CQkJCQkmZGV2X3ByaXYtPnJwc191cF9laSk7CisJfQorCisJbmV3X2RlbGF5ID0gZGV2X3ByaXYt PnJwcy5jdXJfZnJlcTsKKworCWFkaiA9IGRldl9wcml2LT5ycHMubGFzdF9hZGo7CisJLyogQzAg cmVzaWRlbmN5IGlzIGdyZWF0ZXIgdGhhbiBVUCB0aHJlc2hvbGQuIEluY3JlYXNlIEZyZXF1ZW5j eSAqLworCWlmIChyZXNpZGVuY3lfQzBfdXAgPj0gVkxWX1JQX1VQX0VJX1RIUkVTSE9MRCkgewor CQlpZiAoYWRqID4gMCkKKwkJCWFkaiAqPSAyOworCQllbHNlCisJCQlhZGogPSAxOworCisJCWlm IChkZXZfcHJpdi0+cnBzLmN1cl9mcmVxIDwgZGV2X3ByaXYtPnJwcy5tYXhfZnJlcV9zb2Z0bGlt aXQpCisJCQluZXdfZGVsYXkgPSBkZXZfcHJpdi0+cnBzLmN1cl9mcmVxICsgYWRqOworCisJCS8q CisJCSAqIEZvciBiZXR0ZXIgcGVyZm9ybWFuY2UsIGp1bXAgZGlyZWN0bHkKKwkJICogdG8gUlBl IGlmIHdlJ3JlIGJlbG93IGl0LgorCQkgKi8KKwkJaWYgKG5ld19kZWxheSA8IGRldl9wcml2LT5y cHMuZWZmaWNpZW50X2ZyZXEpCisJCQluZXdfZGVsYXkgPSBkZXZfcHJpdi0+cnBzLmVmZmljaWVu dF9mcmVxOworCisJfSBlbHNlIGlmICghZGV2X3ByaXYtPnJwcy5laV9pbnRlcnJ1cHRfY291bnQg JiYKKwkJCShyZXNpZGVuY3lfQzBfZG93biA8IFZMVl9SUF9ET1dOX0VJX1RIUkVTSE9MRCkpIHsK KwkJaWYgKGFkaiA8IDApCisJCQlhZGogKj0gMjsKKwkJZWxzZQorCQkJYWRqID0gLTE7CisJCS8q CisJCSAqIFRoaXMgbWVhbnMsIEMwIHJlc2lkZW5jeSBpcyBsZXNzIHRoYW4gZG93biB0aHJlc2hv bGQgb3ZlcgorCQkgKiBhIHBlcmlvZCBvZiBWTFZfSU5UX0NPVU5UX0ZPUl9ET1dOX0VJLiBTbywg cmVkdWNlIHRoZSBmcmVxCisJCSAqLworCQlpZiAoZGV2X3ByaXYtPnJwcy5jdXJfZnJlcSA+IGRl dl9wcml2LT5ycHMubWluX2ZyZXFfc29mdGxpbWl0KQorCQkJbmV3X2RlbGF5ID0gZGV2X3ByaXYt PnJwcy5jdXJfZnJlcSArIGFkajsKKwl9CisKKwlyZXR1cm4gbmV3X2RlbGF5OworfQorCiBzdGF0 aWMgdm9pZCBnZW42X3BtX3Jwc193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQpAQCAtMTI3Myw2ICsxMzk4LDggQEAg c3RhdGljIHZvaWQgZ2VuNl9wbV9ycHNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJ CWVsc2UKIAkJCW5ld19kZWxheSA9IGRldl9wcml2LT5ycHMubWluX2ZyZXFfc29mdGxpbWl0Owog CQlhZGogPSAwOworCX0gZWxzZSBpZiAocG1faWlyICYgR0VONl9QTV9SUF9VUF9FSV9FWFBJUkVE KSB7CisJCW5ld19kZWxheSA9IHZsdl9jYWxjX2RlbGF5X2Zyb21fQzBfY291bnRlcnMoZGV2X3By aXYpOwogCX0gZWxzZSBpZiAocG1faWlyICYgR0VONl9QTV9SUF9ET1dOX1RIUkVTSE9MRCkgewog CQlpZiAoYWRqIDwgMCkKIAkJCWFkaiAqPSAyOwpAQCAtNDM2Myw3ICs0NDkwLDExIEBAIHZvaWQg aW50ZWxfaXJxX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlJTklUX1dPUksoJmRldl9w cml2LT5sM19wYXJpdHkuZXJyb3Jfd29yaywgaXZ5YnJpZGdlX3Bhcml0eV93b3JrKTsKIAogCS8q IExldCdzIHRyYWNrIHRoZSBlbmFibGVkIHJwcyBldmVudHMgKi8KLQlkZXZfcHJpdi0+cG1fcnBz X2V2ZW50cyA9IEdFTjZfUE1fUlBTX0VWRU5UUzsKKwlpZiAoSVNfVkFMTEVZVklFVyhkZXYpKQor CQkvKiBXYUdzdlJDMFJlc2lkZW5uY3lNZXRob2Q6VkxWICovCisJCWRldl9wcml2LT5wbV9ycHNf ZXZlbnRzID0gR0VONl9QTV9SUF9VUF9FSV9FWFBJUkVEOworCWVsc2UKKwkJZGV2X3ByaXYtPnBt X3Jwc19ldmVudHMgPSBHRU42X1BNX1JQU19FVkVOVFM7CiAKIAlzZXR1cF90aW1lcigmZGV2X3By aXYtPmdwdV9lcnJvci5oYW5nY2hlY2tfdGltZXIsCiAJCSAgICBpOTE1X2hhbmdjaGVja19lbGFw c2VkLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggMzQ4ODU2Ny4uOTk0MTNhZSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCkBAIC01MjUsNiArNTI1LDcgQEAgZW51bSBwdW5pdF9wb3dlcl93 ZWxsIHsKICNkZWZpbmUgUFVOSVRfUkVHX0dQVV9GUkVRX1NUUwkJCTB4ZDgKICNkZWZpbmUgICBH RU5GUkVRU1RBVFVTCQkJCSgxPDwwKQogI2RlZmluZSBQVU5JVF9SRUdfTUVESUFfVFVSQk9fRlJF UV9SRVEJCTB4ZGMKKyNkZWZpbmUgUFVOSVRfUkVHX0NaX1RJTUVTVEFNUAkJCTB4Y2UKIAogI2Rl ZmluZSBQVU5JVF9GVVNFX0JVUzIJCQkJMHhmNiAvKiBiaXRzIDQ3OjQwICovCiAjZGVmaW5lIFBV TklUX0ZVU0VfQlVTMQkJCQkweGY1IC8qIGJpdHMgNTU6NDggKi8KQEAgLTU1MCw2ICs1NTEsMTEg QEAgZW51bSBwdW5pdF9wb3dlcl93ZWxsIHsKICNkZWZpbmUgICBGQl9GTUFYX1ZNSU5fRlJFUV9M T19TSElGVAkJMjcKICNkZWZpbmUgICBGQl9GTUFYX1ZNSU5fRlJFUV9MT19NQVNLCQkweGY4MDAw MDAwCiAKKyNkZWZpbmUgVkxWX0NaX0NMT0NLX1RPX01JTExJX1NFQwkJMTAwMDAwCisjZGVmaW5l IFZMVl9SUF9VUF9FSV9USFJFU0hPTEQJCQk5MAorI2RlZmluZSBWTFZfUlBfRE9XTl9FSV9USFJF U0hPTEQJCTcwCisjZGVmaW5lIFZMVl9JTlRfQ09VTlRfRk9SX0RPV05fRUkJCTUKKwogLyogdmx2 MiBub3J0aCBjbG9jayBoYXMgKi8KICNkZWZpbmUgQ0NLX0ZVU0VfUkVHCQkJCTB4OAogI2RlZmlu ZSAgQ0NLX0ZVU0VfSFBMTF9GUkVRX01BU0sJCTB4MwpAQCAtNTM4Myw2ICs1Mzg5LDcgQEAgZW51 bSBwdW5pdF9wb3dlcl93ZWxsIHsKICNkZWZpbmUgICBWTFZfR1RMQ19BTExPV1dBS0VFUlIJCQko MSA8PCAxKQogI2RlZmluZSAgIFZMVl9HVExDX1BXX01FRElBX1NUQVRVU19NQVNLCQkoMSA8PCA1 KQogI2RlZmluZSAgIFZMVl9HVExDX1BXX1JFTkRFUl9TVEFUVVNfTUFTSwkoMSA8PCA3KQorI2Rl ZmluZSBWTFZfR1RMQ19TVVJWSVZBQklMSVRZX1JFRyAgICAgICAgICAgICAgMHgxMzAwOTgKICNk ZWZpbmUgIEZPUkNFV0FLRV9NVAkJCQkweGExODggLyogbXVsdGktdGhyZWFkZWQgKi8KICNkZWZp bmUgICBGT1JDRVdBS0VfS0VSTkVMCQkJMHgxCiAjZGVmaW5lICAgRk9SQ0VXQUtFX1VTRVIJCQkw eDIKQEAgLTU1MzAsNiArNTUzNyw4IEBAIGVudW0gcHVuaXRfcG93ZXJfd2VsbCB7CiAjZGVmaW5l IEdFTjZfR1RfR0ZYX1JDNl9MT0NLRUQJCQkweDEzODEwNAogI2RlZmluZSBWTFZfQ09VTlRFUl9D T05UUk9MCQkJMHgxMzgxMDQKICNkZWZpbmUgICBWTFZfQ09VTlRfUkFOR0VfSElHSAkJCSgxPDwx NSkKKyNkZWZpbmUgICBWTFZfTUVESUFfUkMwX0NPVU5UX0VOCQkoMTw8NSkKKyNkZWZpbmUgICBW TFZfUkVOREVSX1JDMF9DT1VOVF9FTgkJKDE8PDQpCiAjZGVmaW5lICAgVkxWX01FRElBX1JDNl9D T1VOVF9FTgkJKDE8PDEpCiAjZGVmaW5lICAgVkxWX1JFTkRFUl9SQzZfQ09VTlRfRU4JCSgxPDww KQogI2RlZmluZSBHRU42X0dUX0dGWF9SQzYJCQkJMHgxMzgxMDgKQEAgLTU1MzgsNiArNTU0Nyw4 IEBAIGVudW0gcHVuaXRfcG93ZXJfd2VsbCB7CiAKICNkZWZpbmUgR0VONl9HVF9HRlhfUkM2cAkJ CTB4MTM4MTBDCiAjZGVmaW5lIEdFTjZfR1RfR0ZYX1JDNnBwCQkJMHgxMzgxMTAKKyNkZWZpbmUg VkxWX1JFTkRFUl9DMF9DT1VOVF9SRUcJCTB4MTM4MTE4CisjZGVmaW5lIFZMVl9NRURJQV9DMF9D T1VOVF9SRUcJCQkweDEzODExQwogCiAjZGVmaW5lIEdFTjZfUENPREVfTUFJTEJPWAkJCTB4MTM4 MTI0CiAjZGVmaW5lICAgR0VONl9QQ09ERV9SRUFEWQkJCSgxPDwzMSkKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCmluZGV4IDFlNDYxMWEuLjhlYTk2ZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpA QCAtMzIzNSw4ICszMjM1LDExIEBAIHN0YXRpYyB2b2lkIHZsdl9zZXRfcnBzX2lkbGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJdmx2X2ZvcmNlX2dmeF9jbG9jayhkZXZf cHJpdiwgZmFsc2UpOwogCi0JSTkxNV9XUklURShHRU42X1BNSU5UUk1TSywKLQkJICAgZ2VuNl9y cHNfcG1fbWFzayhkZXZfcHJpdiwgZGV2X3ByaXYtPnJwcy5jdXJfZnJlcSkpOworCWlmIChkZXZf cHJpdi0+cG1fcnBzX2V2ZW50cyAmIEdFTjZfUE1fUlBfVVBfRUlfRVhQSVJFRCkKKwkJSTkxNV9X UklURShHRU42X1BNSU5UUk1TSywgfmRldl9wcml2LT5wbV9ycHNfZXZlbnRzKTsKKwllbHNlIAor CQlJOTE1X1dSSVRFKEdFTjZfUE1JTlRSTVNLLAorCQkJICAgZ2VuNl9ycHNfcG1fbWFzayhkZXZf cHJpdiwgZGV2X3ByaXYtPnJwcy5jdXJfZnJlcSkpOwogfQogCiB2b2lkIGdlbjZfcnBzX2lkbGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtNDA3Niw2ICs0MDc5LDcgQEAg c3RhdGljIHZvaWQgdmFsbGV5dmlld19lbmFibGVfcnBzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJSTkxNV9XUklURShHRU42X1JQX0RPV05fRUksIDM1MDAwMCk7CiAKIAlJOTE1X1dSSVRFKEdF TjZfUlBfSURMRV9IWVNURVJTSVMsIDEwKTsKKwlJOTE1X1dSSVRFKEdFTjZfUlBfRE9XTl9USU1F T1VULCAweGY0MjQwKTsKIAogCUk5MTVfV1JJVEUoR0VONl9SUF9DT05UUk9MLAogCQkgICBHRU42 X1JQX01FRElBX1RVUkJPIHwKQEAgLTQwOTYsOSArNDEwMCwxMSBAQCBzdGF0aWMgdm9pZCB2YWxs ZXl2aWV3X2VuYWJsZV9ycHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCS8qIGFsbG93cyBS QzYgcmVzaWRlbmN5IGNvdW50ZXIgdG8gd29yayAqLwogCUk5MTVfV1JJVEUoVkxWX0NPVU5URVJf Q09OVFJPTCwKLQkJICAgX01BU0tFRF9CSVRfRU5BQkxFKFZMVl9DT1VOVF9SQU5HRV9ISUdIIHwK KwkJICAgX01BU0tFRF9CSVRfRU5BQkxFKFZMVl9NRURJQV9SQzBfQ09VTlRfRU4gfAorCQkJCSAg ICAgIFZMVl9SRU5ERVJfUkMwX0NPVU5UX0VOIHwKIAkJCQkgICAgICBWTFZfTUVESUFfUkM2X0NP VU5UX0VOIHwKIAkJCQkgICAgICBWTFZfUkVOREVSX1JDNl9DT1VOVF9FTikpOworCiAJaWYgKGlu dGVsX2VuYWJsZV9yYzYoZGV2KSAmIElOVEVMX1JDNl9FTkFCTEUpCiAJCXJjNl9tb2RlID0gR0VO N19SQ19DVExfVE9fTU9ERSB8IFZMVl9SQ19DVExfQ1RYX1JTVF9QQVJBTExFTDsKIAotLSAKMS45 LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==