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: uniphier-mdmac: add UniPhier MIO DMAC driver From: Vinod Koul Message-Id: <20180911070003.GI2634@vkoul-mobl> Date: Tue, 11 Sep 2018 12:30:03 +0530 To: Masahiro Yamada Cc: dmaengine@vger.kernel.org, devicetree@vger.kernel.org, Rob Herring , linux-kernel@vger.kernel.org, Masami Hiramatsu , Jassi Brar , Dan Williams , linux-arm-kernel@lists.infradead.org List-ID: T24gMjQtMDgtMTgsIDEwOjQxLCBNYXNhaGlybyBZYW1hZGEgd3JvdGU6Cgo+ICsvKiBtYy0+dmMu bG9jayBtdXN0IGJlIGhlbGQgYnkgY2FsbGVyICovCj4gK3N0YXRpYyB1MzIgX191bmlwaGllcl9t ZG1hY19nZXRfcmVzaWR1ZShzdHJ1Y3QgdW5pcGhpZXJfbWRtYWNfZGVzYyAqbWQpCj4gK3sKPiAr CXUzMiByZXNpZHVlID0gMDsKPiArCWludCBpOwo+ICsKPiArCWZvciAoaSA9IG1kLT5zZ19jdXI7 IGkgPCBtZC0+c2dfbGVuOyBpKyspCj4gKwkJcmVzaWR1ZSArPSBzZ19kbWFfbGVuKCZtZC0+c2ds W2ldKTsKCnNvIGlmIHRoZSBkZXNjcmlwdG9yIGlzIHN1Ym1pdHRlZCB0byBoYXJkd2FyZSwgd2Ug cmV0dXJuIHRoZSBkZXNjcmlwdG9yCmxlbmd0aCwgd2hpY2ggaXMgbm90IGNvcnJlY3QuCgpUd28g Y2FzZXMgYXJlIHJlcXVpcmVkIHRvIGJlIGhhbmRsZWQ6CjEuIERlc2NyaXB0b3IgaXMgaW4gcXVl dWUgKElNTyBhYm92ZSBsb2dpYyBpcyBmaW5lIGZvciB0aGF0LCBidXQgaXQgY2FuCmJlIGNhbGN1 bGF0ZWQgYXQgZGVzY3JpcHRvciBzdWJtaXQgYW5kIGxvb2tlZCB1cCBoZXJlKQoKMi4gRGVzY3Jp cHRvciBpcyBydW5uaW5nIChpbnRlcmVzdGluZyBjYXNlKSwgeW91IG5lZWQgdG8gcmVhZCBjdXJy ZW50CnJlZ2lzdGVyIGFuZCBvZmZzZXQgdGhhdCBmcm9tIGRlc2NyaXB0b3IgbGVuZ3RoIGFuZCBy ZXR1cm4KCj4gK3N0YXRpYyBzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKnVuaXBoaWVy X21kbWFjX3ByZXBfc2xhdmVfc2coCj4gKwkJCQkJc3RydWN0IGRtYV9jaGFuICpjaGFuLAo+ICsJ CQkJCXN0cnVjdCBzY2F0dGVybGlzdCAqc2dsLAo+ICsJCQkJCXVuc2lnbmVkIGludCBzZ19sZW4s Cj4gKwkJCQkJZW51bSBkbWFfdHJhbnNmZXJfZGlyZWN0aW9uIGRpcmVjdGlvbiwKPiArCQkJCQl1 bnNpZ25lZCBsb25nIGZsYWdzLCB2b2lkICpjb250ZXh0KQo+ICt7Cj4gKwlzdHJ1Y3QgdmlydF9k bWFfY2hhbiAqdmMgPSB0b192aXJ0X2NoYW4oY2hhbik7Cj4gKwlzdHJ1Y3QgdW5pcGhpZXJfbWRt YWNfZGVzYyAqbWQ7Cj4gKwo+ICsJaWYgKCFpc19zbGF2ZV9kaXJlY3Rpb24oZGlyZWN0aW9uKSkK PiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwltZCA9IGt6YWxsb2Moc2l6ZW9mKCptZCksIEdGUF9L RVJORUwpOwoKX3ByZXAgY2FsbHMgY2FuIGJlIGludm9rZWQgZnJvbSBhdG9taWMgY29udGV4dCwg c28gdGhpcyBzaG91bGQgYmUKR0ZQX05PV0FJVCwgc2VlIERvY3VtZW50YXRpb24vZHJpdmVyLWFw aS9kbWFlbmdpbmUvcHJvdmlkZXIucnN0Cgo+ICsJaWYgKCFtZCkKPiArCQlyZXR1cm4gTlVMTDsK PiArCj4gKwltZC0+c2dsID0gc2dsOwo+ICsJbWQtPnNnX2xlbiA9IHNnX2xlbjsKPiArCW1kLT5k aXIgPSBkaXJlY3Rpb247Cj4gKwo+ICsJcmV0dXJuIHZjaGFuX3R4X3ByZXAodmMsICZtZC0+dmQs IGZsYWdzKTsKCnRoaXMgc2VlbXMgbWlzc2luZyBzdHVmZi4gV2hlcmUgZG8geW91IGRvIHJlZ2lz dGVyIGNhbGN1bGF0aW9uIGZvciB0aGUKZGVzY3JpcHRvciBhbmQgd2hlcmUgaXMgc2xhdmVfY29u ZmlnIGhlcmUsIGhvdyBkbyB5b3Uga25vdyB3aGVyZSB0bwpzZW5kL3JlY2VpdmUgZGF0YSBmb3Jt L3RvIChwZXJpcGhlcmFsKQoKPiArc3RhdGljIGVudW0gZG1hX3N0YXR1cyB1bmlwaGllcl9tZG1h Y190eF9zdGF0dXMoc3RydWN0IGRtYV9jaGFuICpjaGFuLAo+ICsJCQkJCQlkbWFfY29va2llX3Qg Y29va2llLAo+ICsJCQkJCQlzdHJ1Y3QgZG1hX3R4X3N0YXRlICp0eHN0YXRlKQo+ICt7Cj4gKwlz dHJ1Y3QgdmlydF9kbWFfY2hhbiAqdmM7Cj4gKwlzdHJ1Y3QgdmlydF9kbWFfZGVzYyAqdmQ7Cj4g KwlzdHJ1Y3QgdW5pcGhpZXJfbWRtYWNfY2hhbiAqbWM7Cj4gKwlzdHJ1Y3QgdW5pcGhpZXJfbWRt YWNfZGVzYyAqbWQgPSBOVUxMOwo+ICsJZW51bSBkbWFfc3RhdHVzIHN0YXQ7Cj4gKwl1bnNpZ25l ZCBsb25nIGZsYWdzOwo+ICsKPiArCXN0YXQgPSBkbWFfY29va2llX3N0YXR1cyhjaGFuLCBjb29r aWUsIHR4c3RhdGUpOwo+ICsJaWYgKHN0YXQgPT0gRE1BX0NPTVBMRVRFKQo+ICsJCXJldHVybiBz dGF0Owo+ICsKPiArCXZjID0gdG9fdmlydF9jaGFuKGNoYW4pOwo+ICsKPiArCXNwaW5fbG9ja19p cnFzYXZlKCZ2Yy0+bG9jaywgZmxhZ3MpOwo+ICsKPiArCW1jID0gdG9fdW5pcGhpZXJfbWRtYWNf Y2hhbih2Yyk7Cj4gKwo+ICsJaWYgKG1jLT5tZCAmJiBtYy0+bWQtPnZkLnR4LmNvb2tpZSA9PSBj b29raWUpCj4gKwkJbWQgPSBtYy0+bWQ7Cj4gKwo+ICsJaWYgKCFtZCkgewo+ICsJCXZkID0gdmNo YW5fZmluZF9kZXNjKHZjLCBjb29raWUpOwo+ICsJCWlmICh2ZCkKPiArCQkJbWQgPSB0b191bmlw aGllcl9tZG1hY19kZXNjKHZkKTsKPiArCX0KPiArCj4gKwlpZiAobWQpCj4gKwkJdHhzdGF0ZS0+ cmVzaWR1ZSA9IF9fdW5pcGhpZXJfbWRtYWNfZ2V0X3Jlc2lkdWUobWQpOwoKdHhzdGF0ZSBjYW4g YmUgTlVMTCBhbmQgc2hvdWxkIGJlIGNoZWNrZWQuLi4KCj4gK3N0YXRpYyBpbnQgdW5pcGhpZXJf bWRtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiArewo+ICsJc3RydWN0 IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiArCXN0cnVjdCB1bmlwaGllcl9tZG1hY19kZXZp Y2UgKm1kZXY7Cj4gKwlzdHJ1Y3QgZG1hX2RldmljZSAqZGRldjsKPiArCXN0cnVjdCByZXNvdXJj ZSAqcmVzOwo+ICsJaW50IG5yX2NoYW5zLCByZXQsIGk7Cj4gKwo+ICsJbnJfY2hhbnMgPSBwbGF0 Zm9ybV9pcnFfY291bnQocGRldik7Cj4gKwlpZiAobnJfY2hhbnMgPCAwKQo+ICsJCXJldHVybiBu cl9jaGFuczsKPiArCj4gKwlyZXQgPSBkbWFfc2V0X21hc2soZGV2LCBETUFfQklUX01BU0soMzIp KTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwltZGV2ID0gZGV2bV9remFs bG9jKGRldiwgc3RydWN0X3NpemUobWRldiwgY2hhbm5lbHMsIG5yX2NoYW5zKSwKPiArCQkJICAg IEdGUF9LRVJORUwpOwoKa2NhbGxvYyB2YXJpYW50PwoKPiArCWlmICghbWRldikKPiArCQlyZXR1 cm4gLUVOT01FTTsKPiArCj4gKwlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9S RVNPVVJDRV9NRU0sIDApOwo+ICsJbWRldi0+cmVnX2Jhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3Vy Y2UoZGV2LCByZXMpOwo+ICsJaWYgKElTX0VSUihtZGV2LT5yZWdfYmFzZSkpCj4gKwkJcmV0dXJu IFBUUl9FUlIobWRldi0+cmVnX2Jhc2UpOwo+ICsKPiArCW1kZXYtPmNsayA9IGRldm1fY2xrX2dl dChkZXYsIE5VTEwpOwo+ICsJaWYgKElTX0VSUihtZGV2LT5jbGspKSB7Cj4gKwkJZGV2X2Vycihk ZXYsICJmYWlsZWQgdG8gZ2V0IGNsb2NrXG4iKTsKPiArCQlyZXR1cm4gUFRSX0VSUihtZGV2LT5j bGspOwo+ICsJfQo+ICsKPiArCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShtZGV2LT5jbGspOwo+ ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCWRkZXYgPSAmbWRldi0+ZGRldjsK PiArCWRkZXYtPmRldiA9IGRldjsKPiArCWRtYV9jYXBfc2V0KERNQV9QUklWQVRFLCBkZGV2LT5j YXBfbWFzayk7Cj4gKwlkZGV2LT5zcmNfYWRkcl93aWR0aHMgPSBCSVQoRE1BX1NMQVZFX0JVU1dJ RFRIX1VOREVGSU5FRCk7Cj4gKwlkZGV2LT5kc3RfYWRkcl93aWR0aHMgPSBCSVQoRE1BX1NMQVZF X0JVU1dJRFRIX1VOREVGSU5FRCk7Cj4gKwlkZGV2LT5kaXJlY3Rpb25zID0gQklUKERNQV9NRU1f VE9fREVWKSB8IEJJVChETUFfREVWX1RPX01FTSk7Cj4gKwlkZGV2LT5yZXNpZHVlX2dyYW51bGFy aXR5ID0gRE1BX1JFU0lEVUVfR1JBTlVMQVJJVFlfU0VHTUVOVDsKPiArCWRkZXYtPmRldmljZV9w cmVwX3NsYXZlX3NnID0gdW5pcGhpZXJfbWRtYWNfcHJlcF9zbGF2ZV9zZzsKPiArCWRkZXYtPmRl dmljZV90ZXJtaW5hdGVfYWxsID0gdW5pcGhpZXJfbWRtYWNfdGVybWluYXRlX2FsbDsKPiArCWRk ZXYtPmRldmljZV9zeW5jaHJvbml6ZSA9IHVuaXBoaWVyX21kbWFjX3N5bmNocm9uaXplOwo+ICsJ ZGRldi0+ZGV2aWNlX3R4X3N0YXR1cyA9IHVuaXBoaWVyX21kbWFjX3R4X3N0YXR1czsKPiArCWRk ZXYtPmRldmljZV9pc3N1ZV9wZW5kaW5nID0gdW5pcGhpZXJfbWRtYWNfaXNzdWVfcGVuZGluZzsK Ck5vIGRldmljZV9jb25maWc/Cg==