From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: [PATCH v3 4/8] drm/i915: move and rename i915_runtime_pm Date: Thu, 13 Jun 2019 16:21:52 -0700 Message-ID: <20190613232156.34940-5-daniele.ceraolospurio@intel.com> References: <20190613232156.34940-1-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2D5A289301 for ; Thu, 13 Jun 2019 23:22:24 +0000 (UTC) In-Reply-To: <20190613232156.34940-1-daniele.ceraolospurio@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 QXNzZXJ0cyBhc2lkZSwgYWxsIHRoZSBjb2RlIHdvcmtpbmcgb24gdGhpcyBzdHJ1Y3R1cmUgaXMg aW4KaW50ZWxfcnVudGltZV9wbS5jIGFuZCB1c2VzIHRoZSBpbnRlbF8gcHJlZml4LCBzbyBtb3Zl IHRoZQpzdHJ1Y3R1cmUgdG8gaW50ZWxfcnVudGltZV9wbS5oIGFuZCBhZG9wdCB0aGUgc2FtZSBw cmVmaXguCgpTaW5jZSBhbGwgdGhlIGFzc2VydHMgYXJlIG5vdyB3b3JraW5nIG9uIHRoZSBydW50 aW1lX3BtIHN0cnVjdHVyZSwKYnJpbmcgdGhlbSBhY3Jvc3MgYXMgd2VsbC4KCnYyOiBkcm9wIHVu bmVlZGVkIGluY2x1ZGUgKENocmlzKSwgZG9uJ3QgcmVuYW1lIGRlYnVnZnMsIHJlYmFzZQoKU2ln bmVkLW9mZi1ieTogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlv QGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpD YzogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYyAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgICAgICAgfCAgNTIgKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICAgICAgfCAgOTcgLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ydW50aW1lX3BtLmMgfCAgNDIgKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcnVudGltZV9wbS5oIHwgMTQ5ICsrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmggICAgIHwgICA0ICstCiA2IGZpbGVzIGNoYW5nZWQs IDE3NSBpbnNlcnRpb25zKCspLCAxNzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMKaW5kZXggMTE4ZDc3NDUwNmFlLi42MjM2ZDMzMjNlNzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYwpAQCAtMjg4OSw3ICsyODg5LDcgQEAgc3RhdGljIGludCBpbnRlbF9ydW50aW1lX3N1c3Bl bmQoc3RydWN0IGRldmljZSAqa2RldikKIAlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9k ZXYoa2Rldik7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2 KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0J c3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtID0gJmRldl9wcml2LT5ydW50aW1lX3BtOworCXN0 cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0gPSAmZGV2X3ByaXYtPnJ1bnRpbWVfcG07CiAJaW50 IHJldDsKIAogCWlmIChXQVJOX09OX09OQ0UoIShkZXZfcHJpdi0+Z3RfcG0ucmM2LmVuYWJsZWQg JiYgSEFTX1JDNihkZXZfcHJpdikpKSkKQEAgLTI5ODgsNyArMjk4OCw3IEBAIHN0YXRpYyBpbnQg aW50ZWxfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqa2RldikKIAlzdHJ1Y3QgcGNpX2Rl diAqcGRldiA9IHRvX3BjaV9kZXYoa2Rldik7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBj aV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtID0gJmRldl9wcml2 LT5ydW50aW1lX3BtOworCXN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0gPSAmZGV2X3ByaXYt PnJ1bnRpbWVfcG07CiAJaW50IHJldCA9IDA7CiAKIAlpZiAoV0FSTl9PTl9PTkNFKCFIQVNfUlVO VElNRV9QTShkZXZfcHJpdikpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggYjdkOWFhMGJh YjRiLi41NjVlY2FjNDFlYWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTAzMyw1NiAr MTAzMyw2IEBAIHN0cnVjdCBza2xfd21fcGFyYW1zIHsKIAl1MzIgZGJ1Zl9ibG9ja19zaXplOwog fTsKIAotLyoKLSAqIFRoaXMgc3RydWN0IGhlbHBzIHRyYWNraW5nIHRoZSBzdGF0ZSBuZWVkZWQg Zm9yIHJ1bnRpbWUgUE0sIHdoaWNoIHB1dHMgdGhlCi0gKiBkZXZpY2UgaW4gUENJIEQzIHN0YXRl LiBOb3RpY2UgdGhhdCB3aGVuIHRoaXMgaGFwcGVucywgbm90aGluZyBvbiB0aGUKLSAqIGdyYXBo aWNzIGRldmljZSB3b3JrcywgZXZlbiByZWdpc3RlciBhY2Nlc3MsIHNvIHdlIGRvbid0IGdldCBp bnRlcnJ1cHRzIG5vcgotICogYW55dGhpbmcgZWxzZS4KLSAqCi0gKiBFdmVyeSBwaWVjZSBvZiBv dXIgY29kZSB0aGF0IG5lZWRzIHRvIGFjdHVhbGx5IHRvdWNoIHRoZSBoYXJkd2FyZSBuZWVkcyB0 bwotICogZWl0aGVyIGNhbGwgaW50ZWxfcnVudGltZV9wbV9nZXQgb3IgY2FsbCBpbnRlbF9kaXNw bGF5X3Bvd2VyX2dldCB3aXRoIHRoZQotICogYXBwcm9wcmlhdGUgcG93ZXIgZG9tYWluLgotICoK LSAqIE91ciBkcml2ZXIgdXNlcyB0aGUgYXV0b3N1c3BlbmQgZGVsYXkgZmVhdHVyZSwgd2hpY2gg bWVhbnMgd2UnbGwgb25seSByZWFsbHkKLSAqIHN1c3BlbmQgaWYgd2Ugc3RheSB3aXRoIHplcm8g cmVmY291bnQgZm9yIGEgY2VydGFpbiBhbW91bnQgb2YgdGltZS4gVGhlCi0gKiBkZWZhdWx0IHZh bHVlIGlzIGN1cnJlbnRseSB2ZXJ5IGNvbnNlcnZhdGl2ZSAoc2VlIGludGVsX3J1bnRpbWVfcG1f ZW5hYmxlKSwgYnV0Ci0gKiBpdCBjYW4gYmUgY2hhbmdlZCB3aXRoIHRoZSBzdGFuZGFyZCBydW50 aW1lIFBNIGZpbGVzIGZyb20gc3lzZnMuCi0gKgotICogVGhlIGlycXNfZGlzYWJsZWQgdmFyaWFi bGUgYmVjb21lcyB0cnVlIGV4YWN0bHkgYWZ0ZXIgd2UgZGlzYWJsZSB0aGUgSVJRcyBhbmQKLSAq IGdvZXMgYmFjayB0byBmYWxzZSBleGFjdGx5IGJlZm9yZSB3ZSByZWVuYWJsZSB0aGUgSVJRcy4g V2UgdXNlIHRoaXMgdmFyaWFibGUKLSAqIHRvIGNoZWNrIGlmIHNvbWVvbmUgaXMgdHJ5aW5nIHRv IGVuYWJsZS9kaXNhYmxlIElSUXMgd2hpbGUgdGhleSdyZSBzdXBwb3NlZAotICogdG8gYmUgZGlz YWJsZWQuIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBhbmQgd2UnbGwgcHJpbnQgc29tZSBlcnJvciBt ZXNzYWdlcyBpbgotICogY2FzZSBpdCBoYXBwZW5zLgotICoKLSAqIEZvciBtb3JlLCByZWFkIHRo ZSBEb2N1bWVudGF0aW9uL3Bvd2VyL3J1bnRpbWVfcG0udHh0LgotICovCi1zdHJ1Y3QgaTkxNV9y dW50aW1lX3BtIHsKLQlhdG9taWNfdCB3YWtlcmVmX2NvdW50OwotCXN0cnVjdCBkZXZpY2UgKmtk ZXY7IC8qIHBvaW50cyB0byBpOTE1LT5kcm0ucGRldi0+ZGV2ICovCi0JYm9vbCBhdmFpbGFibGU7 Ci0JYm9vbCBzdXNwZW5kZWQ7Ci0JYm9vbCBpcnFzX2VuYWJsZWQ7Ci0KLSNpZiBJU19FTkFCTEVE KENPTkZJR19EUk1fSTkxNV9ERUJVR19SVU5USU1FX1BNKQotCS8qCi0JICogVG8gYWlkZSBkZXRl Y3Rpb24gb2Ygd2FrZXJlZiBsZWFrcyBhbmQgZ2VuZXJhbCBtaXN1c2UsIHdlCi0JICogdHJhY2sg YWxsIHdha2VyZWYgaG9sZGVycy4gV2l0aCBtYW51YWwgbWFya3VwIChpLmUuIHJldHVybmluZwot CSAqIGEgY29va2llIHRvIGVhY2ggcnBtX2dldCBjYWxsZXIgd2hpY2ggdGhleSB0aGVuIHN1cHBs eSB0byB0aGVpcgotCSAqIHBhaXJlZCBycG1fcHV0KSB3ZSBjYW4gcmVtb3ZlIGNvcnJlc3BvbmRp bmcgcGFpcnMgb2YgYW5kIGtlZXAKLQkgKiB0aGUgYXJyYXkgdHJpbW1lZCB0byBhY3RpdmUgd2Fr ZXJlZnMuCi0JICovCi0Jc3RydWN0IGludGVsX3J1bnRpbWVfcG1fZGVidWcgewotCQlzcGlubG9j a190IGxvY2s7Ci0KLQkJZGVwb3Rfc3RhY2tfaGFuZGxlX3QgbGFzdF9hY3F1aXJlOwotCQlkZXBv dF9zdGFja19oYW5kbGVfdCBsYXN0X3JlbGVhc2U7Ci0KLQkJZGVwb3Rfc3RhY2tfaGFuZGxlX3Qg Km93bmVyczsKLQkJdW5zaWduZWQgbG9uZyBjb3VudDsKLQl9IGRlYnVnOwotI2VuZGlmCi19Owot CiBlbnVtIGludGVsX3BpcGVfY3JjX3NvdXJjZSB7CiAJSU5URUxfUElQRV9DUkNfU09VUkNFX05P TkUsCiAJSU5URUxfUElQRV9DUkNfU09VUkNFX1BMQU5FMSwKQEAgLTE3MjgsNyArMTY3OCw3IEBA IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAogCXN0cnVjdCBkcm1fcHJpdmF0ZV9vYmogYndf b2JqOwogCi0Jc3RydWN0IGk5MTVfcnVudGltZV9wbSBydW50aW1lX3BtOworCXN0cnVjdCBpbnRl bF9ydW50aW1lX3BtIHJ1bnRpbWVfcG07CiAKIAlzdHJ1Y3QgewogCQlib29sIGluaXRpYWxpemVk OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA3MGVmOWI3NjIzZjAuLjFkNThmN2VjNWQ4 NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTE2MTMsMTAxICsxNjEzLDQgQEAgdW5z aWduZWQgaW50IGk5eHhfcGxhbmVfbWF4X3N0cmlkZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5l LAogCQkJCSAgIHVuc2lnbmVkIGludCByb3RhdGlvbik7CiBpbnQgYmR3X2dldF9waXBlbWlzY19i cHAoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwogCi0vKiBpbnRlbF9ydW50aW1lX3BtLmMgKi8K LSNkZWZpbmUgQklUU19QRVJfV0FLRVJFRglcCi0JQklUU19QRVJfVFlQRShzdHJ1Y3RfbWVtYmVy KHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0sIHdha2VyZWZfY291bnQpKQotI2RlZmluZSBJTlRFTF9S UE1fV0FLRUxPQ0tfU0hJRlQJKEJJVFNfUEVSX1dBS0VSRUYgLyAyKQotI2RlZmluZSBJTlRFTF9S UE1fV0FLRUxPQ0tfQklBUwkJKDEgPDwgSU5URUxfUlBNX1dBS0VMT0NLX1NISUZUKQotI2RlZmlu ZSBJTlRFTF9SUE1fUkFXX1dBS0VSRUZfTUFTSwkoSU5URUxfUlBNX1dBS0VMT0NLX0JJQVMgLSAx KQotCi1zdGF0aWMgaW5saW5lIGludAotaW50ZWxfcnBtX3Jhd193YWtlcmVmX2NvdW50KGludCB3 YWtlcmVmX2NvdW50KQotewotCXJldHVybiB3YWtlcmVmX2NvdW50ICYgSU5URUxfUlBNX1JBV19X QUtFUkVGX01BU0s7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50Ci1pbnRlbF9ycG1fd2FrZWxvY2tf Y291bnQoaW50IHdha2VyZWZfY291bnQpCi17Ci0JcmV0dXJuIHdha2VyZWZfY291bnQgPj4gSU5U RUxfUlBNX1dBS0VMT0NLX1NISUZUOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQKLWFzc2VydF9y cG1fZGV2aWNlX25vdF9zdXNwZW5kZWQoc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtKQotewot CVdBUk5fT05DRShycG0tPnN1c3BlbmRlZCwKLQkJICAiRGV2aWNlIHN1c3BlbmRlZCBkdXJpbmcg SFcgYWNjZXNzXG4iKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkCi1fX2Fzc2VydF9ycG1fcmF3 X3dha2VyZWZfaGVsZChzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0sIGludCB3YWtlcmVmX2Nv dW50KQotewotCWFzc2VydF9ycG1fZGV2aWNlX25vdF9zdXNwZW5kZWQocnBtKTsKLQlXQVJOX09O Q0UoIWludGVsX3JwbV9yYXdfd2FrZXJlZl9jb3VudCh3YWtlcmVmX2NvdW50KSwKLQkJICAiUlBN IHJhdy13YWtlcmVmIG5vdCBoZWxkXG4iKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkCi1fX2Fz c2VydF9ycG1fd2FrZWxvY2tfaGVsZChzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0sIGludCB3 YWtlcmVmX2NvdW50KQotewotCV9fYXNzZXJ0X3JwbV9yYXdfd2FrZXJlZl9oZWxkKHJwbSwgd2Fr ZXJlZl9jb3VudCk7Ci0JV0FSTl9PTkNFKCFpbnRlbF9ycG1fd2FrZWxvY2tfY291bnQod2FrZXJl Zl9jb3VudCksCi0JCSAgIlJQTSB3YWtlbG9jayByZWYgbm90IGhlbGQgZHVyaW5nIEhXIGFjY2Vz c1xuIik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZAotYXNzZXJ0X3JwbV9yYXdfd2FrZXJlZl9o ZWxkKHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSkKLXsKLQlfX2Fzc2VydF9ycG1fcmF3X3dh a2VyZWZfaGVsZChycG0sIGF0b21pY19yZWFkKCZycG0tPndha2VyZWZfY291bnQpKTsKLX0KLQot c3RhdGljIGlubGluZSB2b2lkCi1hc3NlcnRfcnBtX3dha2Vsb2NrX2hlbGQoc3RydWN0IGk5MTVf cnVudGltZV9wbSAqcnBtKQotewotCV9fYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKHJwbSwgYXRv bWljX3JlYWQoJnJwbS0+d2FrZXJlZl9jb3VudCkpOwotfQotCi0vKioKLSAqIGRpc2FibGVfcnBt X3dha2VyZWZfYXNzZXJ0cyAtIGRpc2FibGUgdGhlIFJQTSBhc3NlcnQgY2hlY2tzCi0gKiBAcnBt OiB0aGUgaTkxNV9ydW50aW1lX3BtIHN0cnVjdHVyZQotICoKLSAqIFRoaXMgZnVuY3Rpb24gZGlz YWJsZSBhc3NlcnRzIHRoYXQgY2hlY2sgaWYgd2UgaG9sZCBhbiBSUE0gd2FrZWxvY2sKLSAqIHJl ZmVyZW5jZSwgd2hpbGUga2VlcGluZyB0aGUgZGV2aWNlLW5vdC1zdXNwZW5kZWQgY2hlY2tzIHN0 aWxsIGVuYWJsZWQuCi0gKiBJdCdzIG1lYW50IHRvIGJlIHVzZWQgb25seSBpbiBzcGVjaWFsIGNp cmN1bXN0YW5jZXMgd2hlcmUgb3VyIHJ1bGUgYWJvdXQKLSAqIHRoZSB3YWtlbG9jayByZWZjb3Vu dCB3cnQuIHRoZSBkZXZpY2UgcG93ZXIgc3RhdGUgZG9lc24ndCBob2xkLiBBY2NvcmRpbmcKLSAq IHRvIHRoaXMgcnVsZSBhdCBhbnkgcG9pbnQgd2hlcmUgd2UgYWNjZXNzIHRoZSBIVyBvciB3YW50 IHRvIGtlZXAgdGhlIEhXIGluCi0gKiBhbiBhY3RpdmUgc3RhdGUgd2UgbXVzdCBob2xkIGFuIFJQ TSB3YWtlbG9jayByZWZlcmVuY2UgYWNxdWlyZWQgdmlhIG9uZSBvZgotICogdGhlIGludGVsX3J1 bnRpbWVfcG1fZ2V0KCkgaGVscGVycy4gQ3VycmVudGx5IHRoZXJlIGFyZSBhIGZldyBzcGVjaWFs IHNwb3RzCi0gKiB3aGVyZSB0aGlzIHJ1bGUgZG9lc24ndCBob2xkOiB0aGUgSVJRIGFuZCBzdXNw ZW5kL3Jlc3VtZSBoYW5kbGVycywgdGhlCi0gKiBmb3JjZXdha2UgcmVsZWFzZSB0aW1lciwgYW5k IHRoZSBHUFUgUlBTIGFuZCBoYW5nY2hlY2sgd29ya3MuIEFsbCBvdGhlcgotICogdXNlcnMgc2hv dWxkIGF2b2lkIHVzaW5nIHRoaXMgZnVuY3Rpb24uCi0gKgotICogQW55IGNhbGxzIHRvIHRoaXMg ZnVuY3Rpb24gbXVzdCBoYXZlIGEgc3ltbWV0cmljIGNhbGwgdG8KLSAqIGVuYWJsZV9ycG1fd2Fr ZXJlZl9hc3NlcnRzKCkuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZAotZGlzYWJsZV9ycG1fd2Fr ZXJlZl9hc3NlcnRzKHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSkKLXsKLQlhdG9taWNfYWRk KElOVEVMX1JQTV9XQUtFTE9DS19CSUFTICsgMSwKLQkJICAgJnJwbS0+d2FrZXJlZl9jb3VudCk7 Ci19Ci0KLS8qKgotICogZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMgLSByZS1lbmFibGUgdGhl IFJQTSBhc3NlcnQgY2hlY2tzCi0gKiBAcnBtOiB0aGUgaTkxNV9ydW50aW1lX3BtIHN0cnVjdHVy ZQotICoKLSAqIFRoaXMgZnVuY3Rpb24gcmUtZW5hYmxlcyB0aGUgUlBNIGFzc2VydCBjaGVja3Mg YWZ0ZXIgZGlzYWJsaW5nIHRoZW0gd2l0aAotICogZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRz LiBJdCdzIG1lYW50IHRvIGJlIHVzZWQgb25seSBpbiBzcGVjaWFsCi0gKiBjaXJjdW1zdGFuY2Vz IG90aGVyd2lzZSBpdHMgdXNlIHNob3VsZCBiZSBhdm9pZGVkLgotICoKLSAqIEFueSBjYWxscyB0 byB0aGlzIGZ1bmN0aW9uIG11c3QgaGF2ZSBhIHN5bW1ldHJpYyBjYWxsIHRvCi0gKiBkaXNhYmxl X3JwbV93YWtlcmVmX2Fzc2VydHMoKS4KLSAqLwotc3RhdGljIGlubGluZSB2b2lkCi1lbmFibGVf cnBtX3dha2VyZWZfYXNzZXJ0cyhzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0pCi17Ci0JYXRv bWljX3N1YihJTlRFTF9SUE1fV0FLRUxPQ0tfQklBUyArIDEsCi0JCSAgICZycG0tPndha2VyZWZf Y291bnQpOwotfQotCiAjZW5kaWYgLyogX19JTlRFTF9EUlZfSF9fICovCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKaW5kZXggYWU2MGFlMWM5NzBlLi4wN2FhYTNlMDY1ODcg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKQEAgLTc1LDEzICs3NSwx MyBAQCBzdGF0aWMgdm9pZCBfX3ByaW50X2RlcG90X3N0YWNrKGRlcG90X3N0YWNrX2hhbmRsZV90 IHN0YWNrLAogCXN0YWNrX3RyYWNlX3NucHJpbnQoYnVmLCBzeiwgZW50cmllcywgbnJfZW50cmll cywgaW5kZW50KTsKIH0KIAotc3RhdGljIHZvaWQgaW5pdF9pbnRlbF9ydW50aW1lX3BtX3dha2Vy ZWYoc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtKQorc3RhdGljIHZvaWQgaW5pdF9pbnRlbF9y dW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSkKIHsKIAlzcGlu X2xvY2tfaW5pdCgmcnBtLT5kZWJ1Zy5sb2NrKTsKIH0KIAogc3RhdGljIG5vaW5saW5lIGRlcG90 X3N0YWNrX2hhbmRsZV90Ci10cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGk5 MTVfcnVudGltZV9wbSAqcnBtKQordHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0cnVj dCBpbnRlbF9ydW50aW1lX3BtICpycG0pCiB7CiAJZGVwb3Rfc3RhY2tfaGFuZGxlX3Qgc3RhY2ss ICpzdGFja3M7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTExMyw3ICsxMTMsNyBAQCB0cmFj a19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtKQog CXJldHVybiBzdGFjazsKIH0KIAotc3RhdGljIHZvaWQgdW50cmFja19pbnRlbF9ydW50aW1lX3Bt X3dha2VyZWYoc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtLAorc3RhdGljIHZvaWQgdW50cmFj a19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSwK IAkJCQkJICAgICBkZXBvdF9zdGFja19oYW5kbGVfdCBzdGFjaykKIHsKIAl1bnNpZ25lZCBsb25n IGZsYWdzLCBuOwpAQCAtMjMzLDcgKzIzMyw3IEBAIGR1bXBfYW5kX2ZyZWVfd2FrZXJlZl90cmFj a2luZyhzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbV9kZWJ1ZyAqZGVidWcpCiB9CiAKIHN0YXRpYyBu b2lubGluZSB2b2lkCi1fX2ludGVsX3dha2VyZWZfZGVjX2FuZF9jaGVja190cmFja2luZyhzdHJ1 Y3QgaTkxNV9ydW50aW1lX3BtICpycG0pCitfX2ludGVsX3dha2VyZWZfZGVjX2FuZF9jaGVja190 cmFja2luZyhzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtKQogewogCXN0cnVjdCBpbnRlbF9y dW50aW1lX3BtX2RlYnVnIGRiZyA9IHt9OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC0yNTAs NyArMjUwLDcgQEAgX19pbnRlbF93YWtlcmVmX2RlY19hbmRfY2hlY2tfdHJhY2tpbmcoc3RydWN0 IGk5MTVfcnVudGltZV9wbSAqcnBtKQogfQogCiBzdGF0aWMgbm9pbmxpbmUgdm9pZAotdW50cmFj a19hbGxfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmcyhzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpy cG0pCit1bnRyYWNrX2FsbF9pbnRlbF9ydW50aW1lX3BtX3dha2VyZWZzKHN0cnVjdCBpbnRlbF9y dW50aW1lX3BtICpycG0pCiB7CiAJc3RydWN0IGludGVsX3J1bnRpbWVfcG1fZGVidWcgZGJnID0g e307CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTI2OCw3ICsyNjgsNyBAQCB2b2lkIHByaW50 X2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK IAlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbV9kZWJ1ZyBkYmcgPSB7fTsKIAogCWRvIHsKLQkJc3Ry dWN0IGk5MTVfcnVudGltZV9wbSAqcnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07CisJCXN0cnVjdCBp bnRlbF9ydW50aW1lX3BtICpycG0gPSAmaTkxNS0+cnVudGltZV9wbTsKIAkJdW5zaWduZWQgbG9u ZyBhbGxvYyA9IGRiZy5jb3VudDsKIAkJZGVwb3Rfc3RhY2tfaGFuZGxlX3QgKnM7CiAKQEAgLTMw MiwzNiArMzAyLDM2IEBAIHZvaWQgcHJpbnRfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCiAjZWxzZQogCi1zdGF0aWMgdm9pZCBpbml0X2lu dGVsX3J1bnRpbWVfcG1fd2FrZXJlZihzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0pCitzdGF0 aWMgdm9pZCBpbml0X2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihzdHJ1Y3QgaW50ZWxfcnVudGlt ZV9wbSAqcnBtKQogewogfQogCiBzdGF0aWMgZGVwb3Rfc3RhY2tfaGFuZGxlX3QKLXRyYWNrX2lu dGVsX3J1bnRpbWVfcG1fd2FrZXJlZihzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0pCit0cmFj a19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSkK IHsKIAlyZXR1cm4gLTE7CiB9CiAKLXN0YXRpYyB2b2lkIHVudHJhY2tfaW50ZWxfcnVudGltZV9w bV93YWtlcmVmKHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSwKK3N0YXRpYyB2b2lkIHVudHJh Y2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0s CiAJCQkJCSAgICAgaW50ZWxfd2FrZXJlZl90IHdyZWYpCiB7CiB9CiAKIHN0YXRpYyB2b2lkCi1f X2ludGVsX3dha2VyZWZfZGVjX2FuZF9jaGVja190cmFja2luZyhzdHJ1Y3QgaTkxNV9ydW50aW1l X3BtICpycG0pCitfX2ludGVsX3dha2VyZWZfZGVjX2FuZF9jaGVja190cmFja2luZyhzdHJ1Y3Qg aW50ZWxfcnVudGltZV9wbSAqcnBtKQogewogCWF0b21pY19kZWMoJnJwbS0+d2FrZXJlZl9jb3Vu dCk7CiB9CiAKIHN0YXRpYyB2b2lkCi11bnRyYWNrX2FsbF9pbnRlbF9ydW50aW1lX3BtX3dha2Vy ZWZzKHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSkKK3VudHJhY2tfYWxsX2ludGVsX3J1bnRp bWVfcG1fd2FrZXJlZnMoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSkKIHsKIH0KIAogI2Vu ZGlmCiAKIHN0YXRpYyB2b2lkCi1pbnRlbF9ydW50aW1lX3BtX2FjcXVpcmUoc3RydWN0IGk5MTVf cnVudGltZV9wbSAqcnBtLCBib29sIHdha2Vsb2NrKQoraW50ZWxfcnVudGltZV9wbV9hY3F1aXJl KHN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0sIGJvb2wgd2FrZWxvY2spCiB7CiAJaWYgKHdh a2Vsb2NrKSB7CiAJCWF0b21pY19hZGQoMSArIElOVEVMX1JQTV9XQUtFTE9DS19CSUFTLCAmcnBt LT53YWtlcmVmX2NvdW50KTsKQEAgLTM0Myw3ICszNDMsNyBAQCBpbnRlbF9ydW50aW1lX3BtX2Fj cXVpcmUoc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtLCBib29sIHdha2Vsb2NrKQogfQogCiBz dGF0aWMgdm9pZAotaW50ZWxfcnVudGltZV9wbV9yZWxlYXNlKHN0cnVjdCBpOTE1X3J1bnRpbWVf cG0gKnJwbSwgaW50IHdha2Vsb2NrKQoraW50ZWxfcnVudGltZV9wbV9yZWxlYXNlKHN0cnVjdCBp bnRlbF9ydW50aW1lX3BtICpycG0sIGludCB3YWtlbG9jaykKIHsKIAlpZiAod2FrZWxvY2spIHsK IAkJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKHJwbSk7CkBAIC0zNTUsNyArMzU1LDcgQEAgaW50 ZWxfcnVudGltZV9wbV9yZWxlYXNlKHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSwgaW50IHdh a2Vsb2NrKQogCV9faW50ZWxfd2FrZXJlZl9kZWNfYW5kX2NoZWNrX3RyYWNraW5nKHJwbSk7CiB9 CiAKLXN0YXRpYyBpbnRlbF93YWtlcmVmX3QgX19pbnRlbF9ydW50aW1lX3BtX2dldChzdHJ1Y3Qg aTkxNV9ydW50aW1lX3BtICpycG0sCitzdGF0aWMgaW50ZWxfd2FrZXJlZl90IF9faW50ZWxfcnVu dGltZV9wbV9nZXQoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSwKIAkJCQkJICAgICAgYm9v bCB3YWtlbG9jaykKIHsKIAlpbnQgcmV0OwpAQCAtNDI0LDcgKzQyNCw3IEBAIGludGVsX3dha2Vy ZWZfdCBpbnRlbF9ydW50aW1lX3BtX2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK ICAqLwogaW50ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQlzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpy cG0gPSAmaTkxNS0+cnVudGltZV9wbTsKKwlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtID0g Jmk5MTUtPnJ1bnRpbWVfcG07CiAKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdfUE0pKSB7CiAJCS8q CkBAIC00NjMsNyArNDYzLDcgQEAgaW50ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0 X2lmX2luX3VzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKICAqLwogaW50ZWxfd2Fr ZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0X25vcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KQogewotCXN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSA9ICZpOTE1LT5ydW50 aW1lX3BtOworCXN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0gPSAmaTkxNS0+cnVudGltZV9w bTsKIAogCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChycG0pOwogCXBtX3J1bnRpbWVfZ2V0X25v cmVzdW1lKHJwbS0+a2Rldik7CkBAIC00NzMsNyArNDczLDcgQEAgaW50ZWxfd2FrZXJlZl90IGlu dGVsX3J1bnRpbWVfcG1fZ2V0X25vcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQogCXJldHVybiB0cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYocnBtKTsKIH0KIAotc3Rh dGljIHZvaWQgX19pbnRlbF9ydW50aW1lX3BtX3B1dChzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpy cG0sCitzdGF0aWMgdm9pZCBfX2ludGVsX3J1bnRpbWVfcG1fcHV0KHN0cnVjdCBpbnRlbF9ydW50 aW1lX3BtICpycG0sCiAJCQkJICAgaW50ZWxfd2FrZXJlZl90IHdyZWYsCiAJCQkJICAgYm9vbCB3 YWtlbG9jaykKIHsKQEAgLTU0Nyw3ICs1NDcsNyBAQCB2b2lkIGludGVsX3J1bnRpbWVfcG1fcHV0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBpbnRlbF93YWtlcmVmX3Qgd3JlZikKICAq Lwogdm9pZCBpbnRlbF9ydW50aW1lX3BtX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKIHsKLQlzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0gPSAmaTkxNS0+cnVudGltZV9w bTsKKwlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07CiAJ c3RydWN0IGRldmljZSAqa2RldiA9IHJwbS0+a2RldjsKIAogCS8qCkBAIC01ODksNyArNTg5LDcg QEAgdm9pZCBpbnRlbF9ydW50aW1lX3BtX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKIAogdm9pZCBpbnRlbF9ydW50aW1lX3BtX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUpCiB7Ci0Jc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtID0gJmk5MTUtPnJ1 bnRpbWVfcG07CisJc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSA9ICZpOTE1LT5ydW50aW1l X3BtOwogCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSBycG0tPmtkZXY7CiAKIAkvKiBUcmFuc2ZlciBy cG0gb3duZXJzaGlwIGJhY2sgdG8gY29yZSAqLwpAQCAtNjA0LDcgKzYwNCw3IEBAIHZvaWQgaW50 ZWxfcnVudGltZV9wbV9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCiB2 b2lkIGludGVsX3J1bnRpbWVfcG1fY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKIHsKLQlzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0gPSAmaTkxNS0+cnVudGltZV9wbTsK KwlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07CiAJaW50 IGNvdW50ID0gYXRvbWljX3JlYWQoJnJwbS0+d2FrZXJlZl9jb3VudCk7CiAKIAlXQVJOKGNvdW50 LApAQCAtNjE3LDcgKzYxNyw3IEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9jbGVhbnVwKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCiB2b2lkIGludGVsX3J1bnRpbWVfcG1faW5pdF9l YXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQlzdHJ1Y3QgaTkxNV9ydW50 aW1lX3BtICpycG0gPSAmaTkxNS0+cnVudGltZV9wbTsKKwlzdHJ1Y3QgaW50ZWxfcnVudGltZV9w bSAqcnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBpOTE1 LT5kcm0ucGRldjsKIAlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJnBkZXYtPmRldjsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5oCmluZGV4IGE3YWNjZWIxMzQ3My4uNDBjNjUz MGFmNWJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3Bt LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5oCkBAIC0xMSw2 ICsxMSw5IEBACiAjaW5jbHVkZSAiaW50ZWxfZGlzcGxheS5oIgogI2luY2x1ZGUgImludGVsX3dh a2VyZWYuaCIKIAorI2luY2x1ZGUgImk5MTVfdXRpbHMuaCIKKworc3RydWN0IGRldmljZTsKIHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlOwogc3RydWN0IGRybV9wcmludGVyOwogCkBAIC0yMCw2ICsy MywxNTIgQEAgZW51bSBpOTE1X2RybV9zdXNwZW5kX21vZGUgewogCUk5MTVfRFJNX1NVU1BFTkRf SElCRVJOQVRFLAogfTsKIAorLyoKKyAqIFRoaXMgc3RydWN0IGhlbHBzIHRyYWNraW5nIHRoZSBz dGF0ZSBuZWVkZWQgZm9yIHJ1bnRpbWUgUE0sIHdoaWNoIHB1dHMgdGhlCisgKiBkZXZpY2UgaW4g UENJIEQzIHN0YXRlLiBOb3RpY2UgdGhhdCB3aGVuIHRoaXMgaGFwcGVucywgbm90aGluZyBvbiB0 aGUKKyAqIGdyYXBoaWNzIGRldmljZSB3b3JrcywgZXZlbiByZWdpc3RlciBhY2Nlc3MsIHNvIHdl IGRvbid0IGdldCBpbnRlcnJ1cHRzIG5vcgorICogYW55dGhpbmcgZWxzZS4KKyAqCisgKiBFdmVy eSBwaWVjZSBvZiBvdXIgY29kZSB0aGF0IG5lZWRzIHRvIGFjdHVhbGx5IHRvdWNoIHRoZSBoYXJk d2FyZSBuZWVkcyB0bworICogZWl0aGVyIGNhbGwgaW50ZWxfcnVudGltZV9wbV9nZXQgb3IgY2Fs bCBpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldCB3aXRoIHRoZQorICogYXBwcm9wcmlhdGUgcG93ZXIg ZG9tYWluLgorICoKKyAqIE91ciBkcml2ZXIgdXNlcyB0aGUgYXV0b3N1c3BlbmQgZGVsYXkgZmVh dHVyZSwgd2hpY2ggbWVhbnMgd2UnbGwgb25seSByZWFsbHkKKyAqIHN1c3BlbmQgaWYgd2Ugc3Rh eSB3aXRoIHplcm8gcmVmY291bnQgZm9yIGEgY2VydGFpbiBhbW91bnQgb2YgdGltZS4gVGhlCisg KiBkZWZhdWx0IHZhbHVlIGlzIGN1cnJlbnRseSB2ZXJ5IGNvbnNlcnZhdGl2ZSAoc2VlIGludGVs X3J1bnRpbWVfcG1fZW5hYmxlKSwgYnV0CisgKiBpdCBjYW4gYmUgY2hhbmdlZCB3aXRoIHRoZSBz dGFuZGFyZCBydW50aW1lIFBNIGZpbGVzIGZyb20gc3lzZnMuCisgKgorICogVGhlIGlycXNfZGlz YWJsZWQgdmFyaWFibGUgYmVjb21lcyB0cnVlIGV4YWN0bHkgYWZ0ZXIgd2UgZGlzYWJsZSB0aGUg SVJRcyBhbmQKKyAqIGdvZXMgYmFjayB0byBmYWxzZSBleGFjdGx5IGJlZm9yZSB3ZSByZWVuYWJs ZSB0aGUgSVJRcy4gV2UgdXNlIHRoaXMgdmFyaWFibGUKKyAqIHRvIGNoZWNrIGlmIHNvbWVvbmUg aXMgdHJ5aW5nIHRvIGVuYWJsZS9kaXNhYmxlIElSUXMgd2hpbGUgdGhleSdyZSBzdXBwb3NlZAor ICogdG8gYmUgZGlzYWJsZWQuIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBhbmQgd2UnbGwgcHJpbnQg c29tZSBlcnJvciBtZXNzYWdlcyBpbgorICogY2FzZSBpdCBoYXBwZW5zLgorICoKKyAqIEZvciBt b3JlLCByZWFkIHRoZSBEb2N1bWVudGF0aW9uL3Bvd2VyL3J1bnRpbWVfcG0udHh0LgorICovCitz dHJ1Y3QgaW50ZWxfcnVudGltZV9wbSB7CisJYXRvbWljX3Qgd2FrZXJlZl9jb3VudDsKKwlzdHJ1 Y3QgZGV2aWNlICprZGV2OyAvKiBwb2ludHMgdG8gaTkxNS0+ZHJtLnBkZXYtPmRldiAqLworCWJv b2wgYXZhaWxhYmxlOworCWJvb2wgc3VzcGVuZGVkOworCWJvb2wgaXJxc19lbmFibGVkOworCisj aWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfUlVOVElNRV9QTSkKKwkvKgorCSAq IFRvIGFpZGUgZGV0ZWN0aW9uIG9mIHdha2VyZWYgbGVha3MgYW5kIGdlbmVyYWwgbWlzdXNlLCB3 ZQorCSAqIHRyYWNrIGFsbCB3YWtlcmVmIGhvbGRlcnMuIFdpdGggbWFudWFsIG1hcmt1cCAoaS5l LiByZXR1cm5pbmcKKwkgKiBhIGNvb2tpZSB0byBlYWNoIHJwbV9nZXQgY2FsbGVyIHdoaWNoIHRo ZXkgdGhlbiBzdXBwbHkgdG8gdGhlaXIKKwkgKiBwYWlyZWQgcnBtX3B1dCkgd2UgY2FuIHJlbW92 ZSBjb3JyZXNwb25kaW5nIHBhaXJzIG9mIGFuZCBrZWVwCisJICogdGhlIGFycmF5IHRyaW1tZWQg dG8gYWN0aXZlIHdha2VyZWZzLgorCSAqLworCXN0cnVjdCBpbnRlbF9ydW50aW1lX3BtX2RlYnVn IHsKKwkJc3BpbmxvY2tfdCBsb2NrOworCisJCWRlcG90X3N0YWNrX2hhbmRsZV90IGxhc3RfYWNx dWlyZTsKKwkJZGVwb3Rfc3RhY2tfaGFuZGxlX3QgbGFzdF9yZWxlYXNlOworCisJCWRlcG90X3N0 YWNrX2hhbmRsZV90ICpvd25lcnM7CisJCXVuc2lnbmVkIGxvbmcgY291bnQ7CisJfSBkZWJ1ZzsK KyNlbmRpZgorfTsKKworI2RlZmluZSBCSVRTX1BFUl9XQUtFUkVGCVwKKwlCSVRTX1BFUl9UWVBF KHN0cnVjdF9tZW1iZXIoc3RydWN0IGludGVsX3J1bnRpbWVfcG0sIHdha2VyZWZfY291bnQpKQor I2RlZmluZSBJTlRFTF9SUE1fV0FLRUxPQ0tfU0hJRlQJKEJJVFNfUEVSX1dBS0VSRUYgLyAyKQor I2RlZmluZSBJTlRFTF9SUE1fV0FLRUxPQ0tfQklBUwkJKDEgPDwgSU5URUxfUlBNX1dBS0VMT0NL X1NISUZUKQorI2RlZmluZSBJTlRFTF9SUE1fUkFXX1dBS0VSRUZfTUFTSwkoSU5URUxfUlBNX1dB S0VMT0NLX0JJQVMgLSAxKQorCitzdGF0aWMgaW5saW5lIGludAoraW50ZWxfcnBtX3Jhd193YWtl cmVmX2NvdW50KGludCB3YWtlcmVmX2NvdW50KQoreworCXJldHVybiB3YWtlcmVmX2NvdW50ICYg SU5URUxfUlBNX1JBV19XQUtFUkVGX01BU0s7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50CitpbnRl bF9ycG1fd2FrZWxvY2tfY291bnQoaW50IHdha2VyZWZfY291bnQpCit7CisJcmV0dXJuIHdha2Vy ZWZfY291bnQgPj4gSU5URUxfUlBNX1dBS0VMT0NLX1NISUZUOworfQorCitzdGF0aWMgaW5saW5l IHZvaWQKK2Fzc2VydF9ycG1fZGV2aWNlX25vdF9zdXNwZW5kZWQoc3RydWN0IGludGVsX3J1bnRp bWVfcG0gKnJwbSkKK3sKKwlXQVJOX09OQ0UocnBtLT5zdXNwZW5kZWQsCisJCSAgIkRldmljZSBz dXNwZW5kZWQgZHVyaW5nIEhXIGFjY2Vzc1xuIik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAor X19hc3NlcnRfcnBtX3Jhd193YWtlcmVmX2hlbGQoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJw bSwgaW50IHdha2VyZWZfY291bnQpCit7CisJYXNzZXJ0X3JwbV9kZXZpY2Vfbm90X3N1c3BlbmRl ZChycG0pOworCVdBUk5fT05DRSghaW50ZWxfcnBtX3Jhd193YWtlcmVmX2NvdW50KHdha2VyZWZf Y291bnQpLAorCQkgICJSUE0gcmF3LXdha2VyZWYgbm90IGhlbGRcbiIpOworfQorCitzdGF0aWMg aW5saW5lIHZvaWQKK19fYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKHN0cnVjdCBpbnRlbF9ydW50 aW1lX3BtICpycG0sIGludCB3YWtlcmVmX2NvdW50KQoreworCV9fYXNzZXJ0X3JwbV9yYXdfd2Fr ZXJlZl9oZWxkKHJwbSwgd2FrZXJlZl9jb3VudCk7CisJV0FSTl9PTkNFKCFpbnRlbF9ycG1fd2Fr ZWxvY2tfY291bnQod2FrZXJlZl9jb3VudCksCisJCSAgIlJQTSB3YWtlbG9jayByZWYgbm90IGhl bGQgZHVyaW5nIEhXIGFjY2Vzc1xuIik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorYXNzZXJ0 X3JwbV9yYXdfd2FrZXJlZl9oZWxkKHN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0pCit7CisJ X19hc3NlcnRfcnBtX3Jhd193YWtlcmVmX2hlbGQocnBtLCBhdG9taWNfcmVhZCgmcnBtLT53YWtl cmVmX2NvdW50KSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorYXNzZXJ0X3JwbV93YWtlbG9j a19oZWxkKHN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0pCit7CisJX19hc3NlcnRfcnBtX3dh a2Vsb2NrX2hlbGQocnBtLCBhdG9taWNfcmVhZCgmcnBtLT53YWtlcmVmX2NvdW50KSk7Cit9CisK Ky8qKgorICogZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzIC0gZGlzYWJsZSB0aGUgUlBNIGFz c2VydCBjaGVja3MKKyAqIEBycG06IHRoZSBpbnRlbF9ydW50aW1lX3BtIHN0cnVjdHVyZQorICoK KyAqIFRoaXMgZnVuY3Rpb24gZGlzYWJsZSBhc3NlcnRzIHRoYXQgY2hlY2sgaWYgd2UgaG9sZCBh biBSUE0gd2FrZWxvY2sKKyAqIHJlZmVyZW5jZSwgd2hpbGUga2VlcGluZyB0aGUgZGV2aWNlLW5v dC1zdXNwZW5kZWQgY2hlY2tzIHN0aWxsIGVuYWJsZWQuCisgKiBJdCdzIG1lYW50IHRvIGJlIHVz ZWQgb25seSBpbiBzcGVjaWFsIGNpcmN1bXN0YW5jZXMgd2hlcmUgb3VyIHJ1bGUgYWJvdXQKKyAq IHRoZSB3YWtlbG9jayByZWZjb3VudCB3cnQuIHRoZSBkZXZpY2UgcG93ZXIgc3RhdGUgZG9lc24n dCBob2xkLiBBY2NvcmRpbmcKKyAqIHRvIHRoaXMgcnVsZSBhdCBhbnkgcG9pbnQgd2hlcmUgd2Ug YWNjZXNzIHRoZSBIVyBvciB3YW50IHRvIGtlZXAgdGhlIEhXIGluCisgKiBhbiBhY3RpdmUgc3Rh dGUgd2UgbXVzdCBob2xkIGFuIFJQTSB3YWtlbG9jayByZWZlcmVuY2UgYWNxdWlyZWQgdmlhIG9u ZSBvZgorICogdGhlIGludGVsX3J1bnRpbWVfcG1fZ2V0KCkgaGVscGVycy4gQ3VycmVudGx5IHRo ZXJlIGFyZSBhIGZldyBzcGVjaWFsIHNwb3RzCisgKiB3aGVyZSB0aGlzIHJ1bGUgZG9lc24ndCBo b2xkOiB0aGUgSVJRIGFuZCBzdXNwZW5kL3Jlc3VtZSBoYW5kbGVycywgdGhlCisgKiBmb3JjZXdh a2UgcmVsZWFzZSB0aW1lciwgYW5kIHRoZSBHUFUgUlBTIGFuZCBoYW5nY2hlY2sgd29ya3MuIEFs bCBvdGhlcgorICogdXNlcnMgc2hvdWxkIGF2b2lkIHVzaW5nIHRoaXMgZnVuY3Rpb24uCisgKgor ICogQW55IGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gbXVzdCBoYXZlIGEgc3ltbWV0cmljIGNhbGwg dG8KKyAqIGVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKCkuCisgKi8KK3N0YXRpYyBpbmxpbmUg dm9pZAorZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKHN0cnVjdCBpbnRlbF9ydW50aW1lX3Bt ICpycG0pCit7CisJYXRvbWljX2FkZChJTlRFTF9SUE1fV0FLRUxPQ0tfQklBUyArIDEsCisJCSAg ICZycG0tPndha2VyZWZfY291bnQpOworfQorCisvKioKKyAqIGVuYWJsZV9ycG1fd2FrZXJlZl9h c3NlcnRzIC0gcmUtZW5hYmxlIHRoZSBSUE0gYXNzZXJ0IGNoZWNrcworICogQHJwbTogdGhlIGlu dGVsX3J1bnRpbWVfcG0gc3RydWN0dXJlCisgKgorICogVGhpcyBmdW5jdGlvbiByZS1lbmFibGVz IHRoZSBSUE0gYXNzZXJ0IGNoZWNrcyBhZnRlciBkaXNhYmxpbmcgdGhlbSB3aXRoCisgKiBkaXNh YmxlX3JwbV93YWtlcmVmX2Fzc2VydHMuIEl0J3MgbWVhbnQgdG8gYmUgdXNlZCBvbmx5IGluIHNw ZWNpYWwKKyAqIGNpcmN1bXN0YW5jZXMgb3RoZXJ3aXNlIGl0cyB1c2Ugc2hvdWxkIGJlIGF2b2lk ZWQuCisgKgorICogQW55IGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gbXVzdCBoYXZlIGEgc3ltbWV0 cmljIGNhbGwgdG8KKyAqIGRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cygpLgorICovCitzdGF0 aWMgaW5saW5lIHZvaWQKK2VuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKHN0cnVjdCBpbnRlbF9y dW50aW1lX3BtICpycG0pCit7CisJYXRvbWljX3N1YihJTlRFTF9SUE1fV0FLRUxPQ0tfQklBUyAr IDEsCisJCSAgICZycG0tPndha2VyZWZfY291bnQpOworfQorCiB2b2lkIGludGVsX3J1bnRpbWVf cG1faW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBp bnRlbF9ydW50aW1lX3BtX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Owogdm9pZCBpbnRlbF9ydW50aW1lX3BtX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29y ZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmgKaW5kZXggZDZhZjNkZTcw MTIxLi44MDRhMGZhYWNjOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3VuY29yZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5oCkBAIC0z Myw3ICszMyw3IEBACiAjaW5jbHVkZSAiaTkxNV9yZWcuaCIKIAogc3RydWN0IGRybV9pOTE1X3By aXZhdGU7Ci1zdHJ1Y3QgaTkxNV9ydW50aW1lX3BtOworc3RydWN0IGludGVsX3J1bnRpbWVfcG07 CiBzdHJ1Y3QgaW50ZWxfdW5jb3JlOwogCiBlbnVtIGZvcmNld2FrZV9kb21haW5faWQgewpAQCAt OTcsNyArOTcsNyBAQCBzdHJ1Y3QgaW50ZWxfZm9yY2V3YWtlX3JhbmdlIHsKIHN0cnVjdCBpbnRl bF91bmNvcmUgewogCXZvaWQgX19pb21lbSAqcmVnczsKIAotCXN0cnVjdCBpOTE1X3J1bnRpbWVf cG0gKnJwbTsKKwlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtOwogCiAJc3BpbmxvY2tfdCBs b2NrOyAvKiogbG9jayBpcyBhbHNvIHRha2VuIGluIGlycSBjb250ZXh0cy4gKi8KIAotLSAKMi4y MC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=