From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [RFC] dmaengine: Add metadata_ops for dma_async_tx_descriptor From: Peter Ujfalusi Message-Id: <20180815105704.26498-1-peter.ujfalusi@ti.com> Date: Wed, 15 Aug 2018 13:57:04 +0300 To: dan.j.williams@intel.com, vkoul@kernel.org Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, lars@metafoo.de, radheys@xilinx.com List-ID: VGhlIG1ldGFkYXRhIGlzIGJlc3QgZGVzY3JpYmVkIGFzIHNpZGUgYmFuZCBkYXRhIG9yIHBhcmFt ZXRlcnMgdHJhdmVsaW5nCmFsb25nc2lkZSB0aGUgZGF0YSBETUFkIGJ5IHRoZSBETUEgZW5naW5l LiBJdCBpcyBkYXRhCndoaWNoIGlzIHVuZGVyc3Rvb2QgYnkgdGhlIHBlcmlwaGVyYWwgYW5kIHRo ZSBwZXJpcGhlcmFsIGRyaXZlciBvbmx5LCB0aGUKRE1BIGVuZ2luZSBzZWUgaXQgb25seSBhcyBk YXRhIGJsb2NrIGFuZCBpdCBpcyBub3QgaW50ZXJwcmV0aW5nIGl0IGluIGFueQp3YXkuCgpUaGUg bWV0YWRhdGEgY2FuIGJlIGRpZmZlcmVudCBwZXIgZGVzY3JpcHRvciBhcyBpdCBpcyBhIHBhcmFt ZXRlciBmb3IgdGhlCmRhdGEgYmVpbmcgdHJhbnNmZXJyZWQuCgpJZiB0aGUgRE1BIHN1cHBvcnRz IHBlciBkZXNjcmlwdG9yIG1ldGFkYXRhIGl0IGNhbiBpbXBsZW1lbnQgdGhlIGF0dGFjaCwKZ2V0 X3B0ci9zZXRfbGVuIGNhbGxiYWNrcy4KCkNsaWVudCBkcml2ZXJzIG11c3Qgb25seSB1c2UgZWl0 aGVyIGF0dGFjaCBvciBnZXRfcHRyL3NldF9sZW4gdG8gYXZvaWQKbWlzcyBjb25maWd1cmF0aW9u LgoKQ2xpZW50IGRyaXZlciBjYW4gY2hlY2sgaWYgYSBnaXZlbiBtZXRhZGF0YSBtb2RlIGlzIHN1 cHBvcnRlZCBieSB0aGUKY2hhbm5lbCBkdXJpbmcgcHJvYmUgdGltZSB3aXRoCmRtYWVuZ2luZV9p c19tZXRhZGF0YV9tb2RlX3N1cHBvcnRlZChjaGFuLCBERVNDX01FVEFEQVRBX0NMSUVOVCk7CmRt YWVuZ2luZV9pc19tZXRhZGF0YV9tb2RlX3N1cHBvcnRlZChjaGFuLCBERVNDX01FVEFEQVRBX0VN QkVEREVEKTsKCmFuZCBiYXNlZCBvbiB0aGlzIGluZm9ybWF0aW9uIGNhbiB1c2UgZWl0aGVyIG1v ZGUuCgpXcmFwcGVycyBhcmUgYWxzbyBhZGRlZCBmb3IgdGhlIG1ldGFkYXRhX29wcy4KClRvIGJl IHVzZWQgaW4gREVTQ19NRVRBREFUQV9DTElFTlQgbW9kZToKZG1hZW5naW5lX2Rlc2NfYXR0YWNo X21ldGFkYXRhKCkKClRvIGJlIHVzZWQgaW4gREVTQ19NRVRBREFUQV9FTUJFRERFRCBtb2RlOgpk bWFlbmdpbmVfZGVzY19nZXRfbWV0YWRhdGFfcHRyKCkKZG1hZW5naW5lX2Rlc2Nfc2V0X21ldGFk YXRhX2xlbigpCgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBVamZhbHVzaSA8cGV0ZXIudWpmYWx1c2lA dGkuY29tPgotLS0KIGluY2x1ZGUvbGludXgvZG1hZW5naW5lLmggfCAxMTIgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMTIgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZG1hZW5naW5lLmggYi9pbmNsdWRlL2xp bnV4L2RtYWVuZ2luZS5oCmluZGV4IDNkYjgzM2E4YzU0Mi4uMjIwMGY4OTg1YWRmIDEwMDY0NAot LS0gYS9pbmNsdWRlL2xpbnV4L2RtYWVuZ2luZS5oCisrKyBiL2luY2x1ZGUvbGludXgvZG1hZW5n aW5lLmgKQEAgLTIzMSw2ICsyMzEsMjUgQEAgdHlwZWRlZiBzdHJ1Y3QgeyBERUNMQVJFX0JJVE1B UChiaXRzLCBETUFfVFhfVFlQRV9FTkQpOyB9IGRtYV9jYXBfbWFza190OwogICogQGJ5dGVzX3Ry YW5zZmVycmVkOiBieXRlIGNvdW50ZXIKICAqLwogCisvKioKKyAqIGVudW0gZG1hX2Rlc2NfbWV0 YWRhdGFfbW9kZSAtIHBlciBkZXNjcmlwdG9yIG1ldGFkYXRhIG1vZGUgdHlwZXMgc3VwcG9ydGVk CisgKiBAREVTQ19NRVRBREFUQV9DTElFTlQgLSB0aGUgbWV0YWRhdGEgYnVmZmVyIGlzIGFsbG9j YXRlZC9wcm92aWRlZCBieSB0aGUKKyAqICBjbGllbnQgZHJpdmVyIGFuZCBpdCBpcyBhdHRhY2hl ZCAodmlhIHRoZSBkbWFlbmdpbmVfZGVzY19hdHRhY2hfbWV0YWRhdGEoKQorICogIGhlbHBlcikg dG8gdGhlIGRlc2NyaXB0b3IuCisgKiBAREVTQ19NRVRBREFUQV9FTUJFRERFRCAtIHRoZSBtZXRh ZGF0YSBidWZmZXIgaXMgYWxsb2NhdGVkL21hbmFnZWQgYnkgdGhlIERNQQorICogIGRyaXZlci4g VGhlIGNsaWVudCBkcml2ZXIgY2FuIGFzayBmb3IgdGhlIHBvaW50ZXIsIG1heGltdW0gc2l6ZSBh bmQgdGhlCisgKiAgY3VycmVudGx5IHVzZWQgc2l6ZSBvZiB0aGUgbWV0YWRhdGEgYW5kIGNhbiBk aXJlY3RseSB1cGRhdGEgb3IgcmVhZCBpdC4KKyAqICBkbWFlbmdpbmVfZGVzY19nZXRfbWV0YWRh dGFfcHRyKCkgYW5kIGRtYWVuZ2luZV9kZXNjX3NldF9tZXRhZGF0YV9sZW4oKSBpcworICogIHBy b3ZpZGVkIGFzIGhlbHBlciBmdW5jdGlvbnMuCisgKgorICogTm90ZTogdGhlIHR3byBtb2RlIGlz IG5vdCBjb21wYXRpYmxlIGFuZCBjbGllbnRzIG11c3QgdXNlIG9uZSBtb2RlIGZvciBhCisgKiBk ZXNjcmlwdG9yLgorICovCitlbnVtIGRtYV9kZXNjX21ldGFkYXRhX21vZGUgeworCURFU0NfTUVU QURBVEFfQ0xJRU5UID0gKDEgPDwgMCksCisJREVTQ19NRVRBREFUQV9FTUJFRERFRCA9ICgxIDw8 IDEpLAorfTsKKwogc3RydWN0IGRtYV9jaGFuX3BlcmNwdSB7CiAJLyogc3RhdHMgKi8KIAl1bnNp Z25lZCBsb25nIG1lbWNweV9jb3VudDsKQEAgLTQ5NCw2ICs1MTMsMTggQEAgc3RydWN0IGRtYWVu Z2luZV91bm1hcF9kYXRhIHsKIAlkbWFfYWRkcl90IGFkZHJbMF07CiB9OwogCitzdHJ1Y3QgZG1h X2FzeW5jX3R4X2Rlc2NyaXB0b3I7CisKK3N0cnVjdCBkbWFfZGVzY3JpcHRvcl9tZXRhZGF0YV9v cHMgeworCWludCAoKmF0dGFjaCkoc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpkZXNj LCB2b2lkICpkYXRhLAorCQkgICAgICBzaXplX3QgbGVuKTsKKworCXZvaWQgKigqZ2V0X3B0ciko c3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpkZXNjLAorCQkJIHNpemVfdCAqcGF5bG9h ZF9sZW4sIHNpemVfdCAqbWF4X2xlbik7CisJaW50ICgqc2V0X2xlbikoc3RydWN0IGRtYV9hc3lu Y190eF9kZXNjcmlwdG9yICpkZXNjLAorCQkgICAgICAgc2l6ZV90IHBheWxvYWRfbGVuKTsKK307 CisKIC8qKgogICogc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yIC0gYXN5bmMgdHJhbnNh Y3Rpb24gZGVzY3JpcHRvcgogICogLS0tZG1hIGdlbmVyaWMgb2ZmbG9hZCBmaWVsZHMtLS0KQEAg LTUyMyw2ICs1NTQsOCBAQCBzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgewogCWRtYV9h c3luY190eF9jYWxsYmFja19yZXN1bHQgY2FsbGJhY2tfcmVzdWx0OwogCXZvaWQgKmNhbGxiYWNr X3BhcmFtOwogCXN0cnVjdCBkbWFlbmdpbmVfdW5tYXBfZGF0YSAqdW5tYXA7CisJZW51bSBkbWFf ZGVzY19tZXRhZGF0YV9tb2RlIGRlc2NfbWV0YWRhdGFfbW9kZTsKKwlzdHJ1Y3QgZG1hX2Rlc2Ny aXB0b3JfbWV0YWRhdGFfb3BzICptZXRhZGF0YV9vcHM7CiAjaWZkZWYgQ09ORklHX0FTWU5DX1RY X0VOQUJMRV9DSEFOTkVMX1NXSVRDSAogCXN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAq bmV4dDsKIAlzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKnBhcmVudDsKQEAgLTY4NSw2 ICs3MTgsNyBAQCBzdHJ1Y3QgZG1hX2ZpbHRlciB7CiAgKiBAZ2xvYmFsX25vZGU6IGxpc3RfaGVh ZCBmb3IgZ2xvYmFsIGRtYV9kZXZpY2VfbGlzdAogICogQGZpbHRlcjogaW5mb3JtYXRpb24gZm9y IGRldmljZS9zbGF2ZSB0byBmaWx0ZXIgZnVuY3Rpb24vcGFyYW0gbWFwcGluZwogICogQGNhcF9t YXNrOiBvbmUgb3IgbW9yZSBkbWFfY2FwYWJpbGl0eSBmbGFncworICogQGRlc2NfbWV0YWRhdGFf bW9kZXM6IHN1cHBvcnRlZCBtZXRhZGF0YSBtb2RlcyBieSB0aGUgRE1BIGRldmljZQogICogQG1h eF94b3I6IG1heGltdW0gbnVtYmVyIG9mIHhvciBzb3VyY2VzLCAwIGlmIG5vIGNhcGFiaWxpdHkK ICAqIEBtYXhfcHE6IG1heGltdW0gbnVtYmVyIG9mIFBRIHNvdXJjZXMgYW5kIFBRLWNvbnRpbnVl IGNhcGFiaWxpdHkKICAqIEBjb3B5X2FsaWduOiBhbGlnbm1lbnQgc2hpZnQgZm9yIG1lbWNweSBv cGVyYXRpb25zCkBAIC03NDksNiArNzgzLDcgQEAgc3RydWN0IGRtYV9kZXZpY2UgewogCXN0cnVj dCBsaXN0X2hlYWQgZ2xvYmFsX25vZGU7CiAJc3RydWN0IGRtYV9maWx0ZXIgZmlsdGVyOwogCWRt YV9jYXBfbWFza190ICBjYXBfbWFzazsKKwllbnVtIGRtYV9kZXNjX21ldGFkYXRhX21vZGUgZGVz Y19tZXRhZGF0YV9tb2RlczsKIAl1bnNpZ25lZCBzaG9ydCBtYXhfeG9yOwogCXVuc2lnbmVkIHNo b3J0IG1heF9wcTsKIAllbnVtIGRtYWVuZ2luZV9hbGlnbm1lbnQgY29weV9hbGlnbjsKQEAgLTkz NSw2ICs5NzAsODMgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0 b3IgKmRtYWVuZ2luZV9wcmVwX2RtYV9tZW1jcHkoCiAJCQkJCQkgICAgbGVuLCBmbGFncyk7CiB9 CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBkbWFlbmdpbmVfaXNfbWV0YWRhdGFfbW9kZV9zdXBwb3J0 ZWQoc3RydWN0IGRtYV9jaGFuICpjaGFuLAorCQllbnVtIGRtYV9kZXNjX21ldGFkYXRhX21vZGUg bW9kZSkKK3sKKwlyZXR1cm4gISEoY2hhbi0+ZGV2aWNlLT5kZXNjX21ldGFkYXRhX21vZGVzICYg bW9kZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IF9kZXNjX2NoZWNrX2FuZF9zZXRfbWV0YWRh dGFfbW9kZSgKKwlzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKmRlc2MsIGVudW0gZG1h X2Rlc2NfbWV0YWRhdGFfbW9kZSBtb2RlKQoreworCS8qIE1ha2Ugc3VyZSB0aGF0IHRoZSBtZXRh ZGF0YSBtb2RlIGlzIG5vdCBtaXhlZCAqLworCWlmICghZGVzYy0+ZGVzY19tZXRhZGF0YV9tb2Rl KSB7CisJCWlmIChkbWFlbmdpbmVfaXNfbWV0YWRhdGFfbW9kZV9zdXBwb3J0ZWQoZGVzYy0+Y2hh biwgbW9kZSkpCisJCQlkZXNjLT5kZXNjX21ldGFkYXRhX21vZGUgPSBtb2RlOworCQllbHNlCisJ CQlyZXR1cm4gLUVOT1RTVVBQOworCX0gZWxzZSBpZiAoZGVzYy0+ZGVzY19tZXRhZGF0YV9tb2Rl ICE9IG1vZGUpIHsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0 YXRpYyBpbmxpbmUgaW50IGRtYWVuZ2luZV9kZXNjX2F0dGFjaF9tZXRhZGF0YSgKKwkJc3RydWN0 IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpkZXNjLCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKQor eworCWludCByZXQ7CisKKwlpZiAoIWRlc2MpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0ID0g X2Rlc2NfY2hlY2tfYW5kX3NldF9tZXRhZGF0YV9tb2RlKGRlc2MsIERFU0NfTUVUQURBVEFfQ0xJ RU5UKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJaWYgKCFkZXNjLT5tZXRhZGF0YV9v cHMgfHwgIWRlc2MtPm1ldGFkYXRhX29wcy0+YXR0YWNoKQorCQlyZXR1cm4gLUVOT1RTVVBQOwor CisJcmV0dXJuIGRlc2MtPm1ldGFkYXRhX29wcy0+YXR0YWNoKGRlc2MsIGRhdGEsIGxlbik7Cit9 CisKK3N0YXRpYyBpbmxpbmUgdm9pZCAqZG1hZW5naW5lX2Rlc2NfZ2V0X21ldGFkYXRhX3B0cigK KwkJc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpkZXNjLCBzaXplX3QgKnBheWxvYWRf bGVuLAorCQlzaXplX3QgKm1heF9sZW4pCit7CisJaW50IHJldDsKKworCWlmICghZGVzYykKKwkJ cmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisKKwlyZXQgPSBfZGVzY19jaGVja19hbmRfc2V0X21l dGFkYXRhX21vZGUoZGVzYywgREVTQ19NRVRBREFUQV9FTUJFRERFRCk7CisJaWYgKHJldCkKKwkJ cmV0dXJuIEVSUl9QVFIocmV0KTsKKworCWlmICghZGVzYy0+bWV0YWRhdGFfb3BzIHx8ICFkZXNj LT5tZXRhZGF0YV9vcHMtPmdldF9wdHIpCisJCXJldHVybiBFUlJfUFRSKC1FTk9UU1VQUCk7CisK KwlyZXR1cm4gZGVzYy0+bWV0YWRhdGFfb3BzLT5nZXRfcHRyKGRlc2MsIHBheWxvYWRfbGVuLCBt YXhfbGVuKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgZG1hZW5naW5lX2Rlc2Nfc2V0X21ldGFk YXRhX2xlbigKKwkJc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpkZXNjLCBzaXplX3Qg cGF5bG9hZF9sZW4pCit7CisJaW50IHJldDsKKworCWlmICghZGVzYykKKwkJcmV0dXJuIC1FSU5W QUw7CisKKwlyZXQgPSBfZGVzY19jaGVja19hbmRfc2V0X21ldGFkYXRhX21vZGUoZGVzYywgREVT Q19NRVRBREFUQV9FTUJFRERFRCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWlmICgh ZGVzYy0+bWV0YWRhdGFfb3BzIHx8ICFkZXNjLT5tZXRhZGF0YV9vcHMtPnNldF9sZW4pCisJCXJl dHVybiAtRU5PVFNVUFA7CisKKwlyZXR1cm4gZGVzYy0+bWV0YWRhdGFfb3BzLT5zZXRfbGVuKGRl c2MsIHBheWxvYWRfbGVuKTsKK30KKwogLyoqCiAgKiBkbWFlbmdpbmVfdGVybWluYXRlX2FsbCgp IC0gVGVybWluYXRlIGFsbCBhY3RpdmUgRE1BIHRyYW5zZmVycwogICogQGNoYW46IFRoZSBjaGFu bmVsIGZvciB3aGljaCB0byB0ZXJtaW5hdGUgdGhlIHRyYW5zZmVycwo=