From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v5 2/3] drm/atomic-helper: Implement subsystem-level suspend/resume Date: Wed, 2 Dec 2015 17:50:04 +0100 Message-ID: <1449075005-13937-2-git-send-email-thierry.reding@gmail.com> References: <1449075005-13937-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-wm0-f53.google.com (mail-wm0-f53.google.com [74.125.82.53]) by gabe.freedesktop.org (Postfix) with ESMTPS id A2B9C6EA79 for ; Wed, 2 Dec 2015 08:50:09 -0800 (PST) Received: by wmww144 with SMTP id w144so65105416wmw.0 for ; Wed, 02 Dec 2015 08:50:08 -0800 (PST) In-Reply-To: <1449075005-13937-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 a2VybmVsZG9jCnY0OiAtIHJlbW92ZSByZWR1bmRhbnQgY29kZSAoYWxyZWFkeSBwcm92aWRlZCBi eSBhdG9taWMgaGVscGVycykKICAgICAgKE1hYXJ0ZW4gTGFua2hvcnN0KQogICAgLSBtb3ZlIGJh Y2tvZmYgZGFuY2UgZnJvbSBkcm1fbW9kZXNldF9sb2NrX2FsbF9jdHgoKSBpbnRvIHN1c3BlbmQK ICAgICAgaGVscGVyIChEYW5pZWwgVmV0dGVyKQp2NTogaGFuZGxlIHBvdGVudGlhbCBFREVBRExL IGZyb20gZHJtX2F0b21pY19oZWxwZXJfZHVwbGljYXRlX3N0YXRlKCkKICAgIGFuZCBkcm1fYXRv bWljX2hlbHBlcl9kaXNhYmxlX2FsbCgpIChEYW5pZWwgVmV0dGVyKQoKU2lnbmVkLW9mZi1ieTog VGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYyB8IDE2MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYyAgIHwgICA2ICsrCiBpbmNs dWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oICAgICB8ICAgNiArKwogMyBmaWxlcyBjaGFuZ2Vk LCAxNzMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf aGVscGVyLmMKaW5kZXggMzczMWEyNjk3OWJjLi5jZTJjZmVmMDg3NDIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX2hlbHBlci5jCkBAIC0xODE4LDYgKzE4MTgsMTYxIEBAIGNvbW1pdDoKIH0KIAog LyoqCisgKiBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbCAtIGRpc2FibGUgYWxsIGN1cnJl bnRseSBhY3RpdmUgb3V0cHV0cworICogQGRldjogRFJNIGRldmljZQorICogQGN0eDogbG9jayBh Y3F1aXNpdGlvbiBjb250ZXh0CisgKgorICogTG9vcHMgdGhyb3VnaCBhbGwgY29ubmVjdG9ycywg ZmluZGluZyB0aG9zZSB0aGF0IGFyZW4ndCB0dXJuZWQgb2ZmIGFuZCB0aGVuCisgKiB0dXJucyB0 aGVtIG9mZiBieSBzZXR0aW5nIHRoZWlyIERQTVMgbW9kZSB0byBPRkYgYW5kIGRlYWN0aXZhdGlu ZyB0aGUgQ1JUQworICogdGhhdCB0aGV5IGFyZSBjb25uZWN0ZWQgdG8uCisgKgorICogVGhpcyBp cyB1c2VkIGZvciBleGFtcGxlIGluIHN1c3BlbmQvcmVzdW1lIHRvIGRpc2FibGUgYWxsIGN1cnJl bnRseSBhY3RpdmUKKyAqIGZ1bmN0aW9ucyB3aGVuIHN1c3BlbmRpbmcuCisgKgorICogTm90ZSB0 aGF0IGlmIGNhbGxlcnMgaGF2ZW4ndCBhbHJlYWR5IGFjcXVpcmVkIGFsbCBtb2Rlc2V0IGxvY2tz IHRoaXMgbWlnaHQKKyAqIHJldHVybiAtRURFQURMSywgd2hpY2ggbXVzdCBiZSBoYW5kbGVkIGJ5 IGNhbGxpbmcgZHJtX21vZGVzZXRfYmFja29mZigpLgorICoKKyAqIFJldHVybnM6CisgKiAwIG9u IHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKgorICogU2Vl IGFsc286CisgKiBkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKCksIGRybV9hdG9taWNfaGVscGVy X3Jlc3VtZSgpCisgKi8KK2ludCBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAorCQkJCSAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpj dHgpCit7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOworCXN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uOworCWludCBlcnI7CisKKwlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxs b2MoZGV2KTsKKwlpZiAoIXN0YXRlKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXN0YXRlLT5hY3F1 aXJlX2N0eCA9IGN0eDsKKworCWRybV9mb3JfZWFjaF9jb25uZWN0b3IoY29ubiwgZGV2KSB7CisJ CXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNvbm4tPnN0YXRlLT5jcnRjOworCQlzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CisKKwkJaWYgKCFjcnRjIHx8IGNvbm4tPmRwbXMgIT0g RFJNX01PREVfRFBNU19PTikKKwkJCWNvbnRpbnVlOworCisJCWNydGNfc3RhdGUgPSBkcm1fYXRv bWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwkJaWYgKElTX0VSUihjcnRjX3N0YXRl KSkgeworCQkJZXJyID0gUFRSX0VSUihjcnRjX3N0YXRlKTsKKwkJCWdvdG8gZnJlZTsKKwkJfQor CisJCWNydGNfc3RhdGUtPmFjdGl2ZSA9IGZhbHNlOworCX0KKworCWVyciA9IGRybV9hdG9taWNf Y29tbWl0KHN0YXRlKTsKKworZnJlZToKKwlpZiAoZXJyIDwgMCkKKwkJZHJtX2F0b21pY19zdGF0 ZV9mcmVlKHN0YXRlKTsKKworCXJldHVybiBlcnI7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9t aWNfaGVscGVyX2Rpc2FibGVfYWxsKTsKKworLyoqCisgKiBkcm1fYXRvbWljX2hlbHBlcl9zdXNw ZW5kIC0gc3Vic3lzdGVtLWxldmVsIHN1c3BlbmQgaGVscGVyCisgKiBAZGV2OiBEUk0gZGV2aWNl CisgKgorICogRHVwbGljYXRlcyB0aGUgY3VycmVudCBhdG9taWMgc3RhdGUsIGRpc2FibGVzIGFs bCBhY3RpdmUgb3V0cHV0cyBhbmQgdGhlbgorICogcmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG9y aWdpbmFsIGF0b21pYyBzdGF0ZSB0byB0aGUgY2FsbGVyLiBEcml2ZXJzIGNhbgorICogcGFzcyB0 aGlzIHBvaW50ZXIgdG8gdGhlIGRybV9hdG9taWNfaGVscGVyX3Jlc3VtZSgpIGhlbHBlciB1cG9u IHJlc3VtZSB0bworICogcmVzdG9yZSB0aGUgb3V0cHV0IGNvbmZpZ3VyYXRpb24gdGhhdCB3YXMg YWN0aXZlIGF0IHRoZSB0aW1lIHRoZSBzeXN0ZW0KKyAqIGVudGVyZWQgc3VzcGVuZC4KKyAqCisg KiBOb3RlIHRoYXQgaXQgaXMgcG90ZW50aWFsbHkgdW5zYWZlIHRvIHVzZSB0aGlzLiBUaGUgYXRv bWljIHN0YXRlIG9iamVjdAorICogcmV0dXJuZWQgYnkgdGhpcyBmdW5jdGlvbiBpcyBhc3N1bWVk IHRvIGJlIHBlcnNpc3RlbnQuIERyaXZlcnMgbXVzdCBlbnN1cmUKKyAqIHRoYXQgdGhpcyBob2xk cyB0cnVlLiBCZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCBkcml2ZXJzIG11c3QgbWFrZSBz dXJlCisgKiB0byBzdXNwZW5kIGZiZGV2IGVtdWxhdGlvbiBzbyB0aGF0IG5vdGhpbmcgY2FuIGJl IHVzaW5nIHRoZSBkZXZpY2UuCisgKgorICogUmV0dXJuczoKKyAqIEEgcG9pbnRlciB0byBhIGNv cHkgb2YgdGhlIHN0YXRlIGJlZm9yZSBzdXNwZW5kIG9uIHN1Y2Nlc3Mgb3IgYW4gRVJSX1BUUigp LQorICogZW5jb2RlZCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuIERyaXZlcnMgc2hvdWxkIHN0b3Jl IHRoZSByZXR1cm5lZCBhdG9taWMKKyAqIHN0YXRlIG9iamVjdCBhbmQgcGFzcyBpdCB0byB0aGUg ZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKCkgaGVscGVyIHVwb24KKyAqIHJlc3VtZS4KKyAqCisg KiBTZWUgYWxzbzoKKyAqIGRybV9hdG9taWNfaGVscGVyX2R1cGxpY2F0ZV9zdGF0ZSgpLCBkcm1f YXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbCgpLAorICogZHJtX2F0b21pY19oZWxwZXJfcmVzdW1l KCkKKyAqLworc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKmRybV9hdG9taWNfaGVscGVyX3N1c3Bl bmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWly ZV9jdHggY3R4OworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKKwlpbnQgZXJyOwor CisJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOworCityZXRyeToKKwllcnIgPSBk cm1fbW9kZXNldF9sb2NrX2FsbF9jdHgoZGV2LCAmY3R4KTsKKwlpZiAoZXJyIDwgMCkgeworCQlz dGF0ZSA9IEVSUl9QVFIoZXJyKTsKKwkJZ290byB1bmxvY2s7CisJfQorCisJc3RhdGUgPSBkcm1f YXRvbWljX2hlbHBlcl9kdXBsaWNhdGVfc3RhdGUoZGV2LCAmY3R4KTsKKwlpZiAoSVNfRVJSKHN0 YXRlKSkKKwkJZ290byB1bmxvY2s7CisKKwllcnIgPSBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxl X2FsbChkZXYsICZjdHgpOworCWlmIChlcnIgPCAwKSB7CisJCWRybV9hdG9taWNfc3RhdGVfZnJl ZShzdGF0ZSk7CisJCXN0YXRlID0gRVJSX1BUUihlcnIpOworCQlnb3RvIHVubG9jazsKKwl9CisK K3VubG9jazoKKwlpZiAoUFRSX0VSUihzdGF0ZSkgPT0gLUVERUFETEspIHsKKwkJZHJtX21vZGVz ZXRfYmFja29mZigmY3R4KTsKKwkJZ290byByZXRyeTsKKwl9CisKKwlkcm1fbW9kZXNldF9kcm9w X2xvY2tzKCZjdHgpOworCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKKwlyZXR1cm4g c3RhdGU7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQpOworCisv KioKKyAqIGRybV9hdG9taWNfaGVscGVyX3Jlc3VtZSAtIHN1YnN5c3RlbS1sZXZlbCByZXN1bWUg aGVscGVyCisgKiBAZGV2OiBEUk0gZGV2aWNlCisgKiBAc3RhdGU6IGF0b21pYyBzdGF0ZSB0byBy ZXN1bWUgdG8KKyAqCisgKiBDYWxscyBkcm1fbW9kZV9jb25maWdfcmVzZXQoKSB0byBzeW5jaHJv bml6ZSBoYXJkd2FyZSBhbmQgc29mdHdhcmUgc3RhdGVzLAorICogZ3JhYnMgYWxsIG1vZGVzZXQg bG9ja3MgYW5kIGNvbW1pdHMgdGhlIGF0b21pYyBzdGF0ZSBvYmplY3QuIFRoaXMgY2FuIGJlCisg KiB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQo KSBoZWxwZXIgdG8KKyAqIGltcGxlbWVudCBzdXNwZW5kL3Jlc3VtZSBmb3IgZHJpdmVycyB0aGF0 IHN1cHBvcnQgYXRvbWljIG1vZGUtc2V0dGluZy4KKyAqCisgKiBSZXR1cm5zOgorICogMCBvbiBz dWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICoKKyAqIFNlZSBh bHNvOgorICogZHJtX2F0b21pY19oZWxwZXJfc3VzcGVuZCgpCisgKi8KK2ludCBkcm1fYXRvbWlj X2hlbHBlcl9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCSAgICAgc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZp ZyA9ICZkZXYtPm1vZGVfY29uZmlnOworCWludCBlcnI7CisKKwlkcm1fbW9kZV9jb25maWdfcmVz ZXQoZGV2KTsKKwlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOworCXN0YXRlLT5hY3F1aXJlX2N0 eCA9IGNvbmZpZy0+YWNxdWlyZV9jdHg7CisJZXJyID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUp OworCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKKworCXJldHVybiBlcnI7Cit9CitFWFBP UlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3Jlc3VtZSk7CisKKy8qKgogICogZHJtX2F0b21p Y19oZWxwZXJfY3J0Y19zZXRfcHJvcGVydHkgLSBoZWxwZXIgZm9yIGNydGMgcHJvcGVydGllcwog ICogQGNydGM6IERSTSBjcnRjCiAgKiBAcHJvcGVydHk6IERSTSBwcm9wZXJ0eQpAQCAtMjQyOSw3 ICsyNTg0LDkgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVw bGljYXRlX3N0YXRlKTsKICAqIEBjdHg6IGxvY2sgYWNxdWlzaXRpb24gY29udGV4dAogICoKICAq IE1ha2VzIGEgY29weSBvZiB0aGUgY3VycmVudCBhdG9taWMgc3RhdGUgYnkgbG9vcGluZyBvdmVy IGFsbCBvYmplY3RzIGFuZAotICogZHVwbGljYXRpbmcgdGhlaXIgcmVzcGVjdGl2ZSBzdGF0ZXMu CisgKiBkdXBsaWNhdGluZyB0aGVpciByZXNwZWN0aXZlIHN0YXRlcy4gVGhpcyBpcyB1c2VkIGZv ciBleGFtcGxlIGJ5IHN1c3BlbmQvCisgKiByZXN1bWUgc3VwcG9ydCBjb2RlIHRvIHNhdmUgdGhl IHN0YXRlIHByaW9yIHRvIHN1c3BlbmQgc3VjaCB0aGF0IGl0IGNhbgorICogYmUgcmVzdG9yZWQg dXBvbiByZXN1bWUuCiAgKgogICogTm90ZSB0aGF0IHRoaXMgdHJlYXRzIGF0b21pYyBzdGF0ZSBh cyBwZXJzaXN0ZW50IGJldHdlZW4gc2F2ZSBhbmQgcmVzdG9yZS4KICAqIERyaXZlcnMgbXVzdCBt YWtlIHN1cmUgdGhhdCB0aGlzIGlzIHBvc3NpYmxlIGFuZCB3b24ndCByZXN1bHQgaW4gY29uZnVz aW9uCkBAIC0yNDQxLDYgKzI1OTgsOSBAQCBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVy X2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUpOwogICogUmV0dXJuczoKICAqIEEgcG9pbnRlciB0 byB0aGUgY29weSBvZiB0aGUgYXRvbWljIHN0YXRlIG9iamVjdCBvbiBzdWNjZXNzIG9yIGFuCiAg KiBFUlJfUFRSKCktZW5jb2RlZCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKgorICogU2VlIGFs c286CisgKiBkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKCksIGRybV9hdG9taWNfaGVscGVyX3Jl c3VtZSgpCiAgKi8KIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICoKIGRybV9hdG9taWNfaGVscGVy X2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRj X2hlbHBlci5jCmluZGV4IDZiNGNmMjVmZWQxMi4uMTBkMDk4OWRiMjczIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9jcnRjX2hlbHBlci5jCkBAIC04NTUsNiArODU1LDEyIEBAIEVYUE9SVF9TWU1CT0woZHJtX2hl bHBlcl9tb2RlX2ZpbGxfZmJfc3RydWN0KTsKICAqIGR1ZSB0byBzbGlnaHQgZGlmZmVyZW5jZXMg aW4gYWxsb2NhdGluZyBzaGFyZWQgcmVzb3VyY2VzIHdoZW4gdGhlCiAgKiBjb25maWd1cmF0aW9u IGlzIHJlc3RvcmVkIGluIGEgZGlmZmVyZW50IG9yZGVyIHRoYW4gd2hlbiB1c2Vyc3BhY2Ugc2V0 IGl0IHVwKQogICogbmVlZCB0byB1c2UgdGhlaXIgb3duIHJlc3RvcmUgbG9naWMuCisgKgorICog VGhpcyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLiBOZXcgZHJpdmVycyBzaG91bGQgaW1wbGVtZW50 IGF0b21pYyBtb2RlLQorICogc2V0dGluZyBhbmQgdXNlIHRoZSBhdG9taWMgc3VzcGVuZC9yZXN1 bWUgaGVscGVycy4KKyAqCisgKiBTZWUgYWxzbzoKKyAqIGRybV9hdG9taWNfaGVscGVyX3N1c3Bl bmQoKSwgZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKCkKICAqLwogdm9pZCBkcm1faGVscGVyX3Jl c3VtZV9mb3JjZV9tb2RlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CmRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuaAppbmRleCA4Y2JhNTRhMmEwYTAuLjgwNDVjZGVhOGNjOSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWlj X2hlbHBlci5oCkBAIC04MSw2ICs4MSwxMiBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfc2V0X2Nv bmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpOwogaW50IF9fZHJtX2F0b21pY19oZWxwZXJf c2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCiAJCXN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSk7CiAKK2ludCBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4 ICpjdHgpOworc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKmRybV9hdG9taWNfaGVscGVyX3N1c3Bl bmQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitpbnQgZHJtX2F0b21pY19oZWxwZXJfcmVzdW1l KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSk7CisKIGludCBkcm1fYXRvbWljX2hlbHBlcl9jcnRjX3NldF9wcm9wZXJ0eShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAog CQkJCQl1aW50NjRfdCB2YWwpOwotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==