From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 45/51] drm/amdgpu: support per device powerplay enablement (v2) Date: Thu, 12 Nov 2015 01:18:35 -0500 Message-ID: <1447309121-2480-46-git-send-email-alexander.deucher@amd.com> References: <1447309121-2480-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qg0-f49.google.com (mail-qg0-f49.google.com [209.85.192.49]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3A34E7A091 for ; Wed, 11 Nov 2015 22:19:27 -0800 (PST) Received: by qgec40 with SMTP id c40so40610161qge.2 for ; Wed, 11 Nov 2015 22:19:26 -0800 (PST) In-Reply-To: <1447309121-2480-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogSmFtbXkgWmhvdSA8SmFtbXkuWmhvdUBhbWQuY29tPgoKVGhlIGFtZGd1X3Bvd2VycGxh eSB2YXJpYWJsZSBpcyBnbG9iYWwgZm9yIG11bHRpcGxlIEdQVSBpbnN0YW5jZXMuCgp2MjogZm9s ZCBpbiBGbG9yYSdzIG1vZHVsZSBvcHRpb24gY2hhbmdlLCBwcm90ZWN0IGFkZXYgcmVmZXJlbmNl IGluCm1hY3JvcwoKQ2hhbmdlLUlkOiBJMWQwMGYxNTVmMTc3MDIyMDliOGY0MTAxYTI1MDkwYjVl YzQyZTM3YgpTaWduZWQtb2ZmLWJ5OiBKYW1teSBaaG91IDxKYW1teS5aaG91QGFtZC5jb20+ClJl dmlld2VkLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+ClJldmll d2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggICAgICAgICAgIHwgNzEgKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf ZHJ2LmMgICAgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Bt LmMgICAgICAgIHwgMzAgKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9wb3dlcnBsYXkuYyB8IDE1ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z2Z4X3Y4XzAuYyAgICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Nk bWFfdjNfMC5jICAgICAgICB8ICAyICstCiA2IGZpbGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMo KyksIDYxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKaW5kZXgg MjI3ZDUzZS4uZGNiN2M4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKQEAgLTE5 OTIsNiArMTk5Miw3IEBAIHN0cnVjdCBhbWRncHVfZGV2aWNlIHsKIAogCS8qIHBvd2VycGxheSAq LwogCXN0cnVjdCBhbWRfcG93ZXJwbGF5CQlwb3dlcnBsYXk7CisJYm9vbAkJCQlwcF9lbmFibGVk OwogCiAJLyogZHBtICovCiAJc3RydWN0IGFtZGdwdV9wbQkJcG07CkBAIC0yMjE5LDY4ICsyMjIw LDY4IEBAIGFtZGdwdV9nZXRfc2RtYV9pbnN0YW5jZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcp CiAjZGVmaW5lIGFtZGdwdV9kcG1fZW5hYmxlX2JhcG0oYWRldiwgZSkgKGFkZXYpLT5wbS5mdW5j cy0+ZW5hYmxlX2JhcG0oKGFkZXYpLCAoZSkpCiAKICNkZWZpbmUgYW1kZ3B1X2RwbV9nZXRfdGVt cGVyYXR1cmUoYWRldikgXAotCQlhbWRncHVfcG93ZXJwbGF5ID8gXAotCQkoYWRldiktPnBvd2Vy cGxheS5wcF9mdW5jcy0+Z2V0X3RlbXBlcmF0dXJlKChhZGV2KS0+cG93ZXJwbGF5LnBwX2hhbmRs ZSkgOiBcCi0JCShhZGV2KS0+cG0uZnVuY3MtPmdldF90ZW1wZXJhdHVyZSgoYWRldikpCisJKGFk ZXYpLT5wcF9lbmFibGVkID8JCQkJCQlcCisJICAgICAgKGFkZXYpLT5wb3dlcnBsYXkucHBfZnVu Y3MtPmdldF90ZW1wZXJhdHVyZSgoYWRldiktPnBvd2VycGxheS5wcF9oYW5kbGUpIDogXAorCSAg ICAgIChhZGV2KS0+cG0uZnVuY3MtPmdldF90ZW1wZXJhdHVyZSgoYWRldikpCiAKICNkZWZpbmUg YW1kZ3B1X2RwbV9zZXRfZmFuX2NvbnRyb2xfbW9kZShhZGV2LCBtKSBcCi0JCWFtZGdwdV9wb3dl cnBsYXkgPyBcCi0JCShhZGV2KS0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5zZXRfZmFuX2NvbnRyb2xf bW9kZSgoYWRldiktPnBvd2VycGxheS5wcF9oYW5kbGUsIChtKSkgOiBcCi0JCShhZGV2KS0+cG0u ZnVuY3MtPnNldF9mYW5fY29udHJvbF9tb2RlKChhZGV2KSwgKG0pKQorCShhZGV2KS0+cHBfZW5h YmxlZCA/CQkJCQkJXAorCSAgICAgIChhZGV2KS0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5zZXRfZmFu X2NvbnRyb2xfbW9kZSgoYWRldiktPnBvd2VycGxheS5wcF9oYW5kbGUsIChtKSkgOiBcCisJICAg ICAgKGFkZXYpLT5wbS5mdW5jcy0+c2V0X2Zhbl9jb250cm9sX21vZGUoKGFkZXYpLCAobSkpCiAK ICNkZWZpbmUgYW1kZ3B1X2RwbV9nZXRfZmFuX2NvbnRyb2xfbW9kZShhZGV2KSBcCi0JCWFtZGdw dV9wb3dlcnBsYXkgPyBcCi0JCShhZGV2KS0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5nZXRfZmFuX2Nv bnRyb2xfbW9kZSgoYWRldiktPnBvd2VycGxheS5wcF9oYW5kbGUpIDogXAotCQkoYWRldiktPnBt LmZ1bmNzLT5nZXRfZmFuX2NvbnRyb2xfbW9kZSgoYWRldikpCisJKGFkZXYpLT5wcF9lbmFibGVk ID8JCQkJCQlcCisJICAgICAgKGFkZXYpLT5wb3dlcnBsYXkucHBfZnVuY3MtPmdldF9mYW5fY29u dHJvbF9tb2RlKChhZGV2KS0+cG93ZXJwbGF5LnBwX2hhbmRsZSkgOiBcCisJICAgICAgKGFkZXYp LT5wbS5mdW5jcy0+Z2V0X2Zhbl9jb250cm9sX21vZGUoKGFkZXYpKQogCiAjZGVmaW5lIGFtZGdw dV9kcG1fc2V0X2Zhbl9zcGVlZF9wZXJjZW50KGFkZXYsIHMpIFwKLQkJYW1kZ3B1X3Bvd2VycGxh eSA/IFwKLQkJKGFkZXYpLT5wb3dlcnBsYXkucHBfZnVuY3MtPnNldF9mYW5fc3BlZWRfcGVyY2Vu dCgoYWRldiktPnBvd2VycGxheS5wcF9oYW5kbGUsIChzKSkgOiBcCi0JCShhZGV2KS0+cG0uZnVu Y3MtPnNldF9mYW5fc3BlZWRfcGVyY2VudCgoYWRldiksIChzKSkKKwkoYWRldiktPnBwX2VuYWJs ZWQgPwkJCQkJCVwKKwkgICAgICAoYWRldiktPnBvd2VycGxheS5wcF9mdW5jcy0+c2V0X2Zhbl9z cGVlZF9wZXJjZW50KChhZGV2KS0+cG93ZXJwbGF5LnBwX2hhbmRsZSwgKHMpKSA6IFwKKwkgICAg ICAoYWRldiktPnBtLmZ1bmNzLT5zZXRfZmFuX3NwZWVkX3BlcmNlbnQoKGFkZXYpLCAocykpCiAK ICNkZWZpbmUgYW1kZ3B1X2RwbV9nZXRfZmFuX3NwZWVkX3BlcmNlbnQoYWRldiwgcykgXAotCQlh bWRncHVfcG93ZXJwbGF5ID8gXAotCQkoYWRldiktPnBvd2VycGxheS5wcF9mdW5jcy0+Z2V0X2Zh bl9zcGVlZF9wZXJjZW50KChhZGV2KS0+cG93ZXJwbGF5LnBwX2hhbmRsZSwgKHMpKSA6IFwKLQkJ KGFkZXYpLT5wbS5mdW5jcy0+Z2V0X2Zhbl9zcGVlZF9wZXJjZW50KChhZGV2KSwgKHMpKQorCShh ZGV2KS0+cHBfZW5hYmxlZCA/CQkJCQkJXAorCSAgICAgIChhZGV2KS0+cG93ZXJwbGF5LnBwX2Z1 bmNzLT5nZXRfZmFuX3NwZWVkX3BlcmNlbnQoKGFkZXYpLT5wb3dlcnBsYXkucHBfaGFuZGxlLCAo cykpIDogXAorCSAgICAgIChhZGV2KS0+cG0uZnVuY3MtPmdldF9mYW5fc3BlZWRfcGVyY2VudCgo YWRldiksIChzKSkKIAogI2RlZmluZSBhbWRncHVfZHBtX2dldF9zY2xrKGFkZXYsIGwpIFwKLQkJ YW1kZ3B1X3Bvd2VycGxheSA/IFwKLQkJKGFkZXYpLT5wb3dlcnBsYXkucHBfZnVuY3MtPmdldF9z Y2xrKChhZGV2KS0+cG93ZXJwbGF5LnBwX2hhbmRsZSwgKGwpKSA6IFwKKwkoYWRldiktPnBwX2Vu YWJsZWQgPwkJCQkJCVwKKwkgICAgICAoYWRldiktPnBvd2VycGxheS5wcF9mdW5jcy0+Z2V0X3Nj bGsoKGFkZXYpLT5wb3dlcnBsYXkucHBfaGFuZGxlLCAobCkpIDogXAogCQkoYWRldiktPnBtLmZ1 bmNzLT5nZXRfc2NsaygoYWRldiksIChsKSkKIAogI2RlZmluZSBhbWRncHVfZHBtX2dldF9tY2xr KGFkZXYsIGwpICBcCi0JCWFtZGdwdV9wb3dlcnBsYXkgPyBcCi0JCShhZGV2KS0+cG93ZXJwbGF5 LnBwX2Z1bmNzLT5nZXRfbWNsaygoYWRldiktPnBvd2VycGxheS5wcF9oYW5kbGUsIChsKSkgOiBc Ci0JCShhZGV2KS0+cG0uZnVuY3MtPmdldF9tY2xrKChhZGV2KSwgKGwpKQorCShhZGV2KS0+cHBf ZW5hYmxlZCA/CQkJCQkJXAorCSAgICAgIChhZGV2KS0+cG93ZXJwbGF5LnBwX2Z1bmNzLT5nZXRf bWNsaygoYWRldiktPnBvd2VycGxheS5wcF9oYW5kbGUsIChsKSkgOiBcCisJICAgICAgKGFkZXYp LT5wbS5mdW5jcy0+Z2V0X21jbGsoKGFkZXYpLCAobCkpCiAKIAogI2RlZmluZSBhbWRncHVfZHBt X2ZvcmNlX3BlcmZvcm1hbmNlX2xldmVsKGFkZXYsIGwpIFwKLQkJYW1kZ3B1X3Bvd2VycGxheSA/ IFwKLQkJKGFkZXYpLT5wb3dlcnBsYXkucHBfZnVuY3MtPmZvcmNlX3BlcmZvcm1hbmNlX2xldmVs KChhZGV2KS0+cG93ZXJwbGF5LnBwX2hhbmRsZSwgKGwpKSA6IFwKLQkJKGFkZXYpLT5wbS5mdW5j cy0+Zm9yY2VfcGVyZm9ybWFuY2VfbGV2ZWwoKGFkZXYpLCAobCkpCisJKGFkZXYpLT5wcF9lbmFi bGVkID8JCQkJCQlcCisJICAgICAgKGFkZXYpLT5wb3dlcnBsYXkucHBfZnVuY3MtPmZvcmNlX3Bl cmZvcm1hbmNlX2xldmVsKChhZGV2KS0+cG93ZXJwbGF5LnBwX2hhbmRsZSwgKGwpKSA6IFwKKwkg ICAgICAoYWRldiktPnBtLmZ1bmNzLT5mb3JjZV9wZXJmb3JtYW5jZV9sZXZlbCgoYWRldiksIChs KSkKIAogI2RlZmluZSBhbWRncHVfZHBtX3Bvd2VyZ2F0ZV91dmQoYWRldiwgZykgXAotCQlhbWRn cHVfcG93ZXJwbGF5ID8gXAotCQkoYWRldiktPnBvd2VycGxheS5wcF9mdW5jcy0+cG93ZXJnYXRl X3V2ZCgoYWRldiktPnBvd2VycGxheS5wcF9oYW5kbGUsIChnKSkgOiBcCi0JCShhZGV2KS0+cG0u ZnVuY3MtPnBvd2VyZ2F0ZV91dmQoKGFkZXYpLCAoZykpCisJKGFkZXYpLT5wcF9lbmFibGVkID8J CQkJCQlcCisJICAgICAgKGFkZXYpLT5wb3dlcnBsYXkucHBfZnVuY3MtPnBvd2VyZ2F0ZV91dmQo KGFkZXYpLT5wb3dlcnBsYXkucHBfaGFuZGxlLCAoZykpIDogXAorCSAgICAgIChhZGV2KS0+cG0u ZnVuY3MtPnBvd2VyZ2F0ZV91dmQoKGFkZXYpLCAoZykpCiAKICNkZWZpbmUgYW1kZ3B1X2RwbV9w b3dlcmdhdGVfdmNlKGFkZXYsIGcpIFwKLQkJYW1kZ3B1X3Bvd2VycGxheSA/IFwKLQkJKGFkZXYp LT5wb3dlcnBsYXkucHBfZnVuY3MtPnBvd2VyZ2F0ZV92Y2UoKGFkZXYpLT5wb3dlcnBsYXkucHBf aGFuZGxlLCAoZykpIDogXAotCQkoYWRldiktPnBtLmZ1bmNzLT5wb3dlcmdhdGVfdmNlKChhZGV2 KSwgKGcpKQorCShhZGV2KS0+cHBfZW5hYmxlZCA/CQkJCQkJXAorCSAgICAgIChhZGV2KS0+cG93 ZXJwbGF5LnBwX2Z1bmNzLT5wb3dlcmdhdGVfdmNlKChhZGV2KS0+cG93ZXJwbGF5LnBwX2hhbmRs ZSwgKGcpKSA6IFwKKwkgICAgICAoYWRldiktPnBtLmZ1bmNzLT5wb3dlcmdhdGVfdmNlKChhZGV2 KSwgKGcpKQogCiAjZGVmaW5lIGFtZGdwdV9kcG1fZGVidWdmc19wcmludF9jdXJyZW50X3BlcmZv cm1hbmNlX2xldmVsKGFkZXYsIG0pIFwKLQkJYW1kZ3B1X3Bvd2VycGxheSA/IFwKLQkJKGFkZXYp LT5wb3dlcnBsYXkucHBfZnVuY3MtPnByaW50X2N1cnJlbnRfcGVyZm9ybWFuY2VfbGV2ZWwoKGFk ZXYpLT5wb3dlcnBsYXkucHBfaGFuZGxlLCAobSkpIDogXAotCQkoYWRldiktPnBtLmZ1bmNzLT5k ZWJ1Z2ZzX3ByaW50X2N1cnJlbnRfcGVyZm9ybWFuY2VfbGV2ZWwoKGFkZXYpLCAobSkpCisJKGFk ZXYpLT5wcF9lbmFibGVkID8JCQkJCQlcCisJICAgICAgKGFkZXYpLT5wb3dlcnBsYXkucHBfZnVu Y3MtPnByaW50X2N1cnJlbnRfcGVyZm9ybWFuY2VfbGV2ZWwoKGFkZXYpLT5wb3dlcnBsYXkucHBf aGFuZGxlLCAobSkpIDogXAorCSAgICAgIChhZGV2KS0+cG0uZnVuY3MtPmRlYnVnZnNfcHJpbnRf Y3VycmVudF9wZXJmb3JtYW5jZV9sZXZlbCgoYWRldiksIChtKSkKIAogI2RlZmluZSBhbWRncHVf ZHBtX2dldF9jdXJyZW50X3Bvd2VyX3N0YXRlKGFkZXYpIFwKLQkJKGFkZXYpLT5wb3dlcnBsYXku cHBfZnVuY3MtPmdldF9jdXJyZW50X3Bvd2VyX3N0YXRlKChhZGV2KS0+cG93ZXJwbGF5LnBwX2hh bmRsZSkKKwkoYWRldiktPnBvd2VycGxheS5wcF9mdW5jcy0+Z2V0X2N1cnJlbnRfcG93ZXJfc3Rh dGUoKGFkZXYpLT5wb3dlcnBsYXkucHBfaGFuZGxlKQogCiAjZGVmaW5lIGFtZGdwdV9kcG1fZ2V0 X3BlcmZvcm1hbmNlX2xldmVsKGFkZXYpIFwKLQkJKGFkZXYpLT5wb3dlcnBsYXkucHBfZnVuY3Mt PmdldF9wZXJmb3JtYW5jZV9sZXZlbCgoYWRldiktPnBvd2VycGxheS5wcF9oYW5kbGUpCisJKGFk ZXYpLT5wb3dlcnBsYXkucHBfZnVuY3MtPmdldF9wZXJmb3JtYW5jZV9sZXZlbCgoYWRldiktPnBv d2VycGxheS5wcF9oYW5kbGUpCiAKLSNkZWZpbmUgYW1kZ3B1X2RwbV9kaXNwYXRjaF90YXNrKGFk ZXYsIGV2ZW50X2lkLCBpbnB1dCwgb3V0cHV0KSBcCisjZGVmaW5lIGFtZGdwdV9kcG1fZGlzcGF0 Y2hfdGFzayhhZGV2LCBldmVudF9pZCwgaW5wdXQsIG91dHB1dCkJCVwKIAkoYWRldiktPnBvd2Vy cGxheS5wcF9mdW5jcy0+ZGlzcGF0Y2hfdGFza3MoKGFkZXYpLT5wb3dlcnBsYXkucHBfaGFuZGxl LCAoZXZlbnRfaWQpLCAoaW5wdXQpLCAob3V0cHV0KSkKIAogI2RlZmluZSBhbWRncHVfZ2RzX3N3 aXRjaChhZGV2LCByLCB2LCBkLCB3LCBhKSAoYWRldiktPmdkcy5mdW5jcy0+cGF0Y2hfZ2RzX3N3 aXRjaCgociksICh2KSwgKGQpLCAodyksIChhKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kcnYuYwppbmRleCBmZTExYTI5Li4zOWEyNmM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2Rydi5jCkBAIC04Miw3ICs4Miw3IEBAIGludCBhbWRncHVfZW5hYmxlX3Nj aGVkdWxlciA9IDE7CiBpbnQgYW1kZ3B1X3NjaGVkX2pvYnMgPSAxNjsKIGludCBhbWRncHVfc2No ZWRfaHdfc3VibWlzc2lvbiA9IDI7CiBpbnQgYW1kZ3B1X2VuYWJsZV9zZW1hcGhvcmVzID0gMDsK LWludCBhbWRncHVfcG93ZXJwbGF5ID0gMDsKK2ludCBhbWRncHVfcG93ZXJwbGF5ID0gLTE7CiAK IE1PRFVMRV9QQVJNX0RFU0ModnJhbWxpbWl0LCAiUmVzdHJpY3QgVlJBTSBmb3IgdGVzdGluZywg aW4gbWVnYWJ5dGVzIik7CiBtb2R1bGVfcGFyYW1fbmFtZWQodnJhbWxpbWl0LCBhbWRncHVfdnJh bV9saW1pdCwgaW50LCAwNjAwKTsKQEAgLTE2Niw3ICsxNjYsNyBAQCBNT0RVTEVfUEFSTV9ERVND KGVuYWJsZV9zZW1hcGhvcmVzLCAiRW5hYmxlIHNlbWFwaG9yZXMgKDEgPSBlbmFibGUsIDAgPSBk aXNhYmxlCiBtb2R1bGVfcGFyYW1fbmFtZWQoZW5hYmxlX3NlbWFwaG9yZXMsIGFtZGdwdV9lbmFi bGVfc2VtYXBob3JlcywgaW50LCAwNjQ0KTsKIAogI2lmZGVmIENPTkZJR19EUk1fQU1EX1BPV0VS UExBWQotTU9EVUxFX1BBUk1fREVTQyhwb3dlcnBsYXksICJQb3dlcnBsYXkgY29tcG9uZW50ICgx ID0gZW5hYmxlLCAwID0gZGlzYWJsZSAoZGVmYXVsdCkpIik7CitNT0RVTEVfUEFSTV9ERVNDKHBv d2VycGxheSwgIlBvd2VycGxheSBjb21wb25lbnQgKDEgPSBlbmFibGUsIDAgPSBkaXNhYmxlLCAt MSA9IGF1dG8gKGRlZmF1bHQpKSIpOwogbW9kdWxlX3BhcmFtX25hbWVkKHBvd2VycGxheSwgYW1k Z3B1X3Bvd2VycGxheSwgaW50LCAwNDQ0KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9wbS5jCmluZGV4IDQwYWUzMDUuLjNiNzg5ODIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9wbS5jCkBAIC0zNiw3ICszNiw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1 X2RlYnVnZnNfcG1faW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiAKIHZvaWQgYW1k Z3B1X3BtX2FjcGlfZXZlbnRfaGFuZGxlcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsK LQlpZiAoYW1kZ3B1X3Bvd2VycGxheSkKKwlpZiAoYWRldi0+cHBfZW5hYmxlZCkKIAkJLyogVE9E TyAqLwogCQlyZXR1cm47CiAKQEAgLTYwLDcgKzYwLDcgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1 X2dldF9kcG1fc3RhdGUoc3RydWN0IGRldmljZSAqZGV2LAogCXN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gZGRldi0+ZGV2X3ByaXZhdGU7CiAJZW51bSBhbWRfcG1fc3RhdGVfdHlwZSBwbTsK IAotCWlmIChhbWRncHVfcG93ZXJwbGF5KSB7CisJaWYgKGFkZXYtPnBwX2VuYWJsZWQpIHsKIAkJ cG0gPSBhbWRncHVfZHBtX2dldF9jdXJyZW50X3Bvd2VyX3N0YXRlKGFkZXYpOwogCX0gZWxzZQog CQlwbSA9IGFkZXYtPnBtLmRwbS51c2VyX3N0YXRlOwpAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMg c3NpemVfdCBhbWRncHVfc2V0X2RwbV9zdGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCWdvdG8g ZmFpbDsKIAl9CiAKLQlpZiAoYW1kZ3B1X3Bvd2VycGxheSkgeworCWlmIChhZGV2LT5wcF9lbmFi bGVkKSB7CiAJCWFtZGdwdV9kcG1fZGlzcGF0Y2hfdGFzayhhZGV2LCBBTURfUFBfRVZFTlRfRU5B QkxFX1VTRVJfU1RBVEUsICZzdGF0ZSwgTlVMTCk7CiAJfSBlbHNlIHsKIAkJbXV0ZXhfbG9jaygm YWRldi0+cG0ubXV0ZXgpOwpAQCAtMTEzLDcgKzExMyw3IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdw dV9nZXRfZHBtX2ZvcmNlZF9wZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJ c3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IGRkZXYtPmRldl9wcml2YXRlOwogCi0JaWYgKGFtZGdwdV9w b3dlcnBsYXkpIHsKKwlpZiAoYWRldi0+cHBfZW5hYmxlZCkgewogCQllbnVtIGFtZF9kcG1fZm9y Y2VkX2xldmVsIGxldmVsOwogCiAJCWxldmVsID0gYW1kZ3B1X2RwbV9nZXRfcGVyZm9ybWFuY2Vf bGV2ZWwoYWRldik7CkBAIC0xNTEsNyArMTUxLDcgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X3Nl dF9kcG1fZm9yY2VkX3BlcmZvcm1hbmNlX2xldmVsKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJZ290 byBmYWlsOwogCX0KIAotCWlmIChhbWRncHVfcG93ZXJwbGF5KQorCWlmIChhZGV2LT5wcF9lbmFi bGVkKQogCQlhbWRncHVfZHBtX2ZvcmNlX3BlcmZvcm1hbmNlX2xldmVsKGFkZXYsIGxldmVsKTsK IAllbHNlIHsKIAkJbXV0ZXhfbG9jaygmYWRldi0+cG0ubXV0ZXgpOwpAQCAtMTg0LDcgKzE4NCw3 IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9od21vbl9zaG93X3RlbXAoc3RydWN0IGRldmljZSAq ZGV2LAogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7 CiAJaW50IHRlbXA7CiAKLQlpZiAoIWFtZGdwdV9wb3dlcnBsYXkgJiYgIWFkZXYtPnBtLmZ1bmNz LT5nZXRfdGVtcGVyYXR1cmUpCisJaWYgKCFhZGV2LT5wcF9lbmFibGVkICYmICFhZGV2LT5wbS5m dW5jcy0+Z2V0X3RlbXBlcmF0dXJlKQogCQl0ZW1wID0gMDsKIAllbHNlCiAJCXRlbXAgPSBhbWRn cHVfZHBtX2dldF90ZW1wZXJhdHVyZShhZGV2KTsKQEAgLTIxNSw3ICsyMTUsNyBAQCBzdGF0aWMg c3NpemVfdCBhbWRncHVfaHdtb25fZ2V0X3B3bTFfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwK IAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCXUz MiBwd21fbW9kZSA9IDA7CiAKLQlpZiAoIWFtZGdwdV9wb3dlcnBsYXkgJiYgIWFkZXYtPnBtLmZ1 bmNzLT5nZXRfZmFuX2NvbnRyb2xfbW9kZSkKKwlpZiAoIWFkZXYtPnBwX2VuYWJsZWQgJiYgIWFk ZXYtPnBtLmZ1bmNzLT5nZXRfZmFuX2NvbnRyb2xfbW9kZSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAK IAlwd21fbW9kZSA9IGFtZGdwdV9kcG1fZ2V0X2Zhbl9jb250cm9sX21vZGUoYWRldik7CkBAIC0y MzMsNyArMjMzLDcgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2h3bW9uX3NldF9wd20xX2VuYWJs ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJaW50IGVycjsKIAlpbnQgdmFsdWU7CiAKLQlpZiAoIWFt ZGdwdV9wb3dlcnBsYXkgJiYgIWFkZXYtPnBtLmZ1bmNzLT5zZXRfZmFuX2NvbnRyb2xfbW9kZSkK KwlpZiAoIWFkZXYtPnBwX2VuYWJsZWQgJiYgIWFkZXYtPnBtLmZ1bmNzLT5zZXRfZmFuX2NvbnRy b2xfbW9kZSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAllcnIgPSBrc3RydG9pbnQoYnVmLCAxMCwg JnZhbHVlKTsKQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMgdW1vZGVfdCBod21vbl9hdHRyaWJ1 dGVzX3Zpc2libGUoc3RydWN0IGtvYmplY3QgKmtvYmosCiAJICAgICBhdHRyID09ICZzZW5zb3Jf ZGV2X2F0dHJfcHdtMV9taW4uZGV2X2F0dHIuYXR0cikpCiAJCXJldHVybiAwOwogCi0JaWYgKGFt ZGdwdV9wb3dlcnBsYXkpCisJaWYgKGFkZXYtPnBwX2VuYWJsZWQpCiAJCXJldHVybiBlZmZlY3Rp dmVfbW9kZTsKIAogCS8qIFNraXAgZmFuIGF0dHJpYnV0ZXMgaWYgZmFuIGlzIG5vdCBwcmVzZW50 ICovCkBAIC02NzQsNyArNjc0LDcgQEAgZG9uZToKIAogdm9pZCBhbWRncHVfZHBtX2VuYWJsZV91 dmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgZW5hYmxlKQogewotCWlmIChhbWRn cHVfcG93ZXJwbGF5KQorCWlmIChhZGV2LT5wcF9lbmFibGVkKQogCQlhbWRncHVfZHBtX3Bvd2Vy Z2F0ZV91dmQoYWRldiwgIWVuYWJsZSk7CiAJZWxzZSB7CiAJCWlmIChhZGV2LT5wbS5mdW5jcy0+ cG93ZXJnYXRlX3V2ZCkgewpAQCAtNzAxLDcgKzcwMSw3IEBAIHZvaWQgYW1kZ3B1X2RwbV9lbmFi bGVfdXZkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGVuYWJsZSkKIAogdm9pZCBh bWRncHVfZHBtX2VuYWJsZV92Y2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgZW5h YmxlKQogewotCWlmIChhbWRncHVfcG93ZXJwbGF5KQorCWlmIChhZGV2LT5wcF9lbmFibGVkKQog CQlhbWRncHVfZHBtX3Bvd2VyZ2F0ZV92Y2UoYWRldiwgIWVuYWJsZSk7CiAJZWxzZSB7CiAJCWlm IChhZGV2LT5wbS5mdW5jcy0+cG93ZXJnYXRlX3ZjZSkgewpAQCAtNzI5LDcgKzcyOSw3IEBAIHZv aWQgYW1kZ3B1X3BtX3ByaW50X3Bvd2VyX3N0YXRlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKIHsKIAlpbnQgaTsKIAotCWlmIChhbWRncHVfcG93ZXJwbGF5KQorCWlmIChhZGV2LT5wcF9l bmFibGVkKQogCQkvKiBUTyBETyAqLwogCQlyZXR1cm47CiAKQEAgLTc0NSw3ICs3NDUsNyBAQCBp bnQgYW1kZ3B1X3BtX3N5c2ZzX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJaWYg KGFkZXYtPnBtLnN5c2ZzX2luaXRpYWxpemVkKQogCQlyZXR1cm4gMDsKIAotCWlmICghYW1kZ3B1 X3Bvd2VycGxheSkgeworCWlmICghYWRldi0+cHBfZW5hYmxlZCkgewogCQlpZiAoYWRldi0+cG0u ZnVuY3MtPmdldF90ZW1wZXJhdHVyZSA9PSBOVUxMKQogCQkJcmV0dXJuIDA7CiAJfQpAQCAtNzk4 LDcgKzc5OCw3IEBAIHZvaWQgYW1kZ3B1X3BtX2NvbXB1dGVfY2xvY2tzKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogCWlmICghYWRldi0+cG0uZHBtX2VuYWJsZWQpCiAJCXJldHVybjsKIAot CWlmIChhbWRncHVfcG93ZXJwbGF5KSB7CisJaWYgKGFkZXYtPnBwX2VuYWJsZWQpIHsKIAkJaW50 IGkgPSAwOwogCiAJCWFtZGdwdV9kaXNwbGF5X2JhbmR3aWR0aF91cGRhdGUoYWRldik7CkBAIC04 NTIsNyArODUyLDcgQEAgc3RhdGljIGludCBhbWRncHVfZGVidWdmc19wbV9pbmZvKHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAkJc2VxX3ByaW50ZihtLCAiZHBtIG5vdCBlbmFibGVk XG4iKTsKIAkJcmV0dXJuIDA7CiAJfQotCWlmIChhbWRncHVfcG93ZXJwbGF5KSB7CisJaWYgKGFk ZXYtPnBwX2VuYWJsZWQpIHsKIAkJYW1kZ3B1X2RwbV9kZWJ1Z2ZzX3ByaW50X2N1cnJlbnRfcGVy Zm9ybWFuY2VfbGV2ZWwoYWRldiwgbSk7CiAJfSBlbHNlIHsKIAkJbXV0ZXhfbG9jaygmYWRldi0+ cG0ubXV0ZXgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3Bvd2VycGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Bvd2VycGxh eS5jCmluZGV4IDFmZjZmZDUuLjZiNDZmYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9wb3dlcnBsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfcG93ZXJwbGF5LmMKQEAgLTQwLDcgKzQwLDcgQEAgc3RhdGljIGludCBhbWRn cHVfcG93ZXJwbGF5X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAKIAlhbWRfcHAg PSAmKGFkZXYtPnBvd2VycGxheSk7CiAKLQlpZiAoYW1kZ3B1X3Bvd2VycGxheSkgeworCWlmIChh ZGV2LT5wcF9lbmFibGVkKSB7CiAjaWZkZWYgQ09ORklHX0RSTV9BTURfUE9XRVJQTEFZCiAJCXN0 cnVjdCBhbWRfcHBfaW5pdCAqcHBfaW5pdDsKIApAQCAtMTAwLDExICsxMDAsMTQgQEAgc3RhdGlj IGludCBhbWRncHVfcHBfZWFybHlfaW5pdCh2b2lkICpoYW5kbGUpCiAJc3dpdGNoIChhZGV2LT5h c2ljX3R5cGUpIHsKIAkJY2FzZSBDSElQX1RPTkdBOgogCQljYXNlIENISVBfRklKSToKLQkJCWFt ZGdwdV9wb3dlcnBsYXkgPSAxOworCQkJYWRldi0+cHBfZW5hYmxlZCA9IChhbWRncHVfcG93ZXJw bGF5ID09IDApID8gZmFsc2UgOiB0cnVlOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CisJCQlhZGV2 LT5wcF9lbmFibGVkID0gKGFtZGdwdV9wb3dlcnBsYXkgPiAwKSA/IHRydWUgOiBmYWxzZTsKIAkJ CWJyZWFrOwogCX0KKyNlbHNlCisJYWRldi0+cHBfZW5hYmxlZCA9IGZhbHNlOwogI2VuZGlmCiAK IAlyZXQgPSBhbWRncHVfcG93ZXJwbGF5X2luaXQoYWRldik7CkBAIC0xMjcsNyArMTMwLDcgQEAg c3RhdGljIGludCBhbWRncHVfcHBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiAJCQkJCWFkZXYtPnBv d2VycGxheS5wcF9oYW5kbGUpOwogCiAjaWZkZWYgQ09ORklHX0RSTV9BTURfUE9XRVJQTEFZCi0J aWYgKGFtZGdwdV9wb3dlcnBsYXkpIHsKKwlpZiAoYWRldi0+cHBfZW5hYmxlZCkgewogCQlhZGV2 LT5wbS5kcG1fZW5hYmxlZCA9IHRydWU7CiAJCWFtZGdwdV9wbV9zeXNmc19pbml0KGFkZXYpOwog CX0KQEAgLTE0OCw3ICsxNTEsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9wcF9zd19maW5pKHZvaWQg KmhhbmRsZSkKIAkJcmV0dXJuIHJldDsKIAogI2lmZGVmIENPTkZJR19EUk1fQU1EX1BPV0VSUExB WQotCWlmIChhbWRncHVfcG93ZXJwbGF5KSB7CisJaWYgKGFkZXYtPnBwX2VuYWJsZWQpIHsKIAkJ YW1kZ3B1X3BtX3N5c2ZzX2ZpbmkoYWRldik7CiAJCWFtZF9wb3dlcnBsYXlfZmluaShhZGV2LT5w b3dlcnBsYXkucHBfaGFuZGxlKTsKIAl9CkBAIC0xNjIsNyArMTY1LDcgQEAgc3RhdGljIGludCBh bWRncHVfcHBfaHdfaW5pdCh2b2lkICpoYW5kbGUpCiAJaW50IHJldCA9IDA7CiAJc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CiAKLQlp ZiAoYW1kZ3B1X3Bvd2VycGxheSAmJiBhZGV2LT5maXJtd2FyZS5zbXVfbG9hZCkKKwlpZiAoYWRl di0+cHBfZW5hYmxlZCAmJiBhZGV2LT5maXJtd2FyZS5zbXVfbG9hZCkKIAkJYW1kZ3B1X3Vjb2Rl X2luaXRfYm8oYWRldik7CiAKIAlpZiAoYWRldi0+cG93ZXJwbGF5LmlwX2Z1bmNzLT5od19pbml0 KQpAQCAtMTgxLDcgKzE4NCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3BwX2h3X2Zpbmkodm9pZCAq aGFuZGxlKQogCQlyZXQgPSBhZGV2LT5wb3dlcnBsYXkuaXBfZnVuY3MtPmh3X2ZpbmkoCiAJCQkJ CWFkZXYtPnBvd2VycGxheS5wcF9oYW5kbGUpOwogCi0JaWYgKGFtZGdwdV9wb3dlcnBsYXkgJiYg YWRldi0+ZmlybXdhcmUuc211X2xvYWQpCisJaWYgKGFkZXYtPnBwX2VuYWJsZWQgJiYgYWRldi0+ ZmlybXdhcmUuc211X2xvYWQpCiAJCWFtZGdwdV91Y29kZV9maW5pX2JvKGFkZXYpOwogCiAJcmV0 dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8w LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jCmluZGV4IDE1Mjg5ODcu LmVmZGFjYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8w LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYwpAQCAtMjc5Nyw3 ICsyNzk3LDcgQEAgc3RhdGljIGludCBnZnhfdjhfMF9ybGNfcmVzdW1lKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogCiAJZ2Z4X3Y4XzBfcmxjX3Jlc2V0KGFkZXYpOwogCi0JaWYgKCFhbWRn cHVfcG93ZXJwbGF5KSB7CisJaWYgKCFhZGV2LT5wcF9lbmFibGVkKSB7CiAJCWlmICghYWRldi0+ ZmlybXdhcmUuc211X2xvYWQpIHsKIAkJCS8qIGxlZ2FjeSBybGMgZmlybXdhcmUgbG9hZGluZyAq LwogCQkJciA9IGdmeF92OF8wX3JsY19sb2FkX21pY3JvY29kZShhZGV2KTsKQEAgLTM2OTQsNyAr MzY5NCw3IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y4XzBfY3BfcmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQogCWlmICghKGFkZXYtPmZsYWdzICYgQU1EX0lTX0FQVSkpCiAJCWdmeF92OF8w X2VuYWJsZV9ndWlfaWRsZV9pbnRlcnJ1cHQoYWRldiwgZmFsc2UpOwogCi0JaWYgKCFhbWRncHVf cG93ZXJwbGF5KSB7CisJaWYgKCFhZGV2LT5wcF9lbmFibGVkKSB7CiAJCWlmICghYWRldi0+Zmly bXdhcmUuc211X2xvYWQpIHsKIAkJCS8qIGxlZ2FjeSBmaXJtd2FyZSBsb2FkaW5nICovCiAJCQly ID0gZ2Z4X3Y4XzBfY3BfZ2Z4X2xvYWRfbWljcm9jb2RlKGFkZXYpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92M18wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9zZG1hX3YzXzAuYwppbmRleCA4MDkxYzFjLi5jNzQxYzA5IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YzXzAuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9zZG1hX3YzXzAuYwpAQCAtNzI3LDcgKzcyNyw3IEBAIHN0YXRpYyBpbnQg c2RtYV92M18wX3N0YXJ0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewogCWludCByLCBp OwogCi0JaWYgKCFhbWRncHVfcG93ZXJwbGF5KSB7CisJaWYgKCFhZGV2LT5wcF9lbmFibGVkKSB7 CiAJCWlmICghYWRldi0+ZmlybXdhcmUuc211X2xvYWQpIHsKIAkJCXIgPSBzZG1hX3YzXzBfbG9h ZF9taWNyb2NvZGUoYWRldik7CiAJCQlpZiAocikKLS0gCjEuOC4zLjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==