From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexandra Yates Subject: [PATCH 5/5] drm-i915: Add sys IPS toggle interface Date: Tue, 12 Apr 2016 12:18:48 -0700 Message-ID: <1460488728-23319-6-git-send-email-alexandra.yates@linux.intel.com> References: <1460488728-23319-1-git-send-email-alexandra.yates@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id CD87F6E77A for ; Tue, 12 Apr 2016 19:14:18 +0000 (UTC) In-Reply-To: <1460488728-23319-1-git-send-email-alexandra.yates@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, rodrigo.vivi@intel.com, nivedita.swaminathan@intel.com, joe.konno@intel.com Cc: Alexandra Yates List-Id: intel-gfx@lists.freedesktop.org VGhpcyBpbnRlcmZhY2UgYWxsb3dzIGVuYWJsaW5nL2Rpc2FibGluZyBvZiBJUFMgZmVhdHVyZS4g IEl0IGFsbG93cwp0byBzZWUgaW1tZWRpYXRlbHkgdGhlIHBvd2VyIG1hbmFnZW1lbnQgc2F2aW5n cyBhbmQgd2lsbCBhbGxvdwp0byBleHBvc2UgdGhpcyB0aHJvdWdoIHN5c2ZzIGludGVyZmFjZSBm b3IgcG93ZXJ0b3AgdG8gbGV2ZXJhZ2UgaXRzCmZ1bmN0aW9uYWxpdHkuCgpTaWduZWQtb2ZmLWJ5 OiBBbGV4YW5kcmEgWWF0ZXMgPGFsZXhhbmRyYS55YXRlc0BsaW51eC5pbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgIHwgIDUgKystCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgOCArKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3N5c2ZzLmMgICAgfCA3OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgICB8IDEyICsrKystLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMzcgKysrKysrKysrKysrKy0tLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDExICsrKy0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgNCArLQogNyBmaWxlcyBjaGFuZ2VkLCAx MzYgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYwppbmRleCAyZDExYjQ5Li5lMzM4YzhhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYwpAQCAtNDAyMiw2ICs0MDIyLDcgQEAgc3RhdGljIGludCBwaXBlX2NyY19zZXRfc291 cmNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLAogCWVudW0gaW50ZWxf ZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwogCXUzMiB2YWwgPSAwOyAvKiBzaHV0 IHVwIGdjYyAqLwogCWludCByZXQ7CisJYm9vbCBzeXNmc19zZXQgPSBmYWxzZTsKIAogCWlmIChw aXBlX2NyYy0+c291cmNlID09IHNvdXJjZSkKIAkJcmV0dXJuIDA7CkBAIC00MDcxLDcgKzQwNzIs NyBAQCBzdGF0aWMgaW50IHBpcGVfY3JjX3NldF9zb3VyY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgZW51bSBwaXBlIHBpcGUsCiAJCSAqIHVzZXIgc3BhY2UgY2FuJ3QgbWFrZSByZWxpYWJsZSB1 c2Ugb2YgdGhlIENSQ3MsIHNvIGxldCdzIGp1c3QKIAkJICogY29tcGxldGVseSBkaXNhYmxlIGl0 LgogCQkgKi8KLQkJaHN3X2Rpc2FibGVfaXBzKGNydGMpOworCQloc3dfZGlzYWJsZV9pcHMoY3J0 Yywgc3lzZnNfc2V0KTsKIAogCQlzcGluX2xvY2tfaXJxKCZwaXBlX2NyYy0+bG9jayk7CiAJCWtm cmVlKHBpcGVfY3JjLT5lbnRyaWVzKTsKQEAgLTQxMTYsNyArNDExNyw3IEBAIHN0YXRpYyBpbnQg cGlwZV9jcmNfc2V0X3NvdXJjZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlw ZSwKIAkJZWxzZSBpZiAoSVNfSEFTV0VMTChkZXYpICYmIHBpcGUgPT0gUElQRV9BKQogCQkJaHN3 X3RyYW5zX2VkcF9waXBlX0FfY3JjX3dhKGRldiwgZmFsc2UpOwogCi0JCWhzd19lbmFibGVfaXBz KGNydGMpOworCQloc3dfZW5hYmxlX2lwcyhjcnRjLCBzeXNmc19zZXQpOwogCX0KIAogCXJldCA9 IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA0YzVlZWE2Li4wZGYwMDMwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTk2Nyw2ICs5NjcsMTIgQEAgc3RydWN0IGk5MTVfZHJycyB7 CiAJYm9vbCBzeXNmc19zZXQ7CiB9OwogCitzdHJ1Y3QgaTkxNV9pcHMgeworCXN0cnVjdCBtdXRl eCBsb2NrOworCWludCBlbmFibGU7CisJYm9vbCBzeXNmc19zZXQ7Cit9OworCiBzdHJ1Y3QgaTkx NV9wc3IgewogCXN0cnVjdCBtdXRleCBsb2NrOwogCWJvb2wgc2lua19zdXBwb3J0OwpAQCAtMTg4 OCw2ICsxODk0LDggQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCiAJc3RydWN0IGk5MTVf cG93ZXJfZG9tYWlucyBwb3dlcl9kb21haW5zOwogCisJc3RydWN0IGk5MTVfaXBzIGhzd19pcHM7 CisKIAlzdHJ1Y3QgaTkxNV9wc3IgcHNyOwogCiAJc3RydWN0IGk5MTVfZ3B1X2Vycm9yIGdwdV9l cnJvcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwppbmRleCBmNDg5YWI2Li4zYmM4MzBiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jCkBAIC0yNjUsNiArMjY1LDY0IEBAIHRvZ2dsZV9w c3Ioc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiB9 CiAKIHN0YXRpYyBzc2l6ZV90CitzaG93X2lwcyhzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3Qg ZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXN0cnVjdCBkcm1fbWlub3Ig KmRtaW5vciA9IGRldl90b19kcm1fbWlub3Ioa2Rldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGRtaW5vci0+ZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7CisJc3NpemVfdCByZXQ7CisKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ aHN3X2lwcy5sb2NrKTsKKwlyZXQgPSBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVzXG4iLCBk ZXZfcHJpdi0+aHN3X2lwcy5lbmFibGUgPworCQkJImVuYWJsZWQiOiJkaXNhYmxlZCIpOworCW11 dGV4X3VubG9jaygmZGV2X3ByaXYtPmhzd19pcHMubG9jayk7CisJcmV0dXJuIHJldDsKK30KKwor c3RhdGljIHNzaXplX3QKK3RvZ2dsZV9pcHMoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRl dmljZV9hdHRyaWJ1dGUgKmF0dHIsCisJY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7 CisJc3RydWN0IGRybV9taW5vciAqZG1pbm9yID0gZGV2X3RvX2RybV9taW5vcihrZGV2KTsKKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZG1pbm9yLT5kZXY7CisJc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gTlVMTDsKKwlib29sIHN5c2ZzX3NldCA9IHRydWU7CisJdTMy IHZhbDsKKwlzc2l6ZV90IHJldDsKKworCXJldCA9IGtzdHJ0b3UzMihidWYsIDAsICZ2YWwpOwor CWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlmb3JfZWFjaF9pbnRlbF9jb25uZWN0b3IoZGV2 LCBjb25uZWN0b3IpIHsKKwkJaWYgKCFjb25uZWN0b3ItPmJhc2UuZW5jb2RlcikKKwkJCWNvbnRp bnVlOworCQllbmNvZGVyID0gdG9faW50ZWxfZW5jb2Rlcihjb25uZWN0b3ItPmJhc2UuZW5jb2Rl cik7CisJCWNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7CisJfQorCWlm ICghY3J0YykKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlzd2l0Y2ggKHZhbCkgeworCQljYXNlIDA6 CisJCQlyZXQgPSBoc3dfZGlzYWJsZV9pcHMoY3J0Yywgc3lzZnNfc2V0KTsKKwkJCWlmIChyZXQp CisJCQkJcmV0dXJuIHJldDsKKwkJCWJyZWFrOworCQljYXNlIDE6CisJCQlyZXQgPSBoc3dfZW5h YmxlX2lwcyhjcnRjLCBzeXNmc19zZXQpOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0Owor CQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJcmV0dXJuIGNv dW50OworfQorCitzdGF0aWMgc3NpemVfdAogc2hvd19kcnJzKHN0cnVjdCBkZXZpY2UgKmtkZXYs IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB7CiAJc3RydWN0IGRy bV9taW5vciAqZG1pbm9yID0gZGV2X3RvX2RybV9taW5vcihrZGV2KTsKQEAgLTMyOSw2ICszODcs NyBAQCB0b2dnbGVfZHJycyhzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJp YnV0ZSAqYXR0ciwKIAlyZXR1cm4gY291bnQ7CiB9CiAKK3N0YXRpYyBERVZJQ0VfQVRUUihpcHNf ZW5hYmxlLCBTX0lSVUdPIHwgU19JV1VTUiwgc2hvd19pcHMsIHRvZ2dsZV9pcHMpOwogc3RhdGlj IERFVklDRV9BVFRSKGRycnNfZW5hYmxlLCBTX0lSVUdPIHwgU19JV1VTUiwgc2hvd19kcnJzLCB0 b2dnbGVfZHJycyk7CiBzdGF0aWMgREVWSUNFX0FUVFIoZmJjX2VuYWJsZSwgU19JUlVHTyB8IFNf SVdVU1IsIHNob3dfZmJjLCB0b2dnbGVfZmJjKTsKIHN0YXRpYyBERVZJQ0VfQVRUUihwc3JfZW5h YmxlLCBTX0lSVUdPIHwgU19JV1VTUiwgc2hvd19wc3IsIHRvZ2dsZV9wc3IpOwpAQCAtMzQ4LDYg KzQwNywxNiBAQCBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBmYmNfYXR0cl9ncm91cCA9 IHsKIAkuYXR0cnMgPSBmYmNfYXR0cnMKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpp cHNfYXR0cnNbXSA9IHsKKwkmZGV2X2F0dHJfaXBzX2VuYWJsZS5hdHRyLAorCU5VTEwKK307CisK K3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGlwc19hdHRyX2dyb3VwID0geworCS5uYW1l ID0gcG93ZXJfZ3JvdXBfbmFtZSwKKwkuYXR0cnMgPSBpcHNfYXR0cnMKK307CisKIHN0YXRpYyBz dHJ1Y3QgYXR0cmlidXRlICpwc3JfYXR0cnNbXSA9IHsKIAkmZGV2X2F0dHJfcHNyX2VuYWJsZS5h dHRyLAogCU5VTEwKQEAgLTg1OSw2ICs5MjgsMTQgQEAgdm9pZCBpOTE1X3NldHVwX3N5c2ZzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWlmIChyZXQpCiAJCQlEUk1fRVJST1IoIkZCQyBzeXNm cyBzZXR1cCBmYWlsZWRcbiIpOwogCX0KKworCWlmIChIQVNfSVBTKGRldikpIHsKKwkJcmV0ID0g c3lzZnNfbWVyZ2VfZ3JvdXAoJmRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiwKKwkJCQkJJmlwc19h dHRyX2dyb3VwKTsKKwkJaWYgKHJldCkKKwkJCURSTV9FUlJPUigiSVBTIHN5c2ZzIHNldHVwIGZh aWxlZFxuIik7CisJfQorCiAJaWYgKEhBU19QU1IoZGV2KSkgewogCQlyZXQgPSBzeXNmc19tZXJn ZV9ncm91cCgmZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqLAogCQkJCQkmcHNyX2F0dHJfZ3JvdXAp OwpAQCAtOTMxLDYgKzEwMDgsNyBAQCB2b2lkIGk5MTVfdGVhcmRvd25fc3lzZnMoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKICNpZmRlZiBDT05GSUdfUE0KIAlzeXNmc191bm1lcmdlX2dyb3VwKCZk ZXYtPnByaW1hcnktPmtkZXYtPmtvYmosICZkcnJzX2F0dHJfZ3JvdXApOwogCXN5c2ZzX3VubWVy Z2VfZ3JvdXAoJmRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiwgJmZiY19hdHRyX2dyb3VwKTsKKwlz eXNmc191bm1lcmdlX2dyb3VwKCZkZXYtPnByaW1hcnktPmtkZXYtPmtvYmosICZpcHNfYXR0cl9n cm91cCk7CiAJc3lzZnNfdW5tZXJnZV9ncm91cCgmZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqLCAm cHNyX2F0dHJfZ3JvdXApOwogCXN5c2ZzX3VubWVyZ2VfZ3JvdXAoJmRldi0+cHJpbWFyeS0+a2Rl di0+a29iaiwgJnJjNl9hdHRyX2dyb3VwKTsKIAlzeXNmc191bm1lcmdlX2dyb3VwKCZkZXYtPnBy aW1hcnktPmtkZXYtPmtvYmosICZyYzZwX2F0dHJfZ3JvdXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NvbG9yLmMKaW5kZXggMWIzZjk3NC4uMjc2NjBhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfY29sb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j b2xvci5jCkBAIC0zMjUsOCArMzI1LDEwIEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfbG9hZF9sdXRz KHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkgKi8KIAlpZiAoSVNfSEFTV0VM TChkZXYpICYmIGludGVsX2NydGMtPmNvbmZpZy0+aXBzX2VuYWJsZWQgJiYKIAkgICAgKGludGVs X2NydGNfc3RhdGUtPmdhbW1hX21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFX1NQTElUKSkgewotCQlo c3dfZGlzYWJsZV9pcHMoaW50ZWxfY3J0Yyk7Ci0JCXJlZW5hYmxlX2lwcyA9IHRydWU7CisJCWlm IChkZXZfcHJpdi0+aHN3X2lwcy5zeXNmc19zZXQgIT0gdHJ1ZSl7CisJCQloc3dfZGlzYWJsZV9p cHMoaW50ZWxfY3J0YywgZGV2X3ByaXYtPmhzd19pcHMuc3lzZnNfc2V0KTsKKwkJCXJlZW5hYmxl X2lwcyA9IHRydWU7CisJCX0KIAl9CiAKIAlpbnRlbF9jcnRjX3N0YXRlLT5nYW1tYV9tb2RlID0g R0FNTUFfTU9ERV9NT0RFXzhCSVQ7CkBAIC0zMzQsOCArMzM2LDEwIEBAIHN0YXRpYyB2b2lkIGhh c3dlbGxfbG9hZF9sdXRzKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogCWk5 eHhfbG9hZF9sdXRzKGNydGNfc3RhdGUpOwogCi0JaWYgKHJlZW5hYmxlX2lwcykKLQkJaHN3X2Vu YWJsZV9pcHMoaW50ZWxfY3J0Yyk7CisJaWYgKHJlZW5hYmxlX2lwcyl7CisJCWlmIChkZXZfcHJp di0+aHN3X2lwcy5zeXNmc19zZXQgIT0gdHJ1ZSkKKwkJCWhzd19lbmFibGVfaXBzKGludGVsX2Ny dGMsIGRldl9wcml2LT5oc3dfaXBzLnN5c2ZzX3NldCk7CisJfQogfQogCiAvKiBMb2FkcyB0aGUg cGFsZXR0ZS9nYW1tYSB1bml0IGZvciB0aGUgQ1JUQyBvbiBCcm9hZHdlbGwrLiAqLwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDRhNjcxZTMuLjdhNjZkMDAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTQ0MDAsMTMgKzQ0MDAsMTQgQEAgc3RhdGlj IHZvaWQgaXJvbmxha2VfcGZpdF9lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJfQog fQogCi12b2lkIGhzd19lbmFibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQoraW50IGhz d19lbmFibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBib29sIHN5c2ZzX3NldCkKIHsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlpbnQgcmV0ID0gMDsK IAogCWlmICghY3J0Yy0+Y29uZmlnLT5pcHNfZW5hYmxlZCkKLQkJcmV0dXJuOworCQlyZXR1cm4g LUVJTlZBTDsKIAogCS8qCiAJICogV2UgY2FuIG9ubHkgZW5hYmxlIElQUyBhZnRlciB3ZSBlbmFi bGUgYSBwbGFuZSBhbmQgd2FpdCBmb3IgYSB2YmxhbmsKQEAgLTQ0MzEsMTggKzQ0MzIsMjggQEAg dm9pZCBoc3dfZW5hYmxlX2lwcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAkJICogYW5kIGRv bid0IHdhaXQgZm9yIHZibGFua3MgdW50aWwgdGhlIGVuZCBvZiBjcnRjX2VuYWJsZSwgdGhlbgog CQkgKiB0aGUgSFcgc3RhdGUgcmVhZG91dCBjb2RlIHdpbGwgY29tcGxhaW4gdGhhdCB0aGUgZXhw ZWN0ZWQKIAkJICogSVBTX0NUTCB2YWx1ZSBpcyBub3QgdGhlIG9uZSB3ZSByZWFkLiAqLwotCQlp ZiAod2FpdF9mb3IoSTkxNV9SRUFEX05PVFJBQ0UoSVBTX0NUTCkgJiBJUFNfRU5BQkxFLCA1MCkp CisJCWlmICh3YWl0X2ZvcihJOTE1X1JFQURfTk9UUkFDRShJUFNfQ1RMKSAmIElQU19FTkFCTEUs IDUwKSl7CiAJCQlEUk1fRVJST1IoIlRpbWVkIG91dCB3YWl0aW5nIGZvciBJUFMgZW5hYmxlXG4i KTsKKwkJCXJldCA9IC1FVElNRURPVVQ7CisJCX0KIAl9CisKKwltdXRleF9sb2NrKCZkZXZfcHJp di0+aHN3X2lwcy5sb2NrKTsKKwlkZXZfcHJpdi0+aHN3X2lwcy5lbmFibGUgPSAxOworCWRldl9w cml2LT5oc3dfaXBzLnN5c2ZzX3NldCA9IHN5c2ZzX3NldDsKKwltdXRleF91bmxvY2soJmRldl9w cml2LT5oc3dfaXBzLmxvY2spOworCisJcmV0dXJuIHJldDsKIH0KIAotdm9pZCBoc3dfZGlzYWJs ZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCitpbnQgaHN3X2Rpc2FibGVfaXBzKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLCBib29sIHN5c2ZzX3NldCkKIHsKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlpbnQgcmV0ID0gMDsKIAogCWlmICghY3J0Yy0+Y29u ZmlnLT5pcHNfZW5hYmxlZCkKLQkJcmV0dXJuOworCQlyZXR1cm4gLUVJTlZBTDsKIAogCWFzc2Vy dF9wbGFuZV9lbmFibGVkKGRldl9wcml2LCBjcnRjLT5wbGFuZSk7CiAJaWYgKElTX0JST0FEV0VM TChkZXYpKSB7CkBAIC00NDUwLDE1ICs0NDYxLDIzIEBAIHZvaWQgaHN3X2Rpc2FibGVfaXBzKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCQlXQVJOX09OKHNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRl KGRldl9wcml2LCBESVNQTEFZX0lQU19DT05UUk9MLCAwKSk7CiAJCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPnJwcy5od19sb2NrKTsKIAkJLyogd2FpdCBmb3IgcGNvZGUgdG8gZmluaXNoIGRpc2Fi bGluZyBJUFMsIHdoaWNoIG1heSB0YWtlIHVwIHRvIDQybXMgKi8KLQkJaWYgKHdhaXRfZm9yKChJ OTE1X1JFQUQoSVBTX0NUTCkgJiBJUFNfRU5BQkxFKSA9PSAwLCA0MikpCisJCWlmICh3YWl0X2Zv cigoSTkxNV9SRUFEKElQU19DVEwpICYgSVBTX0VOQUJMRSkgPT0gMCwgNDIpKXsKIAkJCURSTV9F UlJPUigiVGltZWQgb3V0IHdhaXRpbmcgZm9yIElQUyBkaXNhYmxlXG4iKTsKKwkJCXJldCA9IC1F VElNRURPVVQ7CisJCX0KIAl9IGVsc2UgewogCQlJOTE1X1dSSVRFKElQU19DVEwsIDApOwogCQlQ T1NUSU5HX1JFQUQoSVBTX0NUTCk7CiAJfQogCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmhzd19p cHMubG9jayk7CisJZGV2X3ByaXYtPmhzd19pcHMuZW5hYmxlID0gMDsKKwlkZXZfcHJpdi0+aHN3 X2lwcy5zeXNmc19zZXQgPSBzeXNmc19zZXQ7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+aHN3 X2lwcy5sb2NrKTsKKwogCS8qIFdlIG5lZWQgdG8gd2FpdCBmb3IgYSB2YmxhbmsgYmVmb3JlIHdl IGNhbiBkaXNhYmxlIHRoZSBwbGFuZS4gKi8KIAlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2LCBj cnRjLT5waXBlKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rw bXNfb3ZlcmxheV9kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKQpAQCAtNDUw Myw3ICs0NTIyLDggQEAgaW50ZWxfcG9zdF9lbmFibGVfcHJpbWFyeShzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCiAJICogd2hlbiBnb2luZyBmcm9tIHByaW1hcnkgb25seSB0byBzcHJpdGUgb25seSBh bmQgdmljZQogCSAqIHZlcnNhLgogCSAqLwotCWhzd19lbmFibGVfaXBzKGludGVsX2NydGMpOwor CWlmIChkZXZfcHJpdi0+aHN3X2lwcy5zeXNmc19zZXQgIT0gdHJ1ZSkKKwkJaHN3X2VuYWJsZV9p cHMoaW50ZWxfY3J0YywgZGV2X3ByaXYtPmhzd19pcHMuc3lzZnNfc2V0KTsKIAogCS8qCiAJICog R2VuMiByZXBvcnRzIHBpcGUgdW5kZXJydW5zIHdoZW5ldmVyIGFsbCBwbGFuZXMgYXJlIGRpc2Fi bGVkLgpAQCAtNDU0NCw3ICs0NTY0LDggQEAgaW50ZWxfcHJlX2Rpc2FibGVfcHJpbWFyeShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCiAJICogd2hlbiBnb2luZyBmcm9tIHByaW1hcnkgb25seSB0byBz cHJpdGUgb25seSBhbmQgdmljZQogCSAqIHZlcnNhLgogCSAqLwotCWhzd19kaXNhYmxlX2lwcyhp bnRlbF9jcnRjKTsKKwlpZiAoZGV2X3ByaXYtPmhzd19pcHMuc3lzZnNfc2V0ICE9IHRydWUpCisJ CWhzd19kaXNhYmxlX2lwcyhpbnRlbF9jcnRjLCBkZXZfcHJpdi0+aHN3X2lwcy5zeXNmc19zZXQp OwogfQogCiAvKiBGSVhNRSBnZXQgcmlkIG9mIHRoaXMgYW5kIHVzZSBwcmVfcGxhbmVfdXBkYXRl ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwppbmRleCBlYzRiZDEyLi4wZmZmMmJkIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMKQEAgLTM5MDYsNiArMzkwNiw3IEBAIHN0YXRpYyBpbnQgaW50ZWxf ZHBfc2lua19jcmNfc3RvcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogewogCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwog CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhkaWdfcG9ydC0+YmFzZS5i YXNlLmNydGMpOwogCXU4IGJ1ZjsKIAlpbnQgcmV0ID0gMDsKQEAgLTM5NDIsNyArMzk0Myw4IEBA IHN0YXRpYyBpbnQgaW50ZWxfZHBfc2lua19jcmNfc3RvcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQogCX0KIAogIG91dDoKLQloc3dfZW5hYmxlX2lwcyhpbnRlbF9jcnRjKTsKKwlpZiAoZGV2 X3ByaXYtPmhzd19pcHMuc3lzZnNfc2V0ICE9IHRydWUpCisJCWhzd19lbmFibGVfaXBzKGludGVs X2NydGMsIGRldl9wcml2LT5oc3dfaXBzLnN5c2ZzX3NldCk7CiAJcmV0dXJuIHJldDsKIH0KIApA QCAtMzk1MCw2ICszOTUyLDcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9zaW5rX2NyY19zdGFydChz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogewogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBkaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjID0gdG9faW50ZWxfY3J0YyhkaWdfcG9ydC0+YmFzZS5iYXNlLmNydGMpOwogCXU4IGJ1 ZjsKIAlpbnQgcmV0OwpAQCAtMzk2OSwxMSArMzk3MiwxMyBAQCBzdGF0aWMgaW50IGludGVsX2Rw X3NpbmtfY3JjX3N0YXJ0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJCQlyZXR1cm4gcmV0 OwogCX0KIAotCWhzd19kaXNhYmxlX2lwcyhpbnRlbF9jcnRjKTsKKwlpZiAoZGV2X3ByaXYtPmhz d19pcHMuc3lzZnNfc2V0ICE9IHRydWUpCisJCWhzd19kaXNhYmxlX2lwcyhpbnRlbF9jcnRjLCBk ZXZfcHJpdi0+aHN3X2lwcy5zeXNmc19zZXQpOwogCiAJaWYgKGRybV9kcF9kcGNkX3dyaXRlYigm aW50ZWxfZHAtPmF1eCwgRFBfVEVTVF9TSU5LLAogCQkJICAgICAgIGJ1ZiB8IERQX1RFU1RfU0lO S19TVEFSVCkgPCAwKSB7Ci0JCWhzd19lbmFibGVfaXBzKGludGVsX2NydGMpOworCQlpZiAoZGV2 X3ByaXYtPmhzd19pcHMuc3lzZnNfc2V0ICE9IHRydWUpCisJCQloc3dfZW5hYmxlX2lwcyhpbnRl bF9jcnRjLCBkZXZfcHJpdi0+aHN3X2lwcy5zeXNmc19zZXQpOwogCQlyZXR1cm4gLUVJTzsKIAl9 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggZWRhODRhZS4uYzYxNmNiNiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTEyNDQsOCArMTI0NCw4IEBAIGJvb2wgYnh0X2ZpbmRf YmVzdF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCBpbnQgdGFyZ2V0 X2Nsb2NrLAogaW50IGNodl9jYWxjX2RwbGxfcGFyYW1zKGludCByZWZjbGssIGludGVsX2Nsb2Nr X3QgKnBsbF9jbG9jayk7CiAKIGJvb2wgaW50ZWxfY3J0Y19hY3RpdmUoc3RydWN0IGRybV9jcnRj ICpjcnRjKTsKLXZvaWQgaHN3X2VuYWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwot dm9pZCBoc3dfZGlzYWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMpOworaW50IGhzd19l bmFibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBib29sIHN5c2ZzX3NldCk7CitpbnQg aHN3X2Rpc2FibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBib29sIHN5c2ZzX3NldCk7 CiBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCiBpbnRlbF9kaXNwbGF5X3BvcnRfcG93 ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKTsKIGVudW0gaW50 ZWxfZGlzcGxheV9wb3dlcl9kb21haW4KLS0gCjIuNS4wCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK