From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v3 01/11] drm/i915: Add support for tracking wakerefs w/o power-on guarantee Date: Thu, 9 May 2019 20:34:36 +0300 Message-ID: <20190509173446.31095-2-imre.deak@intel.com> References: <20190509173446.31095-1-imre.deak@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 ESMTPS id D6AD289F27 for ; Thu, 9 May 2019 17:35:13 +0000 (UTC) In-Reply-To: <20190509173446.31095-1-imre.deak@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 SXQncyB1c2VmdWwgdG8gdHJhY2sgcnVudGltZSBQTSByZWZzIHRoYXQgZG9uJ3QgZ3VhcmFudGVl IGEgZGV2aWNlCnBvd2VyLW9uIHN0YXRlIHRvIHRoZSByZXN0IG9mIHRoZSBkcml2ZXIuIE9uZSBz dWNoIGNhc2UgaXMgaG9sZGluZyBhCnJlZmVyZW5jZSB0aGF0IHdpbGwgYmUgcHV0IGFzeW5jaHJv bm91c2x5LCBkdXJpbmcgd2hpY2ggbm9ybWFsIHVzZXJzCndpdGhvdXQgdGhlaXIgb3duIHJlZmVy ZW5jZSBzaG91bGRuJ3QgYWNjZXNzIHRoZSBIVy4gQSBmb2xsb3ctdXAgcGF0Y2gKd2lsbCBhZGQg c3VwcG9ydCBmb3IgZGlzYWJsaW5nIGRpc3BsYXkgcG93ZXIgZG9tYWlucyBhc3luY2hyb25vdXNs eQp3aGljaCBuZWVkcyB0aGlzLgoKRm9yIHRoaXMgd2UgY2FuIHNwbGl0IHdha2VyZWZfY291bnQg aW50byBhIGxvdyBoYWxmLXdvcmQgdHJhY2tpbmcKYWxsIHJlZmVyZW5jZXMgKHJhdy13YWtlcmVm cykgYW5kIGEgaGlnaCBoYWxmLXdvcmQgdHJhY2tpbmcKcmVmZXJlbmNlcyBndWFyYW50ZWVpbmcg YSBwb3dlci1vbiBzdGF0ZSAod2FrZWxvY2tzKS4KCkZvbGxvdy11cCBwYXRjaGVzIHdpbGwgbWFr ZSB1c2Ugb2YgdGhlIEFQSSBhZGRlZCBoZXJlLgoKV2hpbGUgYXQgaXQgYWRkIHRoZSBtaXNzaW5n IGRvY2Jvb2sgaGVhZGVyIGZvciB0aGUgdW5jaGVja2VkCmRpc3BsYXktcG93ZXIgYW5kIHJ1bnRp bWVfcG0gcHV0IGZ1bmN0aW9ucy4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlcywgZXhjZXB0IGZvciBw cmludGluZyBsZWFrZWQgcmF3LXdha2VyZWZzCmFuZCB3YWtlbG9ja3Mgc2VwYXJhdGVseSBpbiBp bnRlbF9ydW50aW1lX3BtX2NsZWFudXAoKS4KCnYyOgotIFRyYWNrIHJhdyB3YWtlcmVmcy93YWtl bG9ja3MgaW4gdGhlIGxvdy9oaWdoIGhhbGYtd29yZCBvZgogIHdha2VyZWZfY291bnQsIGluc3Rl YWQgb2YgYWRkaW5nIGEgbmV3IGNvdW50ZXIuIChDaHJpcykKdjM6Ci0gQWRkIGEgc3RydWN0X21l bWJlcihULCBtKSBoZWxwZXIgaW5zdGVhZCBvZiBvcGVuLWNvZGluZyBpdC4gKENocmlzKQotIENo ZWNrcGF0Y2ggaW5kZW50YXRpb24gZm9ybWF0dGluZyBmaXguCgpDYzogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+ClNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5k ZWFrQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdXRpbHMuaCAgICAgICB8 ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgIHwgIDUyICsr KysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgfCAxNTIgKysr KysrKysrKysrKysrKysrLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE2NCBpbnNlcnRpb25zKCsp LCA0NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3V0aWxzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3V0aWxzLmgKaW5kZXggYzg0OWNm YTdjYjI4Li41Yzk0YzdhYjQ2MDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfdXRpbHMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3V0aWxzLmgKQEAgLTEw Miw2ICsxMDIsOCBAQAogI2RlZmluZSBwYWdlX3BhY2tfYml0cyhwdHIsIGJpdHMpIHB0cl9wYWNr X2JpdHMocHRyLCBiaXRzLCBQQUdFX1NISUZUKQogI2RlZmluZSBwYWdlX3VucGFja19iaXRzKHB0 ciwgYml0cykgcHRyX3VucGFja19iaXRzKHB0ciwgYml0cywgUEFHRV9TSElGVCkKIAorI2RlZmlu ZSBzdHJ1Y3RfbWVtYmVyKFQsIG1lbWJlcikgKCgoVCAqKTApLT5tZW1iZXIpCisKICNkZWZpbmUg cHRyX29mZnNldChwdHIsIG1lbWJlcikgb2Zmc2V0b2YodHlwZW9mKCoocHRyKSksIG1lbWJlcikK IAogI2RlZmluZSBmZXRjaF9hbmRfemVybyhwdHIpICh7CQkJCQkJXApAQCAtMTE4LDcgKzEyMCw3 IEBACiAgKi8KICNkZWZpbmUgY29udGFpbmVyX29mX3VzZXIocHRyLCB0eXBlLCBtZW1iZXIpICh7 CQkJCVwKIAl2b2lkIF9fdXNlciAqX19tcHRyID0gKHZvaWQgX191c2VyICopKHB0cik7CQkJXAot CUJVSUxEX0JVR19PTl9NU0coIV9fc2FtZV90eXBlKCoocHRyKSwgKCh0eXBlICopMCktPm1lbWJl cikgJiYJXAorCUJVSUxEX0JVR19PTl9NU0coIV9fc2FtZV90eXBlKCoocHRyKSwgc3RydWN0X21l bWJlcih0eXBlLCBtZW1iZXIpKSAmJiBcCiAJCQkgIV9fc2FtZV90eXBlKCoocHRyKSwgdm9pZCks CQkJXAogCQkJICJwb2ludGVyIHR5cGUgbWlzbWF0Y2ggaW4gY29udGFpbmVyX29mKCkiKTsJXAog CSgodHlwZSBfX3VzZXIgKikoX19tcHRyIC0gb2Zmc2V0b2YodHlwZSwgbWVtYmVyKSkpOyB9KQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCAyNDc4OTNlZDE1NDMuLjVhZDEyNTZiMjA2NSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTE2MTksNiArMTYxOSwyNCBAQCB1bnNpZ25l ZCBpbnQgaTl4eF9wbGFuZV9tYXhfc3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJ CQkJICAgdW5zaWduZWQgaW50IHJvdGF0aW9uKTsKIAogLyogaW50ZWxfcnVudGltZV9wbS5jICov CisjZGVmaW5lIEJJVFNfUEVSX1dBS0VSRUYJXAorCUJJVFNfUEVSX1RZUEUoc3RydWN0X21lbWJl cihzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtLCB3YWtlcmVmX2NvdW50KSkKKyNkZWZpbmUgSU5URUxf UlBNX1dBS0VMT0NLX1NISUZUCShCSVRTX1BFUl9XQUtFUkVGIC8gMikKKyNkZWZpbmUgSU5URUxf UlBNX1dBS0VMT0NLX0JJQVMJCSgxIDw8IElOVEVMX1JQTV9XQUtFTE9DS19TSElGVCkKKyNkZWZp bmUgSU5URUxfUlBNX1JBV19XQUtFUkVGX01BU0sJKElOVEVMX1JQTV9XQUtFTE9DS19CSUFTIC0g MSkKKworc3RhdGljIGlubGluZSBpbnQKK2ludGVsX3JwbV9yYXdfd2FrZXJlZl9jb3VudChpbnQg d2FrZXJlZl9jb3VudCkKK3sKKwlyZXR1cm4gd2FrZXJlZl9jb3VudCAmIElOVEVMX1JQTV9SQVdf V0FLRVJFRl9NQVNLOworfQorCitzdGF0aWMgaW5saW5lIGludAoraW50ZWxfcnBtX3dha2Vsb2Nr X2NvdW50KGludCB3YWtlcmVmX2NvdW50KQoreworCXJldHVybiB3YWtlcmVmX2NvdW50ID4+IElO VEVMX1JQTV9XQUtFTE9DS19TSElGVDsKK30KKwogc3RhdGljIGlubGluZSB2b2lkCiBhc3NlcnRf cnBtX2RldmljZV9ub3Rfc3VzcGVuZGVkKHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSkKIHsK QEAgLTE2MjcsMTEgKzE2NDUsMzMgQEAgYXNzZXJ0X3JwbV9kZXZpY2Vfbm90X3N1c3BlbmRlZChz dHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0pCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAotX19h c3NlcnRfcnBtX3dha2Vsb2NrX2hlbGQoc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtKQorX19f X2Fzc2VydF9ycG1fcmF3X3dha2VyZWZfaGVsZChzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0s IGludCB3YWtlcmVmX2NvdW50KQogewogCWFzc2VydF9ycG1fZGV2aWNlX25vdF9zdXNwZW5kZWQo cnBtKTsKLQlXQVJOX09OQ0UoIWF0b21pY19yZWFkKCZycG0tPndha2VyZWZfY291bnQpLAotCQkg ICJSUE0gd2FrZWxvY2sgcmVmIG5vdCBoZWxkIGR1cmluZyBIVyBhY2Nlc3MiKTsKKwlXQVJOX09O Q0UoIWludGVsX3JwbV9yYXdfd2FrZXJlZl9jb3VudCh3YWtlcmVmX2NvdW50KSwKKwkJICAiUlBN IHJhdy13YWtlcmVmIG5vdCBoZWxkXG4iKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitfX19f YXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSwgaW50 IHdha2VyZWZfY291bnQpCit7CisJX19fX2Fzc2VydF9ycG1fcmF3X3dha2VyZWZfaGVsZChycG0s IHdha2VyZWZfY291bnQpOworCVdBUk5fT05DRSghaW50ZWxfcnBtX3dha2Vsb2NrX2NvdW50KHdh a2VyZWZfY291bnQpLAorCQkgICJSUE0gd2FrZWxvY2sgcmVmIG5vdCBoZWxkIGR1cmluZyBIVyBh Y2Nlc3NcbiIpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK2Fzc2VydF9ycG1fcmF3X3dha2Vy ZWZfaGVsZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlzdHJ1Y3QgaTkxNV9y dW50aW1lX3BtICpycG0gPSAmaTkxNS0+cnVudGltZV9wbTsKKworCV9fX19hc3NlcnRfcnBtX3Jh d193YWtlcmVmX2hlbGQocnBtLCBhdG9taWNfcmVhZCgmcnBtLT53YWtlcmVmX2NvdW50KSk7Cit9 CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorX19hc3NlcnRfcnBtX3dha2Vsb2NrX2hlbGQoc3RydWN0 IGk5MTVfcnVudGltZV9wbSAqcnBtKQoreworCV9fX19hc3NlcnRfcnBtX3dha2Vsb2NrX2hlbGQo cnBtLCBhdG9taWNfcmVhZCgmcnBtLT53YWtlcmVmX2NvdW50KSk7CiB9CiAKIHN0YXRpYyBpbmxp bmUgdm9pZApAQCAtMTY2MSw3ICsxNzAxLDggQEAgYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogc3RhdGljIGlubGluZSB2b2lkCiBkaXNhYmxl X3JwbV93YWtlcmVmX2Fzc2VydHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0J YXRvbWljX2luYygmaTkxNS0+cnVudGltZV9wbS53YWtlcmVmX2NvdW50KTsKKwlhdG9taWNfYWRk KElOVEVMX1JQTV9XQUtFTE9DS19CSUFTICsgMSwKKwkJICAgJmk5MTUtPnJ1bnRpbWVfcG0ud2Fr ZXJlZl9jb3VudCk7CiB9CiAKIC8qKgpAQCAtMTY3OCw3ICsxNzE5LDggQEAgZGlzYWJsZV9ycG1f d2FrZXJlZl9hc3NlcnRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogc3RhdGljIGlu bGluZSB2b2lkCiBlbmFibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSkKIHsKLQlhdG9taWNfZGVjKCZpOTE1LT5ydW50aW1lX3BtLndha2VyZWZfY291 bnQpOworCWF0b21pY19zdWIoSU5URUxfUlBNX1dBS0VMT0NLX0JJQVMgKyAxLAorCQkgICAmaTkx NS0+cnVudGltZV9wbS53YWtlcmVmX2NvdW50KTsKIH0KIAogI2VuZGlmIC8qIF9fSU5URUxfRFJW X0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9w bS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCmluZGV4IGI4ZmFk ZDFiNjg1Yy4uNTNhMTcyMDk0YzZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ydW50aW1lX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGlt ZV9wbS5jCkBAIC0xMTAsOSArMTEwLDYgQEAgdHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVm KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWRlcG90X3N0YWNrX2hhbmRsZV90IHN0 YWNrLCAqc3RhY2tzOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlhdG9taWNfaW5jKCZycG0t Pndha2VyZWZfY291bnQpOwotCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChpOTE1KTsKLQogCWlm ICghSEFTX1JVTlRJTUVfUE0oaTkxNSkpCiAJCXJldHVybiAtMTsKIApAQCAtMTQwLDggKzEzNyw4 IEBAIHRyYWNrX2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKIAlyZXR1cm4gc3RhY2s7CiB9CiAKLXN0YXRpYyB2b2lkIGNhbmNlbF9pbnRlbF9y dW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCQkJCSAg ICBkZXBvdF9zdGFja19oYW5kbGVfdCBzdGFjaykKK3N0YXRpYyB2b2lkIHVudHJhY2tfaW50ZWxf cnVudGltZV9wbV93YWtlcmVmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCQkJCQkg ICAgIGRlcG90X3N0YWNrX2hhbmRsZV90IHN0YWNrKQogewogCXN0cnVjdCBpOTE1X3J1bnRpbWVf cG0gKnJwbSA9ICZpOTE1LT5ydW50aW1lX3BtOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIG47CkBA IC0yMzYsMTQgKzIzMywxMyBAQCBfX3ByaW50X2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihzdHJ1 Y3QgZHJtX3ByaW50ZXIgKnAsCiB9CiAKIHN0YXRpYyBub2lubGluZSB2b2lkCi11bnRyYWNrX2lu dGVsX3J1bnRpbWVfcG1fd2FrZXJlZihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK19f aW50ZWxfd2FrZXJlZl9kZWNfYW5kX2NoZWNrX3RyYWNraW5nKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KQogewogCXN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSA9ICZpOTE1LT5ydW50 aW1lX3BtOwogCXN0cnVjdCBpbnRlbF9ydW50aW1lX3BtX2RlYnVnIGRiZyA9IHt9OwogCXN0cnVj dCBkcm1fcHJpbnRlciBwOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlhc3NlcnRfcnBtX3dh a2Vsb2NrX2hlbGQoaTkxNSk7CiAJaWYgKGF0b21pY19kZWNfYW5kX2xvY2tfaXJxc2F2ZSgmcnBt LT53YWtlcmVmX2NvdW50LAogCQkJCQkmcnBtLT5kZWJ1Zy5sb2NrLAogCQkJCQlmbGFncykpIHsK QEAgLTMxMSwxOSArMzA3LDUxIEBAIHN0YXRpYyB2b2lkIGluaXRfaW50ZWxfcnVudGltZV9wbV93 YWtlcmVmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogc3RhdGljIGRlcG90X3N0YWNr X2hhbmRsZV90CiB0cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUpCiB7Ci0JYXRvbWljX2luYygmaTkxNS0+cnVudGltZV9wbS53YWtlcmVm X2NvdW50KTsKLQlhc3NlcnRfcnBtX3dha2Vsb2NrX2hlbGQoaTkxNSk7CiAJcmV0dXJuIC0xOwog fQogCi1zdGF0aWMgdm9pZCB1bnRyYWNrX2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyB2b2lkIHVudHJhY2tfaW50ZWxfcnVudGlt ZV9wbV93YWtlcmVmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCQkJCQkgICAgIGlu dGVsX3dha2VyZWZfdCB3cmVmKQoreworfQorCitzdGF0aWMgdm9pZAorX19pbnRlbF93YWtlcmVm X2RlY19hbmRfY2hlY2tfdHJhY2tpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7 Ci0JYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGk5MTUpOwogCWF0b21pY19kZWMoJmk5MTUtPnJ1 bnRpbWVfcG0ud2FrZXJlZl9jb3VudCk7CiB9CiAKICNlbmRpZgogCitzdGF0aWMgdm9pZAoraW50 ZWxfcnVudGltZV9wbV9hY3F1aXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBib29s IHdha2Vsb2NrKQoreworCXN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSA9ICZpOTE1LT5ydW50 aW1lX3BtOworCisJaWYgKHdha2Vsb2NrKSB7CisJCWF0b21pY19hZGQoMSArIElOVEVMX1JQTV9X QUtFTE9DS19CSUFTLCAmcnBtLT53YWtlcmVmX2NvdW50KTsKKwkJYXNzZXJ0X3JwbV93YWtlbG9j a19oZWxkKGk5MTUpOworCX0gZWxzZSB7CisJCWF0b21pY19pbmMoJnJwbS0+d2FrZXJlZl9jb3Vu dCk7CisJCWFzc2VydF9ycG1fcmF3X3dha2VyZWZfaGVsZChpOTE1KTsKKwl9Cit9CisKK3N0YXRp YyB2b2lkCitpbnRlbF9ydW50aW1lX3BtX3JlbGVhc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsIGludCB3YWtlbG9jaykKK3sKKwlzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0gPSAm aTkxNS0+cnVudGltZV9wbTsKKworCWlmICh3YWtlbG9jaykgeworCQlhc3NlcnRfcnBtX3dha2Vs b2NrX2hlbGQoaTkxNSk7CisJCWF0b21pY19zdWIoSU5URUxfUlBNX1dBS0VMT0NLX0JJQVMsICZy cG0tPndha2VyZWZfY291bnQpOworCX0gZWxzZSB7CisJCWFzc2VydF9ycG1fcmF3X3dha2VyZWZf aGVsZChpOTE1KTsKKwl9CisKKwlfX2ludGVsX3dha2VyZWZfZGVjX2FuZF9jaGVja190cmFja2lu ZyhpOTE1KTsKK30KKwogYm9vbCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3dlbGxfaXNfZW5hYmxlZChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJCSBlbnVtIGk5MTVfcG93ZXJf d2VsbF9pZCBwb3dlcl93ZWxsX2lkKTsKIApAQCAtMTk0NiwxMyArMTk3NCwxNyBAQCBzdGF0aWMg dm9pZCBfX2ludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIH0KIAogLyoqCi0gKiBpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dCAtIHJlbGVhc2Ug YSBwb3dlciBkb21haW4gcmVmZXJlbmNlCisgKiBpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dF91bmNo ZWNrZWQgLSByZWxlYXNlIGFuIHVuY2hlY2tlZCBwb3dlciBkb21haW4gcmVmZXJlbmNlCiAgKiBA ZGV2X3ByaXY6IGk5MTUgZGV2aWNlIGluc3RhbmNlCiAgKiBAZG9tYWluOiBwb3dlciBkb21haW4g dG8gcmVmZXJlbmNlCiAgKgogICogVGhpcyBmdW5jdGlvbiBkcm9wcyB0aGUgcG93ZXIgZG9tYWlu IHJlZmVyZW5jZSBvYnRhaW5lZCBieQogICogaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoKSBhbmQg bWlnaHQgcG93ZXIgZG93biB0aGUgY29ycmVzcG9uZGluZyBoYXJkd2FyZQogICogYmxvY2sgcmln aHQgYXdheSBpZiB0aGlzIGlzIHRoZSBsYXN0IHJlZmVyZW5jZS4KKyAqCisgKiBUaGlzIGZ1bmN0 aW9uIGV4aXN0cyBvbmx5IGZvciBoaXN0b3JpY2FsIHJlYXNvbnMgYW5kIHNob3VsZCBiZSBhdm9p ZGVkIGluCisgKiBuZXcgY29kZSwgYXMgdGhlIGNvcnJlY3RuZXNzIG9mIGl0cyB1c2UgY2Fubm90 IGJlIGNoZWNrZWQuIEFsd2F5cyB1c2UKKyAqIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KCkgaW5z dGVhZC4KICAqLwogdm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dF91bmNoZWNrZWQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAgICAgICBlbnVtIGludGVsX2Rpc3Bs YXlfcG93ZXJfZG9tYWluIGRvbWFpbikKQEAgLTE5NjIsNiArMTk5NCwxNiBAQCB2b2lkIGludGVs X2Rpc3BsYXlfcG93ZXJfcHV0X3VuY2hlY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiB9CiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9ERUJVR19SVU5USU1F X1BNKQorLyoqCisgKiBpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dCAtIHJlbGVhc2UgYSBwb3dlciBk b21haW4gcmVmZXJlbmNlCisgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIGluc3RhbmNlCisgKiBA ZG9tYWluOiBwb3dlciBkb21haW4gdG8gcmVmZXJlbmNlCisgKiBAd2FrZXJlZjogd2FrZXJlZiBh Y3F1aXJlZCBmb3IgdGhlIHJlZmVyZW5jZSB0aGF0IGlzIGJlaW5nIHJlbGVhc2VkCisgKgorICog VGhpcyBmdW5jdGlvbiBkcm9wcyB0aGUgcG93ZXIgZG9tYWluIHJlZmVyZW5jZSBvYnRhaW5lZCBi eQorICogaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoKSBhbmQgbWlnaHQgcG93ZXIgZG93biB0aGUg Y29ycmVzcG9uZGluZyBoYXJkd2FyZQorICogYmxvY2sgcmlnaHQgYXdheSBpZiB0aGlzIGlzIHRo ZSBsYXN0IHJlZmVyZW5jZS4KKyAqLwogdm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgIGVudW0gaW50ZWxfZGlzcGxh eV9wb3dlcl9kb21haW4gZG9tYWluLAogCQkJICAgICBpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZikK QEAgLTQ1NzksMTkgKzQ2MjEsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX3Zl cmlmeV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogI2VuZGlmCiAKLS8q KgotICogaW50ZWxfcnVudGltZV9wbV9nZXQgLSBncmFiIGEgcnVudGltZSBwbSByZWZlcmVuY2UK LSAqIEBpOTE1OiBpOTE1IGRldmljZSBpbnN0YW5jZQotICoKLSAqIFRoaXMgZnVuY3Rpb24gZ3Jh YnMgYSBkZXZpY2UtbGV2ZWwgcnVudGltZSBwbSByZWZlcmVuY2UgKG1vc3RseSB1c2VkIGZvciBH RU0KLSAqIGNvZGUgdG8gZW5zdXJlIHRoZSBHVFQgb3IgR1QgaXMgb24pIGFuZCBlbnN1cmVzIHRo YXQgaXQgaXMgcG93ZXJlZCB1cC4KLSAqCi0gKiBBbnkgcnVudGltZSBwbSByZWZlcmVuY2Ugb2J0 YWluZWQgYnkgdGhpcyBmdW5jdGlvbiBtdXN0IGhhdmUgYSBzeW1tZXRyaWMKLSAqIGNhbGwgdG8g aW50ZWxfcnVudGltZV9wbV9wdXQoKSB0byByZWxlYXNlIHRoZSByZWZlcmVuY2UgYWdhaW4uCi0g KgotICogUmV0dXJuczogdGhlIHdha2VyZWYgY29va2llIHRvIHBhc3MgdG8gaW50ZWxfcnVudGlt ZV9wbV9wdXQoKQotICovCi1pbnRlbF93YWtlcmVmX3QgaW50ZWxfcnVudGltZV9wbV9nZXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitzdGF0aWMgaW50ZWxfd2FrZXJlZl90IF9faW50 ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCQkJCSAg ICAgIGJvb2wgd2FrZWxvY2spCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBpOTE1LT5kcm0u cGRldjsKIAlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJnBkZXYtPmRldjsKQEAgLTQ2MDAsOSArNDYz MSwyOCBAQCBpbnRlbF93YWtlcmVmX3QgaW50ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpCiAJcmV0ID0gcG1fcnVudGltZV9nZXRfc3luYyhrZGV2KTsKIAlX QVJOX09OQ0UocmV0IDwgMCwgInBtX3J1bnRpbWVfZ2V0X3N5bmMoKSBmYWlsZWQ6ICVkXG4iLCBy ZXQpOwogCisJaW50ZWxfcnVudGltZV9wbV9hY3F1aXJlKGk5MTUsIHdha2Vsb2NrKTsKKwogCXJl dHVybiB0cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoaTkxNSk7CiB9CiAKKy8qKgorICog aW50ZWxfcnVudGltZV9wbV9nZXQgLSBncmFiIGEgcnVudGltZSBwbSByZWZlcmVuY2UKKyAqIEBp OTE1OiBpOTE1IGRldmljZSBpbnN0YW5jZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gZ3JhYnMgYSBk ZXZpY2UtbGV2ZWwgcnVudGltZSBwbSByZWZlcmVuY2UgKG1vc3RseSB1c2VkIGZvciBHRU0KKyAq IGNvZGUgdG8gZW5zdXJlIHRoZSBHVFQgb3IgR1QgaXMgb24pIGFuZCBlbnN1cmVzIHRoYXQgaXQg aXMgcG93ZXJlZCB1cC4KKyAqCisgKiBBbnkgcnVudGltZSBwbSByZWZlcmVuY2Ugb2J0YWluZWQg YnkgdGhpcyBmdW5jdGlvbiBtdXN0IGhhdmUgYSBzeW1tZXRyaWMKKyAqIGNhbGwgdG8gaW50ZWxf cnVudGltZV9wbV9wdXQoKSB0byByZWxlYXNlIHRoZSByZWZlcmVuY2UgYWdhaW4uCisgKgorICog UmV0dXJuczogdGhlIHdha2VyZWYgY29va2llIHRvIHBhc3MgdG8gaW50ZWxfcnVudGltZV9wbV9w dXQoKQorICovCitpbnRlbF93YWtlcmVmX3QgaW50ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJcmV0dXJuIF9faW50ZWxfcnVudGltZV9wbV9nZXQo aTkxNSwgdHJ1ZSk7Cit9CisKIC8qKgogICogaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNl IC0gZ3JhYiBhIHJ1bnRpbWUgcG0gcmVmZXJlbmNlIGlmIGRldmljZSBpbiB1c2UKICAqIEBpOTE1 OiBpOTE1IGRldmljZSBpbnN0YW5jZQpAQCAtNDYzMyw2ICs0NjgzLDggQEAgaW50ZWxfd2FrZXJl Zl90IGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKIAkJCXJldHVybiAwOwogCX0KIAorCWludGVsX3J1bnRpbWVfcG1fYWNxdWlyZShp OTE1LCB0cnVlKTsKKwogCXJldHVybiB0cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoaTkx NSk7CiB9CiAKQEAgLTQ2NjMsMzMgKzQ3MTUsNTYgQEAgaW50ZWxfd2FrZXJlZl90IGludGVsX3J1 bnRpbWVfcG1fZ2V0X25vcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWFz c2VydF9ycG1fd2FrZWxvY2tfaGVsZChpOTE1KTsKIAlwbV9ydW50aW1lX2dldF9ub3Jlc3VtZShr ZGV2KTsKIAorCWludGVsX3J1bnRpbWVfcG1fYWNxdWlyZShpOTE1LCB0cnVlKTsKKwogCXJldHVy biB0cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoaTkxNSk7CiB9CiAKK3N0YXRpYyB2b2lk IF9faW50ZWxfcnVudGltZV9wbV9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJ CQkJICAgaW50ZWxfd2FrZXJlZl90IHdyZWYsCisJCQkJICAgYm9vbCB3YWtlbG9jaykKK3sKKwlz dHJ1Y3QgcGNpX2RldiAqcGRldiA9IGk5MTUtPmRybS5wZGV2OworCXN0cnVjdCBkZXZpY2UgKmtk ZXYgPSAmcGRldi0+ZGV2OworCisJdW50cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoaTkx NSwgd3JlZik7CisKKwlpbnRlbF9ydW50aW1lX3BtX3JlbGVhc2UoaTkxNSwgd2FrZWxvY2spOwor CisJcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShrZGV2KTsKKwlwbV9ydW50aW1lX3B1dF9hdXRv c3VzcGVuZChrZGV2KTsKK30KKwogLyoqCi0gKiBpbnRlbF9ydW50aW1lX3BtX3B1dCAtIHJlbGVh c2UgYSBydW50aW1lIHBtIHJlZmVyZW5jZQorICogaW50ZWxfcnVudGltZV9wbV9wdXRfdW5jaGVj a2VkIC0gcmVsZWFzZSBhbiB1bmNoZWNrZWQgcnVudGltZSBwbSByZWZlcmVuY2UKICAqIEBpOTE1 OiBpOTE1IGRldmljZSBpbnN0YW5jZQogICoKICAqIFRoaXMgZnVuY3Rpb24gZHJvcHMgdGhlIGRl dmljZS1sZXZlbCBydW50aW1lIHBtIHJlZmVyZW5jZSBvYnRhaW5lZCBieQogICogaW50ZWxfcnVu dGltZV9wbV9nZXQoKSBhbmQgbWlnaHQgcG93ZXIgZG93biB0aGUgY29ycmVzcG9uZGluZwogICog aGFyZHdhcmUgYmxvY2sgcmlnaHQgYXdheSBpZiB0aGlzIGlzIHRoZSBsYXN0IHJlZmVyZW5jZS4K KyAqCisgKiBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBvbmx5IGZvciBoaXN0b3JpY2FsIHJlYXNvbnMg YW5kIHNob3VsZCBiZSBhdm9pZGVkIGluCisgKiBuZXcgY29kZSwgYXMgdGhlIGNvcnJlY3RuZXNz IG9mIGl0cyB1c2UgY2Fubm90IGJlIGNoZWNrZWQuIEFsd2F5cyB1c2UKKyAqIGludGVsX3J1bnRp bWVfcG1fcHV0KCkgaW5zdGVhZC4KICAqLwogdm9pZCBpbnRlbF9ydW50aW1lX3BtX3B1dF91bmNo ZWNrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0Jc3RydWN0IHBjaV9kZXYg KnBkZXYgPSBpOTE1LT5kcm0ucGRldjsKLQlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJnBkZXYtPmRl djsKLQotCXVudHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKGk5MTUpOwotCi0JcG1fcnVu dGltZV9tYXJrX2xhc3RfYnVzeShrZGV2KTsKLQlwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChr ZGV2KTsKKwlfX2ludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUsIC0xLCB0cnVlKTsKIH0KIAogI2lm IElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHX1JVTlRJTUVfUE0pCisvKioKKyAqIGlu dGVsX3J1bnRpbWVfcG1fcHV0IC0gcmVsZWFzZSBhIHJ1bnRpbWUgcG0gcmVmZXJlbmNlCisgKiBA aTkxNTogaTkxNSBkZXZpY2UgaW5zdGFuY2UKKyAqIEB3cmVmOiB3YWtlcmVmIGFjcXVpcmVkIGZv ciB0aGUgcmVmZXJlbmNlIHRoYXQgaXMgYmVpbmcgcmVsZWFzZWQKKyAqCisgKiBUaGlzIGZ1bmN0 aW9uIGRyb3BzIHRoZSBkZXZpY2UtbGV2ZWwgcnVudGltZSBwbSByZWZlcmVuY2Ugb2J0YWluZWQg YnkKKyAqIGludGVsX3J1bnRpbWVfcG1fZ2V0KCkgYW5kIG1pZ2h0IHBvd2VyIGRvd24gdGhlIGNv cnJlc3BvbmRpbmcKKyAqIGhhcmR3YXJlIGJsb2NrIHJpZ2h0IGF3YXkgaWYgdGhpcyBpcyB0aGUg bGFzdCByZWZlcmVuY2UuCisgKi8KIHZvaWQgaW50ZWxfcnVudGltZV9wbV9wdXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludGVsX3dha2VyZWZfdCB3cmVmKQogewotCWNhbmNlbF9p bnRlbF9ydW50aW1lX3BtX3dha2VyZWYoaTkxNSwgd3JlZik7Ci0JaW50ZWxfcnVudGltZV9wbV9w dXRfdW5jaGVja2VkKGk5MTUpOworCV9faW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd3JlZiwg dHJ1ZSk7CiB9CiAjZW5kaWYKIApAQCAtNDc2NywxMCArNDg0MiwxMSBAQCB2b2lkIGludGVsX3J1 bnRpbWVfcG1fY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogCWNvdW50 ID0gYXRvbWljX2ZldGNoX2luYygmcnBtLT53YWtlcmVmX2NvdW50KTsgLyogYmFsYW5jZSB1bnRy YWNrICovCiAJV0FSTihjb3VudCwKLQkgICAgICJpOTE1LT5ydW50aW1lX3BtLndha2VyZWZfY291 bnQ9JWQgb24gY2xlYW51cFxuIiwKLQkgICAgIGNvdW50KTsKKwkgICAgICJpOTE1IHJhdy13YWtl cmVmcz0lZCB3YWtlbG9ja3M9JWQgb24gY2xlYW51cFxuIiwKKwkgICAgIGludGVsX3JwbV9yYXdf d2FrZXJlZl9jb3VudChjb3VudCksCisJICAgICBpbnRlbF9ycG1fd2FrZWxvY2tfY291bnQoY291 bnQpKTsKIAotCXVudHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKGk5MTUpOworCWludGVs X3J1bnRpbWVfcG1fcmVsZWFzZShpOTE1LCBmYWxzZSk7CiB9CiAKIHZvaWQgaW50ZWxfcnVudGlt ZV9wbV9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQotLSAKMi4xNy4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=