From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v4 2/3] drm/atomic-helper: Implement subsystem-level suspend/resume Date: Tue, 1 Dec 2015 10:57:00 +0100 Message-ID: <1448963821-18936-2-git-send-email-thierry.reding@gmail.com> References: <1448963821-18936-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-f50.google.com (mail-wm0-f50.google.com [74.125.82.50]) by gabe.freedesktop.org (Postfix) with ESMTPS id 85D0F6E7C7 for ; Tue, 1 Dec 2015 01:57:05 -0800 (PST) Received: by wmuu63 with SMTP id u63so165325920wmu.0 for ; Tue, 01 Dec 2015 01:57:04 -0800 (PST) In-Reply-To: <1448963821-18936-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 ICAgICAgaGVscGVyIChEYW5pZWwgVmV0dGVyKQoKU2lnbmVkLW9mZi1ieTogVGhpZXJyeSBSZWRp bmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuYyB8IDE2MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIGRyaXZl cnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYyAgIHwgICA2ICsrCiBpbmNsdWRlL2RybS9kcm1f YXRvbWljX2hlbHBlci5oICAgICB8ICAgNiArKwogMyBmaWxlcyBjaGFuZ2VkLCAxNzQgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5k ZXggMzczMWEyNjk3OWJjLi4xYjUxNzIyYjJhMDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCkBAIC0xODE4LDYgKzE4MTgsMTYyIEBAIGNvbW1pdDoKIH0KIAogLyoqCisgKiBkcm1f YXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbCAtIGRpc2FibGUgYWxsIGN1cnJlbnRseSBhY3RpdmUg b3V0cHV0cworICogQGRldjogRFJNIGRldmljZQorICogQGN0eDogbG9jayBhY3F1aXNpdGlvbiBj b250ZXh0CisgKgorICogTG9vcHMgdGhyb3VnaCBhbGwgY29ubmVjdG9ycywgZmluZGluZyB0aG9z ZSB0aGF0IGFyZW4ndCB0dXJuZWQgb2ZmIGFuZCB0aGVuCisgKiB0dXJucyB0aGVtIG9mZiBieSBz ZXR0aW5nIHRoZWlyIERQTVMgbW9kZSB0byBPRkYgYW5kIGRlYWN0aXZhdGluZyB0aGUgQ1JUQwor ICogdGhhdCB0aGV5IGFyZSBjb25uZWN0ZWQgdG8uCisgKgorICogVGhpcyBpcyB1c2VkIGZvciBl eGFtcGxlIGluIHN1c3BlbmQvcmVzdW1lIHRvIGRpc2FibGUgYWxsIGN1cnJlbnRseSBhY3RpdmUK KyAqIGZ1bmN0aW9ucyB3aGVuIHN1c3BlbmRpbmcuCisgKgorICogTm90ZSB0aGF0IGlmIGNhbGxl cnMgaGF2ZW4ndCBhbHJlYWR5IGFjcXVpcmVkIGFsbCBtb2Rlc2V0IGxvY2tzIHRoaXMgbWlnaHQK KyAqIHJldHVybiAtRURFQURMSywgd2hpY2ggbXVzdCBiZSBoYW5kbGVkIGJ5IGNhbGxpbmcgZHJt X21vZGVzZXRfYmFja29mZigpLgorICoKKyAqIFJldHVybnM6CisgKiAwIG9uIHN1Y2Nlc3Mgb3Ig YSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKgorICogU2VlIGFsc286CisgKiBk cm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKCksIGRybV9hdG9taWNfaGVscGVyX3Jlc3VtZSgpCisg Ki8KK2ludCBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAorCQkJCSAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCit7CisJc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u OworCWludCBlcnI7CisKKwlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MoZGV2KTsKKwlp ZiAoIXN0YXRlKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXN0YXRlLT5hY3F1aXJlX2N0eCA9IGN0 eDsKKworCWRybV9mb3JfZWFjaF9jb25uZWN0b3IoY29ubiwgZGV2KSB7CisJCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YyA9IGNvbm4tPnN0YXRlLT5jcnRjOworCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNydGNfc3RhdGU7CisKKwkJaWYgKCFjcnRjIHx8IGNvbm4tPmRwbXMgIT0gRFJNX01PREVfRFBN U19PTikKKwkJCWNvbnRpbnVlOworCisJCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRj X3N0YXRlKHN0YXRlLCBjcnRjKTsKKwkJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkgeworCQkJZXJy ID0gUFRSX0VSUihjcnRjX3N0YXRlKTsKKwkJCWdvdG8gZnJlZTsKKwkJfQorCisJCWNydGNfc3Rh dGUtPmFjdGl2ZSA9IGZhbHNlOworCX0KKworCWVyciA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRl KTsKKworZnJlZToKKwlpZiAoZXJyIDwgMCkKKwkJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRl KTsKKworCXJldHVybiBlcnI7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2Rp c2FibGVfYWxsKTsKKworLyoqCisgKiBkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kIC0gc3Vic3lz dGVtLWxldmVsIHN1c3BlbmQgaGVscGVyCisgKiBAZGV2OiBEUk0gZGV2aWNlCisgKgorICogRHVw bGljYXRlcyB0aGUgY3VycmVudCBhdG9taWMgc3RhdGUsIGRpc2FibGVzIGFsbCBhY3RpdmUgb3V0 cHV0cyBhbmQgdGhlbgorICogcmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG9yaWdpbmFsIGF0b21p YyBzdGF0ZSB0byB0aGUgY2FsbGVyLiBEcml2ZXJzIGNhbgorICogcGFzcyB0aGlzIHBvaW50ZXIg dG8gdGhlIGRybV9hdG9taWNfaGVscGVyX3Jlc3VtZSgpIGhlbHBlciB1cG9uIHJlc3VtZSB0bwor ICogcmVzdG9yZSB0aGUgb3V0cHV0IGNvbmZpZ3VyYXRpb24gdGhhdCB3YXMgYWN0aXZlIGF0IHRo ZSB0aW1lIHRoZSBzeXN0ZW0KKyAqIGVudGVyZWQgc3VzcGVuZC4KKyAqCisgKiBOb3RlIHRoYXQg aXQgaXMgcG90ZW50aWFsbHkgdW5zYWZlIHRvIHVzZSB0aGlzLiBUaGUgYXRvbWljIHN0YXRlIG9i amVjdAorICogcmV0dXJuZWQgYnkgdGhpcyBmdW5jdGlvbiBpcyBhc3N1bWVkIHRvIGJlIHBlcnNp c3RlbnQuIERyaXZlcnMgbXVzdCBlbnN1cmUKKyAqIHRoYXQgdGhpcyBob2xkcyB0cnVlLiBCZWZv cmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCBkcml2ZXJzIG11c3QgbWFrZSBzdXJlCisgKiB0byBz dXNwZW5kIGZiZGV2IGVtdWxhdGlvbiBzbyB0aGF0IG5vdGhpbmcgY2FuIGJlIHVzaW5nIHRoZSBk ZXZpY2UuCisgKgorICogUmV0dXJuczoKKyAqIEEgcG9pbnRlciB0byBhIGNvcHkgb2YgdGhlIHN0 YXRlIGJlZm9yZSBzdXNwZW5kIG9uIHN1Y2Nlc3Mgb3IgYW4gRVJSX1BUUigpLQorICogZW5jb2Rl ZCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuIERyaXZlcnMgc2hvdWxkIHN0b3JlIHRoZSByZXR1cm5l ZCBhdG9taWMKKyAqIHN0YXRlIG9iamVjdCBhbmQgcGFzcyBpdCB0byB0aGUgZHJtX2F0b21pY19o ZWxwZXJfcmVzdW1lKCkgaGVscGVyIHVwb24KKyAqIHJlc3VtZS4KKyAqCisgKiBTZWUgYWxzbzoK KyAqIGRybV9hdG9taWNfaGVscGVyX2R1cGxpY2F0ZV9zdGF0ZSgpLCBkcm1fYXRvbWljX2hlbHBl cl9kaXNhYmxlX2FsbCgpLAorICogZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKCkKKyAqLworc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKmRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4Owor CXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKKwlpbnQgZXJyOworCisJZHJtX21vZGVz ZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOworCityZXRyeToKKwllcnIgPSBkcm1fbW9kZXNldF9s b2NrX2FsbF9jdHgoZGV2LCAmY3R4KTsKKwlpZiAoZXJyIDwgMCkgeworCQlpZiAoZXJyID09IC1F REVBRExLKSB7CisJCQlkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOworCQkJZ290byByZXRyeTsK KwkJfQorCisJCXN0YXRlID0gRVJSX1BUUihlcnIpOworCQlnb3RvIGZpbmk7CisJfQorCisJc3Rh dGUgPSBkcm1fYXRvbWljX2hlbHBlcl9kdXBsaWNhdGVfc3RhdGUoZGV2LCAmY3R4KTsKKwlpZiAo SVNfRVJSKHN0YXRlKSkKKwkJZ290byB1bmxvY2s7CisKKwllcnIgPSBkcm1fYXRvbWljX2hlbHBl cl9kaXNhYmxlX2FsbChkZXYsICZjdHgpOworCWlmIChlcnIgPCAwKSB7CisJCWRybV9hdG9taWNf c3RhdGVfZnJlZShzdGF0ZSk7CisJCXN0YXRlID0gRVJSX1BUUihlcnIpOworCQlnb3RvIHVubG9j azsKKwl9CisKK3VubG9jazoKKwlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOworZmluaToK Kwlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7CisJcmV0dXJuIHN0YXRlOworfQorRVhQ T1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKTsKKworLyoqCisgKiBkcm1fYXRv bWljX2hlbHBlcl9yZXN1bWUgLSBzdWJzeXN0ZW0tbGV2ZWwgcmVzdW1lIGhlbHBlcgorICogQGRl djogRFJNIGRldmljZQorICogQHN0YXRlOiBhdG9taWMgc3RhdGUgdG8gcmVzdW1lIHRvCisgKgor ICogQ2FsbHMgZHJtX21vZGVfY29uZmlnX3Jlc2V0KCkgdG8gc3luY2hyb25pemUgaGFyZHdhcmUg YW5kIHNvZnR3YXJlIHN0YXRlcywKKyAqIGdyYWJzIGFsbCBtb2Rlc2V0IGxvY2tzIGFuZCBjb21t aXRzIHRoZSBhdG9taWMgc3RhdGUgb2JqZWN0LiBUaGlzIGNhbiBiZQorICogdXNlZCBpbiBjb25q dW5jdGlvbiB3aXRoIHRoZSBkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKCkgaGVscGVyIHRvCisg KiBpbXBsZW1lbnQgc3VzcGVuZC9yZXN1bWUgZm9yIGRyaXZlcnMgdGhhdCBzdXBwb3J0IGF0b21p YyBtb2RlLXNldHRpbmcuCisgKgorICogUmV0dXJuczoKKyAqIDAgb24gc3VjY2VzcyBvciBhIG5l Z2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqCisgKiBTZWUgYWxzbzoKKyAqIGRybV9h dG9taWNfaGVscGVyX3N1c3BlbmQoKQorICovCitpbnQgZHJtX2F0b21pY19oZWxwZXJfcmVzdW1l KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcgPSAmZGV2LT5tb2Rl X2NvbmZpZzsKKwlpbnQgZXJyOworCisJZHJtX21vZGVfY29uZmlnX3Jlc2V0KGRldik7CisJZHJt X21vZGVzZXRfbG9ja19hbGwoZGV2KTsKKwlzdGF0ZS0+YWNxdWlyZV9jdHggPSBjb25maWctPmFj cXVpcmVfY3R4OworCWVyciA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKKwlkcm1fbW9kZXNl dF91bmxvY2tfYWxsKGRldik7CisKKwlyZXR1cm4gZXJyOworfQorRVhQT1JUX1NZTUJPTChkcm1f YXRvbWljX2hlbHBlcl9yZXN1bWUpOworCisvKioKICAqIGRybV9hdG9taWNfaGVscGVyX2NydGNf c2V0X3Byb3BlcnR5IC0gaGVscGVyIGZvciBjcnRjIHByb3BlcnRpZXMKICAqIEBjcnRjOiBEUk0g Y3J0YwogICogQHByb3BlcnR5OiBEUk0gcHJvcGVydHkKQEAgLTI0MjksNyArMjU4NSw5IEBAIEVY UE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSk7 CiAgKiBAY3R4OiBsb2NrIGFjcXVpc2l0aW9uIGNvbnRleHQKICAqCiAgKiBNYWtlcyBhIGNvcHkg b2YgdGhlIGN1cnJlbnQgYXRvbWljIHN0YXRlIGJ5IGxvb3Bpbmcgb3ZlciBhbGwgb2JqZWN0cyBh bmQKLSAqIGR1cGxpY2F0aW5nIHRoZWlyIHJlc3BlY3RpdmUgc3RhdGVzLgorICogZHVwbGljYXRp bmcgdGhlaXIgcmVzcGVjdGl2ZSBzdGF0ZXMuIFRoaXMgaXMgdXNlZCBmb3IgZXhhbXBsZSBieSBz dXNwZW5kLworICogcmVzdW1lIHN1cHBvcnQgY29kZSB0byBzYXZlIHRoZSBzdGF0ZSBwcmlvciB0 byBzdXNwZW5kIHN1Y2ggdGhhdCBpdCBjYW4KKyAqIGJlIHJlc3RvcmVkIHVwb24gcmVzdW1lLgog ICoKICAqIE5vdGUgdGhhdCB0aGlzIHRyZWF0cyBhdG9taWMgc3RhdGUgYXMgcGVyc2lzdGVudCBi ZXR3ZWVuIHNhdmUgYW5kIHJlc3RvcmUuCiAgKiBEcml2ZXJzIG11c3QgbWFrZSBzdXJlIHRoYXQg dGhpcyBpcyBwb3NzaWJsZSBhbmQgd29uJ3QgcmVzdWx0IGluIGNvbmZ1c2lvbgpAQCAtMjQ0MSw2 ICsyNTk5LDkgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVw bGljYXRlX3N0YXRlKTsKICAqIFJldHVybnM6CiAgKiBBIHBvaW50ZXIgdG8gdGhlIGNvcHkgb2Yg dGhlIGF0b21pYyBzdGF0ZSBvYmplY3Qgb24gc3VjY2VzcyBvciBhbgogICogRVJSX1BUUigpLWVu Y29kZWQgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICoKKyAqIFNlZSBhbHNvOgorICogZHJtX2F0 b21pY19oZWxwZXJfc3VzcGVuZCgpLCBkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUoKQogICovCiBz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqCiBkcm1fYXRvbWljX2hlbHBlcl9kdXBsaWNhdGVfc3Rh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fY3J0Y19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwppbmRl eCA2YjRjZjI1ZmVkMTIuLjEwZDA5ODlkYjI3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9jcnRjX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIu YwpAQCAtODU1LDYgKzg1NSwxMiBAQCBFWFBPUlRfU1lNQk9MKGRybV9oZWxwZXJfbW9kZV9maWxs X2ZiX3N0cnVjdCk7CiAgKiBkdWUgdG8gc2xpZ2h0IGRpZmZlcmVuY2VzIGluIGFsbG9jYXRpbmcg c2hhcmVkIHJlc291cmNlcyB3aGVuIHRoZQogICogY29uZmlndXJhdGlvbiBpcyByZXN0b3JlZCBp biBhIGRpZmZlcmVudCBvcmRlciB0aGFuIHdoZW4gdXNlcnNwYWNlIHNldCBpdCB1cCkKICAqIG5l ZWQgdG8gdXNlIHRoZWlyIG93biByZXN0b3JlIGxvZ2ljLgorICoKKyAqIFRoaXMgZnVuY3Rpb24g aXMgZGVwcmVjYXRlZC4gTmV3IGRyaXZlcnMgc2hvdWxkIGltcGxlbWVudCBhdG9taWMgbW9kZS0K KyAqIHNldHRpbmcgYW5kIHVzZSB0aGUgYXRvbWljIHN1c3BlbmQvcmVzdW1lIGhlbHBlcnMuCisg KgorICogU2VlIGFsc286CisgKiBkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKCksIGRybV9hdG9t aWNfaGVscGVyX3Jlc3VtZSgpCiAgKi8KIHZvaWQgZHJtX2hlbHBlcl9yZXN1bWVfZm9yY2VfbW9k ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJt X2F0b21pY19oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgKaW5kZXgg OGNiYTU0YTJhMGEwLi44MDQ1Y2RlYThjYzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9h dG9taWNfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaApAQCAt ODEsNiArODEsMTIgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcoc3RydWN0IGRy bV9tb2RlX3NldCAqc2V0KTsKIGludCBfX2RybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcoc3Ry dWN0IGRybV9tb2RlX3NldCAqc2V0LAogCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp OwogCitpbnQgZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9hbGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKKwkJCQkgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKK3N0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOworaW50IGRybV9hdG9taWNfaGVscGVyX3Jlc3VtZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAorCQkJICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOworCiBp bnQgZHJtX2F0b21pY19oZWxwZXJfY3J0Y19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jcnRjICpj cnRjLAogCQkJCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKIAkJCQkJdWludDY0X3Qg dmFsKTsKLS0gCjIuNS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=