From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v3 2/2] drm/atomic-helper: Implement subsystem-level suspend/resume Date: Tue, 8 Sep 2015 15:00:46 +0200 Message-ID: <1441717246-24484-2-git-send-email-thierry.reding@gmail.com> References: <1441717246-24484-1-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f43.google.com (mail-pa0-f43.google.com [209.85.220.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 432DA6E900 for ; Tue, 8 Sep 2015 06:00:53 -0700 (PDT) Received: by pacfv12 with SMTP id fv12so126816190pac.2 for ; Tue, 08 Sep 2015 06:00:52 -0700 (PDT) In-Reply-To: <1441717246-24484-1-git-send-email-thierry.reding@gmail.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 Cc: Daniel Vetter List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClByb3ZpZGUgc3Vic3lz dGVtLWxldmVsIHN1c3BlbmQgYW5kIHJlc3VtZSBoZWxwZXJzIHRoYXQgY2FuIGJlIHVzZWQgdG8K aW1wbGVtZW50IHN1c3BlbmQvcmVzdW1lIG9uIGF0b21pYyBtb2RlLXNldHRpbmcgZW5hYmxlZCBk cml2ZXJzLgoKdjI6IHNpbXBsaWZ5IGxvY2tpbmcsIGVuaGFuY2Uga2VybmVsZG9jIGNvbW1lbnRz CnYzOiBwYXNzIGxvY2sgYWNxdWlzaXRpb24gY29udGV4dCBieSBwYXJhbWV0ZXIsIGltcHJvdmUg a2VybmVsZG9jCgpTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgMTY1ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRj X2hlbHBlci5jICAgfCAgIDYgKysKIGluY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmggICAg IHwgICA2ICsrCiAzIGZpbGVzIGNoYW5nZWQsIDE3NiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwppbmRleCAzMjMyZjRiODM4ZTQuLjMx ODIzZGM4YTQwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTE3NDIsNiAr MTc0MiwxNjQgQEAgYmFja29mZjoKIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfc2V0 X2NvbmZpZyk7CiAKIC8qKgorICogZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9hbGwgLSBkaXNh YmxlIGFsbCBjdXJyZW50bHkgYWN0aXZlIG91dHB1dHMKKyAqIEBkZXY6IERSTSBkZXZpY2UKKyAq IEBjdHg6IGxvY2sgYWNxdWlzaXRpb24gY29udGV4dAorICoKKyAqIExvb3BzIHRocm91Z2ggYWxs IGNvbm5lY3RvcnMsIGZpbmRpbmcgdGhvc2UgdGhhdCBhcmVuJ3QgdHVybmVkIG9mZiBhbmQgdGhl bgorICogdHVybnMgdGhlbSBvZmYgYnkgc2V0dGluZyB0aGVpciBEUE1TIG1vZGUgdG8gT0ZGIGFu ZCBkZWFjdGl2YXRpbmcgdGhlIENSVEMKKyAqIHRoYXQgdGhleSBhcmUgY29ubmVjdGVkIHRvLgor ICoKKyAqIFRoaXMgaXMgdXNlZCBmb3IgZXhhbXBsZSBpbiBzdXNwZW5kL3Jlc3VtZSB0byBkaXNh YmxlIGFsbCBjdXJyZW50bHkgYWN0aXZlCisgKiBmdW5jdGlvbnMgd2hlbiBzdXNwZW5kaW5nLgor ICoKKyAqIE5vdGUgdGhhdCBpZiBjYWxsZXJzIGhhdmVuJ3QgYWxyZWFkeSBhY3F1aXJlZCBhbGwg bW9kZXNldCBsb2NrcyB0aGlzIG1pZ2h0CisgKiByZXR1cm4gLUVERUFETEssIHdoaWNoIG11c3Qg YmUgaGFuZGxlZCBieSBjYWxsaW5nIGRybV9tb2Rlc2V0X2JhY2tvZmYoKS4KKyAqCisgKiBSZXR1 cm5zOgorICogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJl LgorICoKKyAqIFNlZSBhbHNvOgorICogZHJtX2F0b21pY19oZWxwZXJfc3VzcGVuZCgpLCBkcm1f YXRvbWljX2hlbHBlcl9yZXN1bWUoKQorICovCitpbnQgZHJtX2F0b21pY19oZWxwZXJfZGlzYWJs ZV9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgIHN0cnVjdCBkcm1fbW9kZXNldF9h Y3F1aXJlX2N0eCAqY3R4KQoreworCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0 YXRlOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubjsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgZXJyOworCisJc3RhdGUgPSBkcm1f YXRvbWljX3N0YXRlX2FsbG9jKGRldik7CisJaWYgKCFzdGF0ZSkKKwkJcmV0dXJuIC1FTk9NRU07 CisKKwlzdGF0ZS0+YWNxdWlyZV9jdHggPSBjdHg7CisKKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9y KGNvbm4sIGRldikgeworCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjb25uLT5zdGF0ZS0+Y3J0 YzsKKwkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCisJCWlmICghY3J0YyB8 fCBjb25uLT5kcG1zICE9IERSTV9NT0RFX0RQTVNfT04pCisJCQljb250aW51ZTsKKworCQljcnRj X3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CisJCWlmIChJ U19FUlIoY3J0Y19zdGF0ZSkpIHsKKwkJCWVyciA9IFBUUl9FUlIoY3J0Y19zdGF0ZSk7CisJCQln b3RvIGZyZWU7CisJCX0KKworCQllcnIgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0 b3JzKHN0YXRlLCBjcnRjKTsKKwkJaWYgKGVyciA8IDApCisJCQlnb3RvIGZyZWU7CisKKwkJY29u bi0+ZHBtcyA9IERSTV9NT0RFX0RQTVNfT0ZGOworCQljcnRjX3N0YXRlLT5hY3RpdmUgPSBmYWxz ZTsKKwl9CisKKwllcnIgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7CisJaWYgKGVyciA8IDAp IHsKKwkJLyogcmVzdG9yZSBEUE1TIG1vZGUgKi8KKwkJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0 YXRlKHN0YXRlLCBjb25uLCBjb25uX3N0YXRlLCBpKQorCQkJY29ubi0+ZHBtcyA9IERSTV9NT0RF X0RQTVNfT047CisKKwkJZ290byBmcmVlOworCX0KKworZnJlZToKKwlpZiAoZXJyIDwgMCkKKwkJ ZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKKworCXJldHVybiBlcnI7Cit9CitFWFBPUlRf U1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfYWxsKTsKKworLyoqCisgKiBkcm1fYXRv bWljX2hlbHBlcl9zdXNwZW5kIC0gc3Vic3lzdGVtLWxldmVsIHN1c3BlbmQgaGVscGVyCisgKiBA ZGV2OiBEUk0gZGV2aWNlCisgKgorICogRHVwbGljYXRlcyB0aGUgY3VycmVudCBhdG9taWMgc3Rh dGUsIGRpc2FibGVzIGFsbCBhY3RpdmUgb3V0cHV0cyBhbmQgdGhlbgorICogcmV0dXJucyBhIHBv aW50ZXIgdG8gdGhlIG9yaWdpbmFsIGF0b21pYyBzdGF0ZSB0byB0aGUgY2FsbGVyLiBEcml2ZXJz IGNhbgorICogcGFzcyB0aGlzIHBvaW50ZXIgdG8gdGhlIGRybV9hdG9taWNfaGVscGVyX3Jlc3Vt ZSgpIGhlbHBlciB1cG9uIHJlc3VtZSB0bworICogcmVzdG9yZSB0aGUgb3V0cHV0IGNvbmZpZ3Vy YXRpb24gdGhhdCB3YXMgYWN0aXZlIGF0IHRoZSB0aW1lIHRoZSBzeXN0ZW0KKyAqIGVudGVyZWQg c3VzcGVuZC4KKyAqCisgKiBOb3RlIHRoYXQgaXQgaXMgcG90ZW50aWFsbHkgdW5zYWZlIHRvIHVz ZSB0aGlzLiBUaGUgYXRvbWljIHN0YXRlIG9iamVjdAorICogcmV0dXJuZWQgYnkgdGhpcyBmdW5j dGlvbiBpcyBhc3N1bWVkIHRvIGJlIHBlcnNpc3RlbnQuIERyaXZlcnMgbXVzdCBlbnN1cmUKKyAq IHRoYXQgdGhpcyBob2xkcyB0cnVlLiBCZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCBkcml2 ZXJzIG11c3QgbWFrZSBzdXJlCisgKiB0byBzdXNwZW5kIGZiZGV2IGVtdWxhdGlvbiBzbyB0aGF0 IG5vdGhpbmcgY2FuIGJlIHVzaW5nIHRoZSBkZXZpY2UuCisgKgorICogUmV0dXJuczoKKyAqIEEg cG9pbnRlciB0byBhIGNvcHkgb2YgdGhlIHN0YXRlIGJlZm9yZSBzdXNwZW5kIG9uIHN1Y2Nlc3Mg b3IgYW4gRVJSX1BUUigpLQorICogZW5jb2RlZCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuIERyaXZl cnMgc2hvdWxkIHN0b3JlIHRoZSByZXR1cm5lZCBhdG9taWMKKyAqIHN0YXRlIG9iamVjdCBhbmQg cGFzcyBpdCB0byB0aGUgZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKCkgaGVscGVyIHVwb24KKyAq IHJlc3VtZS4KKyAqCisgKiBTZWUgYWxzbzoKKyAqIGRybV9hdG9taWNfaGVscGVyX2R1cGxpY2F0 ZV9zdGF0ZSgpLCBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbCgpLAorICogZHJtX2F0b21p Y19oZWxwZXJfcmVzdW1lKCkKKyAqLworc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKmRybV9hdG9t aWNfaGVscGVyX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJt X21vZGVzZXRfYWNxdWlyZV9jdHggY3R4OworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZTsKKwlpbnQgZXJyOworCisJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOworCWRy bV9tb2Rlc2V0X2xvY2tfYWxsX2N0eChkZXYsICZjdHgpOworCisJc3RhdGUgPSBkcm1fYXRvbWlj X2hlbHBlcl9kdXBsaWNhdGVfc3RhdGUoZGV2LCAmY3R4KTsKKwlpZiAoSVNfRVJSKHN0YXRlKSkK KwkJZ290byB1bmxvY2s7CisKKwllcnIgPSBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbChk ZXYsICZjdHgpOworCWlmIChlcnIgPCAwKSB7CisJCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0 ZSk7CisJCXN0YXRlID0gRVJSX1BUUihlcnIpOworCQlnb3RvIHVubG9jazsKKwl9CisKK3VubG9j azoKKwlkcm1fbW9kZXNldF91bmxvY2tfYWxsX2N0eChkZXYsICZjdHgpOworCWRybV9tb2Rlc2V0 X2FjcXVpcmVfZmluaSgmY3R4KTsKKwlyZXR1cm4gc3RhdGU7Cit9CitFWFBPUlRfU1lNQk9MKGRy bV9hdG9taWNfaGVscGVyX3N1c3BlbmQpOworCisvKioKKyAqIGRybV9hdG9taWNfaGVscGVyX3Jl c3VtZSAtIHN1YnN5c3RlbS1sZXZlbCByZXN1bWUgaGVscGVyCisgKiBAZGV2OiBEUk0gZGV2aWNl CisgKiBAc3RhdGU6IGF0b21pYyBzdGF0ZSB0byByZXN1bWUgdG8KKyAqCisgKiBDYWxscyBkcm1f bW9kZV9jb25maWdfcmVzZXQoKSB0byBzeW5jaHJvbml6ZSBoYXJkd2FyZSBhbmQgc29mdHdhcmUg c3RhdGVzLAorICogZ3JhYnMgYWxsIG1vZGVzZXQgbG9ja3MgYW5kIGNvbW1pdHMgdGhlIGF0b21p YyBzdGF0ZSBvYmplY3QuIFRoaXMgY2FuIGJlCisgKiB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGgg dGhlIGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoKSBoZWxwZXIgdG8KKyAqIGltcGxlbWVudCBz dXNwZW5kL3Jlc3VtZSBmb3IgZHJpdmVycyB0aGF0IHN1cHBvcnQgYXRvbWljIG1vZGUtc2V0dGlu Zy4KKyAqCisgKiBSZXR1cm5zOgorICogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3Ig Y29kZSBvbiBmYWlsdXJlLgorICoKKyAqIFNlZSBhbHNvOgorICogZHJtX2F0b21pY19oZWxwZXJf c3VzcGVuZCgpCisgKi8KK2ludCBkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKKwkJCSAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQorewor CXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOworCWlu dCBlcnI7CisKKwlkcm1fbW9kZV9jb25maWdfcmVzZXQoZGV2KTsKKwlkcm1fbW9kZXNldF9sb2Nr X2FsbChkZXYpOworCXN0YXRlLT5hY3F1aXJlX2N0eCA9IGNvbmZpZy0+YWNxdWlyZV9jdHg7CisJ ZXJyID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOworCWRybV9tb2Rlc2V0X3VubG9ja19hbGwo ZGV2KTsKKworCXJldHVybiBlcnI7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVy X3Jlc3VtZSk7CisKKy8qKgogICogZHJtX2F0b21pY19oZWxwZXJfY3J0Y19zZXRfcHJvcGVydHkg LSBoZWxwZXIgZm9yIGNydGMgcHJvcGVydGllcwogICogQGNydGM6IERSTSBjcnRjCiAgKiBAcHJv cGVydHk6IERSTSBwcm9wZXJ0eQpAQCAtMjM1NCw3ICsyNTEyLDkgQEAgRVhQT1JUX1NZTUJPTChk cm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlKTsKICAqIEBjdHg6IGxv Y2sgYWNxdWlzaXRpb24gY29udGV4dAogICoKICAqIE1ha2VzIGEgY29weSBvZiB0aGUgY3VycmVu dCBhdG9taWMgc3RhdGUgYnkgbG9vcGluZyBvdmVyIGFsbCBvYmplY3RzIGFuZAotICogZHVwbGlj YXRpbmcgdGhlaXIgcmVzcGVjdGl2ZSBzdGF0ZXMuCisgKiBkdXBsaWNhdGluZyB0aGVpciByZXNw ZWN0aXZlIHN0YXRlcy4gVGhpcyBpcyB1c2VkIGZvciBleGFtcGxlIGJ5IHN1c3BlbmQvCisgKiBy ZXN1bWUgc3VwcG9ydCBjb2RlIHRvIHNhdmUgdGhlIHN0YXRlIHByaW9yIHRvIHN1c3BlbmQgc3Vj aCB0aGF0IGl0IGNhbgorICogYmUgcmVzdG9yZWQgdXBvbiByZXN1bWUuCiAgKgogICogTm90ZSB0 aGF0IHRoaXMgdHJlYXRzIGF0b21pYyBzdGF0ZSBhcyBwZXJzaXN0ZW50IGJldHdlZW4gc2F2ZSBh bmQgcmVzdG9yZS4KICAqIERyaXZlcnMgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGlzIGlzIHBvc3Np YmxlIGFuZCB3b24ndCByZXN1bHQgaW4gY29uZnVzaW9uCkBAIC0yMzY2LDYgKzI1MjYsOSBAQCBF WFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUp OwogICogUmV0dXJuczoKICAqIEEgcG9pbnRlciB0byB0aGUgY29weSBvZiB0aGUgYXRvbWljIHN0 YXRlIG9iamVjdCBvbiBzdWNjZXNzIG9yIGFuCiAgKiBFUlJfUFRSKCktZW5jb2RlZCBlcnJvciBj b2RlIG9uIGZhaWx1cmUuCisgKgorICogU2VlIGFsc286CisgKiBkcm1fYXRvbWljX2hlbHBlcl9z dXNwZW5kKCksIGRybV9hdG9taWNfaGVscGVyX3Jlc3VtZSgpCiAgKi8KIHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICoKIGRybV9hdG9taWNfaGVscGVyX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCmluZGV4IGVmNTM0NzU4YTAy Yy4uMDg2MjBhMjVmZTA2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVs cGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCkBAIC04NTUsNiAr ODU1LDEyIEBAIEVYUE9SVF9TWU1CT0woZHJtX2hlbHBlcl9tb2RlX2ZpbGxfZmJfc3RydWN0KTsK ICAqIGR1ZSB0byBzbGlnaHQgZGlmZmVyZW5jZXMgaW4gYWxsb2NhdGluZyBzaGFyZWQgcmVzb3Vy Y2VzIHdoZW4gdGhlCiAgKiBjb25maWd1cmF0aW9uIGlzIHJlc3RvcmVkIGluIGEgZGlmZmVyZW50 IG9yZGVyIHRoYW4gd2hlbiB1c2Vyc3BhY2Ugc2V0IGl0IHVwKQogICogbmVlZCB0byB1c2UgdGhl aXIgb3duIHJlc3RvcmUgbG9naWMuCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBkZXByZWNhdGVk LiBOZXcgZHJpdmVycyBzaG91bGQgaW1wbGVtZW50IGF0b21pYyBtb2RlLQorICogc2V0dGluZyBh bmQgdXNlIHRoZSBhdG9taWMgc3VzcGVuZC9yZXN1bWUgaGVscGVycy4KKyAqCisgKiBTZWUgYWxz bzoKKyAqIGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoKSwgZHJtX2F0b21pY19oZWxwZXJfcmVz dW1lKCkKICAqLwogdm9pZCBkcm1faGVscGVyX3Jlc3VtZV9mb3JjZV9tb2RlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBl ci5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAppbmRleCAxNTQ3ZWI0M2MxNGEu Ljk4ZmZjYjIzMTA3OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIu aAorKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCkBAIC03NSw2ICs3NSwxMiBA QCBpbnQgZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAogaW50IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUpOwogaW50IGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcoc3RydWN0IGRybV9t b2RlX3NldCAqc2V0KTsKIAoraW50IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfYWxsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCisJCQkJICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHgg KmN0eCk7CitzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqZHJtX2F0b21pY19oZWxwZXJfc3VzcGVu ZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2ludCBkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCSAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlKTsKKwogaW50IGRybV9hdG9taWNfaGVscGVyX2NydGNfc2V0X3Byb3BlcnR5KHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKIAkJCQkJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCiAJ CQkJCXVpbnQ2NF90IHZhbCk7Ci0tIAoyLjUuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK