From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 04/17] drm/i915: Use drm_i915_private directly from drv_get_drvdata() Date: Tue, 30 Jul 2019 14:30:22 +0100 Message-ID: <20190730133035.1977-5-chris@chris-wilson.co.uk> References: <20190730133035.1977-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 761BD6E50D for ; Tue, 30 Jul 2019 13:32:34 +0000 (UTC) In-Reply-To: <20190730133035.1977-1-chris@chris-wilson.co.uk> 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 QXMgd2Ugc3RvcmUgYSBwb2ludGVyIHRvIGk5MTUgaW4gdGhlIGRydmRhdGEgZmllbGQgKGFzIHRo ZSBwb2ludGVyIGlzIGJvdGgKYW4gYWxpYXMgdG8gdGhlIGRybV9kZXZpY2UgYW5kIGRybV9pOTE1 X3ByaXZhdGUpLCB3ZSBjYW4gdXNlIHRoZSBzdG9yZWQKcG9pbnRlciBkaXJlY3RseSBhcyB0aGUg aTkxNSBkZXZpY2UuCgp2MjogU3RvcmUgYW5kIHVzZSBpOTE1IGluc2lkZSBkcnZfZ2V0X2RydmRh dGEoKQoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgICAgICAgIHwg MTUxICsrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgICAgICAgICAgIHwgICA5ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jICAg ICAgICAgICAgICAgfCAgMTIgKy0KIC4uLi9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfc2Vs ZnRlc3QuYyAgICB8ICAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspLCA4 NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCBmMmQzZDc1NGFmMzcu LmNmZWNhMTYwZTcxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC02NDAsMzkgKzY0MCw0 NSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGk5MTVfdmdhX3NldF9kZWNvZGUodm9pZCAqY29va2ll LCBib29sIHN0YXRlKQogCQlyZXR1cm4gVkdBX1JTUkNfTk9STUFMX0lPIHwgVkdBX1JTUkNfTk9S TUFMX01FTTsKIH0KIAotc3RhdGljIGludCBpOTE1X3Jlc3VtZV9zd2l0Y2hlcm9vKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOwotc3RhdGljIGludCBpOTE1X3N1c3BlbmRfc3dpdGNoZXJvbyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpOworc3RhdGljIGludCBpOTE1 X3Jlc3VtZV9zd2l0Y2hlcm9vKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3N0YXRp YyBpbnQgaTkxNV9zdXNwZW5kX3N3aXRjaGVyb28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsCisJCQkJICAgcG1fbWVzc2FnZV90IHN0YXRlKTsKIAogc3RhdGljIHZvaWQgaTkxNV9zd2l0 Y2hlcm9vX3NldF9zdGF0ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZW51bSB2Z2Ffc3dpdGNoZXJv b19zdGF0ZSBzdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGNpX2dldF9kcnZk YXRhKHBkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gcGRldl90b19pOTE1 KHBkZXYpOwogCXBtX21lc3NhZ2VfdCBwbW0gPSB7IC5ldmVudCA9IFBNX0VWRU5UX1NVU1BFTkQg fTsKIAorCWlmICghaTkxNSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJEUk0gbm90IGluaXRp YWxpemVkLCBhYm9ydGluZyBzd2l0Y2guXG4iKTsKKwkJcmV0dXJuOworCX0KKwogCWlmIChzdGF0 ZSA9PSBWR0FfU1dJVENIRVJPT19PTikgewogCQlwcl9pbmZvKCJzd2l0Y2hlZCBvblxuIik7Ci0J CWRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlID0gRFJNX1NXSVRDSF9QT1dFUl9DSEFOR0lORzsKKwkJ aTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSA9IERSTV9TV0lUQ0hfUE9XRVJfQ0hBTkdJTkc7 CiAJCS8qIGk5MTUgcmVzdW1lIGhhbmRsZXIgZG9lc24ndCBzZXQgdG8gRDAgKi8KIAkJcGNpX3Nl dF9wb3dlcl9zdGF0ZShwZGV2LCBQQ0lfRDApOwotCQlpOTE1X3Jlc3VtZV9zd2l0Y2hlcm9vKGRl dik7Ci0JCWRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlID0gRFJNX1NXSVRDSF9QT1dFUl9PTjsKKwkJ aTkxNV9yZXN1bWVfc3dpdGNoZXJvbyhpOTE1KTsKKwkJaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9z dGF0ZSA9IERSTV9TV0lUQ0hfUE9XRVJfT047CiAJfSBlbHNlIHsKIAkJcHJfaW5mbygic3dpdGNo ZWQgb2ZmXG4iKTsKLQkJZGV2LT5zd2l0Y2hfcG93ZXJfc3RhdGUgPSBEUk1fU1dJVENIX1BPV0VS X0NIQU5HSU5HOwotCQlpOTE1X3N1c3BlbmRfc3dpdGNoZXJvbyhkZXYsIHBtbSk7Ci0JCWRldi0+ c3dpdGNoX3Bvd2VyX3N0YXRlID0gRFJNX1NXSVRDSF9QT1dFUl9PRkY7CisJCWk5MTUtPmRybS5z d2l0Y2hfcG93ZXJfc3RhdGUgPSBEUk1fU1dJVENIX1BPV0VSX0NIQU5HSU5HOworCQlpOTE1X3N1 c3BlbmRfc3dpdGNoZXJvbyhpOTE1LCBwbW0pOworCQlpOTE1LT5kcm0uc3dpdGNoX3Bvd2VyX3N0 YXRlID0gRFJNX1NXSVRDSF9QT1dFUl9PRkY7CiAJfQogfQogCiBzdGF0aWMgYm9vbCBpOTE1X3N3 aXRjaGVyb29fY2FuX3N3aXRjaChzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCiAJLyoKIAkgKiBGSVhNRTog b3Blbl9jb3VudCBpcyBwcm90ZWN0ZWQgYnkgZHJtX2dsb2JhbF9tdXRleCBidXQgdGhhdCB3b3Vs ZCBsZWFkIHRvCiAJICogbG9ja2luZyBpbnZlcnNpb24gd2l0aCB0aGUgZHJpdmVyIGxvYWQgcGF0 aC4gQW5kIHRoZSBhY2Nlc3MgaGVyZSBpcwogCSAqIGNvbXBsZXRlbHkgcmFjeSBhbnl3YXkuIFNv IGRvbid0IGJvdGhlciB3aXRoIGxvY2tpbmcgZm9yIG5vdy4KIAkgKi8KLQlyZXR1cm4gZGV2LT5v cGVuX2NvdW50ID09IDA7CisJcmV0dXJuIGk5MTUgJiYgaTkxNS0+ZHJtLm9wZW5fY291bnQgPT0g MDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCB2Z2Ffc3dpdGNoZXJvb19jbGllbnRfb3BzIGk5 MTVfc3dpdGNoZXJvb19vcHMgPSB7CkBAIC0xODQxLDcgKzE4NDcsOCBAQCBpOTE1X2RyaXZlcl9j cmVhdGUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpl bnQpCiAKIAlpOTE1LT5kcm0ucGRldiA9IHBkZXY7CiAJaTkxNS0+ZHJtLmRldl9wcml2YXRlID0g aTkxNTsKLQlwY2lfc2V0X2RydmRhdGEocGRldiwgJmk5MTUtPmRybSk7CisJQlVJTERfQlVHX09O KG9mZnNldG9mKHR5cGVvZigqaTkxNSksIGRybSkpOworCXBjaV9zZXRfZHJ2ZGF0YShwZGV2LCBp OTE1KTsKIAogCS8qIFNldHVwIHRoZSB3cml0ZS1vbmNlICJjb25zdGFudCIgZGV2aWNlIGluZm8g Ki8KIAlkZXZpY2VfaW5mbyA9IG1rd3JpdGVfZGV2aWNlX2luZm8oaTkxNSk7CkBAIC0xOTQxLDUx ICsxOTQ4LDUwIEBAIGludCBpOTE1X2RyaXZlcl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwg Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKIAlyZXR1cm4gcmV0OwogfQogCi12b2lk IGk5MTVfZHJpdmVyX3JlbW92ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQordm9pZCBpOTE1X2Ry aXZlcl9yZW1vdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBwY2lfZGV2 ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2OworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gaTkx NS0+ZHJtLnBkZXY7CiAKLQlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoJmRldl9wcml2LT5y dW50aW1lX3BtKTsKKwlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoJmk5MTUtPnJ1bnRpbWVf cG0pOwogCi0JaTkxNV9kcml2ZXJfdW5yZWdpc3RlcihkZXZfcHJpdik7CisJaTkxNV9kcml2ZXJf dW5yZWdpc3RlcihpOTE1KTsKIAogCS8qCiAJICogQWZ0ZXIgdW5yZWdpc3RlcmluZyB0aGUgZGV2 aWNlIHRvIHByZXZlbnQgYW55IG5ldyB1c2VycywgY2FuY2VsCiAJICogYWxsIGluLWZsaWdodCBy ZXF1ZXN0cyBzbyB0aGF0IHdlIGNhbiBxdWlja2x5IHVuYmluZCB0aGUgYWN0aXZlCiAJICogcmVz b3VyY2VzLgogCSAqLwotCWludGVsX2d0X3NldF93ZWRnZWQoJmRldl9wcml2LT5ndCk7CisJaW50 ZWxfZ3Rfc2V0X3dlZGdlZCgmaTkxNS0+Z3QpOwogCiAJLyogRmx1c2ggYW55IGV4dGVybmFsIGNv ZGUgdGhhdCBzdGlsbCBtYXkgYmUgdW5kZXIgdGhlIFJDVSBsb2NrICovCiAJc3luY2hyb25pemVf cmN1KCk7CiAKLQlpOTE1X2dlbV9zdXNwZW5kKGRldl9wcml2KTsKKwlpOTE1X2dlbV9zdXNwZW5k KGk5MTUpOwogCi0JZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oZGV2KTsKKwlkcm1fYXRvbWlj X2hlbHBlcl9zaHV0ZG93bigmaTkxNS0+ZHJtKTsKIAotCWludGVsX2d2dF9kcml2ZXJfcmVtb3Zl KGRldl9wcml2KTsKKwlpbnRlbF9ndnRfZHJpdmVyX3JlbW92ZShpOTE1KTsKIAotCWludGVsX21v ZGVzZXRfZHJpdmVyX3JlbW92ZShkZXYpOworCWludGVsX21vZGVzZXRfZHJpdmVyX3JlbW92ZSgm aTkxNS0+ZHJtKTsKIAotCWludGVsX2Jpb3NfZHJpdmVyX3JlbW92ZShkZXZfcHJpdik7CisJaW50 ZWxfYmlvc19kcml2ZXJfcmVtb3ZlKGk5MTUpOwogCiAJdmdhX3N3aXRjaGVyb29fdW5yZWdpc3Rl cl9jbGllbnQocGRldik7CiAJdmdhX2NsaWVudF9yZWdpc3RlcihwZGV2LCBOVUxMLCBOVUxMLCBO VUxMKTsKIAotCWludGVsX2Nzcl91Y29kZV9maW5pKGRldl9wcml2KTsKKwlpbnRlbF9jc3JfdWNv ZGVfZmluaShpOTE1KTsKIAogCS8qIEZyZWUgZXJyb3Igc3RhdGUgYWZ0ZXIgaW50ZXJydXB0cyBh cmUgZnVsbHkgZGlzYWJsZWQuICovCi0JY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXZfcHJp di0+Z3QuaGFuZ2NoZWNrLndvcmspOwotCWk5MTVfcmVzZXRfZXJyb3Jfc3RhdGUoZGV2X3ByaXYp OworCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmaTkxNS0+Z3QuaGFuZ2NoZWNrLndvcmspOwor CWk5MTVfcmVzZXRfZXJyb3Jfc3RhdGUoaTkxNSk7CiAKLQlpOTE1X2dlbV9kcml2ZXJfcmVtb3Zl KGRldl9wcml2KTsKKwlpOTE1X2dlbV9kcml2ZXJfcmVtb3ZlKGk5MTUpOwogCi0JaW50ZWxfcG93 ZXJfZG9tYWluc19kcml2ZXJfcmVtb3ZlKGRldl9wcml2KTsKKwlpbnRlbF9wb3dlcl9kb21haW5z X2RyaXZlcl9yZW1vdmUoaTkxNSk7CiAKLQlpOTE1X2RyaXZlcl9od19yZW1vdmUoZGV2X3ByaXYp OworCWk5MTVfZHJpdmVyX2h3X3JlbW92ZShpOTE1KTsKIAotCWVuYWJsZV9ycG1fd2FrZXJlZl9h c3NlcnRzKCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CisJZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2Vy dHMoJmk5MTUtPnJ1bnRpbWVfcG0pOwogfQogCiBzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9yZWxl YXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC0yMjA1LDI4ICsyMjExLDIzIEBAIHN0YXRp YyBpbnQgaTkxNV9kcm1fc3VzcGVuZF9sYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wg aGliZXJuYXRpb24pCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBpOTE1X3N1c3BlbmRf c3dpdGNoZXJvbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCitz dGF0aWMgaW50CitpOTE1X3N1c3BlbmRfc3dpdGNoZXJvbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSwgcG1fbWVzc2FnZV90IHN0YXRlKQogewogCWludCBlcnJvcjsKIAotCWlmICghZGV2 KSB7Ci0JCURSTV9FUlJPUigiZGV2OiAlcFxuIiwgZGV2KTsKLQkJRFJNX0VSUk9SKCJEUk0gbm90 IGluaXRpYWxpemVkLCBhYm9ydGluZyBzdXNwZW5kLlxuIik7Ci0JCXJldHVybiAtRU5PREVWOwot CX0KLQogCWlmIChXQVJOX09OX09OQ0Uoc3RhdGUuZXZlbnQgIT0gUE1fRVZFTlRfU1VTUEVORCAm JgogCQkJIHN0YXRlLmV2ZW50ICE9IFBNX0VWRU5UX0ZSRUVaRSkpCiAJCXJldHVybiAtRUlOVkFM OwogCi0JaWYgKGRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlID09IERSTV9TV0lUQ0hfUE9XRVJfT0ZG KQorCWlmIChpOTE1LT5kcm0uc3dpdGNoX3Bvd2VyX3N0YXRlID09IERSTV9TV0lUQ0hfUE9XRVJf T0ZGKQogCQlyZXR1cm4gMDsKIAotCWVycm9yID0gaTkxNV9kcm1fc3VzcGVuZChkZXYpOworCWVy cm9yID0gaTkxNV9kcm1fc3VzcGVuZCgmaTkxNS0+ZHJtKTsKIAlpZiAoZXJyb3IpCiAJCXJldHVy biBlcnJvcjsKIAotCXJldHVybiBpOTE1X2RybV9zdXNwZW5kX2xhdGUoZGV2LCBmYWxzZSk7CisJ cmV0dXJuIGk5MTVfZHJtX3N1c3BlbmRfbGF0ZSgmaTkxNS0+ZHJtLCBmYWxzZSk7CiB9CiAKIHN0 YXRpYyBpbnQgaTkxNV9kcm1fcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC0yMzc5 LDUzICsyMzgwLDUzIEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1fcmVzdW1lX2Vhcmx5KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBpOTE1X3Jlc3Vt ZV9zd2l0Y2hlcm9vKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgaW50IGk5MTVfcmVz dW1lX3N3aXRjaGVyb28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJaW50IHJl dDsKIAotCWlmIChkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09G RikKKwlpZiAoaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VS X09GRikKIAkJcmV0dXJuIDA7CiAKLQlyZXQgPSBpOTE1X2RybV9yZXN1bWVfZWFybHkoZGV2KTsK KwlyZXQgPSBpOTE1X2RybV9yZXN1bWVfZWFybHkoJmk5MTUtPmRybSk7CiAJaWYgKHJldCkKIAkJ cmV0dXJuIHJldDsKIAotCXJldHVybiBpOTE1X2RybV9yZXN1bWUoZGV2KTsKKwlyZXR1cm4gaTkx NV9kcm1fcmVzdW1lKCZpOTE1LT5kcm0pOwogfQogCiBzdGF0aWMgaW50IGk5MTVfcG1fcHJlcGFy ZShzdHJ1Y3QgZGV2aWNlICprZGV2KQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZf Z2V0X2RydmRhdGEoa2Rldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBrZGV2 X3RvX2k5MTUoa2Rldik7CiAKLQlpZiAoIWRldikgeworCWlmICghaTkxNSkgewogCQlkZXZfZXJy KGtkZXYsICJEUk0gbm90IGluaXRpYWxpemVkLCBhYm9ydGluZyBzdXNwZW5kLlxuIik7CiAJCXJl dHVybiAtRU5PREVWOwogCX0KIAotCWlmIChkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1f U1dJVENIX1BPV0VSX09GRikKKwlpZiAoaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBE Uk1fU1dJVENIX1BPV0VSX09GRikKIAkJcmV0dXJuIDA7CiAKLQlyZXR1cm4gaTkxNV9kcm1fcHJl cGFyZShkZXYpOworCXJldHVybiBpOTE1X2RybV9wcmVwYXJlKCZpOTE1LT5kcm0pOwogfQogCiBz dGF0aWMgaW50IGk5MTVfcG1fc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICprZGV2KQogewotCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEoa2Rldik7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUgPSBrZGV2X3RvX2k5MTUoa2Rldik7CiAKLQlpZiAoIWRldikgewor CWlmICghaTkxNSkgewogCQlkZXZfZXJyKGtkZXYsICJEUk0gbm90IGluaXRpYWxpemVkLCBhYm9y dGluZyBzdXNwZW5kLlxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIAotCWlmIChkZXYtPnN3 aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKKwlpZiAoaTkxNS0+ZHJt LnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKIAkJcmV0dXJuIDA7 CiAKLQlyZXR1cm4gaTkxNV9kcm1fc3VzcGVuZChkZXYpOworCXJldHVybiBpOTE1X2RybV9zdXNw ZW5kKCZpOTE1LT5kcm0pOwogfQogCiBzdGF0aWMgaW50IGk5MTVfcG1fc3VzcGVuZF9sYXRlKHN0 cnVjdCBkZXZpY2UgKmtkZXYpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZrZGV2X3Rv X2k5MTUoa2RldiktPmRybTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGtkZXZf dG9faTkxNShrZGV2KTsKIAogCS8qCiAJICogV2UgaGF2ZSBhIHN1c3BlbmQgb3JkZXJpbmcgaXNz dWUgd2l0aCB0aGUgc25kLWhkYSBkcml2ZXIgYWxzbwpAQCAtMjQzNiw1NSArMjQzNyw1NSBAQCBz dGF0aWMgaW50IGk5MTVfcG1fc3VzcGVuZF9sYXRlKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiAJICog RklYTUU6IFRoaXMgc2hvdWxkIGJlIHNvbHZlZCB3aXRoIGEgc3BlY2lhbCBoZG1pIHNpbmsgZGV2 aWNlIG9yCiAJICogc2ltaWxhciBzbyB0aGF0IHBvd2VyIGRvbWFpbnMgY2FuIGJlIGVtcGxveWVk LgogCSAqLwotCWlmIChkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VS X09GRikKKwlpZiAoaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BP V0VSX09GRikKIAkJcmV0dXJuIDA7CiAKLQlyZXR1cm4gaTkxNV9kcm1fc3VzcGVuZF9sYXRlKGRl diwgZmFsc2UpOworCXJldHVybiBpOTE1X2RybV9zdXNwZW5kX2xhdGUoJmk5MTUtPmRybSwgZmFs c2UpOwogfQogCiBzdGF0aWMgaW50IGk5MTVfcG1fcG93ZXJvZmZfbGF0ZShzdHJ1Y3QgZGV2aWNl ICprZGV2KQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAma2Rldl90b19pOTE1KGtkZXYp LT5kcm07CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBrZGV2X3RvX2k5MTUoa2Rl dik7CiAKLQlpZiAoZGV2LT5zd2l0Y2hfcG93ZXJfc3RhdGUgPT0gRFJNX1NXSVRDSF9QT1dFUl9P RkYpCisJaWYgKGk5MTUtPmRybS5zd2l0Y2hfcG93ZXJfc3RhdGUgPT0gRFJNX1NXSVRDSF9QT1dF Ul9PRkYpCiAJCXJldHVybiAwOwogCi0JcmV0dXJuIGk5MTVfZHJtX3N1c3BlbmRfbGF0ZShkZXYs IHRydWUpOworCXJldHVybiBpOTE1X2RybV9zdXNwZW5kX2xhdGUoJmk5MTUtPmRybSwgdHJ1ZSk7 CiB9CiAKIHN0YXRpYyBpbnQgaTkxNV9wbV9yZXN1bWVfZWFybHkoc3RydWN0IGRldmljZSAqa2Rl dikKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmtkZXZfdG9faTkxNShrZGV2KS0+ZHJt OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0ga2Rldl90b19pOTE1KGtkZXYpOwog Ci0JaWYgKGRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlID09IERSTV9TV0lUQ0hfUE9XRVJfT0ZGKQor CWlmIChpOTE1LT5kcm0uc3dpdGNoX3Bvd2VyX3N0YXRlID09IERSTV9TV0lUQ0hfUE9XRVJfT0ZG KQogCQlyZXR1cm4gMDsKIAotCXJldHVybiBpOTE1X2RybV9yZXN1bWVfZWFybHkoZGV2KTsKKwly ZXR1cm4gaTkxNV9kcm1fcmVzdW1lX2Vhcmx5KCZpOTE1LT5kcm0pOwogfQogCiBzdGF0aWMgaW50 IGk5MTVfcG1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiB7Ci0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9ICZrZGV2X3RvX2k5MTUoa2RldiktPmRybTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSA9IGtkZXZfdG9faTkxNShrZGV2KTsKIAotCWlmIChkZXYtPnN3aXRjaF9wb3dl cl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKKwlpZiAoaTkxNS0+ZHJtLnN3aXRjaF9w b3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKIAkJcmV0dXJuIDA7CiAKLQlyZXR1 cm4gaTkxNV9kcm1fcmVzdW1lKGRldik7CisJcmV0dXJuIGk5MTVfZHJtX3Jlc3VtZSgmaTkxNS0+ ZHJtKTsKIH0KIAogLyogZnJlZXplOiBiZWZvcmUgY3JlYXRpbmcgdGhlIGhpYmVybmF0aW9uX2lt YWdlICovCiBzdGF0aWMgaW50IGk5MTVfcG1fZnJlZXplKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiB7 Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZrZGV2X3RvX2k5MTUoa2RldiktPmRybTsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGtkZXZfdG9faTkxNShrZGV2KTsKIAlpbnQg cmV0OwogCi0JaWYgKGRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlICE9IERSTV9TV0lUQ0hfUE9XRVJf T0ZGKSB7Ci0JCXJldCA9IGk5MTVfZHJtX3N1c3BlbmQoZGV2KTsKKwlpZiAoaTkxNS0+ZHJtLnN3 aXRjaF9wb3dlcl9zdGF0ZSAhPSBEUk1fU1dJVENIX1BPV0VSX09GRikgeworCQlyZXQgPSBpOTE1 X2RybV9zdXNwZW5kKCZpOTE1LT5kcm0pOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9 CiAKLQlyZXQgPSBpOTE1X2dlbV9mcmVlemUoa2Rldl90b19pOTE1KGtkZXYpKTsKKwlyZXQgPSBp OTE1X2dlbV9mcmVlemUoaTkxNSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMjQ5 MywxNiArMjQ5NCwxNiBAQCBzdGF0aWMgaW50IGk5MTVfcG1fZnJlZXplKHN0cnVjdCBkZXZpY2Ug KmtkZXYpCiAKIHN0YXRpYyBpbnQgaTkxNV9wbV9mcmVlemVfbGF0ZShzdHJ1Y3QgZGV2aWNlICpr ZGV2KQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAma2Rldl90b19pOTE1KGtkZXYpLT5k cm07CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBrZGV2X3RvX2k5MTUoa2Rldik7 CiAJaW50IHJldDsKIAotCWlmIChkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSAhPSBEUk1fU1dJVENI X1BPV0VSX09GRikgewotCQlyZXQgPSBpOTE1X2RybV9zdXNwZW5kX2xhdGUoZGV2LCB0cnVlKTsK KwlpZiAoaTkxNS0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSAhPSBEUk1fU1dJVENIX1BPV0VSX09G RikgeworCQlyZXQgPSBpOTE1X2RybV9zdXNwZW5kX2xhdGUoJmk5MTUtPmRybSwgdHJ1ZSk7CiAJ CWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KIAotCXJldCA9IGk5MTVfZ2VtX2ZyZWV6ZV9s YXRlKGtkZXZfdG9faTkxNShrZGV2KSk7CisJcmV0ID0gaTkxNV9nZW1fZnJlZXplX2xhdGUoaTkx NSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMjkwNCw4ICsyOTA1LDcgQEAgc3Rh dGljIGludCB2bHZfcmVzdW1lX3ByZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCiBzdGF0aWMgaW50IGludGVsX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpr ZGV2KQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEoa2Rldik7 Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfdG9faTkxNShrZGV2KTsKIAlz dHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtID0gJmRldl9wcml2LT5ydW50aW1lX3BtOwogCWlu dCByZXQ7CiAKQEAgLTMwMDIsOCArMzAwMiw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9z dXNwZW5kKHN0cnVjdCBkZXZpY2UgKmtkZXYpCiAKIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9y ZXN1bWUoc3RydWN0IGRldmljZSAqa2RldikKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZGV2X2dldF9kcnZkYXRhKGtkZXYpOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBr ZGV2X3RvX2k5MTUoa2Rldik7CiAJc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSA9ICZkZXZf cHJpdi0+cnVudGltZV9wbTsKIAlpbnQgcmV0ID0gMDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK aW5kZXggNTlkNGExMTQ2MDM5Li4xNjM5NjVhMTVjYzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aApAQCAtMTg5NSw3ICsxODk1LDEyIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKnRvX2k5MTUoY29uc3Qgc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogc3RhdGljIGlu bGluZSBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqa2Rldl90b19pOTE1KHN0cnVjdCBkZXZpY2Ug KmtkZXYpCiB7Ci0JcmV0dXJuIHRvX2k5MTUoZGV2X2dldF9kcnZkYXRhKGtkZXYpKTsKKwlyZXR1 cm4gZGV2X2dldF9kcnZkYXRhKGtkZXYpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpwZGV2X3RvX2k5MTUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCit7CisJcmV0 dXJuIHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKIH0KIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqd29wY21fdG9faTkxNShzdHJ1Y3QgaW50ZWxfd29wY20gKndvcGNtKQpA QCAtMjM3Myw3ICsyMzc4LDcgQEAgbG9uZyBpOTE1X2NvbXBhdF9pb2N0bChzdHJ1Y3QgZmlsZSAq ZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOwogZXh0ZXJuIGNvbnN0 IHN0cnVjdCBkZXZfcG1fb3BzIGk5MTVfcG1fb3BzOwogCiBpbnQgaTkxNV9kcml2ZXJfcHJvYmUo c3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpOwot dm9pZCBpOTE1X2RyaXZlcl9yZW1vdmUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cit2b2lkIGk5 MTVfZHJpdmVyX3JlbW92ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CiAKIHZvaWQg aW50ZWxfZW5naW5lX2luaXRfaGFuZ2NoZWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSk7CiBpbnQgdmx2X2ZvcmNlX2dmeF9jbG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIGJvb2wgb24pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9w Y2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKaW5kZXggYmQ5MjExYjNkNzZl Li4yOTIzYTczMjg3OWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNp LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwpAQCAtODczLDE2ICs4NzMs MTYgQEAgTU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHBjaWlkbGlzdCk7CiAKIHN0YXRpYyB2b2lk IGk5MTVfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1OwogCi0JZGV2ID0gcGNp X2dldF9kcnZkYXRhKHBkZXYpOwotCWlmICghZGV2KSAvKiBkcml2ZXIgbG9hZCBhYm9ydGVkLCBu b3RoaW5nIHRvIGNsZWFudXAgKi8KKwlpOTE1ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOworCWlm ICghaTkxNSkgLyogZHJpdmVyIGxvYWQgYWJvcnRlZCwgbm90aGluZyB0byBjbGVhbnVwICovCiAJ CXJldHVybjsKIAotCWk5MTVfZHJpdmVyX3JlbW92ZShkZXYpOwotCWRybV9kZXZfcHV0KGRldik7 Ci0KKwlpOTE1X2RyaXZlcl9yZW1vdmUoaTkxNSk7CiAJcGNpX3NldF9kcnZkYXRhKHBkZXYsIE5V TEwpOworCisJZHJtX2Rldl9wdXQoJmk5MTUtPmRybSk7CiB9CiAKIC8qIGlzIGRldmljZV9pZCBw cmVzZW50IGluIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGlkcyAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfc2VsZnRlc3QuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3NlbGZ0ZXN0LmMKaW5kZXggZGI5YzY0NWJiZGZlLi5j M2Y2MjE2ZTg0Y2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9p OTE1X3NlbGZ0ZXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVf c2VsZnRlc3QuYwpAQCAtMTg1LDcgKzE4NSw3IEBAIGludCBpOTE1X2xpdmVfc2VsZnRlc3RzKHN0 cnVjdCBwY2lfZGV2ICpwZGV2KQogCWlmICghaTkxNV9zZWxmdGVzdC5saXZlKQogCQlyZXR1cm4g MDsKIAotCWVyciA9IHJ1bl9zZWxmdGVzdHMobGl2ZSwgdG9faTkxNShwY2lfZ2V0X2RydmRhdGEo cGRldikpKTsKKwllcnIgPSBydW5fc2VsZnRlc3RzKGxpdmUsIHBjaV9nZXRfZHJ2ZGF0YShwZGV2 KSk7CiAJaWYgKGVycikgewogCQlpOTE1X3NlbGZ0ZXN0LmxpdmUgPSBlcnI7CiAJCXJldHVybiBl cnI7Ci0tIAoyLjIyLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeA==