From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 11/12] drm/tegra: Support DMA API for display controllers Date: Mon, 28 Oct 2019 13:37:17 +0100 Message-ID: <20191028123718.3890217-12-thierry.reding@gmail.com> References: <20191028123718.3890217-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191028123718.3890217-1-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: Thierry Reding Cc: linux-tegra@vger.kernel.org, Sachin Nikam , dri-devel@lists.freedesktop.org, Puneet Saxena List-Id: linux-tegra@vger.kernel.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCklmIGEgZGlzcGxheSBj b250cm9sbGVyIGlzIG5vdCBhdHRhY2hlZCB0byBhbiBleHBsaWNpdCBJT01NVSBkb21haW4sCndo aWNoIHVzdWFsbHkgbWVhbnMgdGhhdCBpdCdzIGNvbm5lY3RlZCB0byBhbiBJT01NVSBkb21haW4g Y29udHJvbGxlZCBieQp0aGUgRE1BIEFQSSwgbWFrZSBzdXJlIHRvIG1hcCB0aGUgZnJhbWVidWZm ZXIgdG8gdGhlIGRpc3BsYXkgY29udHJvbGxlcgphZGRyZXNzIHNwYWNlLiBUaGlzIGFsbG93cyB1 cyB0byB0cmFuc3BhcmVudGx5IGhhbmRsZSBzZXR1cHMgd2hlcmUgdGhlCmRpc3BsYXkgY29udHJv bGxlciBpcyBhdHRhY2hlZCB0byBhbiBJT01NVSBvciBzZXR1cHMgd2hlcmUgaXQgaXNuJ3QuIEl0 CmFsc28gYWxsb3dzIHRoZSBkcml2ZXIgdG8gd29yayB3aXRoIGEgRE1BIEFQSSB0aGF0IGlzIGJh Y2tlZCBieSBhbgpJT01NVS4KClNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5n QG52aWRpYS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMgICAgfCAgIDggKyst CiBkcml2ZXJzL2dwdS9kcm0vdGVncmEvaHViLmMgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJt L3RlZ3JhL3BsYW5lLmMgfCAxMDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog ZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3BsYW5lLmggfCAgIDggKysrCiA0IGZpbGVzIGNoYW5nZWQs IDEyMCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS90ZWdyYS9kYy5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMKaW5kZXggMzZj MzZiMjk1YWIxLi41YjFmOWZmOTc1NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdy YS9kYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jCkBAIC03MTUsOSArNzE1LDcg QEAgc3RhdGljIHZvaWQgdGVncmFfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKIAl3aW5kb3cuc3dhcCA9IHN0YXRlLT5zd2FwOwogCiAJZm9yIChpID0gMDsgaSA8 IGZiLT5mb3JtYXQtPm51bV9wbGFuZXM7IGkrKykgewotCQlzdHJ1Y3QgdGVncmFfYm8gKmJvID0g dGVncmFfZmJfZ2V0X3BsYW5lKGZiLCBpKTsKLQotCQl3aW5kb3cuYmFzZVtpXSA9IGJvLT5pb3Zh ICsgZmItPm9mZnNldHNbaV07CisJCXdpbmRvdy5iYXNlW2ldID0gc3RhdGUtPmlvdmFbaV0gKyBm Yi0+b2Zmc2V0c1tpXTsKIAogCQkvKgogCQkgKiBUZWdyYSB1c2VzIGEgc2hhcmVkIHN0cmlkZSBm b3IgVVYgcGxhbmVzLiBGcmFtZWJ1ZmZlcnMgYXJlCkBAIC03MzIsNiArNzMwLDggQEAgc3RhdGlj IHZvaWQgdGVncmFfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIHRlZ3JhX3Bs YW5lX2hlbHBlcl9mdW5jcyA9IHsKKwkucHJlcGFyZV9mYiA9IHRlZ3JhX3BsYW5lX3ByZXBhcmVf ZmIsCisJLmNsZWFudXBfZmIgPSB0ZWdyYV9wbGFuZV9jbGVhbnVwX2ZiLAogCS5hdG9taWNfY2hl Y2sgPSB0ZWdyYV9wbGFuZV9hdG9taWNfY2hlY2ssCiAJLmF0b21pY19kaXNhYmxlID0gdGVncmFf cGxhbmVfYXRvbWljX2Rpc2FibGUsCiAJLmF0b21pY191cGRhdGUgPSB0ZWdyYV9wbGFuZV9hdG9t aWNfdXBkYXRlLApAQCAtOTE0LDYgKzkxNCw4IEBAIHN0YXRpYyB2b2lkIHRlZ3JhX2N1cnNvcl9h dG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIH0KIAogc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIHRlZ3JhX2N1cnNvcl9wbGFuZV9oZWxwZXJf ZnVuY3MgPSB7CisJLnByZXBhcmVfZmIgPSB0ZWdyYV9wbGFuZV9wcmVwYXJlX2ZiLAorCS5jbGVh bnVwX2ZiID0gdGVncmFfcGxhbmVfY2xlYW51cF9mYiwKIAkuYXRvbWljX2NoZWNrID0gdGVncmFf Y3Vyc29yX2F0b21pY19jaGVjaywKIAkuYXRvbWljX3VwZGF0ZSA9IHRlZ3JhX2N1cnNvcl9hdG9t aWNfdXBkYXRlLAogCS5hdG9taWNfZGlzYWJsZSA9IHRlZ3JhX2N1cnNvcl9hdG9taWNfZGlzYWJs ZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9odWIuYyBiL2RyaXZlcnMvZ3B1 L2RybS90ZWdyYS9odWIuYwppbmRleCAxMDQxMTVlNDIxOTAuLjJiNDA4MmQwYmM5ZSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2h1Yi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90 ZWdyYS9odWIuYwpAQCAtNDEzLDcgKzQxMyw2IEBAIHN0YXRpYyB2b2lkIHRlZ3JhX3NoYXJlZF9w bGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXVuc2lnbmVkIGlu dCB6cG9zID0gcGxhbmUtPnN0YXRlLT5ub3JtYWxpemVkX3pwb3M7CiAJc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIgPSBwbGFuZS0+c3RhdGUtPmZiOwogCXN0cnVjdCB0ZWdyYV9wbGFuZSAqcCA9 IHRvX3RlZ3JhX3BsYW5lKHBsYW5lKTsKLQlzdHJ1Y3QgdGVncmFfYm8gKmJvOwogCWRtYV9hZGRy X3QgYmFzZTsKIAl1MzIgdmFsdWU7CiAKQEAgLTQ1Niw4ICs0NTUsNyBAQCBzdGF0aWMgdm9pZCB0 ZWdyYV9zaGFyZWRfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IAkvKiBkaXNhYmxlIGNvbXByZXNzaW9uICovCiAJdGVncmFfcGxhbmVfd3JpdGVsKHAsIDAsIERD X1dJTkJVRl9DREVfQ09OVFJPTCk7CiAKLQlibyA9IHRlZ3JhX2ZiX2dldF9wbGFuZShmYiwgMCk7 Ci0JYmFzZSA9IGJvLT5pb3ZhOworCWJhc2UgPSBzdGF0ZS0+aW92YVswXSArIGZiLT5vZmZzZXRz WzBdOwogCiAJdGVncmFfcGxhbmVfd3JpdGVsKHAsIHN0YXRlLT5mb3JtYXQsIERDX1dJTl9DT0xP Ul9ERVBUSCk7CiAJdGVncmFfcGxhbmVfd3JpdGVsKHAsIDAsIERDX1dJTl9QUkVDT01QX1dHUlBf UEFSQU1TKTsKQEAgLTUyMSw2ICs1MTksOCBAQCBzdGF0aWMgdm9pZCB0ZWdyYV9zaGFyZWRfcGxh bmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIH0KIAogc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIHRlZ3JhX3NoYXJlZF9wbGFuZV9oZWxw ZXJfZnVuY3MgPSB7CisJLnByZXBhcmVfZmIgPSB0ZWdyYV9wbGFuZV9wcmVwYXJlX2ZiLAorCS5j bGVhbnVwX2ZiID0gdGVncmFfcGxhbmVfY2xlYW51cF9mYiwKIAkuYXRvbWljX2NoZWNrID0gdGVn cmFfc2hhcmVkX3BsYW5lX2F0b21pY19jaGVjaywKIAkuYXRvbWljX3VwZGF0ZSA9IHRlZ3JhX3No YXJlZF9wbGFuZV9hdG9taWNfdXBkYXRlLAogCS5hdG9taWNfZGlzYWJsZSA9IHRlZ3JhX3NoYXJl ZF9wbGFuZV9hdG9taWNfZGlzYWJsZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdy YS9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3BsYW5lLmMKaW5kZXggNmJhYjcxZDZl ODFkLi4xNjNiNTkwYmUyMjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9wbGFu ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9wbGFuZS5jCkBAIC02LDYgKzYsNyBAQAog I2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVs cGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dl bV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5o PgogCiAjaW5jbHVkZSAiZGMuaCIKQEAgLTIzLDYgKzI0LDcgQEAgc3RhdGljIHZvaWQgdGVncmFf cGxhbmVfcmVzZXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiB7CiAJc3RydWN0IHRlZ3JhX3Bs YW5lICpwID0gdG9fdGVncmFfcGxhbmUocGxhbmUpOwogCXN0cnVjdCB0ZWdyYV9wbGFuZV9zdGF0 ZSAqc3RhdGU7CisJdW5zaWduZWQgaW50IGk7CiAKIAlpZiAocGxhbmUtPnN0YXRlKQogCQlfX2Ry bV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUocGxhbmUtPnN0YXRlKTsKQEAgLTM2 LDYgKzM4LDkgQEAgc3RhdGljIHZvaWQgdGVncmFfcGxhbmVfcmVzZXQoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUpCiAJCXBsYW5lLT5zdGF0ZS0+cGxhbmUgPSBwbGFuZTsKIAkJcGxhbmUtPnN0YXRl LT56cG9zID0gcC0+aW5kZXg7CiAJCXBsYW5lLT5zdGF0ZS0+bm9ybWFsaXplZF96cG9zID0gcC0+ aW5kZXg7CisKKwkJZm9yIChpID0gMDsgaSA8IDM7IGkrKykKKwkJCXN0YXRlLT5pb3ZhW2ldID0g RE1BX01BUFBJTkdfRVJST1I7CiAJfQogfQogCkBAIC02MCw2ICs2NSwxMSBAQCB0ZWdyYV9wbGFu ZV9hdG9taWNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogCWZvciAo aSA9IDA7IGkgPCAyOyBpKyspCiAJCWNvcHktPmJsZW5kaW5nW2ldID0gc3RhdGUtPmJsZW5kaW5n W2ldOwogCisJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgeworCQljb3B5LT5pb3ZhW2ldID0gRE1B X01BUFBJTkdfRVJST1I7CisJCWNvcHktPnNndFtpXSA9IE5VTEw7CisJfQorCiAJcmV0dXJuICZj b3B5LT5iYXNlOwogfQogCkBAIC05NSw2ICsxMDUsMTAwIEBAIGNvbnN0IHN0cnVjdCBkcm1fcGxh bmVfZnVuY3MgdGVncmFfcGxhbmVfZnVuY3MgPSB7CiAJLmZvcm1hdF9tb2Rfc3VwcG9ydGVkID0g dGVncmFfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQsCiB9OwogCitzdGF0aWMgaW50IHRlZ3Jh X2RjX3BpbihzdHJ1Y3QgdGVncmFfZGMgKmRjLCBzdHJ1Y3QgdGVncmFfcGxhbmVfc3RhdGUgKnN0 YXRlKQoreworCXVuc2lnbmVkIGludCBpOworCWludCBlcnI7CisKKwlmb3IgKGkgPSAwOyBpIDwg c3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+bnVtX3BsYW5lczsgaSsrKSB7CisJCXN0cnVjdCB0ZWdy YV9ibyAqYm8gPSB0ZWdyYV9mYl9nZXRfcGxhbmUoc3RhdGUtPmJhc2UuZmIsIGkpOworCisJCWlm ICghZGMtPmNsaWVudC5ncm91cCkgeworCQkJc3RydWN0IHNnX3RhYmxlICpzZ3Q7CisKKwkJCXNn dCA9IGhvc3QxeF9ib19waW4oZGMtPmRldiwgJmJvLT5iYXNlLCBOVUxMKTsKKwkJCWlmIChJU19F UlIoc2d0KSkgeworCQkJCWVyciA9IFBUUl9FUlIoc2d0KTsKKwkJCQlnb3RvIHVucGluOworCQkJ fQorCisJCQllcnIgPSBkbWFfbWFwX3NnKGRjLT5kZXYsIHNndC0+c2dsLCBzZ3QtPm5lbnRzLAor CQkJCQkgRE1BX1RPX0RFVklDRSk7CisJCQlpZiAoZXJyID09IDApIHsKKwkJCQllcnIgPSAtRU5P TUVNOworCQkJCWdvdG8gdW5waW47CisJCQl9CisKKwkJCXN0YXRlLT5pb3ZhW2ldID0gc2dfZG1h X2FkZHJlc3Moc2d0LT5zZ2wpOworCQkJc3RhdGUtPnNndFtpXSA9IHNndDsKKwkJfSBlbHNlIHsK KwkJCXN0YXRlLT5pb3ZhW2ldID0gYm8tPmlvdmE7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKKwor dW5waW46CisJZGV2X2VycihkYy0+ZGV2LCAiZmFpbGVkIHRvIG1hcCBwbGFuZSAldTogJWRcbiIs IGksIGVycik7CisKKwl3aGlsZSAoaS0tKSB7CisJCXN0cnVjdCB0ZWdyYV9ibyAqYm8gPSB0ZWdy YV9mYl9nZXRfcGxhbmUoc3RhdGUtPmJhc2UuZmIsIGkpOworCQlzdHJ1Y3Qgc2dfdGFibGUgKnNn dCA9IHN0YXRlLT5zZ3RbaV07CisKKwkJZG1hX3VubWFwX3NnKGRjLT5kZXYsIHNndC0+c2dsLCBz Z3QtPm5lbnRzLCBETUFfVE9fREVWSUNFKTsKKwkJaG9zdDF4X2JvX3VucGluKGRjLT5kZXYsICZi by0+YmFzZSwgc2d0KTsKKworCQlzdGF0ZS0+aW92YVtpXSA9IERNQV9NQVBQSU5HX0VSUk9SOwor CQlzdGF0ZS0+c2d0W2ldID0gTlVMTDsKKwl9CisKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMg dm9pZCB0ZWdyYV9kY191bnBpbihzdHJ1Y3QgdGVncmFfZGMgKmRjLCBzdHJ1Y3QgdGVncmFfcGxh bmVfc3RhdGUgKnN0YXRlKQoreworCXVuc2lnbmVkIGludCBpOworCisJZm9yIChpID0gMDsgaSA8 IHN0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPm51bV9wbGFuZXM7IGkrKykgeworCQlzdHJ1Y3QgdGVn cmFfYm8gKmJvID0gdGVncmFfZmJfZ2V0X3BsYW5lKHN0YXRlLT5iYXNlLmZiLCBpKTsKKworCQlp ZiAoIWRjLT5jbGllbnQuZ3JvdXApIHsKKwkJCXN0cnVjdCBzZ190YWJsZSAqc2d0ID0gc3RhdGUt PnNndFtpXTsKKworCQkJaWYgKHNndCkgeworCQkJCWRtYV91bm1hcF9zZyhkYy0+ZGV2LCBzZ3Qt PnNnbCwgc2d0LT5uZW50cywKKwkJCQkJICAgICBETUFfVE9fREVWSUNFKTsKKwkJCQlob3N0MXhf Ym9fdW5waW4oZGMtPmRldiwgJmJvLT5iYXNlLCBzZ3QpOworCQkJfQorCQl9CisKKwkJc3RhdGUt PmlvdmFbaV0gPSBETUFfTUFQUElOR19FUlJPUjsKKwkJc3RhdGUtPnNndFtpXSA9IE5VTEw7CisJ fQorfQorCitpbnQgdGVncmFfcGxhbmVfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKKwkJCSAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCB0ZWdy YV9kYyAqZGMgPSB0b190ZWdyYV9kYyhzdGF0ZS0+Y3J0Yyk7CisKKwlpZiAoIXN0YXRlLT5mYikK KwkJcmV0dXJuIDA7CisKKwlkcm1fZ2VtX2ZiX3ByZXBhcmVfZmIocGxhbmUsIHN0YXRlKTsKKwor CXJldHVybiB0ZWdyYV9kY19waW4oZGMsIHRvX3RlZ3JhX3BsYW5lX3N0YXRlKHN0YXRlKSk7Cit9 CisKK3ZvaWQgdGVncmFfcGxhbmVfY2xlYW51cF9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK KwkJCSAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgdGVncmFf ZGMgKmRjID0gdG9fdGVncmFfZGMoc3RhdGUtPmNydGMpOworCisJaWYgKGRjKQorCQl0ZWdyYV9k Y191bnBpbihkYywgdG9fdGVncmFfcGxhbmVfc3RhdGUoc3RhdGUpKTsKK30KKwogaW50IHRlZ3Jh X3BsYW5lX3N0YXRlX2FkZChzdHJ1Y3QgdGVncmFfcGxhbmUgKnBsYW5lLAogCQkJICBzdHJ1Y3Qg ZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90 ZWdyYS9wbGFuZS5oIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3BsYW5lLmgKaW5kZXggNTEwYzM5 NGU2ZDlhLi5hMTU4YTkxNTEwOWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9w bGFuZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9wbGFuZS5oCkBAIC0zOSw2ICszOSw5 IEBAIHN0cnVjdCB0ZWdyYV9wbGFuZV9sZWdhY3lfYmxlbmRpbmdfc3RhdGUgewogc3RydWN0IHRl Z3JhX3BsYW5lX3N0YXRlIHsKIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlIGJhc2U7CiAKKwlzdHJ1 Y3Qgc2dfdGFibGUgKnNndFszXTsKKwlkbWFfYWRkcl90IGlvdmFbM107CisKIAlzdHJ1Y3QgdGVn cmFfYm9fdGlsaW5nIHRpbGluZzsKIAl1MzIgZm9ybWF0OwogCXUzMiBzd2FwOwpAQCAtNjEsNiAr NjQsMTEgQEAgdG9fdGVncmFfcGxhbmVfc3RhdGUoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3Rh dGUpCiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIHRlZ3JhX3BsYW5lX2Z1 bmNzOwogCitpbnQgdGVncmFfcGxhbmVfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKKwkJCSAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKTsKK3ZvaWQgdGVncmFfcGxh bmVfY2xlYW51cF9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCSAgICBzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpzdGF0ZSk7CisKIGludCB0ZWdyYV9wbGFuZV9zdGF0ZV9hZGQoc3RydWN0 IHRlZ3JhX3BsYW5lICpwbGFuZSwKIAkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUp OwogCi0tIAoyLjIzLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbA==