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: [v3,2/3] dmaengine: imx-sdma: add memcpy interface From: Robin Gong Message-Id: <1532367972-29707-3-git-send-email-yibin.gong@nxp.com> Date: Tue, 24 Jul 2018 01:46:11 +0800 To: vkoul@kernel.org, dan.j.williams@intel.com, s.hauer@pengutronix.de, linux@armlinux.org.uk Cc: linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-imx@nxp.com List-ID: QWRkIE1FTUNQWSBjYXBhYmlsaXR5IGZvciBpbXgtc2RtYSBkcml2ZXIuCgpTaWduZWQtb2ZmLWJ5 OiBSb2JpbiBHb25nIDx5aWJpbi5nb25nQG54cC5jb20+Ci0tLQogZHJpdmVycy9kbWEvaW14LXNk bWEuYyB8IDkzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9pbXgtc2RtYS5jIGIvZHJpdmVycy9kbWEvaW14LXNkbWEu YwppbmRleCBlM2Q1ZTczLi5iNGVjMmQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS9pbXgtc2Rt YS5jCisrKyBiL2RyaXZlcnMvZG1hL2lteC1zZG1hLmMKQEAgLTM0Miw2ICszNDIsNyBAQCBzdHJ1 Y3Qgc2RtYV9kZXNjIHsKICAqIEBwY19mcm9tX2RldmljZToJc2NyaXB0IGFkZHJlc3MgZm9yIHRo b3NlIGRldmljZV8yX21lbW9yeQogICogQHBjX3RvX2RldmljZToJc2NyaXB0IGFkZHJlc3MgZm9y IHRob3NlIG1lbW9yeV8yX2RldmljZQogICogQGRldmljZV90b19kZXZpY2U6CXNjcmlwdCBhZGRy ZXNzIGZvciB0aG9zZSBkZXZpY2VfMl9kZXZpY2UKKyAqIEBwY190b19wYzoJCXNjcmlwdCBhZGRy ZXNzIGZvciB0aG9zZSBtZW1vcnlfMl9tZW1vcnkKICAqIEBmbGFnczoJCWxvb3AgbW9kZSBvciBu b3QKICAqIEBwZXJfYWRkcmVzczoJcGVyaXBoZXJhbCBzb3VyY2Ugb3IgZGVzdGluYXRpb24gYWRk cmVzcyBpbiBjb21tb24gY2FzZQogICogICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24g YWRkcmVzcyBpbiBwXzJfcCBjYXNlCkBAIC0zNjcsNiArMzY4LDcgQEAgc3RydWN0IHNkbWFfY2hh bm5lbCB7CiAJZW51bSBkbWFfc2xhdmVfYnVzd2lkdGgJCXdvcmRfc2l6ZTsKIAl1bnNpZ25lZCBp bnQJCQlwY19mcm9tX2RldmljZSwgcGNfdG9fZGV2aWNlOwogCXVuc2lnbmVkIGludAkJCWRldmlj ZV90b19kZXZpY2U7CisJdW5zaWduZWQgaW50ICAgICAgICAgICAgICAgICAgICBwY190b19wYzsK IAl1bnNpZ25lZCBsb25nCQkJZmxhZ3M7CiAJZG1hX2FkZHJfdAkJCXBlcl9hZGRyZXNzLCBwZXJf YWRkcmVzczI7CiAJdW5zaWduZWQgbG9uZwkJCWV2ZW50X21hc2tbMl07CkBAIC04NjksMTQgKzg3 MSwxNiBAQCBzdGF0aWMgdm9pZCBzZG1hX2dldF9wYyhzdHJ1Y3Qgc2RtYV9jaGFubmVsICpzZG1h YywKIAkgKiBUaGVzZSBhcmUgbmVlZGVkIG9uY2Ugd2Ugc3RhcnQgdG8gc3VwcG9ydCB0cmFuc2Zl cnMgYmV0d2VlbgogCSAqIHR3byBwZXJpcGhlcmFscyBvciBtZW1vcnktdG8tbWVtb3J5IHRyYW5z ZmVycwogCSAqLwotCWludCBwZXJfMl9wZXIgPSAwOworCWludCBwZXJfMl9wZXIgPSAwLCBlbWlf Ml9lbWkgPSAwOwogCiAJc2RtYWMtPnBjX2Zyb21fZGV2aWNlID0gMDsKIAlzZG1hYy0+cGNfdG9f ZGV2aWNlID0gMDsKIAlzZG1hYy0+ZGV2aWNlX3RvX2RldmljZSA9IDA7CisJc2RtYWMtPnBjX3Rv X3BjID0gMDsKIAogCXN3aXRjaCAocGVyaXBoZXJhbF90eXBlKSB7CiAJY2FzZSBJTVhfRE1BVFlQ RV9NRU1PUlk6CisJCWVtaV8yX2VtaSA9IHNkbWEtPnNjcmlwdF9hZGRycy0+YXBfMl9hcF9hZGRy OwogCQlicmVhazsKIAljYXNlIElNWF9ETUFUWVBFX0RTUDoKIAkJZW1pXzJfcGVyID0gc2RtYS0+ c2NyaXB0X2FkZHJzLT5icF8yX2FwX2FkZHI7CkBAIC05NDksNiArOTUzLDcgQEAgc3RhdGljIHZv aWQgc2RtYV9nZXRfcGMoc3RydWN0IHNkbWFfY2hhbm5lbCAqc2RtYWMsCiAJc2RtYWMtPnBjX2Zy b21fZGV2aWNlID0gcGVyXzJfZW1pOwogCXNkbWFjLT5wY190b19kZXZpY2UgPSBlbWlfMl9wZXI7 CiAJc2RtYWMtPmRldmljZV90b19kZXZpY2UgPSBwZXJfMl9wZXI7CisJc2RtYWMtPnBjX3RvX3Bj ID0gZW1pXzJfZW1pOwogfQogCiBzdGF0aWMgaW50IHNkbWFfbG9hZF9jb250ZXh0KHN0cnVjdCBz ZG1hX2NoYW5uZWwgKnNkbWFjKQpAQCAtOTY1LDYgKzk3MCw4IEBAIHN0YXRpYyBpbnQgc2RtYV9s b2FkX2NvbnRleHQoc3RydWN0IHNkbWFfY2hhbm5lbCAqc2RtYWMpCiAJCWxvYWRfYWRkcmVzcyA9 IHNkbWFjLT5wY19mcm9tX2RldmljZTsKIAllbHNlIGlmIChzZG1hYy0+ZGlyZWN0aW9uID09IERN QV9ERVZfVE9fREVWKQogCQlsb2FkX2FkZHJlc3MgPSBzZG1hYy0+ZGV2aWNlX3RvX2RldmljZTsK KwllbHNlIGlmIChzZG1hYy0+ZGlyZWN0aW9uID09IERNQV9NRU1fVE9fTUVNKQorCQlsb2FkX2Fk ZHJlc3MgPSBzZG1hYy0+cGNfdG9fcGM7CiAJZWxzZQogCQlsb2FkX2FkZHJlc3MgPSBzZG1hYy0+ cGNfdG9fZGV2aWNlOwogCkBAIC0xMjE0LDEwICsxMjIxLDI4IEBAIHN0YXRpYyBpbnQgc2RtYV9h bGxvY19jaGFuX3Jlc291cmNlcyhzdHJ1Y3QgZG1hX2NoYW4gKmNoYW4pCiB7CiAJc3RydWN0IHNk bWFfY2hhbm5lbCAqc2RtYWMgPSB0b19zZG1hX2NoYW4oY2hhbik7CiAJc3RydWN0IGlteF9kbWFf ZGF0YSAqZGF0YSA9IGNoYW4tPnByaXZhdGU7CisJc3RydWN0IGlteF9kbWFfZGF0YSBtZW1fZGF0 YTsKIAlpbnQgcHJpbywgcmV0OwogCi0JaWYgKCFkYXRhKQotCQlyZXR1cm4gLUVJTlZBTDsKKwkv KgorCSAqIE1FTUNQWSBtYXkgbmV2ZXIgc2V0dXAgY2hhbi0+cHJpdmF0ZSBieSBmaWx0ZXIgZnVu Y3Rpb24gc3VjaCBhcworCSAqIGRtYXRlc3QsIHRodXMgY3JlYXRlICdzdHJ1Y3QgaW14X2RtYV9k YXRhIG1lbV9kYXRhJyBmb3IgdGhpcyBjYXNlLgorCSAqIFBsZWFzZSBub3RlIGluIGFueSBvdGhl ciBzbGF2ZSBjYXNlLCB5b3UgaGF2ZSB0byBzZXR1cCBjaGFuLT5wcml2YXRlCisJICogd2l0aCAn c3RydWN0IGlteF9kbWFfZGF0YScgaW4geW91ciBvd24gZmlsdGVyIGZ1bmN0aW9uIGlmIHlvdSB3 YW50IHRvCisJICogcmVxdWVzdCBkbWEgY2hhbm5lbCBieSBkbWFfcmVxdWVzdF9jaGFubmVsKCkg cmF0aGVyIHRoYW4KKwkgKiBkbWFfcmVxdWVzdF9zbGF2ZV9jaGFubmVsKCkuIE90aHdpc2UsICdN RU1DUFkgaW4gY2FzZT8nIHdpbGwgYXBwZWFyCisJICogdG8gd2FybiB5b3UgdG8gY29ycmVjdCB5 b3VyIGZpbHRlciBmdW5jdGlvbi4KKwkgKi8KKwlpZiAoIWRhdGEpIHsKKwkJZGV2X2RiZyhzZG1h Yy0+c2RtYS0+ZGV2LCAiTUVNQ1BZIGluIGNhc2U/XG4iKTsKKwkJbWVtX2RhdGEucHJpb3JpdHkg PSAyOworCQltZW1fZGF0YS5wZXJpcGhlcmFsX3R5cGUgPSBJTVhfRE1BVFlQRV9NRU1PUlk7CisJ CW1lbV9kYXRhLmRtYV9yZXF1ZXN0ID0gMDsKKwkJbWVtX2RhdGEuZG1hX3JlcXVlc3QyID0gMDsK KwkJZGF0YSA9ICZtZW1fZGF0YTsKKworCQlzZG1hX2dldF9wYyhzZG1hYywgSU1YX0RNQVRZUEVf TUVNT1JZKTsKKwl9CiAKIAlzd2l0Y2ggKGRhdGEtPnByaW9yaXR5KSB7CiAJY2FzZSBETUFfUFJJ T19ISUdIOgpAQCAtMTMwNyw2ICsxMzMyLDEwIEBAIHN0YXRpYyBzdHJ1Y3Qgc2RtYV9kZXNjICpz ZG1hX3RyYW5zZmVyX2luaXQoc3RydWN0IHNkbWFfY2hhbm5lbCAqc2RtYWMsCiAJaWYgKHNkbWFf YWxsb2NfYmQoZGVzYykpCiAJCWdvdG8gZXJyX2Rlc2Nfb3V0OwogCisJLyogTm8gc2xhdmVfY29u ZmlnIGNhbGxlZCBpbiBNRU1DUFkgY2FzZSwgc28gZG8gaGVyZSAqLworCWlmIChkaXJlY3Rpb24g PT0gRE1BX01FTV9UT19NRU0pCisJCXNkbWFfY29uZmlnX293bmVyc2hpcChzZG1hYywgZmFsc2Us IHRydWUsIGZhbHNlKTsKKwogCWlmIChzZG1hX2xvYWRfY29udGV4dChzZG1hYykpCiAJCWdvdG8g ZXJyX2Rlc2Nfb3V0OwogCkBAIC0xMzE4LDYgKzEzNDcsNjIgQEAgc3RhdGljIHN0cnVjdCBzZG1h X2Rlc2MgKnNkbWFfdHJhbnNmZXJfaW5pdChzdHJ1Y3Qgc2RtYV9jaGFubmVsICpzZG1hYywKIAly ZXR1cm4gTlVMTDsKIH0KIAorc3RhdGljIHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAq c2RtYV9wcmVwX21lbWNweSgKKwkJc3RydWN0IGRtYV9jaGFuICpjaGFuLCBkbWFfYWRkcl90IGRt YV9kc3QsCisJCWRtYV9hZGRyX3QgZG1hX3NyYywgc2l6ZV90IGxlbiwgdW5zaWduZWQgbG9uZyBm bGFncykKK3sKKwlzdHJ1Y3Qgc2RtYV9jaGFubmVsICpzZG1hYyA9IHRvX3NkbWFfY2hhbihjaGFu KTsKKwlzdHJ1Y3Qgc2RtYV9lbmdpbmUgKnNkbWEgPSBzZG1hYy0+c2RtYTsKKwlpbnQgY2hhbm5l bCA9IHNkbWFjLT5jaGFubmVsOworCXNpemVfdCBjb3VudDsKKwlpbnQgaSA9IDAsIHBhcmFtOwor CXN0cnVjdCBzZG1hX2J1ZmZlcl9kZXNjcmlwdG9yICpiZDsKKwlzdHJ1Y3Qgc2RtYV9kZXNjICpk ZXNjOworCisJaWYgKCFjaGFuIHx8ICFsZW4pCisJCXJldHVybiBOVUxMOworCisJZGV2X2RiZyhz ZG1hLT5kZXYsICJtZW1jcHk6ICVwYWQtPiVwYWQsIGxlbj0lenUsIGNoYW5uZWw9JWQuXG4iLAor CQkmZG1hX3NyYywgJmRtYV9kc3QsIGxlbiwgY2hhbm5lbCk7CisKKwlkZXNjID0gc2RtYV90cmFu c2Zlcl9pbml0KHNkbWFjLCBETUFfTUVNX1RPX01FTSwKKwkJCQkJbGVuIC8gU0RNQV9CRF9NQVhf Q05UICsgMSk7CisJaWYgKCFkZXNjKQorCQlyZXR1cm4gTlVMTDsKKworCWRvIHsKKwkJY291bnQg PSBtaW5fdChzaXplX3QsIGxlbiwgU0RNQV9CRF9NQVhfQ05UKTsKKwkJYmQgPSAmZGVzYy0+YmRb aV07CisJCWJkLT5idWZmZXJfYWRkciA9IGRtYV9zcmM7CisJCWJkLT5leHRfYnVmZmVyX2FkZHIg PSBkbWFfZHN0OworCQliZC0+bW9kZS5jb3VudCA9IGNvdW50OworCQlkZXNjLT5jaG5fY291bnQg Kz0gY291bnQ7CisJCWJkLT5tb2RlLmNvbW1hbmQgPSAwOworCisJCWRtYV9zcmMgKz0gY291bnQ7 CisJCWRtYV9kc3QgKz0gY291bnQ7CisJCWxlbiAtPSBjb3VudDsKKwkJaSsrOworCisJCXBhcmFt ID0gQkRfRE9ORSB8IEJEX0VYVEQgfCBCRF9DT05UOworCQkvKiBsYXN0IGJkICovCisJCWlmICgh bGVuKSB7CisJCQlwYXJhbSB8PSBCRF9JTlRSOworCQkJcGFyYW0gfD0gQkRfTEFTVDsKKwkJCXBh cmFtICY9IH5CRF9DT05UOworCQl9CisKKwkJZGV2X2RiZyhzZG1hLT5kZXYsICJlbnRyeSAlZDog Y291bnQ6ICV6ZCBkbWE6IDB4JXggJXMlc1xuIiwKKwkJCQlpLCBjb3VudCwgYmQtPmJ1ZmZlcl9h ZGRyLAorCQkJCXBhcmFtICYgQkRfV1JBUCA/ICJ3cmFwIiA6ICIiLAorCQkJCXBhcmFtICYgQkRf SU5UUiA/ICIgaW50ciIgOiAiIik7CisKKwkJYmQtPm1vZGUuc3RhdHVzID0gcGFyYW07CisJfSB3 aGlsZSAobGVuKTsKKworCXJldHVybiB2Y2hhbl90eF9wcmVwKCZzZG1hYy0+dmMsICZkZXNjLT52 ZCwgZmxhZ3MpOworfQorCiBzdGF0aWMgc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpz ZG1hX3ByZXBfc2xhdmVfc2coCiAJCXN0cnVjdCBkbWFfY2hhbiAqY2hhbiwgc3RydWN0IHNjYXR0 ZXJsaXN0ICpzZ2wsCiAJCXVuc2lnbmVkIGludCBzZ19sZW4sIGVudW0gZG1hX3RyYW5zZmVyX2Rp cmVjdGlvbiBkaXJlY3Rpb24sCkBAIC0xOTAzLDYgKzE5ODgsNyBAQCBzdGF0aWMgaW50IHNkbWFf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCWRtYV9jYXBfc2V0KERNQV9T TEFWRSwgc2RtYS0+ZG1hX2RldmljZS5jYXBfbWFzayk7CiAJZG1hX2NhcF9zZXQoRE1BX0NZQ0xJ Qywgc2RtYS0+ZG1hX2RldmljZS5jYXBfbWFzayk7CisJZG1hX2NhcF9zZXQoRE1BX01FTUNQWSwg c2RtYS0+ZG1hX2RldmljZS5jYXBfbWFzayk7CiAKIAlJTklUX0xJU1RfSEVBRCgmc2RtYS0+ZG1h X2RldmljZS5jaGFubmVscyk7CiAJLyogSW5pdGlhbGl6ZSBjaGFubmVsIHBhcmFtZXRlcnMgKi8K QEAgLTE5NjksNiArMjA1NSw3IEBAIHN0YXRpYyBpbnQgc2RtYV9wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQogCXNkbWEtPmRtYV9kZXZpY2UuZHN0X2FkZHJfd2lkdGhzID0gU0RN QV9ETUFfQlVTV0lEVEhTOwogCXNkbWEtPmRtYV9kZXZpY2UuZGlyZWN0aW9ucyA9IFNETUFfRE1B X0RJUkVDVElPTlM7CiAJc2RtYS0+ZG1hX2RldmljZS5yZXNpZHVlX2dyYW51bGFyaXR5ID0gRE1B X1JFU0lEVUVfR1JBTlVMQVJJVFlfU0VHTUVOVDsKKwlzZG1hLT5kbWFfZGV2aWNlLmRldmljZV9w cmVwX2RtYV9tZW1jcHkgPSBzZG1hX3ByZXBfbWVtY3B5OwogCXNkbWEtPmRtYV9kZXZpY2UuZGV2 aWNlX2lzc3VlX3BlbmRpbmcgPSBzZG1hX2lzc3VlX3BlbmRpbmc7CiAJc2RtYS0+ZG1hX2Rldmlj ZS5kZXYtPmRtYV9wYXJtcyA9ICZzZG1hLT5kbWFfcGFybXM7CiAJZG1hX3NldF9tYXhfc2VnX3Np emUoc2RtYS0+ZG1hX2RldmljZS5kZXYsIFNETUFfQkRfTUFYX0NOVCk7Cg==