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: [v6,3/7] dmaengine: fsl-qdma: Add qDMA controller driver for Layerscape SoCs From: Vinod Koul Message-Id: <20180628051642.GK22377@vkoul-mobl> Date: Thu, 28 Jun 2018 10:46:42 +0530 To: Wen He Cc: dmaengine@vger.kernel.org, robh+dt@kernel.org, devicetree@vger.kernel.org, leoyang.li@nxp.com, jiafei.pan@nxp.com, jiaheng.fan@nxp.com List-ID: T24gMTUtMDYtMTgsIDE4OjIyLCBXZW4gSGUgd3JvdGU6Cgo+ICtzdGF0aWMgc3RydWN0IGZzbF9x ZG1hX2NvbXAgKmZzbF9xZG1hX3JlcXVlc3RfZW5xdWV1ZV9kZXNjKAo+ICsJCQkJCXN0cnVjdCBm c2xfcWRtYV9jaGFuICpmc2xfY2hhbiwKPiArCQkJCQl1bnNpZ25lZCBpbnQgZHN0X25lbnRzLAo+ ICsJCQkJCXVuc2lnbmVkIGludCBzcmNfbmVudHMpCj4gK3sKPiArCXN0cnVjdCBmc2xfcWRtYV9j b21wICpjb21wX3RlbXA7Cj4gKwlzdHJ1Y3QgZnNsX3FkbWFfcXVldWUgKnF1ZXVlID0gZnNsX2No YW4tPnF1ZXVlOwo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsKPiArCj4gKwlzcGluX2xvY2tfaXJx c2F2ZSgmcXVldWUtPnF1ZXVlX2xvY2ssIGZsYWdzKTsKPiArCWlmIChsaXN0X2VtcHR5KCZxdWV1 ZS0+Y29tcF9mcmVlKSkgewo+ICsJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnF1ZXVlLT5xdWV1 ZV9sb2NrLCBmbGFncyk7Cj4gKwkJY29tcF90ZW1wID0ga3phbGxvYyhzaXplb2YoKmNvbXBfdGVt cCksIEdGUF9LRVJORUwpOwoKdGhpcyBpcyBpbnZva2VkIGZyb20gZnNsX3FkbWFfcHJlcF9tZW1j cHksIHNvIG5lZWRzIHRvIGJlIEdGUF9OT1dBSVQKZmxhZwoKPiArCQlpZiAoIWNvbXBfdGVtcCkK PiArCQkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJCWNvbXBfdGVtcC0+dmlydF9hZGRyID0gZG1hX3Bv b2xfYWxsb2MocXVldWUtPmNvbXBfcG9vbCwKPiArCQkJCQkJICAgICAgR0ZQX0tFUk5FTCwKCmhl cmUgYXMgd2VsbAoKPiArc3RhdGljIHN0cnVjdCBmc2xfcWRtYV9xdWV1ZSAqZnNsX3FkbWFfYWxs b2NfcXVldWVfcmVzb3VyY2VzKAo+ICsJCQkJCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYs Cj4gKwkJCQkJdW5zaWduZWQgaW50IHF1ZXVlX251bSkKPiArewo+ICsJc3RydWN0IGZzbF9xZG1h X3F1ZXVlICpxdWV1ZV9oZWFkLCAqcXVldWVfdGVtcDsKPiArCWludCByZXQsIGxlbiwgaTsKPiAr CXVuc2lnbmVkIGludCBxdWV1ZV9zaXplW0ZTTF9RRE1BX1FVRVVFX01BWF07Cj4gKwo+ICsJaWYg KHF1ZXVlX251bSA+IEZTTF9RRE1BX1FVRVVFX01BWCkKPiArCQlxdWV1ZV9udW0gPSBGU0xfUURN QV9RVUVVRV9NQVg7Cj4gKwlsZW4gPSBzaXplb2YoKnF1ZXVlX2hlYWQpICogcXVldWVfbnVtOwo+ ICsJcXVldWVfaGVhZCA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBsZW4sIEdGUF9LRVJORUwp OwoKd2UgaGF2ZSBrY2FsbG9jIHZhcmlhbnQgZm9yIHRoaXMKCj4gKwlpZiAoIXF1ZXVlX2hlYWQp Cj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJcmV0ID0gZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMy X2FycmF5KCZwZGV2LT5kZXYsICJxdWV1ZS1zaXplcyIsCj4gKwkJCQkJcXVldWVfc2l6ZSwgcXVl dWVfbnVtKTsKPiArCWlmIChyZXQpIHsKPiArCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJDYW4ndCBn ZXQgcXVldWUtc2l6ZXMuXG4iKTsKPiArCQlyZXR1cm4gTlVMTDsKPiArCX0KPiArCj4gKwlmb3Ig KGkgPSAwOyBpIDwgcXVldWVfbnVtOyBpKyspIHsKPiArCQlpZiAocXVldWVfc2l6ZVtpXSA+IEZT TF9RRE1BX0NJUkNVTEFSX0RFU0NfU0laRV9NQVggfHwKPiArCQkJICAgIHF1ZXVlX3NpemVbaV0g PCBGU0xfUURNQV9DSVJDVUxBUl9ERVNDX1NJWkVfTUlOKSB7Cj4gKwkJCWRldl9lcnIoJnBkZXYt PmRldiwgIkdldCB3cm9uZyBxdWV1ZS1zaXplcy5cbiIpOwo+ICsJCQlyZXR1cm4gTlVMTDsKPiAr CQl9Cj4gKwkJcXVldWVfdGVtcCA9IHF1ZXVlX2hlYWQgKyBpOwo+ICsJCXF1ZXVlX3RlbXAtPmNx ID0gZG1hX2FsbG9jX2NvaGVyZW50KCZwZGV2LT5kZXYsCj4gKwkJCQkJCXNpemVvZihzdHJ1Y3Qg ZnNsX3FkbWFfZm9ybWF0KSAqCj4gKwkJCQkJCXF1ZXVlX3NpemVbaV0sCj4gKwkJCQkJCSZxdWV1 ZV90ZW1wLT5idXNfYWRkciwKPiArCQkJCQkJR0ZQX0tFUk5FTCk7Cj4gKwkJaWYgKCFxdWV1ZV90 ZW1wLT5jcSkgewo+ICsJCQlkZXZtX2tmcmVlKCZwZGV2LT5kZXYsIHF1ZXVlX2hlYWQpOwoKYW55 IHJlYXNvbiB0aGlzIGlzIGZyZWVkIGV4cGxpY2l0bHkKCj4gK3N0YXRpYyBpbnQgZnNsX3FkbWFf aGFsdChzdHJ1Y3QgZnNsX3FkbWFfZW5naW5lICpmc2xfcWRtYSkKPiArewo+ICsJdm9pZCBfX2lv bWVtICpjdHJsID0gZnNsX3FkbWEtPmN0cmxfYmFzZTsKPiArCXZvaWQgX19pb21lbSAqYmxvY2sg PSBmc2xfcWRtYS0+YmxvY2tfYmFzZTsKPiArCWludCBpLCBjb3VudCA9IDU7Cgp3aHkgNQoKPiAr c3RhdGljIGludCBmc2xfcWRtYV9xdWV1ZV90cmFuc2Zlcl9jb21wbGV0ZShzdHJ1Y3QgZnNsX3Fk bWFfZW5naW5lICpmc2xfcWRtYSkKPiArewo+ICsJc3RydWN0IGZzbF9xZG1hX3F1ZXVlICpmc2xf cXVldWUgPSBmc2xfcWRtYS0+cXVldWU7Cj4gKwlzdHJ1Y3QgZnNsX3FkbWFfcXVldWUgKmZzbF9z dGF0dXMgPSBmc2xfcWRtYS0+c3RhdHVzOwo+ICsJc3RydWN0IGZzbF9xZG1hX3F1ZXVlICp0ZW1w X3F1ZXVlOwo+ICsJc3RydWN0IGZzbF9xZG1hX2NvbXAgKmZzbF9jb21wOwo+ICsJc3RydWN0IGZz bF9xZG1hX2Zvcm1hdCAqc3RhdHVzX2FkZHI7Cj4gKwlzdHJ1Y3QgZnNsX3FkbWFfZm9ybWF0ICpj c2dmX3NyYzsKPiArCXN0cnVjdCBmc2xfcHJlX3N0YXR1cyBwcmU7Cj4gKwl2b2lkIF9faW9tZW0g KmJsb2NrID0gZnNsX3FkbWEtPmJsb2NrX2Jhc2U7Cj4gKwl1MzIgcmVnLCBpOwo+ICsJYm9vbCBk dXBsaWNhdGUsIGR1cGxpY2F0ZV9oYW5kbGU7Cj4gKwo+ICsJbWVtc2V0KCZwcmUsIDAsIHNpemVv ZihzdHJ1Y3QgZnNsX3ByZV9zdGF0dXMpKTsKPiArCj4gKwl3aGlsZSAoMSkgewoKdGhpcyBsb29w IGNhbiBwb3RlbnRpYWxseSByZWFkIGJhZCBkYXRhIGZyb20gSFcgYW5kIGtlZXAgc3BpbmluZwpm b3JldmVyLiBHb29kIHByYWN0aWNlIHdvdWxkIGJlIHRvIGFkZCBzYWZlZ3VhcmRzIGFuZCBsb29w ICdOJyB0aW1lcwp3aGljaCB5b3UgZGVlbSBpcyBsYXJnZSBlbm91Z2ggdG8gcHJvY2VzcyAKCj4g KwkJZHVwbGljYXRlID0gMDsKPiArCQlkdXBsaWNhdGVfaGFuZGxlID0gMDsKCmVtcHR5IGxpbmUg aGVyZQoKPiArCQlyZWcgPSBxZG1hX3JlYWRsKGZzbF9xZG1hLCBibG9jayArIEZTTF9RRE1BX0JT UVNSKTsKPiArCQlpZiAocmVnICYgRlNMX1FETUFfQlNRU1JfUUUpCj4gKwkJCXJldHVybiAwOwoK aGVyZS4uCgo+ICsJCXN0YXR1c19hZGRyID0gZnNsX3N0YXR1cy0+dmlydF9oZWFkOwo+ICsJCWlm IChxZG1hX2NjZGZfZ2V0X3F1ZXVlKHN0YXR1c19hZGRyKSA9PSBwcmUucXVldWUgJiYKPiArCQkJ cWRtYV9jY2RmX2FkZHJfZ2V0NjQoc3RhdHVzX2FkZHIpID09IHByZS5hZGRyKQo+ICsJCQlkdXBs aWNhdGUgPSAxOwoKaGVyZSAoYmFzaWNhbGx5IGFmdGVyIGVhY2ggbG9naWNhbCBibG9jayB0byBo ZWxwIHJlYWQpCgo+ICsJCWkgPSBxZG1hX2NjZGZfZ2V0X3F1ZXVlKHN0YXR1c19hZGRyKTsKPiAr CQlwcmUucXVldWUgPSBxZG1hX2NjZGZfZ2V0X3F1ZXVlKHN0YXR1c19hZGRyKTsKPiArCQlwcmUu YWRkciA9IHFkbWFfY2NkZl9hZGRyX2dldDY0KHN0YXR1c19hZGRyKTsKPiArCQl0ZW1wX3F1ZXVl ID0gZnNsX3F1ZXVlICsgaTsKPiArCQlzcGluX2xvY2soJnRlbXBfcXVldWUtPnF1ZXVlX2xvY2sp Owo+ICsJCWlmIChsaXN0X2VtcHR5KCZ0ZW1wX3F1ZXVlLT5jb21wX3VzZWQpKSB7Cj4gKwkJCWlm IChkdXBsaWNhdGUpIHsKPiArCQkJCWR1cGxpY2F0ZV9oYW5kbGUgPSAxOwoKd2h5IGRvIHRoaXMs IHlvdSBjYW4gcmVtb3ZlIGR1cGxpY2F0ZV9oYW5kbGUgYW5kIHVzZSBkdXBsaWNhdGUgYmVsb3c/ Cg==