From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: [PATCH v3 7/8] drm/i915: update with_intel_runtime_pm to use the rpm structure Date: Thu, 13 Jun 2019 16:21:55 -0700 Message-ID: <20190613232156.34940-8-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 05C3C89310 for ; Thu, 13 Jun 2019 23:22:28 +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 TWF0Y2hpbmcgdGhlIHVuZGVybHlpbmcgZ2V0L3B1dCBmdW5jdGlvbnMuCgpTaWduZWQtb2ZmLWJ5 OiBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29t PgpDYzogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMgIHwgIDggKysrLS0tLQogLi4uL2RybS9pOTE1L2dl bS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jIHwgIDYgKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYyAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9yZXNldC5jICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Qvc2VsZnRlc3RfcmVzZXQuYyAgICAgIHwgIDIgKy0KIC4uLi9ncHUvZHJtL2k5MTUvZ3Qv c2VsZnRlc3Rfd29ya2Fyb3VuZHMuYyAgICB8ICA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jICAgICAgICAgICB8IDI0ICsrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICAgICAgfCAgOCArKystLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BtdS5jICAgICAgICAgICAgICAgfCAgMyArKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYyAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9nLmMgICAgICAgICAgfCAgNiArKy0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAgICAgICAgfCAgOCArKystLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmggICAgICAgfCAxMiArKysrKy0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5jICAgICAgICAgICAgICAgfCAgMiArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgICAgICAgICAgIHwgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbS5jICAgICB8ICA2ICsrLS0tCiAuLi4v Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ldmljdC5jICAgfCAgMiArLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfcmVxdWVzdC5jIHwgIDIgKy0KIDIxIGZpbGVz IGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaHJpbmtlci5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMKaW5kZXggMTNmZjA1NTY2YTBhLi5h NTIxZjIzYzE4YWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9zaHJpbmtlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaHJp bmtlci5jCkBAIC0yOTcsNyArMjk3LDcgQEAgdW5zaWduZWQgbG9uZyBpOTE1X2dlbV9zaHJpbmtf YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWludGVsX3dha2VyZWZfdCB3YWtl cmVmOwogCXVuc2lnbmVkIGxvbmcgZnJlZWQgPSAwOwogCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3Bt KGk5MTUsIHdha2VyZWYpIHsKKwl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVf cG0sIHdha2VyZWYpIHsKIAkJZnJlZWQgPSBpOTE1X2dlbV9zaHJpbmsoaTkxNSwgLTFVTCwgTlVM TCwKIAkJCQkJSTkxNV9TSFJJTktfQk9VTkQgfAogCQkJCQlJOTE1X1NIUklOS19VTkJPVU5EIHwK QEAgLTM1OCw3ICszNTgsNyBAQCBpOTE1X2dlbV9zaHJpbmtlcl9zY2FuKHN0cnVjdCBzaHJpbmtl ciAqc2hyaW5rZXIsIHN0cnVjdCBzaHJpbmtfY29udHJvbCAqc2MpCiAJaWYgKHNjLT5ucl9zY2Fu bmVkIDwgc2MtPm5yX3RvX3NjYW4gJiYgY3VycmVudF9pc19rc3dhcGQoKSkgewogCQlpbnRlbF93 YWtlcmVmX3Qgd2FrZXJlZjsKIAotCQl3aXRoX2ludGVsX3J1bnRpbWVfcG0oaTkxNSwgd2FrZXJl ZikgeworCQl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYp IHsKIAkJCWZyZWVkICs9IGk5MTVfZ2VtX3NocmluayhpOTE1LAogCQkJCQkJIHNjLT5ucl90b19z Y2FuIC0gc2MtPm5yX3NjYW5uZWQsCiAJCQkJCQkgJnNjLT5ucl9zY2FubmVkLApAQCAtMzg1LDcg KzM4NSw3IEBAIGk5MTVfZ2VtX3Nocmlua2VyX29vbShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5i LCB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpwdHIpCiAJdW5zaWduZWQgbG9uZyBmbGFnczsK IAogCWZyZWVkX3BhZ2VzID0gMDsKLQl3aXRoX2ludGVsX3J1bnRpbWVfcG0oaTkxNSwgd2FrZXJl ZikKKwl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpCiAJ CWZyZWVkX3BhZ2VzICs9IGk5MTVfZ2VtX3NocmluayhpOTE1LCAtMVVMLCBOVUxMLAogCQkJCQkg ICAgICAgSTkxNV9TSFJJTktfQk9VTkQgfAogCQkJCQkgICAgICAgSTkxNV9TSFJJTktfVU5CT1VO RCB8CkBAIC00MzMsNyArNDMzLDcgQEAgaTkxNV9nZW1fc2hyaW5rZXJfdm1hcChzdHJ1Y3Qgbm90 aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpwdHIKIAkJCQkgICBN QVhfU0NIRURVTEVfVElNRU9VVCkpCiAJCWdvdG8gb3V0OwogCi0Jd2l0aF9pbnRlbF9ydW50aW1l X3BtKGk5MTUsIHdha2VyZWYpCisJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1l X3BtLCB3YWtlcmVmKQogCQlmcmVlZF9wYWdlcyArPSBpOTE1X2dlbV9zaHJpbmsoaTkxNSwgLTFV TCwgTlVMTCwKIAkJCQkJICAgICAgIEk5MTVfU0hSSU5LX0JPVU5EIHwKIAkJCQkJICAgICAgIEk5 MTVfU0hSSU5LX1VOQk9VTkQgfApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v c2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCA4NGI4M2IyMTViM2QuLjg3MTcxMTFj MmY0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1 X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9p OTE1X2dlbV9jb250ZXh0LmMKQEAgLTUzMyw3ICs1MzMsNyBAQCBzdGF0aWMgaW50IGlndF9jdHhf ZXhlYyh2b2lkICphcmcpCiAJCQkJfQogCQkJfQogCi0JCQl3aXRoX2ludGVsX3J1bnRpbWVfcG0o aTkxNSwgd2FrZXJlZikKKwkJCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmaTkxNS0+cnVudGltZV9w bSwgd2FrZXJlZikKIAkJCQllcnIgPSBncHVfZmlsbChvYmosIGN0eCwgZW5naW5lLCBkdyk7CiAJ CQlpZiAoZXJyKSB7CiAJCQkJcHJfZXJyKCJGYWlsZWQgdG8gZmlsbCBkd29yZCAlbHUgWyVsdS8l bHVdIHdpdGggZ3B1ICglcykgaW4gY3R4ICV1IFtmdWxsLXBwZ3R0PyAlc10sIGVycj0lZFxuIiwK QEAgLTY1Myw3ICs2NTMsNyBAQCBzdGF0aWMgaW50IGlndF9zaGFyZWRfY3R4X2V4ZWModm9pZCAq YXJnKQogCQkJfQogCiAJCQllcnIgPSAwOwotCQkJd2l0aF9pbnRlbF9ydW50aW1lX3BtKGk5MTUs IHdha2VyZWYpCisJCQl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0sIHdh a2VyZWYpCiAJCQkJZXJyID0gZ3B1X2ZpbGwob2JqLCBjdHgsIGVuZ2luZSwgZHcpOwogCQkJaWYg KGVycikgewogCQkJCXByX2VycigiRmFpbGVkIHRvIGZpbGwgZHdvcmQgJWx1IFslbHUvJWx1XSB3 aXRoIGdwdSAoJXMpIGluIGN0eCAldSBbZnVsbC1wcGd0dD8gJXNdLCBlcnI9JWRcbiIsCkBAIC0x MjM2LDcgKzEyMzYsNyBAQCBzdGF0aWMgaW50IGlndF9jdHhfcmVhZG9ubHkodm9pZCAqYXJnKQog CQkJfQogCiAJCQllcnIgPSAwOwotCQkJd2l0aF9pbnRlbF9ydW50aW1lX3BtKGk5MTUsIHdha2Vy ZWYpCisJCQl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYp CiAJCQkJZXJyID0gZ3B1X2ZpbGwob2JqLCBjdHgsIGVuZ2luZSwgZHcpOwogCQkJaWYgKGVycikg ewogCQkJCXByX2VycigiRmFpbGVkIHRvIGZpbGwgZHdvcmQgJWx1IFslbHUvJWx1XSB3aXRoIGdw dSAoJXMpIGluIGN0eCAldSBbZnVsbC1wcGd0dD8gJXNdLCBlcnI9JWRcbiIsCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMKaW5kZXggYzc4ZWMwYjU4ZTc3Li4yODVlODY5NzEz ZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMKQEAgLTU0LDcgKzU0 LDcgQEAgaW50IF9faW50ZWxfY29udGV4dF9kb19waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNl KQogCQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAogCQllcnIgPSAwOwotCQl3aXRoX2ludGVs X3J1bnRpbWVfcG0oY2UtPmVuZ2luZS0+aTkxNSwgd2FrZXJlZikKKwkJd2l0aF9pbnRlbF9ydW50 aW1lX3BtKCZjZS0+ZW5naW5lLT5pOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQogCQkJZXJyID0g Y2UtPm9wcy0+cGluKGNlKTsKIAkJaWYgKGVycikKIAkJCWdvdG8gZXJyOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX3Jlc2V0LmMKaW5kZXggODJmMTM4ODUwOTc0Li5mOTc3YjY3OGRmMDcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwpAQCAtODUxLDcgKzg1MSw3IEBAIHZv aWQgaTkxNV9nZW1fc2V0X3dlZGdlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlp bnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAogCW11dGV4X2xvY2soJmVycm9yLT53ZWRnZV9tdXRl eCk7Ci0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKGk5MTUsIHdha2VyZWYpCisJd2l0aF9pbnRlbF9y dW50aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQogCQlfX2k5MTVfZ2VtX3NldF93 ZWRnZWQoaTkxNSk7CiAJbXV0ZXhfdW5sb2NrKCZlcnJvci0+d2VkZ2VfbXV0ZXgpOwogfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfcmVzZXQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3Jlc2V0LmMKaW5kZXggOTFmMDM0OTg4MmZjLi44 OWRhOWU3Y2MxYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0 X3Jlc2V0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfcmVzZXQuYwpA QCAtMTExLDcgKzExMSw3IEBAIGludCBpbnRlbF9yZXNldF9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlpZiAoaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChpOTE1 KSkKIAkJcmV0dXJuIC1FSU87IC8qIHdlJ3JlIGxvbmcgcGFzdCBob3BlIG9mIGEgc3VjY2Vzc2Z1 bCByZXNldCAqLwogCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKGk5MTUsIHdha2VyZWYpCisJd2l0 aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQogCQllcnIgPSBp OTE1X3N1YnRlc3RzKHRlc3RzLCBpOTE1KTsKIAogCXJldHVybiBlcnI7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93b3JrYXJvdW5kcy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3VuZHMuYwppbmRleCBmMWQyNzM0OGIzYTcu LmIzOWQzY2JmNjkyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRl c3Rfd29ya2Fyb3VuZHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93 b3JrYXJvdW5kcy5jCkBAIC0yNTYsNyArMjU2LDcgQEAgc3dpdGNoX3RvX3NjcmF0Y2hfY29udGV4 dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJR0VNX0JVR19PTihpOTE1X2dlbV9j b250ZXh0X2lzX2Jhbm5hYmxlKGN0eCkpOwogCiAJcnEgPSBFUlJfUFRSKC1FTk9ERVYpOwotCXdp dGhfaW50ZWxfcnVudGltZV9wbShlbmdpbmUtPmk5MTUsIHdha2VyZWYpCisJd2l0aF9pbnRlbF9y dW50aW1lX3BtKCZlbmdpbmUtPmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpCiAJCXJxID0gaWd0 X3NwaW5uZXJfY3JlYXRlX3JlcXVlc3Qoc3BpbiwgY3R4LCBlbmdpbmUsIE1JX05PT1ApOwogCiAJ a2VybmVsX2NvbnRleHRfY2xvc2UoY3R4KTsKQEAgLTMxMiw3ICszMTIsNyBAQCBzdGF0aWMgaW50 IGNoZWNrX3doaXRlbGlzdF9hY3Jvc3NfcmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLAogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwogCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKGk5 MTUsIHdha2VyZWYpCisJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3 YWtlcmVmKQogCQllcnIgPSByZXNldChlbmdpbmUpOwogCiAJaWd0X3NwaW5uZXJfZW5kKCZzcGlu KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggNWNhNDExNjVmYjc4Li5mNTg0 ODY4MjA4MjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC03NjksNyArNzY5 LDcgQEAgc3RhdGljIGludCBpOTE1X2dwdV9pbmZvX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwg c3RydWN0IGZpbGUgKmZpbGUpCiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAKIAlncHUgPSBO VUxMOwotCXdpdGhfaW50ZWxfcnVudGltZV9wbShpOTE1LCB3YWtlcmVmKQorCXdpdGhfaW50ZWxf cnVudGltZV9wbSgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZikKIAkJZ3B1ID0gaTkxNV9jYXB0 dXJlX2dwdV9zdGF0ZShpOTE1KTsKIAlpZiAoSVNfRVJSKGdwdSkpCiAJCXJldHVybiBQVFJfRVJS KGdwdSk7CkBAIC0xMDk3LDcgKzEwOTcsNyBAQCBzdGF0aWMgaW50IGk5MTVfaGFuZ2NoZWNrX2lu Zm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJCXJldHVybiAwOwogCX0KIAot CXdpdGhfaW50ZWxfcnVudGltZV9wbShkZXZfcHJpdiwgd2FrZXJlZikgeworCXdpdGhfaW50ZWxf cnVudGltZV9wbSgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpIHsKIAkJZm9yX2VhY2hf ZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKQogCQkJYWN0aGRbaWRdID0gaW50ZWxfZW5naW5l X2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwogCkBAIC0xMzU3LDcgKzEzNTcsNyBAQCBzdGF0aWMg aW50IGk5MTVfZHJwY19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCWlu dGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCWludCBlcnIgPSAtRU5PREVWOwogCi0Jd2l0aF9pbnRl bF9ydW50aW1lX3BtKGRldl9wcml2LCB3YWtlcmVmKSB7CisJd2l0aF9pbnRlbF9ydW50aW1lX3Bt KCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZikgewogCQlpZiAoSVNfVkFMTEVZVklFVyhk ZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCiAJCQllcnIgPSB2bHZfZHJwY19p bmZvKG0pOwogCQllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYpCkBAIC0xNTI0LDcg KzE1MjQsNyBAQCBzdGF0aWMgaW50IGk5MTVfZW1vbl9zdGF0dXMoc3RydWN0IHNlcV9maWxlICpt LCB2b2lkICp1bnVzZWQpCiAJaWYgKCFJU19HRU4oaTkxNSwgNSkpCiAJCXJldHVybiAtRU5PREVW OwogCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKGk5MTUsIHdha2VyZWYpIHsKKwl3aXRoX2ludGVs X3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpIHsKIAkJdW5zaWduZWQgbG9u ZyB0ZW1wLCBjaGlwc2V0LCBnZng7CiAKIAkJdGVtcCA9IGk5MTVfbWNoX3ZhbChpOTE1KTsKQEAg LTE4MTYsNyArMTgxNiw3IEBAIHN0YXRpYyBpbnQgaTkxNV9ycHNfYm9vc3RfaW5mbyhzdHJ1Y3Qg c2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJdTMyIGFjdF9mcmVxID0gcnBzLT5jdXJfZnJlcTsK IAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAotCXdpdGhfaW50ZWxfcnVudGltZV9wbV9pZl9p bl91c2UoZGV2X3ByaXYsIHdha2VyZWYpIHsKKwl3aXRoX2ludGVsX3J1bnRpbWVfcG1faWZfaW5f dXNlKCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZikgewogCQlpZiAoSVNfVkFMTEVZVklF VyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKIAkJCXZsdl9wdW5pdF9n ZXQoZGV2X3ByaXYpOwogCQkJYWN0X2ZyZXEgPSB2bHZfcHVuaXRfcmVhZChkZXZfcHJpdiwKQEAg LTE4OTksNyArMTg5OSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9odWNfbG9hZF9zdGF0dXNfaW5mbyhz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJcCA9IGRybV9zZXFfZmlsZV9wcmludGVy KG0pOwogCWludGVsX3VjX2Z3X2R1bXAoJmRldl9wcml2LT5odWMuZncsICZwKTsKIAotCXdpdGhf aW50ZWxfcnVudGltZV9wbShkZXZfcHJpdiwgd2FrZXJlZikKKwl3aXRoX2ludGVsX3J1bnRpbWVf cG0oJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKQogCQlzZXFfcHJpbnRmKG0sICJcbkh1 QyBzdGF0dXMgMHglMDh4OlxuIiwgSTkxNV9SRUFEKEhVQ19TVEFUVVMyKSk7CiAKIAlyZXR1cm4g MDsKQEAgLTE5MTcsNyArMTkxNyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9ndWNfbG9hZF9zdGF0dXNf aW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJcCA9IGRybV9zZXFfZmlsZV9w cmludGVyKG0pOwogCWludGVsX3VjX2Z3X2R1bXAoJmRldl9wcml2LT5ndWMuZncsICZwKTsKIAot CXdpdGhfaW50ZWxfcnVudGltZV9wbShkZXZfcHJpdiwgd2FrZXJlZikgeworCXdpdGhfaW50ZWxf cnVudGltZV9wbSgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpIHsKIAkJdTMyIHRtcCA9 IEk5MTVfUkVBRChHVUNfU1RBVFVTKTsKIAkJdTMyIGk7CiAKQEAgLTI0MjMsNyArMjQyMyw3IEBA IHN0YXRpYyBpbnQgaTkxNV9lbmVyZ3lfdUooc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRh KQogCQlyZXR1cm4gLUVOT0RFVjsKIAogCXVuaXRzID0gKHBvd2VyICYgMHgxZjAwKSA+PiA4Owot CXdpdGhfaW50ZWxfcnVudGltZV9wbShkZXZfcHJpdiwgd2FrZXJlZikKKwl3aXRoX2ludGVsX3J1 bnRpbWVfcG0oJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKQogCQlwb3dlciA9IEk5MTVf UkVBRChNQ0hfU0VDUF9OUkdfU1RUUyk7CiAKIAlwb3dlciA9ICgxMDAwMDAwICogcG93ZXIpID4+ IHVuaXRzOyAvKiBjb252ZXJ0IHRvIHVKICovCkBAIC0zMDA5LDcgKzMwMDksNyBAQCBzdGF0aWMg c3NpemVfdCBpOTE1X2lwY19zdGF0dXNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNo YXIgX191c2VyICp1YnVmLAogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCi0Jd2l0aF9p bnRlbF9ydW50aW1lX3BtKGRldl9wcml2LCB3YWtlcmVmKSB7CisJd2l0aF9pbnRlbF9ydW50aW1l X3BtKCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZikgewogCQlpZiAoIWRldl9wcml2LT5p cGNfZW5hYmxlZCAmJiBlbmFibGUpCiAJCQlEUk1fSU5GTygiRW5hYmxpbmcgSVBDOiBXTSB3aWxs IGJlIHByb3BlciBvbmx5IGFmdGVyIG5leHQgY29tbWl0XG4iKTsKIAkJZGV2X3ByaXYtPndtLmRp c3RydXN0X2Jpb3Nfd20gPSB0cnVlOwpAQCAtMzc2MSw3ICszNzYxLDcgQEAgaTkxNV9jYWNoZV9z aGFyaW5nX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbCkKIAlpZiAoIShJU19HRU5fUkFOR0UoZGV2 X3ByaXYsIDYsIDcpKSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQl3aXRoX2ludGVsX3J1bnRpbWVf cG0oZGV2X3ByaXYsIHdha2VyZWYpCisJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZkZXZfcHJpdi0+ cnVudGltZV9wbSwgd2FrZXJlZikKIAkJc25wY3IgPSBJOTE1X1JFQUQoR0VONl9NQkNVTklUX1NO UENSKTsKIAogCSp2YWwgPSAoc25wY3IgJiBHRU42X01CQ19TTlBDUl9NQVNLKSA+PiBHRU42X01C Q19TTlBDUl9TSElGVDsKQEAgLTM3ODIsNyArMzc4Miw3IEBAIGk5MTVfY2FjaGVfc2hhcmluZ19z ZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlEUk1fREVCVUdf RFJJVkVSKCJNYW51YWxseSBzZXR0aW5nIHVuY29yZSBzaGFyaW5nIHRvICVsbHVcbiIsIHZhbCk7 Ci0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKGRldl9wcml2LCB3YWtlcmVmKSB7CisJd2l0aF9pbnRl bF9ydW50aW1lX3BtKCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZikgewogCQl1MzIgc25w Y3I7CiAKIAkJLyogVXBkYXRlIHRoZSBjYWNoZSBzaGFyaW5nIHBvbGljeSBoZXJlIGFzIHdlbGwg Ki8KQEAgLTQwMjgsNyArNDAyOCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9zc2V1X3N0YXR1cyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAlzc2V1Lm1heF9ldXNfcGVyX3N1YnNsaWNl ID0KIAkJUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5tYXhfZXVzX3Blcl9zdWJzbGljZTsK IAotCXdpdGhfaW50ZWxfcnVudGltZV9wbShkZXZfcHJpdiwgd2FrZXJlZikgeworCXdpdGhfaW50 ZWxfcnVudGltZV9wbSgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpIHsKIAkJaWYgKElT X0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQkJY2hlcnJ5dmlld19zc2V1X2RldmljZV9zdGF0dXMo ZGV2X3ByaXYsICZzc2V1KTsKIAkJZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDkzM2Q4OTJmMDY0Yi4uOTc2YTRkMmIyMzg5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lkIGk5MTVfZ2VtX2Zs dXNoX2dndHRfd3JpdGVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCWk5 MTVfZ2VtX2NoaXBzZXRfZmx1c2goZGV2X3ByaXYpOwogCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3Bt KGRldl9wcml2LCB3YWtlcmVmKSB7CisJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZkZXZfcHJpdi0+ cnVudGltZV9wbSwgd2FrZXJlZikgewogCQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAm ZGV2X3ByaXYtPnVuY29yZTsKIAogCQlzcGluX2xvY2tfaXJxKCZ1bmNvcmUtPmxvY2spOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCAwNTdlYTgzMDNiY2UuLjI3OGRlMDRhOTZh YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTI2MTksNyArMjYxOSw3IEBA IHN0YXRpYyBpbnQgZ2d0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAlpZiAoaTkx NV9nZW1fb2JqZWN0X2lzX3JlYWRvbmx5KG9iaikpCiAJCXB0ZV9mbGFncyB8PSBQVEVfUkVBRF9P TkxZOwogCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKGk5MTUsIHdha2VyZWYpCisJd2l0aF9pbnRl bF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQogCQl2bWEtPnZtLT5pbnNl cnRfZW50cmllcyh2bWEtPnZtLCB2bWEsIGNhY2hlX2xldmVsLCBwdGVfZmxhZ3MpOwogCiAJdm1h LT5wYWdlX3NpemVzLmd0dCA9IEk5MTVfR1RUX1BBR0VfU0laRTsKQEAgLTI2MzksNyArMjYzOSw3 IEBAIHN0YXRpYyB2b2lkIGdndHRfdW5iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHZtYS0+dm0tPmk5MTU7CiAJaW50ZWxfd2Fr ZXJlZl90IHdha2VyZWY7CiAKLQl3aXRoX2ludGVsX3J1bnRpbWVfcG0oaTkxNSwgd2FrZXJlZikK Kwl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpCiAJCXZt YS0+dm0tPmNsZWFyX3JhbmdlKHZtYS0+dm0sIHZtYS0+bm9kZS5zdGFydCwgdm1hLT5zaXplKTsK IH0KIApAQCAtMjY3NCw3ICsyNjc0LDcgQEAgc3RhdGljIGludCBhbGlhc2luZ19ndHRfYmluZF92 bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJaWYgKGZsYWdzICYgSTkxNV9WTUFfR0xPQkFMX0JJ TkQpIHsKIAkJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAKLQkJd2l0aF9pbnRlbF9ydW50aW1l X3BtKGk5MTUsIHdha2VyZWYpIHsKKwkJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50 aW1lX3BtLCB3YWtlcmVmKSB7CiAJCQl2bWEtPnZtLT5pbnNlcnRfZW50cmllcyh2bWEtPnZtLCB2 bWEsCiAJCQkJCQljYWNoZV9sZXZlbCwgcHRlX2ZsYWdzKTsKIAkJfQpAQCAtMjY5MSw3ICsyNjkx LDcgQEAgc3RhdGljIHZvaWQgYWxpYXNpbmdfZ3R0X3VuYmluZF92bWEoc3RydWN0IGk5MTVfdm1h ICp2bWEpCiAJCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gdm1hLT52bTsKIAkJaW50 ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAKLQkJd2l0aF9pbnRlbF9ydW50aW1lX3BtKGk5MTUsIHdh a2VyZWYpCisJCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJl ZikKIAkJCXZtLT5jbGVhcl9yYW5nZSh2bSwgdm1hLT5ub2RlLnN0YXJ0LCB2bWEtPnNpemUpOwog CX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcG11LmMKaW5kZXggNTA3ZmNkYjBmOTdlLi44ZmU0NmVlOTIw YTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcG11LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuYwpAQCAtMjI3LDcgKzIyNyw4IEBAIGZyZXF1ZW5j eV9zYW1wbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1bnNpZ25lZCBpbnQg cGVyaW9kX25zKQogCQlpZiAoZGV2X3ByaXYtPmd0LmF3YWtlKSB7CiAJCQlpbnRlbF93YWtlcmVm X3Qgd2FrZXJlZjsKIAotCQkJd2l0aF9pbnRlbF9ydW50aW1lX3BtX2lmX2luX3VzZShkZXZfcHJp diwgd2FrZXJlZikgeworCQkJd2l0aF9pbnRlbF9ydW50aW1lX3BtX2lmX2luX3VzZSgmZGV2X3By aXYtPnJ1bnRpbWVfcG0sCisJCQkJCQkJd2FrZXJlZikgewogCQkJCXZhbCA9IGludGVsX3VuY29y ZV9yZWFkX25vdHJhY2UoJmRldl9wcml2LT51bmNvcmUsCiAJCQkJCQkJCUdFTjZfUlBTVEFUMSk7 CiAJCQkJdmFsID0gaW50ZWxfZ2V0X2NhZ2YoZGV2X3ByaXYsIHZhbCk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3N5c2ZzLmMKaW5kZXggNzVhY2JmNjg2ZWM5Li5lY2FjMWMzODYxMDkgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3N5c2ZzLmMKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIHUzMiBjYWxjX3Jlc2lk ZW5jeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaW50ZWxfd2FrZXJlZl90 IHdha2VyZWY7CiAJdTY0IHJlcyA9IDA7CiAKLQl3aXRoX2ludGVsX3J1bnRpbWVfcG0oZGV2X3By aXYsIHdha2VyZWYpCisJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZkZXZfcHJpdi0+cnVudGltZV9w bSwgd2FrZXJlZikKIAkJcmVzID0gaW50ZWxfcmM2X3Jlc2lkZW5jeV91cyhkZXZfcHJpdiwgcmVn KTsKIAogCXJldHVybiBESVZfUk9VTkRfQ0xPU0VTVF9VTEwocmVzLCAxMDAwKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2cuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2d1Y19sb2cuYwppbmRleCA2N2VhZGM4MmMzOTYuLjU0YmUwZWFiMjNhZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvZy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2cuYwpAQCAtNDQ1LDcgKzQ0NSw3IEBAIHN0 YXRpYyB2b2lkIGd1Y19sb2dfY2FwdHVyZV9sb2dzKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cp CiAJICogR2VuZXJhbGx5IGRldmljZSBpcyBleHBlY3RlZCB0byBiZSBhY3RpdmUgb25seSBhdCB0 aGlzCiAJICogdGltZSwgc28gZ2V0L3B1dCBzaG91bGQgYmUgcmVhbGx5IHF1aWNrLgogCSAqLwot CXdpdGhfaW50ZWxfcnVudGltZV9wbShkZXZfcHJpdiwgd2FrZXJlZikKKwl3aXRoX2ludGVsX3J1 bnRpbWVfcG0oJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKQogCQlndWNfYWN0aW9uX2Zs dXNoX2xvZ19jb21wbGV0ZShndWMpOwogfQogCkBAIC01MjQsNyArNTI0LDcgQEAgaW50IGludGVs X2d1Y19sb2dfc2V0X2xldmVsKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2csIHUzMiBsZXZlbCkK IAlpZiAobG9nLT5sZXZlbCA9PSBsZXZlbCkKIAkJZ290byBvdXRfdW5sb2NrOwogCi0Jd2l0aF9p bnRlbF9ydW50aW1lX3BtKGRldl9wcml2LCB3YWtlcmVmKQorCXdpdGhfaW50ZWxfcnVudGltZV9w bSgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpCiAJCXJldCA9IGd1Y19hY3Rpb25fY29u dHJvbF9sb2coZ3VjLAogCQkJCQkgICAgIEdVQ19MT0dfTEVWRUxfSVNfVkVSQk9TRShsZXZlbCks CiAJCQkJCSAgICAgR1VDX0xPR19MRVZFTF9JU19FTkFCTEVEKGxldmVsKSwKQEAgLTYwOSw3ICs2 MDksNyBAQCB2b2lkIGludGVsX2d1Y19sb2dfcmVsYXlfZmx1c2goc3RydWN0IGludGVsX2d1Y19s b2cgKmxvZykKIAkgKi8KIAlmbHVzaF93b3JrKCZsb2ctPnJlbGF5LmZsdXNoX3dvcmspOwogCi0J d2l0aF9pbnRlbF9ydW50aW1lX3BtKGk5MTUsIHdha2VyZWYpCisJd2l0aF9pbnRlbF9ydW50aW1l X3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQogCQlndWNfYWN0aW9uX2ZsdXNoX2xvZyhn dWMpOwogCiAJLyogR3VDIHdvdWxkIGhhdmUgdXBkYXRlZCBsb2cgYnVmZmVyIGJ5IG5vdywgc28g Y2FwdHVyZSBpdCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWMuYwppbmRleCA4NTcyYTA1ODhlZmMu LmZiNmY2OTNkM2NhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVj LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMKQEAgLTE3NCw3ICsxNzQs NyBAQCBpbnQgaW50ZWxfaHVjX2NoZWNrX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCiAJ aWYgKCFIQVNfSFVDKGRldl9wcml2KSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQl3aXRoX2ludGVs X3J1bnRpbWVfcG0oZGV2X3ByaXYsIHdha2VyZWYpCisJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZk ZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZikKIAkJc3RhdHVzID0gKEk5MTVfUkVBRChodWMt PnN0YXR1cy5yZWcpICYgaHVjLT5zdGF0dXMubWFzaykgPT0KIAkJCSAgaHVjLT5zdGF0dXMudmFs dWU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCmluZGV4IDljZDRlMzdlMzkzNC4uMzlk NzQyMDk0MDY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKQEAgLTEyODgsNyArMTI4 OCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYmFja2xpZ2h0X2RldmljZV9nZXRfYnJpZ2h0bmVzcyhz dHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmQpCiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJ aW50IHJldCA9IDA7CiAKLQl3aXRoX2ludGVsX3J1bnRpbWVfcG0oZGV2X3ByaXYsIHdha2VyZWYp IHsKKwl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVm KSB7CiAJCXUzMiBod19sZXZlbDsKIAogCQlkcm1fbW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29u ZmlnLmNvbm5lY3Rpb25fbXV0ZXgsIE5VTEwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXgg MmM3ZjNlYmMwMTE3Li5iMDNlMmE0NjdlOGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAt ODE2Nyw3ICs4MTY3LDcgQEAgdW5zaWduZWQgbG9uZyBpOTE1X2NoaXBzZXRfdmFsKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpZiAoIUlTX0dFTihkZXZfcHJpdiwgNSkpCiAJ CXJldHVybiAwOwogCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKGRldl9wcml2LCB3YWtlcmVmKSB7 CisJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZikg ewogCQlzcGluX2xvY2tfaXJxKCZtY2hkZXZfbG9jayk7CiAJCXZhbCA9IF9faTkxNV9jaGlwc2V0 X3ZhbChkZXZfcHJpdik7CiAJCXNwaW5fdW5sb2NrX2lycSgmbWNoZGV2X2xvY2spOwpAQCAtODI1 Myw3ICs4MjUzLDcgQEAgdm9pZCBpOTE1X3VwZGF0ZV9nZnhfdmFsKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAlpZiAoIUlTX0dFTihkZXZfcHJpdiwgNSkpCiAJCXJldHVybjsK IAotCXdpdGhfaW50ZWxfcnVudGltZV9wbShkZXZfcHJpdiwgd2FrZXJlZikgeworCXdpdGhfaW50 ZWxfcnVudGltZV9wbSgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpIHsKIAkJc3Bpbl9s b2NrX2lycSgmbWNoZGV2X2xvY2spOwogCQlfX2k5MTVfdXBkYXRlX2dmeF92YWwoZGV2X3ByaXYp OwogCQlzcGluX3VubG9ja19pcnEoJm1jaGRldl9sb2NrKTsKQEAgLTgzMDUsNyArODMwNSw3IEBA IHVuc2lnbmVkIGxvbmcgaTkxNV9nZnhfdmFsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAlpZiAoIUlTX0dFTihkZXZfcHJpdiwgNSkpCiAJCXJldHVybiAwOwogCi0Jd2l0aF9p bnRlbF9ydW50aW1lX3BtKGRldl9wcml2LCB3YWtlcmVmKSB7CisJd2l0aF9pbnRlbF9ydW50aW1l X3BtKCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZikgewogCQlzcGluX2xvY2tfaXJxKCZt Y2hkZXZfbG9jayk7CiAJCXZhbCA9IF9faTkxNV9nZnhfdmFsKGRldl9wcml2KTsKIAkJc3Bpbl91 bmxvY2tfaXJxKCZtY2hkZXZfbG9jayk7CkBAIC04MzQ2LDcgKzgzNDYsNyBAQCB1bnNpZ25lZCBs b25nIGk5MTVfcmVhZF9tY2hfdmFsKHZvaWQpCiAJaWYgKCFpOTE1KQogCQlyZXR1cm4gMDsKIAot CXdpdGhfaW50ZWxfcnVudGltZV9wbShpOTE1LCB3YWtlcmVmKSB7CisJd2l0aF9pbnRlbF9ydW50 aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKSB7CiAJCXNwaW5fbG9ja19pcnEoJm1j aGRldl9sb2NrKTsKIAkJY2hpcHNldF92YWwgPSBfX2k5MTVfY2hpcHNldF92YWwoaTkxNSk7CiAJ CWdyYXBoaWNzX3ZhbCA9IF9faTkxNV9nZnhfdmFsKGk5MTUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcnVudGltZV9wbS5oCmluZGV4IGY2NDQ1Y2E1YmJmMS4uZjJkNjI5OWE4MTYxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5oCkBAIC0xNzksMTMgKzE3OSwxMyBA QCBpbnRlbF93YWtlcmVmX3QgaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKHN0cnVjdCBp bnRlbF9ydW50aW1lX3BtICpycG0pOwogaW50ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1f Z2V0X25vcmVzdW1lKHN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0pOwogaW50ZWxfd2FrZXJl Zl90IGludGVsX3J1bnRpbWVfcG1fZ2V0X3JhdyhzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBt KTsKIAotI2RlZmluZSB3aXRoX2ludGVsX3J1bnRpbWVfcG0oaTkxNSwgd2YpIFwKLQlmb3IgKCh3 ZikgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmKGk5MTUpLT5ydW50aW1lX3BtKTsgKHdmKTsgXAot CSAgICAgaW50ZWxfcnVudGltZV9wbV9wdXQoJihpOTE1KS0+cnVudGltZV9wbSwgKHdmKSksICh3 ZikgPSAwKQorI2RlZmluZSB3aXRoX2ludGVsX3J1bnRpbWVfcG0ocnBtLCB3ZikgXAorCWZvciAo KHdmKSA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KHJwbSk7ICh3Zik7IFwKKwkgICAgIGludGVsX3J1 bnRpbWVfcG1fcHV0KChycG0pLCAod2YpKSwgKHdmKSA9IDApCiAKLSNkZWZpbmUgd2l0aF9pbnRl bF9ydW50aW1lX3BtX2lmX2luX3VzZShpOTE1LCB3ZikgXAotCWZvciAoKHdmKSA9IGludGVsX3J1 bnRpbWVfcG1fZ2V0X2lmX2luX3VzZSgmKGk5MTUpLT5ydW50aW1lX3BtKTsgKHdmKTsgXAotCSAg ICAgaW50ZWxfcnVudGltZV9wbV9wdXQoJihpOTE1KS0+cnVudGltZV9wbSwgKHdmKSksICh3Zikg PSAwKQorI2RlZmluZSB3aXRoX2ludGVsX3J1bnRpbWVfcG1faWZfaW5fdXNlKHJwbSwgd2YpIFwK Kwlmb3IgKCh3ZikgPSBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UocnBtKTsgKHdmKTsg XAorCSAgICAgaW50ZWxfcnVudGltZV9wbV9wdXQoKHJwbSksICh3ZikpLCAod2YpID0gMCkKIAog dm9pZCBpbnRlbF9ydW50aW1lX3BtX3B1dF91bmNoZWNrZWQoc3RydWN0IGludGVsX3J1bnRpbWVf cG0gKnJwbSk7CiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfUlVOVElNRV9Q TSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5jCmluZGV4IGE4ZTdmMGJhN2MzYi4uYWU0NTY1MWFjNzNj IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmMKQEAgLTUzNyw3ICs1MzcsNyBAQCB2b2lkIGludGVs X3VjX3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJaWYgKCFpbnRlbF9n dWNfaXNfbG9hZGVkKGd1YykpCiAJCXJldHVybjsKIAotCXdpdGhfaW50ZWxfcnVudGltZV9wbShp OTE1LCB3YWtlcmVmKQorCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmaTkxNS0+cnVudGltZV9wbSwg d2FrZXJlZikKIAkJaW50ZWxfdWNfcnVudGltZV9zdXNwZW5kKGk5MTUpOwogfQogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3VuY29yZS5jCmluZGV4IDVlYjFkMTMwZmMyZS4uZGEzM2FhNjcyYzNkIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwpAQCAtMTcwMiw3ICsxNzAyLDcgQEAgaW50 IGk5MTVfcmVnX3JlYWRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCWZsYWdzID0g cmVnLT5vZmZzZXQgJiAoZW50cnktPnNpemUgLSAxKTsKIAotCXdpdGhfaW50ZWxfcnVudGltZV9w bShpOTE1LCB3YWtlcmVmKSB7CisJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1l X3BtLCB3YWtlcmVmKSB7CiAJCWlmIChlbnRyeS0+c2l6ZSA9PSA4ICYmIGZsYWdzID09IEk5MTVf UkVHX1JFQURfOEJfV0EpCiAJCQlyZWctPnZhbCA9IGludGVsX3VuY29yZV9yZWFkNjRfMngzMih1 bmNvcmUsCiAJCQkJCQkJICAgIGVudHJ5LT5vZmZzZXRfbGR3LApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaTkxNV9nZW0uYwppbmRleCAyM2E1NGRhNDdjYTUuLmM2YTAxYTZlODdmMSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtLmMKQEAgLTg4LDcgKzg4 LDcgQEAgc3RhdGljIHZvaWQgcG1fc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKIHsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAotCXdpdGhfaW50ZWxfcnVudGltZV9w bShpOTE1LCB3YWtlcmVmKSB7CisJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1l X3BtLCB3YWtlcmVmKSB7CiAJCWk5MTVfZ2VtX3N1c3BlbmRfZ3R0X21hcHBpbmdzKGk5MTUpOwog CQlpOTE1X2dlbV9zdXNwZW5kX2xhdGUoaTkxNSk7CiAJfQpAQCAtOTgsNyArOTgsNyBAQCBzdGF0 aWMgdm9pZCBwbV9oaWJlcm5hdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJ aW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAKLQl3aXRoX2ludGVsX3J1bnRpbWVfcG0oaTkxNSwg d2FrZXJlZikgeworCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmaTkxNS0+cnVudGltZV9wbSwgd2Fr ZXJlZikgewogCQlpOTE1X2dlbV9zdXNwZW5kX2d0dF9tYXBwaW5ncyhpOTE1KTsKIAogCQlpOTE1 X2dlbV9mcmVlemUoaTkxNSk7CkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIHZvaWQgcG1fcmVz dW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCSAqIEJvdGggc3VzcGVuZCBhbmQg aGliZXJuYXRlIGZvbGxvdyB0aGUgc2FtZSB3YWtldXAgcGF0aCBhbmQgYXNzdW1lCiAJICogdGhh dCBydW50aW1lLXBtIGp1c3Qgd29ya3MuCiAJICovCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKGk5 MTUsIHdha2VyZWYpIHsKKwl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0s IHdha2VyZWYpIHsKIAkJaW50ZWxfZ3Rfc2FuaXRpemUoaTkxNSwgZmFsc2UpOwogCQlpOTE1X2dl bV9zYW5pdGl6ZShpOTE1KTsKIAkJaTkxNV9nZW1fcmVzdW1lKGk5MTUpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2V2aWN0LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZXZpY3QuYwppbmRleCBlNWY2NzQ3NGRj YjQuLjhjNjkxOThjN2U0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2k5MTVfZ2VtX2V2aWN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2k5MTVfZ2VtX2V2aWN0LmMKQEAgLTUzOSw3ICs1MzksNyBAQCBpbnQgaTkxNV9nZW1fZXZpY3Rf bW9ja19zZWxmdGVzdHModm9pZCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAltdXRleF9sb2NrKCZp OTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQl3aXRoX2ludGVsX3J1bnRpbWVfcG0oaTkxNSwgd2Fr ZXJlZikKKwl3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYp CiAJCWVyciA9IGk5MTVfc3VidGVzdHModGVzdHMsIGk5MTUpOwogCiAJbXV0ZXhfdW5sb2NrKCZp OTE1LT5kcm0uc3RydWN0X211dGV4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L3NlbGZ0ZXN0cy9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9pOTE1X3JlcXVlc3QuYwppbmRleCBkZDRlNzJlYWZjNmMuLjNkZTI0ZjNkNGVkNSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfcmVxdWVzdC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3JlcXVlc3QuYwpAQCAtNTE0LDcg KzUxNCw3IEBAIGludCBpOTE1X3JlcXVlc3RfbW9ja19zZWxmdGVzdHModm9pZCkKIAlpZiAoIWk5 MTUpCiAJCXJldHVybiAtRU5PTUVNOwogCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKGk5MTUsIHdh a2VyZWYpCisJd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVm KQogCQllcnIgPSBpOTE1X3N1YnRlc3RzKHRlc3RzLCBpOTE1KTsKIAogCWRybV9kZXZfcHV0KCZp OTE1LT5kcm0pOwotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZng=