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: [v2,2/2] dmaengine: sprd: Add Spreadtrum DMA configuration From: Vinod Koul Message-Id: <20180511112225.GA30118@vkoul-mobl> Date: Fri, 11 May 2018 16:52:25 +0530 To: Baolin Wang Cc: dan.j.williams@intel.com, vinod.koul@intel.com, eric.long@spreadtrum.com, broonie@kernel.org, lars@metafoo.de, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: T24gMDktMDUtMTgsIDE5OjEyLCBCYW9saW4gV2FuZyB3cm90ZToKCj4gKy8qCj4gKyAqIHN0cnVj dCBzcHJkX2RtYV9jb25maWcgLSBETUEgY29uZmlndXJhdGlvbiBzdHJ1Y3R1cmUKPiArICogQGNm ZzogZG1hIHNsYXZlIGNoYW5uZWwgcnVudGltZSBjb25maWcKPiArICogQHNyY19hZGRyOiB0aGUg c291cmNlIHBoeXNpY2FsIGFkZHJlc3MKPiArICogQGRzdF9hZGRyOiB0aGUgZGVzdGluYXRpb24g cGh5c2ljYWwgYWRkcmVzcwo+ICsgKiBAYmxvY2tfbGVuOiBzcGVjaWZ5IG9uZSBibG9jayB0cmFu c2ZlciBsZW5ndGgKPiArICogQHRyYW5zY2F0aW9uX2xlbjogc3BlY2lmeSBvbmUgdHJhbnNjYXRp b24gdHJhbnNmZXIgbGVuZ3RoCj4gKyAqIEBzcmNfc3RlcDogc291cmNlIHRyYW5zZmVyIHN0ZXAK PiArICogQGRzdF9zdGVwOiBkZXN0aW5hdGlvbiB0cmFuc2ZlciBzdGVwCj4gKyAqIEB3cmFwX3B0 cjogd3JhcCBwb2ludGVyIGFkZHJlc3MsIG9uY2UgdGhlIHRyYW5zZmVyIGFkZHJlc3MgcmVhY2hl cyB0aGUKPiArICogJ3dyYXBfcHRyJywgdGhlIG5leHQgdHJhbnNmZXIgYWRkcmVzcyB3aWxsIGp1 bXAgdG8gdGhlICd3cmFwX3RvJyBhZGRyZXNzLgo+ICsgKiBAd3JhcF90bzogd3JhcCBqdW1wIHRv IGFkZHJlc3MKPiArICogQHJlcV9tb2RlOiBzcGVjaWZ5IHRoZSBETUEgcmVxdWVzdCBtb2RlCj4g KyAqIEBpbnRfbW9kZTogc3BlY2lmeSB0aGUgRE1BIGludGVycnVwdCB0eXBlCj4gKyAqLwo+ICtz dHJ1Y3Qgc3ByZF9kbWFfY29uZmlnIHsKPiArCXN0cnVjdCBkbWFfc2xhdmVfY29uZmlnIGNmZzsK PiArCXBoeXNfYWRkcl90IHNyY19hZGRyOwo+ICsJcGh5c19hZGRyX3QgZHN0X2FkZHI7Cgp0aGVz ZSBhcmUgYWxyZWFkeSBpbiBjZmcgc28gd2h5IGR1cGxpY2F0ZSwgc2FtZSBmb3IgZmV3IG1vcmUg aGVyZS4KCj4gK3N0YXRpYyBlbnVtIHNwcmRfZG1hX2RhdGF3aWR0aAo+ICtzcHJkX2RtYV9nZXRf ZGF0YXdpZHRoKGVudW0gZG1hX3NsYXZlX2J1c3dpZHRoIGJ1c3dpZHRoKQo+ICt7Cj4gKwlzd2l0 Y2ggKGJ1c3dpZHRoKSB7Cj4gKwljYXNlIERNQV9TTEFWRV9CVVNXSURUSF8xX0JZVEU6Cj4gKwkJ cmV0dXJuIFNQUkRfRE1BX0RBVEFXSURUSF8xX0JZVEU7Cj4gKwo+ICsJY2FzZSBETUFfU0xBVkVf QlVTV0lEVEhfMl9CWVRFUzoKPiArCQlyZXR1cm4gU1BSRF9ETUFfREFUQVdJRFRIXzJfQllURVM7 Cj4gKwo+ICsJY2FzZSBETUFfU0xBVkVfQlVTV0lEVEhfNF9CWVRFUzoKPiArCQlyZXR1cm4gU1BS RF9ETUFfREFUQVdJRFRIXzRfQllURVM7Cj4gKwo+ICsJY2FzZSBETUFfU0xBVkVfQlVTV0lEVEhf OF9CWVRFUzoKPiArCQlyZXR1cm4gU1BSRF9ETUFfREFUQVdJRFRIXzhfQllURVM7Cj4gKwo+ICsJ ZGVmYXVsdDoKPiArCQlyZXR1cm4gU1BSRF9ETUFfREFUQVdJRFRIXzRfQllURVM7Cgp3aGF0IGlz IHRoZSBsb2dpYyBvZiB0cmFuc2xhdGlvbiBoZXJlLCBzb21ldGltZSB5b3UgbWlnaHQgYmUgYWJs ZSB0byBkbyB0aGF0CndpdGggbG9naWNhbCBvcGVyYXRvcnMsIHNlZSBvdGhlciBkcml2ZXJzLi4K Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB1MzIgc3ByZF9kbWFfZ2V0X3N0ZXAoZW51bSBkbWFf c2xhdmVfYnVzd2lkdGggYnVzd2lkdGgpCj4gK3sKPiArCXN3aXRjaCAoYnVzd2lkdGgpIHsKPiAr CWNhc2UgRE1BX1NMQVZFX0JVU1dJRFRIXzFfQllURToKPiArCQlyZXR1cm4gU1BSRF9ETUFfQllU RV9TVEVQOwo+ICsKPiArCWNhc2UgRE1BX1NMQVZFX0JVU1dJRFRIXzJfQllURVM6Cj4gKwkJcmV0 dXJuIFNQUkRfRE1BX1NIT1JUX1NURVA7Cj4gKwo+ICsJY2FzZSBETUFfU0xBVkVfQlVTV0lEVEhf NF9CWVRFUzoKPiArCQlyZXR1cm4gU1BSRF9ETUFfV09SRF9TVEVQOwo+ICsKPiArCWNhc2UgRE1B X1NMQVZFX0JVU1dJRFRIXzhfQllURVM6Cj4gKwkJcmV0dXJuIFNQUkRfRE1BX0RXT1JEX1NURVA7 Cj4gKwo+ICsJZGVmYXVsdDoKPiArCQlyZXR1cm4gU1BSRF9ETUFfRFdPUkRfU1RFUDsKPiArCX0K CmhlcmUgYXMgd2VsbAoKPiArfQo+ICsKPiArc3RhdGljIGludCBzcHJkX2RtYV9jb25maWcoc3Ry dWN0IGRtYV9jaGFuICpjaGFuLCBzdHJ1Y3Qgc3ByZF9kbWFfZGVzYyAqc2Rlc2MsCj4gKwkJCSAg IHN0cnVjdCBzcHJkX2RtYV9jb25maWcgKnNsYXZlX2NmZykKPiArewo+ICsJc3RydWN0IHNwcmRf ZG1hX2RldiAqc2RldiA9IHRvX3NwcmRfZG1hX2RldihjaGFuKTsKPiArCXN0cnVjdCBzcHJkX2Rt YV9jaG4gKnNjaGFuID0gdG9fc3ByZF9kbWFfY2hhbihjaGFuKTsKPiArCXN0cnVjdCBzcHJkX2Rt YV9jaG5faHcgKmh3ID0gJnNkZXNjLT5jaG5faHc7Cj4gKwl1MzIgZml4X21vZGUgPSAwLCBmaXhf ZW4gPSAwLCB3cmFwX2VuID0gMCwgd3JhcF9tb2RlID0gMDsKPiArCXUzMiBzcmNfZGF0YXdpZHRo LCBkc3RfZGF0YXdpZHRoOwo+ICsKPiArCWlmIChzbGF2ZV9jZmctPmNmZy5zbGF2ZV9pZCkKPiAr CQlzY2hhbi0+ZGV2X2lkID0gc2xhdmVfY2ZnLT5jZmcuc2xhdmVfaWQ7Cj4gKwo+ICsJaHctPmNm ZyA9IFNQUkRfRE1BX0RPTk9UX1dBSVRfQkRPTkUgPDwgU1BSRF9ETUFfV0FJVF9CRE9ORV9PRkZT RVQ7Cj4gKwlody0+d3JhcF9wdHIgPSAodTMyKSgoc2xhdmVfY2ZnLT53cmFwX3B0ciAmIFNQUkRf RE1BX0xPV19BRERSX01BU0spIHwKCndoeSBjYXN0PwoKPiArCQkoKHNsYXZlX2NmZy0+c3JjX2Fk ZHIgPj4gU1BSRF9ETUFfSElHSF9BRERSX09GRlNFVCkgJgo+ICsJCSBTUFJEX0RNQV9ISUdIX0FE RFJfTUFTSykpOwoKbW9yZSByZWFkYWJsZSB3b3VsZCBiZToKCiAgICAgICAgdGVtcCA9IHNsYXZl X2NmZy0+d3JhcF9wdHIgJiBTUFJEX0RNQV9MT1dfQUREUl9NQVNLOwogICAgICAgIHRlbXAgfD0g c2xhdmVfY2ZnLT5zcmNfYWRkciA+PiBTUFJEX0RNQV9ISUdIX0FERFJfT0ZGU0VUOwogICAgICAg IHRlbXAgJj0gU1BSRF9ETUFfSElHSF9BRERSX01BU0s7CgphbmQgdGhlbiBhc3NpZ24uLi4gY291 bGQgaGVscCByZWFkYWJpbGl0eSBpbiBmZXcgcGxhY2VzLi4uCgo+ICsJaHctPndyYXBfdG8gPSAo dTMyKSgoc2xhdmVfY2ZnLT53cmFwX3RvICYgU1BSRF9ETUFfTE9XX0FERFJfTUFTSykgfAo+ICsJ CSgoc2xhdmVfY2ZnLT5kc3RfYWRkciA+PiBTUFJEX0RNQV9ISUdIX0FERFJfT0ZGU0VUKSAmCj4g KwkJIFNQUkRfRE1BX0hJR0hfQUREUl9NQVNLKSk7Cj4gKwo+ICsJaHctPnNyY19hZGRyID0gKHUz Mikoc2xhdmVfY2ZnLT5zcmNfYWRkciAmIFNQUkRfRE1BX0xPV19BRERSX01BU0spOwo+ICsJaHct PmRlc19hZGRyID0gKHUzMikoc2xhdmVfY2ZnLT5kc3RfYWRkciAmIFNQUkRfRE1BX0xPV19BRERS X01BU0spOwo+ICsKPiArCWlmICgoc2xhdmVfY2ZnLT5zcmNfc3RlcCAhPSAwICYmIHNsYXZlX2Nm Zy0+ZHN0X3N0ZXAgIT0gMCkKPiArCSAgICB8fCAoc2xhdmVfY2ZnLT5zcmNfc3RlcCB8IHNsYXZl X2NmZy0+ZHN0X3N0ZXApID09IDApIHsKPiArCQlmaXhfZW4gPSAwOwo+ICsJfSBlbHNlIHsKPiAr CQlmaXhfZW4gPSAxOwo+ICsJCWlmIChzbGF2ZV9jZmctPnNyY19zdGVwKQo+ICsJCQlmaXhfbW9k ZSA9IDE7Cj4gKwkJZWxzZQo+ICsJCQlmaXhfbW9kZSA9IDA7Cj4gKwl9Cj4gKwo+ICsJaWYgKHNs YXZlX2NmZy0+d3JhcF9wdHIgJiYgc2xhdmVfY2ZnLT53cmFwX3RvKSB7Cj4gKwkJd3JhcF9lbiA9 IDE7Cj4gKwkJaWYgKHNsYXZlX2NmZy0+d3JhcF90byA9PSBzbGF2ZV9jZmctPnNyY19hZGRyKSB7 Cj4gKwkJCXdyYXBfbW9kZSA9IDA7Cj4gKwkJfSBlbHNlIGlmIChzbGF2ZV9jZmctPndyYXBfdG8g PT0gc2xhdmVfY2ZnLT5kc3RfYWRkcikgewo+ICsJCQl3cmFwX21vZGUgPSAxOwo+ICsJCX0gZWxz ZSB7Cj4gKwkJCWRldl9lcnIoc2Rldi0+ZG1hX2Rldi5kZXYsICJpbnZhbGlkIHdyYXAgbW9kZVxu Iik7Cj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICsJCX0KPiArCX0KPiArCj4gKwlody0+aW50YyA9 IHNsYXZlX2NmZy0+aW50X21vZGUgfCBTUFJEX0RNQV9DRkdfRVJSX0lOVF9FTjsKPiArCj4gKwlz cmNfZGF0YXdpZHRoID0gc3ByZF9kbWFfZ2V0X2RhdGF3aWR0aChzbGF2ZV9jZmctPmNmZy5zcmNf YWRkcl93aWR0aCk7Cj4gKwlkc3RfZGF0YXdpZHRoID0gc3ByZF9kbWFfZ2V0X2RhdGF3aWR0aChz bGF2ZV9jZmctPmNmZy5kc3RfYWRkcl93aWR0aCk7Cj4gKwlody0+ZnJnX2xlbiA9IHNyY19kYXRh d2lkdGggPDwgU1BSRF9ETUFfU1JDX0RBVEFXSURUSF9PRkZTRVQgfAo+ICsJCWRzdF9kYXRhd2lk dGggPDwgU1BSRF9ETUFfREVTX0RBVEFXSURUSF9PRkZTRVQgfAo+ICsJCXNsYXZlX2NmZy0+cmVx X21vZGUgPDwgU1BSRF9ETUFfUkVRX01PREVfT0ZGU0VUIHwKPiArCQl3cmFwX21vZGUgPDwgU1BS RF9ETUFfV1JBUF9TRUxfT0ZGU0VUIHwKPiArCQl3cmFwX2VuIDw8IFNQUkRfRE1BX1dSQVBfRU5f T0ZGU0VUIHwKPiArCQlmaXhfbW9kZSA8PCBTUFJEX0RNQV9GSVhfU0VMX09GRlNFVCB8Cj4gKwkJ Zml4X2VuIDw8IFNQUkRfRE1BX0ZJWF9FTl9PRkZTRVQgfAo+ICsJCShzbGF2ZV9jZmctPmNmZy5z cmNfbWF4YnVyc3QgJiBTUFJEX0RNQV9GUkdfTEVOX01BU0spOwoKc29ycnkgdGhpcyBpcyBub3Qg YXQgYWxsIHJlYWRhYmxlLi4uCgo+ICtzdGF0aWMgc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlw dG9yICoKPiArc3ByZF9kbWFfcHJlcF9zbGF2ZV9zZyhzdHJ1Y3QgZG1hX2NoYW4gKmNoYW4sIHN0 cnVjdCBzY2F0dGVybGlzdCAqc2dsLAo+ICsJCSAgICAgICB1bnNpZ25lZCBpbnQgc2dsZW4sIGVu dW0gZG1hX3RyYW5zZmVyX2RpcmVjdGlvbiBkaXIsCj4gKwkJICAgICAgIHVuc2lnbmVkIGxvbmcg ZmxhZ3MsIHZvaWQgKmNvbnRleHQpCj4gK3sKPiArCXN0cnVjdCBzcHJkX2RtYV9jaG4gKnNjaGFu ID0gdG9fc3ByZF9kbWFfY2hhbihjaGFuKTsKPiArCXN0cnVjdCBzcHJkX2RtYV9jb25maWcgKnNs YXZlX2NmZyA9ICZzY2hhbi0+c2xhdmVfY2ZnOwo+ICsJc3RydWN0IHNwcmRfZG1hX2Rlc2MgKnNk ZXNjOwo+ICsJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKPiArCWludCByZXQsIGk7Cj4gKwo+ICsJ LyogVE9ETzogbm93IHdlIG9ubHkgc3VwcG9ydCBvbmUgc2cgZm9yIGVhY2ggRE1BIGNvbmZpZ3Vy YXRpb24uICovCgp0aGF0cyBhIFNXIGxpbWl0IHJpZ2h0IGFuZCB5b3Ugd2lsbCBmaXggaXQgbGF0 ZXI/Cgo+ICsJaWYgKCFpc19zbGF2ZV9kaXJlY3Rpb24oZGlyKSB8fCBzZ2xlbiA+IDEpCj4gKwkJ cmV0dXJuIE5VTEw7Cj4gKwo+ICsJc2Rlc2MgPSBremFsbG9jKHNpemVvZigqc2Rlc2MpLCBHRlBf Tk9XQUlUKTsKPiArCWlmICghc2Rlc2MpCj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJZm9yX2Vh Y2hfc2coc2dsLCBzZywgc2dsZW4sIGkpIHsKPiArCQlpZiAoZGlyID09IERNQV9NRU1fVE9fREVW KSB7Cj4gKwkJCXNsYXZlX2NmZy0+c3JjX2FkZHIgPSBzZ19kbWFfYWRkcmVzcyhzZyk7Cj4gKwkJ CXNsYXZlX2NmZy0+ZHN0X2FkZHIgPSBzbGF2ZV9jZmctPmNmZy5kc3RfYWRkcjsKPiArCQkJc2xh dmVfY2ZnLT5zcmNfc3RlcCA9Cj4gKwkJCXNwcmRfZG1hX2dldF9zdGVwKHNsYXZlX2NmZy0+Y2Zn LnNyY19hZGRyX3dpZHRoKTsKPiArCQkJc2xhdmVfY2ZnLT5kc3Rfc3RlcCA9IFNQUkRfRE1BX05P TkVfU1RFUDsKPiArCQl9IGVsc2Ugewo+ICsJCQlzbGF2ZV9jZmctPnNyY19hZGRyID0gc2xhdmVf Y2ZnLT5jZmcuc3JjX2FkZHI7Cj4gKwkJCXNsYXZlX2NmZy0+ZHN0X2FkZHIgPSBzZ19kbWFfYWRk cmVzcyhzZyk7Cj4gKwkJCXNsYXZlX2NmZy0+c3JjX3N0ZXAgPSBTUFJEX0RNQV9OT05FX1NURVA7 Cj4gKwkJCXNsYXZlX2NmZy0+ZHN0X3N0ZXAgPQo+ICsJCQlzcHJkX2RtYV9nZXRfc3RlcChzbGF2 ZV9jZmctPmNmZy5kc3RfYWRkcl93aWR0aCk7Cgp1c2UgYSBoZWxwZXIgZm9yIGZpbGxpbmcgdGhp cyBhbmQgcGFzc2luZyByaWdodCB2YWx1ZXMgZm9yIGVhY2ggY2FzZT8K