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/2] dmaengine: uniphier-mdmac: add UniPhier MIO DMAC driver From: Vinod Koul Message-Id: <20181005145706.GM2372@vkoul-mobl> Date: Fri, 5 Oct 2018 20:27:06 +0530 To: Masahiro Yamada Cc: dmaengine@vger.kernel.org, Masami Hiramatsu , Jassi Brar , linux-kernel@vger.kernel.org, Dan Williams , linux-arm-kernel@lists.infradead.org List-ID: T24gMTMtMDktMTgsIDA5OjUxLCBNYXNhaGlybyBZYW1hZGEgd3JvdGU6Cgo+ICsjZGVmaW5lIFVO SVBISUVSX01ETUFDX0NIX0lSUV9TVEFUCTB4MDEwCS8vIGN1cnJlbnQgaHcgc3RhdHVzIChSTykK PiArI2RlZmluZSBVTklQSElFUl9NRE1BQ19DSF9JUlFfUkVRCTB4MDE0CS8vIGxhdGNoZWQgU1RB VCAoV09DKQo+ICsjZGVmaW5lIFVOSVBISUVSX01ETUFDX0NIX0lSUV9FTgkweDAxOAkvLyBJUlEg ZW5hYmxlIG1hc2sKPiArI2RlZmluZSBVTklQSElFUl9NRE1BQ19DSF9JUlFfREVUCTB4MDFjCS8v IFJFUSAmIEVOIChSTykKPiArI2RlZmluZSAgIFVOSVBISUVSX01ETUFDX0NIX0lSUV9fQUJPUlQJ CUJJVCgxMykKPiArI2RlZmluZSAgIFVOSVBISUVSX01ETUFDX0NIX0lSUV9fRE9ORQkJQklUKDEp Cgp3aHkgbm90YXRpb24gaWYgVU5JUEhJRVJfTURNQUNfQ0hfSVJRX19GT08gPwoKPiArI2RlZmlu ZSBVTklQSElFUl9NRE1BQ19DSF9TUkNfTU9ERQkweDAyMAkvLyBtb2RlIG9mIHNvdXJjZQo+ICsj ZGVmaW5lIFVOSVBISUVSX01ETUFDX0NIX0RFU1RfTU9ERQkweDAyNAkvLyBtb2RlIG9mIGRlc3Rp bmF0aW9uCj4gKyNkZWZpbmUgICBVTklQSElFUl9NRE1BQ19DSF9NT0RFX19BRERSX0lOQwkoMCA8 PCA0KQo+ICsjZGVmaW5lICAgVU5JUEhJRVJfTURNQUNfQ0hfTU9ERV9fQUREUl9ERUMJKDEgPDwg NCkKPiArI2RlZmluZSAgIFVOSVBISUVSX01ETUFDX0NIX01PREVfX0FERFJfRklYRUQJKDIgPDwg NCkKPiArI2RlZmluZSBVTklQSElFUl9NRE1BQ19DSF9TUkNfQUREUgkweDAyOAkvLyBzb3VyY2Ug YWRkcmVzcwo+ICsjZGVmaW5lIFVOSVBISUVSX01ETUFDX0NIX0RFU1RfQUREUgkweDAyYwkvLyBk ZXN0aW5hdGlvbiBhZGRyZXNzCj4gKyNkZWZpbmUgVU5JUEhJRVJfTURNQUNfQ0hfU0laRQkJMHgw MzAJLy8gdHJhbnNmZXIgYnl0ZXMKClBsZWFzZSB1c2UgLyogY29tbWVudCAqLyBzdHlsZSBmb3Ig dGhlc2UKCj4gKy8qIG1jLT52Yy5sb2NrIG11c3QgYmUgaGVsZCBieSBjYWxsZXIgKi8KPiArc3Rh dGljIHN0cnVjdCB1bmlwaGllcl9tZG1hY19kZXNjICpfX3VuaXBoaWVyX21kbWFjX25leHRfZGVz YygKPiArCQkJCQkJc3RydWN0IHVuaXBoaWVyX21kbWFjX2NoYW4gKm1jKQoKdGhpcyBjYW4gYmUg bWFkZSB0byBsb29rIGJldHRlciBieToKCnN0YXRpYyBzdHJ1Y3QgdW5pcGhpZXJfbWRtYWNfZGVz YyAqCl9fdW5pcGhpZXJfbWRtYWNfbmV4dF9kZXNjKHN0cnVjdCB1bmlwaGllcl9tZG1hY19jaGFu ICptYykKCkJ0dyB3aHkgbGVhZGluZyBfXyBmb3IgZnVuY3Rpb24gbmFtZSBoZXJlIGFuZCBvdGhl ciBwbGFjZXM/Cgo+ICt7Cj4gKwlzdHJ1Y3QgdmlydF9kbWFfZGVzYyAqdmQ7Cj4gKwo+ICsJdmQg PSB2Y2hhbl9uZXh0X2Rlc2MoJm1jLT52Yyk7Cj4gKwlpZiAoIXZkKSB7Cj4gKwkJbWMtPm1kID0g TlVMTDsKPiArCQlyZXR1cm4gTlVMTDsKPiArCX0KPiArCj4gKwlsaXN0X2RlbCgmdmQtPm5vZGUp Owo+ICsKPiArCW1jLT5tZCA9IHRvX3VuaXBoaWVyX21kbWFjX2Rlc2ModmQpOwo+ICsKPiArCXJl dHVybiBtYy0+bWQ7Cj4gK30KPiArCj4gKy8qIG1jLT52Yy5sb2NrIG11c3QgYmUgaGVsZCBieSBj YWxsZXIgKi8KPiArc3RhdGljIHZvaWQgX191bmlwaGllcl9tZG1hY19oYW5kbGUoc3RydWN0IHVu aXBoaWVyX21kbWFjX2NoYW4gKm1jLAo+ICsJCQkJICAgIHN0cnVjdCB1bmlwaGllcl9tZG1hY19k ZXNjICptZCkKCnBsZWFzZSBhbGlnbiB0aGlzIHRvIHByZXZpb3VzIGxpbmUgb3BlbmluZyBicmFj ZSAoaGludCBjaGVja3BhdGNoIHdpdGgKLS1zdHJpY3Qgb3B0aW9uIHdpbGwgZ2l2ZSB5b3UgdGhl IHdhcm5pbmcpCgo+ICtzdGF0aWMgaXJxcmV0dXJuX3QgdW5pcGhpZXJfbWRtYWNfaW50ZXJydXB0 KGludCBpcnEsIHZvaWQgKmRldl9pZCkKPiArewo+ICsJc3RydWN0IHVuaXBoaWVyX21kbWFjX2No YW4gKm1jID0gZGV2X2lkOwo+ICsJc3RydWN0IHVuaXBoaWVyX21kbWFjX2Rlc2MgKm1kOwo+ICsJ aXJxcmV0dXJuX3QgcmV0ID0gSVJRX0hBTkRMRUQ7Cj4gKwl1MzIgaXJxX3N0YXQ7Cj4gKwo+ICsJ c3Bpbl9sb2NrKCZtYy0+dmMubG9jayk7Cj4gKwo+ICsJaXJxX3N0YXQgPSByZWFkbChtYy0+cmVn X2NoX2Jhc2UgKyBVTklQSElFUl9NRE1BQ19DSF9JUlFfREVUKTsKPiArCj4gKwkvKgo+ICsJICog U29tZSBjaGFubmVscyBzaGFyZSBhIHNpbmdsZSBpbnRlcnJ1cHQgbGluZS4gSWYgdGhlIElSUSBz dGF0dXMgaXMgMCwKPiArCSAqIHRoaXMgaXMgcHJvYmFibHkgdHJpZ2dlcmVkIGJ5IGEgZGlmZmVy ZW50IGNoYW5uZWwuCj4gKwkgKi8KPiArCWlmICghaXJxX3N0YXQpIHsKPiArCQlyZXQgPSBJUlFf Tk9ORTsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCj4gKwkvKiB3cml0ZSAxIHRvIGNsZWFyICov Cj4gKwl3cml0ZWwoaXJxX3N0YXQsIG1jLT5yZWdfY2hfYmFzZSArIFVOSVBISUVSX01ETUFDX0NI X0lSUV9SRVEpOwo+ICsKPiArCS8qCj4gKwkgKiBVTklQSElFUl9NRE1BQ19DSF9JUlFfX0RPTkUg aW50ZXJydXB0IGlzIGFzc2VydGVkIGV2ZW4gd2hlbiB0aGUgRE1BCj4gKwkgKiBpcyBhYm9ydGVk LiAgVG8gZGlzdGluZ3Vpc2ggdGhlIG5vcm1hbCBjb21wbGV0aW9uIGFuZCB0aGUgYWJvcnQsCiAg ICAgICAgICAgICAgICAgICAgIF5eXl4KZG91YmxlIHNwYWNlLi4KCj4gK3N0YXRpYyBpbnQgdW5p cGhpZXJfbWRtYWNfY29uZmlnKHN0cnVjdCBkbWFfY2hhbiAqY2hhbiwKPiArCQkJCSBzdHJ1Y3Qg ZG1hX3NsYXZlX2NvbmZpZyAqY29uZmlnKQo+ICt7Cj4gKwkvKiBOb3RoaW5nIGluIHN0cnVjdCBk bWFfc2xhdmVfY29uZmlnIGlzIGNvbmZpZ3VyYWJsZS4gKi8KPiArCXJldHVybiAwOwo+ICt9CgpJ IGRvbnQgdGhpbmsgY29uZmlnIGNhbGxiYWNrIGlzIG1hbmRhdG9yeSwgc28gd2UgY2FuIGRyb3Ag dGhpcwoKPiArc3RhdGljIGVudW0gZG1hX3N0YXR1cyB1bmlwaGllcl9tZG1hY190eF9zdGF0dXMo c3RydWN0IGRtYV9jaGFuICpjaGFuLAo+ICsJCQkJCQlkbWFfY29va2llX3QgY29va2llLAo+ICsJ CQkJCQlzdHJ1Y3QgZG1hX3R4X3N0YXRlICp0eHN0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgdmlydF9k bWFfY2hhbiAqdmM7Cj4gKwlzdHJ1Y3QgdmlydF9kbWFfZGVzYyAqdmQ7Cj4gKwlzdHJ1Y3QgdW5p cGhpZXJfbWRtYWNfY2hhbiAqbWM7Cj4gKwlzdHJ1Y3QgdW5pcGhpZXJfbWRtYWNfZGVzYyAqbWQg PSBOVUxMOwo+ICsJZW51bSBkbWFfc3RhdHVzIHN0YXQ7Cj4gKwl1bnNpZ25lZCBsb25nIGZsYWdz Owo+ICsKPiArCXN0YXQgPSBkbWFfY29va2llX3N0YXR1cyhjaGFuLCBjb29raWUsIHR4c3RhdGUp Owo+ICsJLyogUmV0dXJuIGltbWVkaWF0ZWx5IGlmIHdlIGRvIG5vdCBuZWVkIHRvIGNvbXB1dGUg dGhlIHJlc2lkdWUuICovCj4gKwlpZiAoc3RhdCA9PSBETUFfQ09NUExFVEUgfHwgIXR4c3RhdGUp Cj4gKwkJcmV0dXJuIHN0YXQ7Cj4gKwo+ICsJdmMgPSB0b192aXJ0X2NoYW4oY2hhbik7Cj4gKwo+ ICsJc3Bpbl9sb2NrX2lycXNhdmUoJnZjLT5sb2NrLCBmbGFncyk7Cj4gKwo+ICsJbWMgPSB0b191 bmlwaGllcl9tZG1hY19jaGFuKHZjKTsKPiArCj4gKwlpZiAobWMtPm1kICYmIG1jLT5tZC0+dmQu dHguY29va2llID09IGNvb2tpZSkKPiArCQltZCA9IG1jLT5tZDsKPiArCj4gKwlpZiAoIW1kKSB7 Cj4gKwkJdmQgPSB2Y2hhbl9maW5kX2Rlc2ModmMsIGNvb2tpZSk7Cj4gKwkJaWYgKHZkKQo+ICsJ CQltZCA9IHRvX3VuaXBoaWVyX21kbWFjX2Rlc2ModmQpOwo+ICsJfQoKaW4gYm90aCBvZiB0aGVz ZSBjYXNlcyB5b3UgYXJlIGNhbGxpbmcgX191bmlwaGllcl9tZG1hY19nZXRfcmVzaWR1ZSgpCndo aWNoIHJlYWRzIHRoZSByZWdpc3RlciBhbmQgdXBkYXRlcy4gQnV0IEkgdGhpbmsgeW91IHNob3Vs ZCByZWFkCnJlZ2lzdGVyIG9ubHkgaW4gdGhlIGZpcnN0IGNhc2Ugd2hlbiBkZXNjcmlwdG9yIGlz IHN1Ym1pdHRlZCBhbmQgbm90IGluCmxhdHRlciBjYXNlIHdoZW4gZGVzY3JpcHRvciBpcyBxdWV1 ZWQKCj4gK3N0YXRpYyBpbnQgdW5pcGhpZXJfbWRtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKPiArewo+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiAr CXN0cnVjdCB1bmlwaGllcl9tZG1hY19kZXZpY2UgKm1kZXY7Cj4gKwlzdHJ1Y3QgZG1hX2Rldmlj ZSAqZGRldjsKPiArCXN0cnVjdCByZXNvdXJjZSAqcmVzOwo+ICsJaW50IG5yX2NoYW5zLCByZXQs IGk7Cj4gKwo+ICsJbnJfY2hhbnMgPSBwbGF0Zm9ybV9pcnFfY291bnQocGRldik7Cj4gKwlpZiAo bnJfY2hhbnMgPCAwKQo+ICsJCXJldHVybiBucl9jaGFuczsKPiArCj4gKwlyZXQgPSBkbWFfc2V0 X21hc2soZGV2LCBETUFfQklUX01BU0soMzIpKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJl dDsKPiArCj4gKwltZGV2ID0gZGV2bV9remFsbG9jKGRldiwgc3RydWN0X3NpemUobWRldiwgY2hh bm5lbHMsIG5yX2NoYW5zKSwKPiArCQkJICAgIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFtZGV2KQo+ ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShw ZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Cj4gKwltZGV2LT5yZWdfYmFzZSA9IGRldm1faW9yZW1h cF9yZXNvdXJjZShkZXYsIHJlcyk7Cj4gKwlpZiAoSVNfRVJSKG1kZXYtPnJlZ19iYXNlKSkKPiAr CQlyZXR1cm4gUFRSX0VSUihtZGV2LT5yZWdfYmFzZSk7Cj4gKwo+ICsJbWRldi0+Y2xrID0gZGV2 bV9jbGtfZ2V0KGRldiwgTlVMTCk7Cj4gKwlpZiAoSVNfRVJSKG1kZXYtPmNsaykpIHsKPiArCQlk ZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgY2xvY2tcbiIpOwo+ICsJCXJldHVybiBQVFJfRVJS KG1kZXYtPmNsayk7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKG1kZXYt PmNsayk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJZGRldiA9ICZtZGV2 LT5kZGV2Owo+ICsJZGRldi0+ZGV2ID0gZGV2Owo+ICsJZG1hX2NhcF9zZXQoRE1BX1BSSVZBVEUs IGRkZXYtPmNhcF9tYXNrKTsKPiArCWRkZXYtPnNyY19hZGRyX3dpZHRocyA9IEJJVChETUFfU0xB VkVfQlVTV0lEVEhfVU5ERUZJTkVEKTsKPiArCWRkZXYtPmRzdF9hZGRyX3dpZHRocyA9IEJJVChE TUFfU0xBVkVfQlVTV0lEVEhfVU5ERUZJTkVEKTsKCnVuZGVmaW5lZD8KCj4gK3N0YXRpYyBpbnQg dW5pcGhpZXJfbWRtYWNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sK PiArCXN0cnVjdCB1bmlwaGllcl9tZG1hY19kZXZpY2UgKm1kZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2 ZGF0YShwZGV2KTsKPiArCj4gKwlvZl9kbWFfY29udHJvbGxlcl9mcmVlKHBkZXYtPmRldi5vZl9u b2RlKTsKPiArCWRtYV9hc3luY19kZXZpY2VfdW5yZWdpc3RlcigmbWRldi0+ZGRldik7Cj4gKwlj bGtfZGlzYWJsZV91bnByZXBhcmUobWRldi0+Y2xrKTsKCmF0IHRoaXMgcG9pbnQgeW91ciBpcnEg aXMgcmVnaXN0ZXJlZCBhbmQgY2FuIGJlIGZpcmVkLCB0aGUgdGFza2xldHMgYXJlCm5vdCBraWxs ZWQgOigK