From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anshuman Gupta Subject: [PATCH v10 5/6] drm/i915/tgl: Switch between dc3co and dc5 based on display idleness Date: Mon, 30 Sep 2019 23:11:36 +0530 Message-ID: <20190930174137.15233-6-anshuman.gupta@intel.com> References: <20190930174137.15233-1-anshuman.gupta@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id DAB836E4C5 for ; Mon, 30 Sep 2019 17:48:06 +0000 (UTC) In-Reply-To: <20190930174137.15233-1-anshuman.gupta@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: jani.nikula@intel.com List-Id: intel-gfx@lists.freedesktop.org REMzQ08gaXMgdXNlZnVsIHBvd2VyIHN0YXRlLCB3aGVuIERNQyBkZXRlY3RzIFBTUjIgaWRsZSBm cmFtZQp3aGlsZSBhbiBhY3RpdmUgdmlkZW8gcGxheWJhY2ssIHBsYXlpbmcgMzBmcHMgdmlkZW8g b24gNjBoeiBwYW5lbAppcyB0aGUgY2xhc3NpYyBleGFtcGxlIG9mIHRoaXMgdXNlIGNhc2UuCgpC LlNwZWNzOjQ5MTk2IGhhcyBhIHJlc3RyaWN0aW9uIHRvIGVuYWJsZSBEQzNDTyBvbmx5IGZvciBW aWRlbyBQbGF5YmFjay4KSXQgd2lsbCBiZSB3b3J0aHkgdG8gZW5hYmxlIERDM0NPIGFmdGVyIGNv bXBsZXRpb24gb2YgZWFjaCBwYWdlZmxpcAphbmQgc3dpdGNoIGJhY2sgdG8gREM1IHdoZW4gZGlz cGxheSBpcyBpZGxlIGJlY2F1c2UgZHJpdmVyIGRvZXNuJ3QKZGlmZmVyZW50aWF0ZSBiZXR3ZWVu IHZpZGVvIHBsYXliYWNrIGFuZCBhIG5vcm1hbCBwYWdlZmxpcC4KV2Ugd2lsbCB1c2UgRnJvbnRi dWZmZXIgZmx1c2ggY2FsbCB0Z2xfZGMzY29fZmx1c2goKSB0byBlbmFibGUgREMzQ08Kc3RhdGUg b25seSBmb3IgT1JJR0lOX0ZMSVAgZmx1c2ggY2FsbCwgYmVjYXVzZSBEQzNDTyBzdGF0ZSBoYXMg cHJpbWFyaWx5CnRhcmdldGVkIGZvciBWUEIgdXNlIGNhc2UuIFdlIGFyZSBub3QgaW50ZXJlc3Rl ZCBoZXJlIGZvciBmcm9udGJ1ZmZlcgppbnZhbGlkYXRlcyBjYWxscyBiZWNhdXNlIHRoYXQgdHJp Z2dlcnMgUFNSMiBleGl0LCB3aGljaCB3aWxsCmV4cGxpY2l0bHkgZGlzYWJsZSBEQzNDTy4KCkRD NSBhbmQgREM2IHNhdmVzIG1vcmUgcG93ZXIsIGJ1dCBjYW4ndCBiZSBlbnRlcmVkIGR1cmluZyB2 aWRlbwpwbGF5YmFjayBiZWNhdXNlIHRoZXJlIGFyZSBub3QgZW5vdWdoIGlkbGUgZnJhbWVzIGlu IGEgcm93IHRvIG1lZXQKbW9zdCBQU1IyIHBhbmVsIGRlZXAgc2xlZXAgZW50cnkgcmVxdWlyZW1l bnQgdHlwaWNhbGx5IDQgZnJhbWVzLgpBcyBQU1IyIGV4aXN0aW5nIGltcGxlbWVudGF0aW9uIGlz IHVzaW5nIG1pbmltdW0gNiBpZGxlIGZyYW1lcyBmb3IKZGVlcCBzbGVlcCwgaXQgaXMgc2FmZXIg dG8gZW5hYmxlIERDNS82IGFmdGVyIDYgaWRsZSBmcmFtZXMKKEJ5IHNjaGVkdWxpbmcgYSBkZWxh eWVkIHdvcmsgb2YgNiBpZGxlIGZyYW1lcywgb25jZSBEQzNDTyBoYXMgYmVlbgplbmFibGVkIGFm dGVyIGEgcGFnZWZsaXApLgoKQWZ0ZXIgbWFudWFsbHkgd2FpdGluZyBmb3IgNiBpZGxlIGZyYW1l cyBEQzUvNiB3aWxsIGJlIGVuYWJsZWQgYW5kClBTUjIgZGVlcCBzbGVlcCBpZGxlIGZyYW1lcyB3 aWxsIGJlIHJlc3RvcmVkIHRvIDYgaWRsZSBmcmFtZXMsIGF0IHRoaXMKcG9pbnQgRE1DIHdpbGwg dHJpZ2dlcnMgREM1LzYgb25jZSBQU1IyIGVudGVycyB0byBkZWVwIHNsZWVwIGFmdGVyCjYgaWRs ZSBmcmFtZXMuCkluIGZ1dHVyZSB3aGVuIHdlIHdpbGwgZW5hYmxlIFMvVyBQU1IyIHRyYWNraW5n LCB3ZSBjYW4gY2hhbmdlIHRoZQpQU1IyIHJlcXVpcmVkIGRlZXAgc2xlZXAgaWRsZSBmcmFtZXMg dG8gMSBzbyBETUMgY2FuIHRyaWdnZXIgdGhlCkRDNS82IGltbWVkaWF0ZWx5IGFmdGVyIFMvVyBt YW51YWwgd2FpdGluZyBvZiA2IGlkbGUgZnJhbWVzIGdldApjb21wbGV0ZS4KCnYyOiBjYWxjdWxh dGVkIHMvdyBzdGF0ZSB0byBzd2l0Y2ggb3ZlciBkYzNjbyB3aGVuIHRoZXJlIGlzIGFuCiAgICB1 cGRhdGUuIFtJbXJlXQogICAgVXNlZCBjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoKSBpbiBvcmRl ciB0byBhdm9pZCBhbnkgcmFjZQogICAgd2l0aCBhbHJlYWR5IHNjaGVkdWxlZCBkZWxheWVkIHdv cmsuIFtJbXJlXQp2MzogQ2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCkgbWF5IGJsb2NrZWQgdGhl IGNvbW1pdCB3b3JrLgogICAgaGVuY2UgZHJvcHBpbmcgaXQsIGRjNV9pZGxlX3RocmVhZCgpIGNo ZWNrcyB0aGUgdmFsaWQgd2FrZXJlZiBiZWZvcmUKICAgIHB1dHRpbmcgdGhlIHJlZmVyZW5jZSBj b3VudCwgd2hpY2ggYXZvaWRzIGFueSBjaGFuY2VzIG9mIGRyb3BwaW5nCiAgICBhIHplcm8gd2Fr ZXJlZi4gW0ltcmUgKElSQyldCnY0OiBVc2VkIGZyb250YnVmZmVyIGZsdXNoIG1lY2hhbmlzbS4g W0ltcmVdCnY1OiBVc2VkIHBzci5waXBlIHRvIGV4dHJhY3QgZnJvbnRidWZmZXIgYnVzeSBiaXRz LiBbSW1yZV0KICAgIFVzZWQgY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCkgaW4gZW5jb2RlciBk aXNhYmxlIHBhdGguIFtJbXJlXQogICAgVXNlZCBtb2RfZGVsYXllZF93b3JrKCkgaW5zdGVhZCBv ZiBjYW5jZWxsaW5nIGFuZCBzY2hlZHVsaW5nIGEKICAgIGRlbGF5ZWQgd29yay4gW0ltcmVdCiAg ICBVc2VkIHBzci5sb2NrIGluIHRnbF9kYzVfaWRsZV90aHJlYWQoKSB0byBlbmFibGUgcHNyMiBk ZWVwCiAgICBzbGVlcC4gW0ltcmVdCiAgICBSZW1vdmVkIERDNV9SRVFfSURMRV9GUkFNRVMgbWFj cm8uIFtJbXJlXQp2NjogVXNlZCBkYzNjb19leGl0bGluZSBjaGVjayBpbnN0ZWFkIG9mIFRHTCBh bmQgZGMzY28gYWxsb3dlZF9kY19tYXNrCiAgICBjaGVja3MsIHVzZWQgZGVsYXllZF93b3JrX3Bl bmRpbmcgd2l0aCB0aGUgcHNyIGxvY2sgYW5kIHJlbW92ZWQgdGhlCiAgICBwc3IyX2RlZXBfc2xw X2Rpc2FibGVkIGZsYWcuIFtJbXJlXQp2NzogQ29kZSByZWZhY3RvcmluZyBtb3ZlZCB0aGUgbW9z dCBvZiBmdW5jdGlvbmFsIGNvZGUgdG8gaW50ZV9wc3IuYyBbSW1yZV0KICAgIFVzaW5nIGZyb250 YnVmZmVyX2JpdHMgb24gcHNyLnBpcGUgY2hlY2sgaW5zdGVhZCBvZgogICAgYnVzeV9mcm9udGJ1 ZmZlcl9iaXRzLiBbSW1yZV0KCkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29t PgpDYzogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgpDYzogQW5pbWVzaCBNYW5uYSA8 YW5pbWVzaC5tYW5uYUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFuc2h1bWFuIEd1cHRhIDxh bnNodW1hbi5ndXB0YUBpbnRlbC5jb20+Ci0tLQogLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheV9wb3dlci5jICAgIHwgIDQ1ICsrKysrKysrCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5X3Bvd2VyLmggICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9wc3IuYyAgICAgIHwgMTA5ICsrKysrKysrKysrKysrKysrLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgIHwgICAyICsKIDQgZmlsZXMgY2hh bmdlZCwgMTU3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jCmluZGV4IDY3YmE5MmRk ODM2Ni4uOWZkZGViZmRhMTY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwpAQCAtODg2LDYgKzg4Niw1MSBAQCBsb29rdXBfcG93 ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJcmV0dXJuICZkZXZf cHJpdi0+cG93ZXJfZG9tYWlucy5wb3dlcl93ZWxsc1swXTsKIH0KIAorLyoqCisgKiBpbnRlbF9k aXNwbGF5X3Bvd2VyX3NldF90YXJnZXRfZGNfc3RhdGUgLSBTZXQgdGFyZ2V0IGRjIHN0YXRlLgor ICogQGRldl9wcml2OiBpOTE1IGRldmljZQorICogQHN0YXRlOiBzdGF0ZSB3aGljaCBuZWVkcyB0 byBiZSBzZXQgYXMgdGFyZ2V0X2RjX3N0YXRlLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gc2V0IHRo ZSAiREMgb2ZmIiBwb3dlciB3ZWxsIHRhcmdldF9kY19zdGF0ZSwKKyAqIGJhc2VkIHVwb24gdGhp cyB0YXJnZXRfZGNfc3RzdGUsICJEQyBvZmYiIHBvd2VyIHdlbGwgd2lsbAorICogZW5hYmxlIGRl c2lyZWQgREMgc3RhdGUuCisgKi8KK3ZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl9zZXRfdGFyZ2V0 X2RjX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJICAgICB1 MzIgc3RhdGUpCit7CisJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbDsKKwlib29s IGRjX29mZl9lbmFibGVkOworCXN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFp bnMgPSAmZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnM7CisKKwltdXRleF9sb2NrKCZwb3dlcl9kb21h aW5zLT5sb2NrKTsKKwlwb3dlcl93ZWxsID0gbG9va3VwX3Bvd2VyX3dlbGwoZGV2X3ByaXYsIFNL TF9ESVNQX0RDX09GRik7CisKKwlpZiAoV0FSTl9PTighcG93ZXJfd2VsbCkpCisJCWdvdG8gdW5s b2NrOworCisJc3RhdGUgPSBzYW5pdGl6ZV90YXJnZXRfZGNfc3RhdGUoZGV2X3ByaXYsIHN0YXRl KTsKKworCWlmIChzdGF0ZSA9PSBkZXZfcHJpdi0+Y3NyLnRhcmdldF9kY19zdGF0ZSkKKwkJZ290 byB1bmxvY2s7CisKKwlkY19vZmZfZW5hYmxlZCA9IHBvd2VyX3dlbGwtPmRlc2MtPm9wcy0+aXNf ZW5hYmxlZChkZXZfcHJpdiwKKwkJCQkJCQkgICBwb3dlcl93ZWxsKTsKKwkvKgorCSAqIElmIERD IG9mZiBwb3dlciB3ZWxsIGlzIGRpc2FibGVkLCBuZWVkIHRvIGVuYWJsZSBhbmQgZGlzYWJsZSB0 aGUKKwkgKiBEQyBvZmYgcG93ZXIgd2VsbCB0byBlZmZlY3QgdGFyZ2V0IERDIHN0YXRlLgorCSAq LworCWlmICghZGNfb2ZmX2VuYWJsZWQpCisJCXBvd2VyX3dlbGwtPmRlc2MtPm9wcy0+ZW5hYmxl KGRldl9wcml2LCBwb3dlcl93ZWxsKTsKKworCWRldl9wcml2LT5jc3IudGFyZ2V0X2RjX3N0YXRl ID0gc3RhdGU7CisKKwlpZiAoIWRjX29mZl9lbmFibGVkKQorCQlwb3dlcl93ZWxsLT5kZXNjLT5v cHMtPmRpc2FibGUoZGV2X3ByaXYsIHBvd2VyX3dlbGwpOworCit1bmxvY2s6CisJbXV0ZXhfdW5s b2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKK30KKwogc3RhdGljIHZvaWQgYXNzZXJ0X2Nhbl9l bmFibGVfZGM1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlib29sIHBn Ml9lbmFibGVkID0gaW50ZWxfZGlzcGxheV9wb3dlcl93ZWxsX2lzX2VuYWJsZWQoZGV2X3ByaXYs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlf cG93ZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dl ci5oCmluZGV4IDdkNzJmYWY0NzRiMi4uMWRhMDRmM2UwZmIzIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuaApAQCAtMjU3LDYgKzI1 Nyw4IEBAIHZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl9zdXNwZW5kX2xhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpOwogdm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3Jlc3VtZV9lYXJs eShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CiB2b2lkIGludGVsX2Rpc3BsYXlfcG93 ZXJfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CiB2b2lkIGludGVsX2Rp c3BsYXlfcG93ZXJfcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3ZvaWQg aW50ZWxfZGlzcGxheV9wb3dlcl9zZXRfdGFyZ2V0X2RjX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKKwkJCQkJICAgICB1MzIgc3RhdGUpOwogCiBjb25zdCBjaGFyICoK IGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJf ZG9tYWluIGRvbWFpbik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYwpp bmRleCBiM2M3ZWVmNTNiZjMuLjZhNmYxMDMxZDI5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX3Bzci5jCkBAIC01MzQsNiArNTM0LDY4IEBAIHRyYW5zY29kZXJfaGFzX3Bz cjIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHRyYW5zY29kZXIgdHJh bnMpCiAJCXJldHVybiB0cmFucyA9PSBUUkFOU0NPREVSX0VEUDsKIH0KIAorc3RhdGljIHZvaWQg cHNyMl9wcm9ncmFtX2lkbGVfZnJhbWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKKwkJCQkgICAgIHUzMiBpZGxlX2ZyYW1lcykKK3sKKwl1MzIgdmFsOworCisJaWRsZV9mcmFt ZXMgPDw9ICBFRFBfUFNSMl9JRExFX0ZSQU1FX1NISUZUOworCXZhbCA9IEk5MTVfUkVBRChFRFBf UFNSMl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7CisJdmFsICY9IH5FRFBfUFNSMl9J RExFX0ZSQU1FX01BU0s7CisJdmFsIHw9IGlkbGVfZnJhbWVzOworCUk5MTVfV1JJVEUoRURQX1BT UjJfQ1RMKGRldl9wcml2LT5wc3IudHJhbnNjb2RlciksIHZhbCk7Cit9CisKK3N0YXRpYyB2b2lk IHRnbF9wc3IyX2RlZXBfc2xlZXBfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCit7CisJcHNyMl9wcm9ncmFtX2lkbGVfZnJhbWVzKGRldl9wcml2LCAwKTsKK30KKwor c3RhdGljIHZvaWQgdGdsX3BzcjJfZGVlcF9zbGVlcF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQoreworCWludCBpZGxlX2ZyYW1lczsKKworCS8qCisJICogTGV0J3Mg dXNlIDYgYXMgdGhlIG1pbmltdW0gdG8gY292ZXIgYWxsIGtub3duIGNhc2VzIGluY2x1ZGluZyB0 aGUKKwkgKiBvZmYtYnktb25lIGlzc3VlIHRoYXQgSFcgaGFzIGluIHNvbWUgY2FzZXMuCisJICov CisJaWRsZV9mcmFtZXMgPSBtYXgoNiwgZGV2X3ByaXYtPnZidC5wc3IuaWRsZV9mcmFtZXMpOwor CWlkbGVfZnJhbWVzID0gbWF4KGlkbGVfZnJhbWVzLCBkZXZfcHJpdi0+cHNyLnNpbmtfc3luY19s YXRlbmN5ICsgMSk7CisJcHNyMl9wcm9ncmFtX2lkbGVfZnJhbWVzKGRldl9wcml2LCBpZGxlX2Zy YW1lcyk7Cit9CisKK3N0YXRpYyB2b2lkIHRnbF9lbmFibGVfcHNyMl9kZWVwX3NsZWVwX2RjNihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJaW50ZWxfZGlzcGxheV9wb3dl cl9zZXRfdGFyZ2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9FTl9VUFRPX0RDNik7CisJ dGdsX3BzcjJfZGVlcF9zbGVlcF9lbmFibGUoZGV2X3ByaXYpOworfQorCitzdGF0aWMgdm9pZCB0 Z2xfZGM1X2lkbGVfdGhyZWFkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQorCQljb250YWluZXJfb2Yod29yaywgdHlwZW9m KCpkZXZfcHJpdiksIHBzci5pZGxlX3dvcmsud29yayk7CisKKwltdXRleF9sb2NrKCZkZXZfcHJp di0+cHNyLmxvY2spOworCS8qIElmIGRlbGF5ZWQgd29yayBpcyBwZW5kaW5nLCBpdCBpcyBub3Qg aWRsZSAqLworCWlmIChkZWxheWVkX3dvcmtfcGVuZGluZygmZGV2X3ByaXYtPnBzci5pZGxlX3dv cmspKQorCQlnb3RvIHVubG9jazsKKworCURSTV9ERUJVR19LTVMoIkRDNS82IGlkbGUgdGhyZWFk XG4iKTsKKwl0Z2xfZW5hYmxlX3BzcjJfZGVlcF9zbGVlcF9kYzYoZGV2X3ByaXYpOwordW5sb2Nr OgorCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKK30KKworc3RhdGljIHZvaWQg dGdsX2Rpc2FsbG93X2RjM2NvX29uX3BzcjJfZXhpdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCit7CisJaWYgKCFkZXZfcHJpdi0+cHNyLmRjM2NvX2V4aXRsaW5lKQorCQlyZXR1 cm47CisKKwljYW5jZWxfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+cHNyLmlkbGVfd29yayk7CisJ LyogQmVmb3JlIFBTUjIgZXhpdCBkaXNhbGxvdyBkYzNjbyovCisJdGdsX2VuYWJsZV9wc3IyX2Rl ZXBfc2xlZXBfZGM2KGRldl9wcml2KTsKK30KKwogc3RhdGljIGJvb2wgaW50ZWxfcHNyMl9jb25m aWdfdmFsaWQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAkJCQkgICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CkBAIC03NDYsNiArODA4LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCWRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkID0gaW50ZWxfcHNyMl9lbmFibGVkKGRl dl9wcml2LCBjcnRjX3N0YXRlKTsKIAlkZXZfcHJpdi0+cHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0 cyA9IDA7CiAJZGV2X3ByaXYtPnBzci5waXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpLT5waXBlOworCWRldl9wcml2LT5wc3IuZGMzY29fZXhpdGxpbmUgPSBjcnRjX3N0 YXRlLT5kYzNjb19leGl0bGluZTsKIAlkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIgPSBjcnRjX3N0 YXRlLT5jcHVfdHJhbnNjb2RlcjsKIAogCS8qCkBAIC04MjksNiArODkyLDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfcHNyX2V4aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCX0K IAogCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfZW5hYmxlZCkgeworCQl0Z2xfZGlzYWxsb3dfZGMz Y29fb25fcHNyMl9leGl0KGRldl9wcml2KTsKIAkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX0NU TChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpKTsKIAkJV0FSTl9PTighKHZhbCAmIEVEUF9QU1Iy X0VOQUJMRSkpOwogCQl2YWwgJj0gfkVEUF9QU1IyX0VOQUJMRTsKQEAgLTkwMSw2ICs5NjUsNyBA QCB2b2lkIGludGVsX3Bzcl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAKIAlt dXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7CiAJY2FuY2VsX3dvcmtfc3luYygmZGV2 X3ByaXYtPnBzci53b3JrKTsKKwljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmRldl9wcml2LT5w c3IuaWRsZV93b3JrKTsKIH0KIAogc3RhdGljIHZvaWQgcHNyX2ZvcmNlX2h3X3RyYWNraW5nX2V4 aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtMTIwOCw2ICsxMjczLDQ1 IEBAIHZvaWQgaW50ZWxfcHNyX2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKIH0KIAorLyoKKyAq IFdoZW4gd2Ugd2lsbCBiZSBjb21wbGV0ZWx5IHJlbHkgb24gUFNSMiBTL1cgdHJhY2tpbmcgaW4g ZnV0dXJlLAorICogaW50ZWxfcHNyX2ZsdXNoKCkgd2lsbCBpbnZhbGlkYXRlIGFuZCBmbHVzaCB0 aGUgUFNSIGZvciBPUklHSU5fRkxJUAorICogZXZlbnQgYWxzbyB0aGVyZWZvcmUgdGdsX2RjM2Nv X2ZsdXNoKCkgcmVxdWlyZSB0byBiZSBjaGFuZ2VkCisgKiBhY2Nyb2RpbmdseSBpbiBmdXR1cmUu CisgKi8KK3N0YXRpYyB2b2lkCit0Z2xfZGMzY29fZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAorCQl1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cywgZW51bSBmYl9v cF9vcmlnaW4gb3JpZ2luKQoreworCXUzMiBkZWxheTsKKworCW11dGV4X2xvY2soJmRldl9wcml2 LT5wc3IubG9jayk7CisKKwlpZiAoIWRldl9wcml2LT5wc3IuZGMzY29fZXhpdGxpbmUpCisJCWdv dG8gdW5sb2NrOworCisJaWYgKCFkZXZfcHJpdi0+cHNyLnBzcjJfZW5hYmxlZCB8fCAhZGV2X3By aXYtPnBzci5hY3RpdmUpCisJCWdvdG8gdW5sb2NrOworCisJLyoKKwkgKiBBdCBldmVyeSBmcm9u dGJ1ZmZlciBmbHVzaCBmbGlwIGV2ZW50IG1vZGlmaWVkIGRlbGF5IG9mIGRlbGF5ZWQgd29yaywK KwkgKiB3aGVuIGRlbGF5ZWQgd29yayBzY2hlZHVsZXMgdGhhdCBtZWFucyBkaXNwbGF5IGhhcyBi ZWVuIGlkbGUuCisJICovCisJaWYgKCEoZnJvbnRidWZmZXJfYml0cyAmCisJICAgIElOVEVMX0ZS T05UQlVGRkVSX0FMTF9NQVNLKGRldl9wcml2LT5wc3IucGlwZSkpKQorCQlnb3RvIHVubG9jazsK KworCXRnbF9wc3IyX2RlZXBfc2xlZXBfZGlzYWJsZShkZXZfcHJpdik7CisJaW50ZWxfZGlzcGxh eV9wb3dlcl9zZXRfdGFyZ2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9FTl9EQzNDTyk7 CisJLyogREM1L0RDNiByZXF1aXJlZCBpZGxlIGZyYW1lcyA9IDYgKi8KKwlkZWxheSA9IDYgKiBk ZXZfcHJpdi0+cHNyLmRjM2NvX2ZyYW1lX3RpbWVfdXM7CisJbW9kX2RlbGF5ZWRfd29yayhzeXN0 ZW1fd3EsICZkZXZfcHJpdi0+cHNyLmlkbGVfd29yaywKKwkJCSB1c2Vjc190b19qaWZmaWVzKGRl bGF5KSk7CisKK3VubG9jazoKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cit9 CisKIC8qKgogICogaW50ZWxfcHNyX2ZsdXNoIC0gRmx1c2ggUFNSCiAgKiBAZGV2X3ByaXY6IGk5 MTUgZGV2aWNlCkBAIC0xMjI3LDggKzEzMzEsMTAgQEAgdm9pZCBpbnRlbF9wc3JfZmx1c2goc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmICghQ0FOX1BTUihkZXZfcHJpdikp CiAJCXJldHVybjsKIAotCWlmIChvcmlnaW4gPT0gT1JJR0lOX0ZMSVApCisJaWYgKG9yaWdpbiA9 PSBPUklHSU5fRkxJUCkgeworCQl0Z2xfZGMzY29fZmx1c2goZGV2X3ByaXYsIGZyb250YnVmZmVy X2JpdHMsIG9yaWdpbik7CiAJCXJldHVybjsKKwl9CiAKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ cHNyLmxvY2spOwogCWlmICghZGV2X3ByaXYtPnBzci5lbmFibGVkKSB7CkBAIC0xMjg0LDYgKzEz OTAsNyBAQCB2b2lkIGludGVsX3Bzcl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAkJZGV2X3ByaXYtPnBzci5saW5rX3N0YW5kYnkgPSBkZXZfcHJpdi0+dmJ0LnBzci5m dWxsX2xpbms7CiAKIAlJTklUX1dPUksoJmRldl9wcml2LT5wc3Iud29yaywgaW50ZWxfcHNyX3dv cmspOworCUlOSVRfREVMQVlFRF9XT1JLKCZkZXZfcHJpdi0+cHNyLmlkbGVfd29yaywgdGdsX2Rj NV9pZGxlX3RocmVhZCk7CiAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPnBzci5sb2NrKTsKIH0KIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggN2IyMzE4YzVjN2EwLi45ODBhZjA2YTA2MDcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtNTAyLDYgKzUwMiw4IEBAIHN0cnVjdCBpOTE1X3Bz ciB7CiAJYm9vbCBzaW5rX25vdF9yZWxpYWJsZTsKIAlib29sIGlycV9hdXhfZXJyb3I7CiAJdTE2 IHN1X3hfZ3JhbnVsYXJpdHk7CisJdTMyIGRjM2NvX2V4aXRsaW5lOworCXN0cnVjdCBkZWxheWVk X3dvcmsgaWRsZV93b3JrOwogfTsKIAogI2RlZmluZSBRVUlSS19MVkRTX1NTQ19ESVNBQkxFICgx PDwxKQotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZng=