From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH 07/10] drm/i915: add support for checking if we hold an RPM reference Date: Tue, 15 Dec 2015 20:10:35 +0200 Message-ID: <1450203038-5150-8-git-send-email-imre.deak@intel.com> References: <1450203038-5150-1-git-send-email-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 819BF6E768 for ; Tue, 15 Dec 2015 10:10:52 -0800 (PST) In-Reply-To: <1450203038-5150-1-git-send-email-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 QXRtLCB3ZSBhc3NlcnQgdGhhdCB0aGUgZGV2aWNlIGlzIG5vdCBzdXNwZW5kZWQgdW50aWwgdGhl IHBvaW50IHdoZW4gdGhlCmRldmljZSBpcyB0cnVseSBwdXQgdG8gYSBzdXNwZW5kZWQgc3RhdGUu IFRoaXMgaXMgZmluZSwgYnV0IHdlIGNhbiBjYXRjaAptb3JlIHByb2JsZW1zIGlmIHdlIGNoZWNr IHRoYXQgUlBNIHJlZmNvdW50IGlzIG5vbi16ZXJvLiBBZnRlciB0aGF0IG9uZQpkcm9wcyB0byB6 ZXJvIHdlIHNob3VsZG4ndCBhY2Nlc3MgdGhlIGRldmljZSBhbnkgbW9yZSwgZXZlbiBpZiB0aGUg YWN0dWFsCmRldmljZSBzdXNwZW5kIG1heSBiZSBkZWxheWVkLiBDaGFuZ2UgYXNzZXJ0X3JwbV93 YWtlbG9ja19oZWxkKCkKYWNjb3JkaW5nbHkgdG8gY2hlY2sgZm9yIGEgbm9uLXplcm8gUlBNIHJl ZmNvdW50IGluIGFkZGl0aW9uIHRvIHRoZQpjdXJyZW50IGRldmljZS1ub3Qtc3VzcGVuZGVkIGNo ZWNrLgoKRm9yIHRoZSBuZXcgYXNzZXJ0cyB0byB3b3JrIHdlIG5lZWQgdG8gYW5ub3RhdGUgZXZl cnkgcGxhY2UgZXhwbGljaXRseSBpbgp0aGUgY29kZSB3aGVyZSB3ZSBleHBlY3QgdGhhdCB0aGUg ZGV2aWNlIGlzIHBvd2VyZWQuIFRoZSBwbGFjZXMgd2hlcmUgd2UKb25seSBhc3N1bWUgdGhpcywg YnV0IG1heSBub3QgaG9sZCBhbiBSUE0gcmVmZXJlbmNlOgotIGRyaXZlciBsb2FkCiAgV2UgYXNz dW1lIHRoZSBkZXZpY2UgdG8gYmUgcG93ZXJlZCB1bnRpbCB3ZSBlbmFibGUgUlBNLiBNYWtlIHRo aXMKICBleHBsaWNpdCBieSB0YWtpbmcgYW4gUlBNIHJlZmVyZW5jZSBhcm91bmQgdGhlIGxvYWQg ZnVuY3Rpb24uCi0gc3lzdGVtIGFuZCBydW50aW1lIHN1ZHBlbmQvcmVzdW1lIGhhbmRsZXJzCiAg VGhlc2UgaGFuZGxlcnMgYXJlIGNhbGxlZCB3aGVuIHRoZSBSUE0gcmVmZXJlbmNlIGJlY29tZXMg MCBhbmQga25vdyB0aGUKICBleGFjdCBwb2ludCBhZnRlciB3aGljaCB0aGUgZGV2aWNlIGNhbiBn ZXQgcG93ZXJlZCBvZmYuIERpc2FibGUgdGhlCiAgUlBNLXJlZmVyZW5jZS1oZWxkIGNoZWNrIGZv ciB0aGVpciBkdXJhdGlvbi4KLSB0aGUgSVJRLCBoYW5nY2hlY2sgYW5kIFJQUyB3b3JrIGhhbmRs ZXJzCiAgVGhlc2UgaGFuZGxlcnMgYXJlIGZsdXNoZWQgaW4gdGhlIHN5c3RlbS9ydW50aW1lIHN1 c3BlbmQgaGFuZGxlcgogIGJlZm9yZSB0aGUgZGV2aWNlIGlzIHBvd2VyZWQgb2ZmLCBzbyBpdCdz IGd1YXJhbnRlZWQgdGhhdCB0aGV5IHdvbid0CiAgcnVuIHdoaWxlIHRoZSBkZXZpY2UgaXMgcG93 ZXJlZCBvZmYgZXZlbiB0aG91Z2ggdGhleSBkb24ndCBob2xkIGFueQogIFJQTSByZWZlcmVuY2Uu IERpc2FibGUgdGhlIFJQTS1yZWZlcmVuY2UtaGVsZCBjaGVjayBmb3IgdGhlaXIgZHVyYXRpb24u CgpJbiBhbGwgdGhlc2UgY2FzZXMgd2Ugc3RpbGwgY2hlY2sgdGhhdCB0aGUgZGV2aWNlIGlzIG5v dCBzdXNwZW5kZWQuClRoZXNlIGV4cGxpY2l0IGFubm90YXRpb25zIGFsc28gaGF2ZSB0aGUgcG9z aXRpdmUgc2lkZSBlZmZlY3Qgb2YKZG9jdW1lbnRpbmcgb3VyIGFzc3VtcHRpb25zIGJldHRlci4K ClRoaXMgY2F1Z2h0IGFkZGl0aW9uYWwgV0FSTnMgZnJvbSB0aGUgYXRvbWljIG1vZGVzZXQgcGF0 aCwgdGhvc2Ugc2hvdWxkCmJlIGZpeGVkIHNlcGFyYXRlbHkuCgp2MjoKLSByZW1vdmUgdGhlIHJl ZHVuZGFudCBIQVNfUlVOVElNRV9QTSBjaGVjayAobW92ZWQgdG8gcGF0Y2ggMSkgKFZpbGxlKQp2 MzoKLSB1c2UgYSBuZXcgZGVkaWNhdGVkIFJQTSB3YWtlbG9jayByZWZjb3VudCB0byBhbHNvIGNh dGNoIGNhc2VzIHdoZXJlCiAgb3VyIG93biBSUE0gZ2V0L3B1dCBmdW5jdGlvbnMgd2VyZSBub3Qg Y2FsbGVkIChDaHJpcykKLSBhc3NlcnQgYWxzbyB0aGF0IHRoZSBuZXcgUlBNIHdha2Vsb2NrIHJl ZmNvdW50IGlzIDAgaW4gdGhlIFJQTQogIHN1c3BlbmQgaGFuZGxlciAoQ2hyaXMpCi0gY2hhbmdl IHRoZSBhc3NlcnQgZXJyb3IgbWVzc2FnZSB0byBiZSBtb3JlIG1lYW5pbmdmdWwgKENocmlzKQot IHByZXZlbnQgZmFsc2UgYXNzZXJ0IGVycm9ycyBhbmQgY2hlY2sgdGhhdCB0aGUgUlBNIHdha2Vs b2NrIGlzIDAgaW4KICB0aGUgUlBNIHJlc3VtZSBoYW5kbGVyIHRvbwotIHByZXZlbnQgZmFsc2Ug YXNzZXJ0IGVycm9ycyBpbiB0aGUgaGFuZ2NoZWNrIHdvcmsgdG9vCi0gYWRkIGEgZGV2aWNlIG5v dCBzdXNwZW5kZWQgYXNzZXJ0IGNoZWNrIHRvIHRoZSBoYW5nY2hlY2sgd29yawp2NDoKLSByZW5h bWUgZGlzYWJsZS9lbmFibGVfcnBtX2Fzc2VydHMgdG8gZGlzYWJsZS9lbmFibGVfcnBtX3dha2Vy ZWZfYXNzZXJ0cwogIGFuZCB3YWtlbG9ja19jb3VudCB0byB3YWtlcmVmX2NvdW50Ci0gZGlzYWJs ZSB0aGUgd2FrZXJlZiBhc3NlcnRzIGluIHRoZSBJUlEgaGFuZGxlcnMgYW5kIFJQUyB3b3JrIHRv bwotIHVwZGF0ZS9jbGFyaWZ5IGNvbW1pdCBtZXNzYWdlCgpTaWduZWQtb2ZmLWJ5OiBJbXJlIERl YWsgPGltcmUuZGVha0BpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4gKHYzKQotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZG1hLmMgICAgICAgICB8ICA3ICsrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMg ICAgICAgICB8IDM5ICsrKysrKysrKysrKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgICAgIHwgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAg ICAgICAgIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgfCA0MSArKysrKysrKysrKysrKysrKysKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8ICA2ICsrKwogNyBmaWxlcyBjaGFuZ2VkLCAx NTggaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMK aW5kZXggODRlMmIyMC4uMDc3ZDY0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCkBAIC04OTYs NiArODk2LDggQEAgaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dW5zaWduZWQgbG9uZyBmbGFncykKIAogCWludGVsX3BtX3NldHVwKGRldik7CiAKKwlpbnRlbF9y dW50aW1lX3BtX2dldChkZXZfcHJpdik7CisKIAlpbnRlbF9kaXNwbGF5X2NyY19pbml0KGRldik7 CiAKIAlpOTE1X2R1bXBfZGV2aWNlX2luZm8oZGV2X3ByaXYpOwpAQCAtMTA4NSw2ICsxMDg3LDgg QEAgaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQg bG9uZyBmbGFncykKIAogCWk5MTVfYXVkaW9fY29tcG9uZW50X2luaXQoZGV2X3ByaXYpOwogCisJ aW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOworCiAJcmV0dXJuIDA7CiAKIG91dF9wb3dl cl93ZWxsOgpAQCAtMTEyMCw2ICsxMTI0LDkgQEAgZnJlZV9wcml2OgogCWttZW1fY2FjaGVfZGVz dHJveShkZXZfcHJpdi0+cmVxdWVzdHMpOwogCWttZW1fY2FjaGVfZGVzdHJveShkZXZfcHJpdi0+ dm1hcyk7CiAJa21lbV9jYWNoZV9kZXN0cm95KGRldl9wcml2LT5vYmplY3RzKTsKKworCWludGVs X3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKKwogCWtmcmVlKGRldl9wcml2KTsKIAlyZXR1cm4g cmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggOGRkZmNjZS4uNjEyNjdlNyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC01ODAsNiArNTgwLDggQEAgc3RhdGljIGludCBpOTE1 X2RybV9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZGV2X3ByaXYtPm1vZGVzZXRf cmVzdG9yZSA9IE1PREVTRVRfU1VTUEVOREVEOwogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPm1v ZGVzZXRfcmVzdG9yZV9sb2NrKTsKIAorCWRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZf cHJpdik7CisKIAkvKiBXZSBkbyBhIGxvdCBvZiBwb2tpbmcgaW4gYSBsb3Qgb2YgcmVnaXN0ZXJz LCBtYWtlIHN1cmUgdGhleSB3b3JrCiAJICogcHJvcGVybHkuICovCiAJaW50ZWxfZGlzcGxheV9z ZXRfaW5pdF9wb3dlcihkZXZfcHJpdiwgdHJ1ZSk7CkBAIC01OTIsNyArNTk0LDcgQEAgc3RhdGlj IGludCBpOTE1X2RybV9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKGVycm9y KSB7CiAJCWRldl9lcnIoJmRldi0+cGRldi0+ZGV2LAogCQkJIkdFTSBpZGxlIGZhaWxlZCwgcmVz dW1lIG1pZ2h0IGZhaWxcbiIpOwotCQlyZXR1cm4gZXJyb3I7CisJCWdvdG8gb3V0OwogCX0KIAog CWludGVsX2d1Y19zdXNwZW5kKGRldik7CkBAIC02MzUsNyArNjM3LDEwIEBAIHN0YXRpYyBpbnQg aTkxNV9kcm1fc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmIChIQVNfQ1NSKGRl dl9wcml2KSkKIAkJZmx1c2hfd29yaygmZGV2X3ByaXYtPmNzci53b3JrKTsKIAotCXJldHVybiAw Oworb3V0OgorCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKworCXJldHVy biBlcnJvcjsKIH0KIAogc3RhdGljIGludCBpOTE1X2RybV9zdXNwZW5kX2xhdGUoc3RydWN0IGRy bV9kZXZpY2UgKmRybV9kZXYsIGJvb2wgaGliZXJuYXRpb24pCkBAIC02NDQsNiArNjQ5LDggQEAg c3RhdGljIGludCBpOTE1X2RybV9zdXNwZW5kX2xhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRybV9k ZXYsIGJvb2wgaGliZXJuYXRpb24pCiAJYm9vbCBmd19jc3I7CiAJaW50IHJldDsKIAorCWRpc2Fi bGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7CisKIAlmd19jc3IgPSBzdXNwZW5kX3Rv X2lkbGUoZGV2X3ByaXYpICYmIGRldl9wcml2LT5jc3IuZG1jX3BheWxvYWQ7CiAJLyoKIAkgKiBJ biBjYXNlIG9mIGZpcm13YXJlIGFzc2lzdGVkIGNvbnRleHQgc2F2ZS9yZXN0b3JlIGRvbid0IG1h bnVhbGx5CkBAIC02NjIsNyArNjY5LDcgQEAgc3RhdGljIGludCBpOTE1X2RybV9zdXNwZW5kX2xh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsIGJvb2wgaGliZXJuYXRpb24pCiAJCWlmICgh ZndfY3NyKQogCQkJaW50ZWxfcG93ZXJfZG9tYWluc19pbml0X2h3KGRldl9wcml2LCB0cnVlKTsK IAotCQlyZXR1cm4gcmV0OworCQlnb3RvIG91dDsKIAl9CiAKIAlwY2lfZGlzYWJsZV9kZXZpY2Uo ZHJtX2Rldi0+cGRldik7CkBAIC02ODMsNyArNjkwLDEwIEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1f c3VzcGVuZF9sYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LCBib29sIGhpYmVybmF0aW9u KQogCiAJZGV2X3ByaXYtPnN1c3BlbmRlZF90b19pZGxlID0gc3VzcGVuZF90b19pZGxlKGRldl9w cml2KTsKIAotCXJldHVybiAwOworb3V0OgorCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRl dl9wcml2KTsKKworCXJldHVybiByZXQ7CiB9CiAKIGludCBpOTE1X3N1c3BlbmRfc3dpdGNoZXJv byhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCkBAIC03MTQsNiAr NzI0LDggQEAgc3RhdGljIGludCBpOTE1X2RybV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwogCisJZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKwogCW11dGV4 X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlpOTE1X2dlbV9yZXN0b3JlX2d0dF9tYXBwaW5n cyhkZXYpOwogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwpAQCAtNzc4LDYgKzc5 MCw4IEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1fcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAKIAlkcm1fa21zX2hlbHBlcl9wb2xsX2VuYWJsZShkZXYpOwogCisJZW5hYmxlX3JwbV93YWtl cmVmX2Fzc2VydHMoZGV2X3ByaXYpOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTgwMiw2ICs4MTYs OCBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZV9lYXJseShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCiAJcGNpX3NldF9tYXN0ZXIoZGV2LT5wZGV2KTsKIAorCWRpc2FibGVfcnBtX3dha2Vy ZWZfYXNzZXJ0cyhkZXZfcHJpdik7CisKIAlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwg SVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCiAJCXJldCA9IHZsdl9yZXN1bWVfcHJlcGFyZShkZXZf cHJpdiwgZmFsc2UpOwogCWlmIChyZXQpCkBAIC04MjMsNiArODM5LDggQEAgc3RhdGljIGludCBp OTE1X2RybV9yZXN1bWVfZWFybHkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIG91dDoKIAlkZXZf cHJpdi0+c3VzcGVuZGVkX3RvX2lkbGUgPSBmYWxzZTsKIAorCWVuYWJsZV9ycG1fd2FrZXJlZl9h c3NlcnRzKGRldl9wcml2KTsKKwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTE0NTUsNiArMTQ3Myw5 IEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldmlj ZSkKIAogCQlyZXR1cm4gLUVBR0FJTjsKIAl9CisKKwlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2Vy dHMoZGV2X3ByaXYpOworCiAJLyoKIAkgKiBXZSBhcmUgc2FmZSBoZXJlIGFnYWluc3QgcmUtZmF1 bHRzLCBzaW5jZSB0aGUgZmF1bHQgaGFuZGxlciB0YWtlcwogCSAqIGFuIFJQTSByZWZlcmVuY2Uu CkBAIC0xNDc0LDEwICsxNDk1LDE1IEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9zdXNwZW5k KHN0cnVjdCBkZXZpY2UgKmRldmljZSkKIAkJRFJNX0VSUk9SKCJSdW50aW1lIHN1c3BlbmQgZmFp bGVkLCBkaXNhYmxpbmcgaXQgKCVkKVxuIiwgcmV0KTsKIAkJaW50ZWxfcnVudGltZV9wbV9lbmFi bGVfaW50ZXJydXB0cyhkZXZfcHJpdik7CiAKKwkJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMo ZGV2X3ByaXYpOworCiAJCXJldHVybiByZXQ7CiAJfQogCiAJaW50ZWxfdW5jb3JlX2ZvcmNld2Fr ZV9yZXNldChkZXYsIGZhbHNlKTsKKworCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9w cml2KTsKKwlXQVJOX09OX09OQ0UoYXRvbWljX3JlYWQoJmRldl9wcml2LT5wbS53YWtlcmVmX2Nv dW50KSk7CiAJZGV2X3ByaXYtPnBtLnN1c3BlbmRlZCA9IHRydWU7CiAKIAkvKgpAQCAtMTUyMSw2 ICsxNTQ3LDkgQEAgc3RhdGljIGludCBpbnRlbF9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNl ICpkZXZpY2UpCiAKIAlEUk1fREVCVUdfS01TKCJSZXN1bWluZyBkZXZpY2VcbiIpOwogCisJV0FS Tl9PTl9PTkNFKGF0b21pY19yZWFkKCZkZXZfcHJpdi0+cG0ud2FrZXJlZl9jb3VudCkpOworCWRp c2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7CisKIAlpbnRlbF9vcHJlZ2lvbl9u b3RpZnlfYWRhcHRlcihkZXYsIFBDSV9EMCk7CiAJZGV2X3ByaXYtPnBtLnN1c3BlbmRlZCA9IGZh bHNlOwogCkBAIC0xNTU1LDYgKzE1ODQsOCBAQCBzdGF0aWMgaW50IGludGVsX3J1bnRpbWVfcmVz dW1lKHN0cnVjdCBkZXZpY2UgKmRldmljZSkKIAogCWludGVsX2VuYWJsZV9ndF9wb3dlcnNhdmUo ZGV2KTsKIAorCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKwogCWlmIChy ZXQpCiAJCURSTV9FUlJPUigiUnVudGltZSByZXN1bWUgZmFpbGVkLCBkaXNhYmxpbmcgaXQgKCVk KVxuIiwgcmV0KTsKIAllbHNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA5MTI0MDg1Li4y ODk0NzE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTE2MDIsNiArMTYwMiw3IEBAIHN0 cnVjdCBza2xfd21fbGV2ZWwgewogICogRm9yIG1vcmUsIHJlYWQgdGhlIERvY3VtZW50YXRpb24v cG93ZXIvcnVudGltZV9wbS50eHQuCiAgKi8KIHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0geworCWF0 b21pY190IHdha2VyZWZfY291bnQ7CiAJYm9vbCBzdXNwZW5kZWQ7CiAJYm9vbCBpcnFzX2VuYWJs ZWQ7CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggODY2NjRkMS4uNTBhNDZhZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC0xMTAzLDYgKzExMDMsMTMgQEAgc3RhdGljIHZvaWQg Z2VuNl9wbV9ycHNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCXNwaW5fdW5sb2Nr X2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKIAkJcmV0dXJuOwogCX0KKworCS8qCisJICogVGhl IFJQUyB3b3JrIGlzIHN5bmNlZCBkdXJpbmcgcnVudGltZSBzdXNwZW5kLCB3ZSBkb24ndCByZXF1 aXJlIGEKKwkgKiB3YWtlcmVmLgorCSAqLworCWRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhk ZXZfcHJpdik7CisKIAlwbV9paXIgPSBkZXZfcHJpdi0+cnBzLnBtX2lpcjsKIAlkZXZfcHJpdi0+ cnBzLnBtX2lpciA9IDA7CiAJLyogTWFrZSBzdXJlIG5vdCB0byBjb3JydXB0IFBNSU1SIHN0YXRl IHVzZWQgYnkgcmluZ2J1ZmZlciBvbiBHRU42ICovCkBAIC0xMTE1LDcgKzExMjIsNyBAQCBzdGF0 aWMgdm9pZCBnZW42X3BtX3Jwc193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlXQVJO X09OKHBtX2lpciAmIH5kZXZfcHJpdi0+cG1fcnBzX2V2ZW50cyk7CiAKIAlpZiAoKHBtX2lpciAm IGRldl9wcml2LT5wbV9ycHNfZXZlbnRzKSA9PSAwICYmICFjbGllbnRfYm9vc3QpCi0JCXJldHVy bjsKKwkJZ290byBvdXQ7CiAKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwog CkBAIC0xMTcwLDYgKzExNzcsOCBAQCBzdGF0aWMgdm9pZCBnZW42X3BtX3Jwc193b3JrKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKIAlpbnRlbF9zZXRfcnBzKGRldl9wcml2LT5kZXYsIG5ld19k ZWxheSk7CiAKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7CitvdXQ6CisJ ZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOwogfQogCiAKQEAgLTE3NTgsNiAr MTc2Nyw5IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB2YWxsZXl2aWV3X2lycV9oYW5kbGVyKGludCBp cnEsIHZvaWQgKmFyZykKIAlpZiAoIWludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdikpCiAJCXJl dHVybiBJUlFfTk9ORTsKIAorCS8qIElSUXMgYXJlIHN5bmNlZCBkdXJpbmcgcnVudGltZV9zdXNw ZW5kLCB3ZSBkb24ndCByZXF1aXJlIGEgd2FrZXJlZiAqLworCWRpc2FibGVfcnBtX3dha2VyZWZf YXNzZXJ0cyhkZXZfcHJpdik7CisKIAl3aGlsZSAodHJ1ZSkgewogCQkvKiBGaW5kLCBjbGVhciwg dGhlbiBwcm9jZXNzIGVhY2ggc291cmNlIG9mIGludGVycnVwdCAqLwogCkBAIC0xNzkyLDYgKzE4 MDQsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgdmFsbGV5dmlld19pcnFfaGFuZGxlcihpbnQgaXJx LCB2b2lkICphcmcpCiAJfQogCiBvdXQ6CisJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2 X3ByaXYpOworCiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTgwNSw2ICsxODE5LDkgQEAgc3RhdGlj IGlycXJldHVybl90IGNoZXJyeXZpZXdfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQog CWlmICghaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2KSkKIAkJcmV0dXJuIElSUV9OT05FOwog CisJLyogSVJRcyBhcmUgc3luY2VkIGR1cmluZyBydW50aW1lX3N1c3BlbmQsIHdlIGRvbid0IHJl cXVpcmUgYSB3YWtlcmVmICovCisJZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2 KTsKKwogCWZvciAoOzspIHsKIAkJbWFzdGVyX2N0bCA9IEk5MTVfUkVBRChHRU44X01BU1RFUl9J UlEpICYgfkdFTjhfTUFTVEVSX0lSUV9DT05UUk9MOwogCQlpaXIgPSBJOTE1X1JFQUQoVkxWX0lJ Uik7CkBAIC0xODM1LDYgKzE4NTIsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgY2hlcnJ5dmlld19p cnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJCVBPU1RJTkdfUkVBRChHRU44X01BU1RF Ul9JUlEpOwogCX0KIAorCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKwog CXJldHVybiByZXQ7CiB9CiAKQEAgLTIxNjUsNiArMjE4NCw5IEBAIHN0YXRpYyBpcnFyZXR1cm5f dCBpcm9ubGFrZV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJaWYgKCFpbnRlbF9p cnFzX2VuYWJsZWQoZGV2X3ByaXYpKQogCQlyZXR1cm4gSVJRX05PTkU7CiAKKwkvKiBJUlFzIGFy ZSBzeW5jZWQgZHVyaW5nIHJ1bnRpbWVfc3VzcGVuZCwgd2UgZG9uJ3QgcmVxdWlyZSBhIHdha2Vy ZWYgKi8KKwlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOworCiAJLyogV2Ug Z2V0IGludGVycnVwdHMgb24gdW5jbGFpbWVkIHJlZ2lzdGVycywgc28gY2hlY2sgZm9yIHRoaXMg YmVmb3JlIHdlCiAJICogZG8gYW55IEk5MTVfe1JFQUQsV1JJVEV9LiAqLwogCWludGVsX3VuY29y ZV9jaGVja19lcnJvcnMoZGV2KTsKQEAgLTIyMjMsNiArMjI0NSw5IEBAIHN0YXRpYyBpcnFyZXR1 cm5fdCBpcm9ubGFrZV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJCVBPU1RJTkdf UkVBRChTREVJRVIpOwogCX0KIAorCS8qIElSUXMgYXJlIHN5bmNlZCBkdXJpbmcgcnVudGltZV9z dXNwZW5kLCB3ZSBkb24ndCByZXF1aXJlIGEgd2FrZXJlZiAqLworCWVuYWJsZV9ycG1fd2FrZXJl Zl9hc3NlcnRzKGRldl9wcml2KTsKKwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTIyNTUsNiArMjI4 MCw5IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBnZW44X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQg KmFyZykKIAlpZiAoIWludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdikpCiAJCXJldHVybiBJUlFf Tk9ORTsKIAorCS8qIElSUXMgYXJlIHN5bmNlZCBkdXJpbmcgcnVudGltZV9zdXNwZW5kLCB3ZSBk b24ndCByZXF1aXJlIGEgd2FrZXJlZiAqLworCWRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhk ZXZfcHJpdik7CisKIAlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA5KQogCQlhdXhf bWFzayB8PSAgR0VOOV9BVVhfQ0hBTk5FTF9CIHwgR0VOOV9BVVhfQ0hBTk5FTF9DIHwKIAkJCUdF TjlfQVVYX0NIQU5ORUxfRDsKQEAgLTIyNjIsNyArMjI5MCw3IEBAIHN0YXRpYyBpcnFyZXR1cm5f dCBnZW44X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAltYXN0ZXJfY3RsID0gSTkx NV9SRUFEX0ZXKEdFTjhfTUFTVEVSX0lSUSk7CiAJbWFzdGVyX2N0bCAmPSB+R0VOOF9NQVNURVJf SVJRX0NPTlRST0w7CiAJaWYgKCFtYXN0ZXJfY3RsKQotCQlyZXR1cm4gSVJRX05PTkU7CisJCWdv dG8gb3V0OwogCiAJSTkxNV9XUklURV9GVyhHRU44X01BU1RFUl9JUlEsIDApOwogCkBAIC0yMzkz LDYgKzI0MjEsOSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VuOF9pcnFfaGFuZGxlcihpbnQgaXJx LCB2b2lkICphcmcpCiAJSTkxNV9XUklURV9GVyhHRU44X01BU1RFUl9JUlEsIEdFTjhfTUFTVEVS X0lSUV9DT05UUk9MKTsKIAlQT1NUSU5HX1JFQURfRlcoR0VOOF9NQVNURVJfSVJRKTsKIAorb3V0 OgorCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKwogCXJldHVybiByZXQ7 CiB9CiAKQEAgLTI5ODksNiArMzAyMCwxMiBAQCBzdGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVja19l bGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlpZiAoIWk5MTUuZW5hYmxlX2hhbmdj aGVjaykKIAkJcmV0dXJuOwogCisJLyoKKwkgKiBUaGUgaGFuZ2NoZWNrIHdvcmsgaXMgc3luY2Vk IGR1cmluZyBydW50aW1lIHN1c3BlbmQsIHdlIGRvbid0CisJICogcmVxdWlyZSBhIHdha2VyZWYu CisJICovCisJZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKwogCWZvcl9l YWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKIAkJdTY0IGFjdGhkOwogCQl1MzIgc2Vxbm87 CkBAIC0zMDgwLDEzICszMTE3LDE4IEBAIHN0YXRpYyB2b2lkIGk5MTVfaGFuZ2NoZWNrX2VsYXBz ZWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQl9CiAJfQogCi0JaWYgKHJpbmdzX2h1bmcp Ci0JCXJldHVybiBpOTE1X2hhbmRsZV9lcnJvcihkZXYsIHRydWUsICJSaW5nIGh1bmciKTsKKwlp ZiAocmluZ3NfaHVuZykgeworCQlpOTE1X2hhbmRsZV9lcnJvcihkZXYsIHRydWUsICJSaW5nIGh1 bmciKTsKKwkJZ290byBvdXQ7CisJfQogCiAJaWYgKGJ1c3lfY291bnQpCiAJCS8qIFJlc2V0IHRp bWVyIGNhc2UgY2hpcCBoYW5ncyB3aXRob3V0IGFub3RoZXIgcmVxdWVzdAogCQkgKiBiZWluZyBh ZGRlZCAqLwogCQlpOTE1X3F1ZXVlX2hhbmdjaGVjayhkZXYpOworCitvdXQ6CisJZW5hYmxlX3Jw bV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOwogfQogCiB2b2lkIGk5MTVfcXVldWVfaGFuZ2No ZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC0zODc4LDEzICszOTIwLDE4IEBAIHN0YXRp YyBpcnFyZXR1cm5fdCBpOHh4X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAl1MTYg ZmxpcF9tYXNrID0KIAkJSTkxNV9ESVNQTEFZX1BMQU5FX0FfRkxJUF9QRU5ESU5HX0lOVEVSUlVQ VCB8CiAJCUk5MTVfRElTUExBWV9QTEFORV9CX0ZMSVBfUEVORElOR19JTlRFUlJVUFQ7CisJaXJx cmV0dXJuX3QgcmV0OwogCiAJaWYgKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKQogCQly ZXR1cm4gSVJRX05PTkU7CiAKKwkvKiBJUlFzIGFyZSBzeW5jZWQgZHVyaW5nIHJ1bnRpbWVfc3Vz cGVuZCwgd2UgZG9uJ3QgcmVxdWlyZSBhIHdha2VyZWYgKi8KKwlkaXNhYmxlX3JwbV93YWtlcmVm X2Fzc2VydHMoZGV2X3ByaXYpOworCisJcmV0ID0gSVJRX05PTkU7CiAJaWlyID0gSTkxNV9SRUFE MTYoSUlSKTsKIAlpZiAoaWlyID09IDApCi0JCXJldHVybiBJUlFfTk9ORTsKKwkJZ290byBvdXQ7 CiAKIAl3aGlsZSAoaWlyICYgfmZsaXBfbWFzaykgewogCQkvKiBDYW4ndCByZWx5IG9uIHBpcGVz dGF0IGludGVycnVwdCBiaXQgaW4gaWlyIGFzIGl0IG1pZ2h0CkBAIC0zOTMzLDggKzM5ODAsMTIg QEAgc3RhdGljIGlycXJldHVybl90IGk4eHhfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJn KQogCiAJCWlpciA9IG5ld19paXI7CiAJfQorCXJldCA9IElSUV9IQU5ETEVEOwogCi0JcmV0dXJu IElSUV9IQU5ETEVEOworb3V0OgorCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2 KTsKKworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyB2b2lkIGk4eHhfaXJxX3VuaW5zdGFsbChz dHJ1Y3QgZHJtX2RldmljZSAqIGRldikKQEAgLTQwNjMsNiArNDExNCw5IEBAIHN0YXRpYyBpcnFy ZXR1cm5fdCBpOTE1X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAlpZiAoIWludGVs X2lycXNfZW5hYmxlZChkZXZfcHJpdikpCiAJCXJldHVybiBJUlFfTk9ORTsKIAorCS8qIElSUXMg YXJlIHN5bmNlZCBkdXJpbmcgcnVudGltZV9zdXNwZW5kLCB3ZSBkb24ndCByZXF1aXJlIGEgd2Fr ZXJlZiAqLworCWRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7CisKIAlpaXIg PSBJOTE1X1JFQUQoSUlSKTsKIAlkbyB7CiAJCWJvb2wgaXJxX3JlY2VpdmVkID0gKGlpciAmIH5m bGlwX21hc2spICE9IDA7CkBAIC00MTQ1LDYgKzQxOTksOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qg aTkxNV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJCWlpciA9IG5ld19paXI7CiAJ fSB3aGlsZSAoaWlyICYgfmZsaXBfbWFzayk7CiAKKwllbmFibGVfcnBtX3dha2VyZWZfYXNzZXJ0 cyhkZXZfcHJpdik7CisKIAlyZXR1cm4gcmV0OwogfQogCkBAIC00Mjg0LDYgKzQzNDAsOSBAQCBz dGF0aWMgaXJxcmV0dXJuX3QgaTk2NV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJ aWYgKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKQogCQlyZXR1cm4gSVJRX05PTkU7CiAK KwkvKiBJUlFzIGFyZSBzeW5jZWQgZHVyaW5nIHJ1bnRpbWVfc3VzcGVuZCwgd2UgZG9uJ3QgcmVx dWlyZSBhIHdha2VyZWYgKi8KKwlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYp OworCiAJaWlyID0gSTkxNV9SRUFEKElJUik7CiAKIAlmb3IgKDs7KSB7CkBAIC00MzY5LDYgKzQ0 MjgsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaTk2NV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lk ICphcmcpCiAJCWlpciA9IG5ld19paXI7CiAJfQogCisJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2Vy dHMoZGV2X3ByaXYpOworCiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAppbmRleCA5ODM3YTI1Li5kOGU0YWNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAt MTQ0Miw2ICsxNDQyLDQ3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZAogYXNzZXJ0X3JwbV93YWtlbG9j a19oZWxkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlhc3NlcnRfcnBt X2RldmljZV9ub3Rfc3VzcGVuZGVkKGRldl9wcml2KTsKKwlXQVJOX09OQ0UoIWF0b21pY19yZWFk KCZkZXZfcHJpdi0+cG0ud2FrZXJlZl9jb3VudCksCisJCSAgIlJQTSB3YWtlbG9jayByZWYgbm90 IGhlbGQgZHVyaW5nIEhXIGFjY2VzcyIpOworfQorCisvKioKKyAqIGRpc2FibGVfcnBtX3dha2Vy ZWZfYXNzZXJ0cyAtIGRpc2FibGUgdGhlIFJQTSBhc3NlcnQgY2hlY2tzCisgKiBAZGV2X3ByaXY6 IGk5MTUgZGV2aWNlIGluc3RhbmNlCisgKgorICogVGhpcyBmdW5jdGlvbiBkaXNhYmxlIGFzc2Vy dHMgdGhhdCBjaGVjayBpZiB3ZSBob2xkIGFuIFJQTSB3YWtlbG9jaworICogcmVmZXJlbmNlLCB3 aGlsZSBrZWVwaW5nIHRoZSBkZXZpY2Utbm90LXN1c3BlbmRlZCBjaGVja3Mgc3RpbGwgZW5hYmxl ZC4KKyAqIEl0J3MgbWVhbnQgdG8gYmUgdXNlZCBvbmx5IGluIHNwZWNpYWwgY2lyY3Vtc3RhbmNl cyB3aGVyZSBvdXIgcnVsZSBhYm91dAorICogdGhlIHdha2Vsb2NrIHJlZmNvdW50IHdydC4gdGhl IGRldmljZSBwb3dlciBzdGF0ZSBkb2Vzbid0IGhvbGQuIEFjY29yZGluZworICogdG8gdGhpcyBy dWxlIGF0IGFueSBwb2ludCB3aGVyZSB3ZSBhY2Nlc3MgdGhlIEhXIG9yIHdhbnQgdG8ga2VlcCB0 aGUgSFcgaW4KKyAqIGFuIGFjdGl2ZSBzdGF0ZSB3ZSBtdXN0IGhvbGQgYW4gUlBNIHdha2Vsb2Nr IHJlZmVyZW5jZSBhY3F1aXJlZCB2aWEgb25lIG9mCisgKiB0aGUgaW50ZWxfcnVudGltZV9wbV9n ZXQoKSBoZWxwZXJzLiBDdXJyZW50bHkgdGhlcmUgYXJlIGEgZmV3IHNwZWNpYWwgc3BvdHMKKyAq IHdoZXJlIHRoaXMgcnVsZSBkb2Vzbid0IGhvbGQ6IHRoZSBJUlEgYW5kIHN1c3BlbmQvcmVzdW1l IGhhbmRsZXJzLCB0aGUKKyAqIGZvcmNld2FrZSByZWxlYXNlIHRpbWVyLCBhbmQgdGhlIEdQVSBS UFMgYW5kIGhhbmdjaGVjayB3b3Jrcy4gQWxsIG90aGVyCisgKiB1c2VycyBzaG91bGQgYXZvaWQg dXNpbmcgdGhpcyBmdW5jdGlvbi4KKyAqCisgKiBBbnkgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBt dXN0IGhhdmUgYSBzeW1tZXRyaWMgY2FsbCB0bworICogZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2Vy dHMoKS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIGRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0 cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJYXRvbWljX2luYygmZGV2 X3ByaXYtPnBtLndha2VyZWZfY291bnQpOworfQorCisvKioKKyAqIGVuYWJsZV9ycG1fd2FrZXJl Zl9hc3NlcnRzIC0gcmUtZW5hYmxlIHRoZSBSUE0gYXNzZXJ0IGNoZWNrcworICogQGRldl9wcml2 OiBpOTE1IGRldmljZSBpbnN0YW5jZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gcmUtZW5hYmxlcyB0 aGUgUlBNIGFzc2VydCBjaGVja3MgYWZ0ZXIgZGlzYWJsaW5nIHRoZW0gd2l0aAorICogZGlzYWJs ZV9ycG1fd2FrZXJlZl9hc3NlcnRzLiBJdCdzIG1lYW50IHRvIGJlIHVzZWQgb25seSBpbiBzcGVj aWFsCisgKiBjaXJjdW1zdGFuY2VzIG90aGVyd2lzZSBpdHMgdXNlIHNob3VsZCBiZSBhdm9pZGVk LgorICoKKyAqIEFueSBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIG11c3QgaGF2ZSBhIHN5bW1ldHJp YyBjYWxsIHRvCisgKiBkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoKS4KKyAqLworc3RhdGlj IGlubGluZSB2b2lkIGVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKK3sKKwlhdG9taWNfZGVjKCZkZXZfcHJpdi0+cG0ud2FrZXJlZl9j b3VudCk7CiB9CiAKIHZvaWQgaW50ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IGY5M2M0YjkuLjZj MDg1MzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNzI0Nyw0ICs3MjQ3LDUgQEAgdm9p ZCBpbnRlbF9wbV9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCUlOSVRfTElTVF9IRUFE KCZkZXZfcHJpdi0+cnBzLm1taW9mbGlwcy5saW5rKTsKIAogCWRldl9wcml2LT5wbS5zdXNwZW5k ZWQgPSBmYWxzZTsKKwlhdG9taWNfc2V0KCZkZXZfcHJpdi0+cG0ud2FrZXJlZl9jb3VudCwgMCk7 CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKaW5kZXggNjAzZDQxMC4u MjkxNTdmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9w bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwpAQCAtMjIz Niw2ICsyMjM2LDggQEAgdm9pZCBpbnRlbF9ydW50aW1lX3BtX2dldChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3RydWN0IGRldmljZSAqZGV2aWNlID0gJmRldi0+cGRldi0+ ZGV2OwogCiAJcG1fcnVudGltZV9nZXRfc3luYyhkZXZpY2UpOworCisJYXRvbWljX2luYygmZGV2 X3ByaXYtPnBtLndha2VyZWZfY291bnQpOwogCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChkZXZf cHJpdik7CiB9CiAKQEAgLTIyNjMsNiArMjI2NSw4IEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9n ZXRfbm9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJYXNzZXJ0 X3JwbV93YWtlbG9ja19oZWxkKGRldl9wcml2KTsKIAlwbV9ydW50aW1lX2dldF9ub3Jlc3VtZShk ZXZpY2UpOworCisJYXRvbWljX2luYygmZGV2X3ByaXYtPnBtLndha2VyZWZfY291bnQpOwogfQog CiAvKioKQEAgLTIyNzgsNiArMjI4Miw4IEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9wdXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBkZXZfcHJpdi0+ZGV2OwogCXN0cnVjdCBkZXZpY2UgKmRldmljZSA9ICZkZXYtPnBkZXYtPmRl djsKIAorCWF0b21pY19kZWMoJmRldl9wcml2LT5wbS53YWtlcmVmX2NvdW50KTsKKwogCXBtX3J1 bnRpbWVfbWFya19sYXN0X2J1c3koZGV2aWNlKTsKIAlwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVu ZChkZXZpY2UpOwogfQotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==