From mboxrd@z Thu Jan 1 00:00:00 1970 From: Icenowy Zheng Subject: Re: [PATCH 5/9] dmaengine: sun6i: support V3s SoC variant Date: Wed, 01 Mar 2017 01:58:33 +0800 Message-ID: <535111488304713@web26h.yandex.ru> References: <20170225123029.55939-1-icenowy@aosc.xyz> <20170225123029.55939-5-icenowy@aosc.xyz> <20170227075021.e7e43o54s23jzfto@lukather> <1426971488192481@web6g.yandex.ru> <20170228175604.kdlmjjcncfljnbfp@lukather> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from forward3j.cmail.yandex.net (forward3j.cmail.yandex.net [5.255.227.21]) by alsa0.perex.cz (Postfix) with ESMTP id C873F266718 for ; Tue, 28 Feb 2017 18:58:35 +0100 (CET) In-Reply-To: <20170228175604.kdlmjjcncfljnbfp@lukather> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Maxime Ripard Cc: "devicetree@vger.kernel.org" , "alsa-devel@alsa-project.org" , Vinod Koul , Mark Brown , "linux-kernel@vger.kernel.org" , Chen-Yu Tsai , Rob Herring , "dmaengine@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" List-Id: alsa-devel@alsa-project.org CgowMS4wMy4yMDE3LCAwMTo1NiwgIk1heGltZSBSaXBhcmQiIDxtYXhpbWUucmlwYXJkQGZyZWUt ZWxlY3Ryb25zLmNvbT46Cj4gT24gTW9uLCBGZWIgMjcsIDIwMTcgYXQgMDY6NDg6MDFQTSArMDgw MCwgSWNlbm93eSBaaGVuZyB3cm90ZToKPj4gwqAyNy4wMi4yMDE3LCAxNTo1MCwgIk1heGltZSBS aXBhcmQiIDxtYXhpbWUucmlwYXJkQGZyZWUtZWxlY3Ryb25zLmNvbT46Cj4+IMKgPiBPbiBTYXQs IEZlYiAyNSwgMjAxNyBhdCAwODozMDoyNVBNICswODAwLCBJY2Vub3d5IFpoZW5nIHdyb3RlOgo+ PiDCoD4+IMKgQWxsd2lubmVyIFYzcyBoYXMgYSBETUEgZW5naW5lIHNpbWlsYXIgdG8gdGhlIG9u ZXMgZnJvbSBBMzEsIGJ1dCB3aXRoCj4+IMKgPj4gwqBmZXdlciBjaGFubmVscyBhbmQgRFJRcy4K Pj4gwqA+Pgo+PiDCoD4+IMKgQWRkIHN1cHBvcnQgZm9yIGl0Lgo+PiDCoD4+Cj4+IMKgPj4gwqBB cyBpdCBhbHNvIG5lZWRzIHRoZSBzcGVjaWFsIGdhdGUgYml0LCBtYWtlIHRoZSBnYXRlIGJpdCBn ZW5lcmljLgo+PiDCoD4KPj4gwqA+IFRoYXQgc2hvdWxkIGJlIHBhcnQgb2YgYSBzZXBhcmF0ZSBw YXRjaC4KPj4KPj4gwqBPSy4KPj4KPj4gwqA+Cj4+IMKgPj4gwqBBY2NvcmRpbmcgdG8gQlNQIHNv dXJjZSBjb2RlLCBTVU44SVc2IChBODNUKSBhbHNvIG5lZWRzIHRoZSBiaXQsIHNvIGl0Cj4+IMKg Pj4gwqBoYXZlIGFsc28gYmVlbiBzcGVjaWZpZWQgZ2F0ZV9uZWVkZWQgcHJvcGVydHkuCj4+IMKg Pj4KPj4gwqA+PiDCoFNpZ25lZC1vZmYtYnk6IEljZW5vd3kgWmhlbmcgPGljZW5vd3lAYW9zYy54 eXo+Cj4+IMKgPj4gwqAtLS0KPj4gwqA+PiDCoMKgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL2RtYS9zdW42aS1kbWEudHh0IHwgMSArCj4+IMKgPj4gwqDCoGRyaXZlcnMvZG1hL3N1 bjZpLWRtYS5jIHwgMTcgKysrKysrKysrKysrKystLS0KPj4gwqA+PiDCoMKgMiBmaWxlcyBjaGFu Z2VkLCAxNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+PiDCoD4+Cj4+IMKgPj4gwqBk aWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9zdW42aS1k bWEudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9zdW42aS1kbWEu dHh0Cj4+IMKgPj4gwqBpbmRleCA2YjI2NzA0NWY1MjIuLjk4ZmJlMWE1YzZkZCAxMDA2NDQKPj4g wqA+PiDCoC0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kbWEvc3VuNmkt ZG1hLnR4dAo+PiDCoD4+IMKgKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L2RtYS9zdW42aS1kbWEudHh0Cj4+IMKgPj4gwqBAQCAtOSw2ICs5LDcgQEAgUmVxdWlyZWQgcHJv cGVydGllczoKPj4gwqA+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ImFsbHdpbm5lcixzdW44aS1hMjMtZG1hIgo+PiDCoD4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAiYWxsd2lubmVyLHN1bjhpLWE4M3QtZG1hIgo+PiDCoD4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAiYWxsd2lubmVyLHN1bjhpLWgzLWRt YSIKPj4gwqA+PiDCoCsgImFsbHdpbm5lcixzdW44aS12M3MtZG1hIgo+PiDCoD4+IMKgwqAtIHJl ZzogU2hvdWxkIGNvbnRhaW4gdGhlIHJlZ2lzdGVycyBiYXNlIGFkZHJlc3MgYW5kIGxlbmd0aAo+ PiDCoD4+IMKgwqAtIGludGVycnVwdHM6IFNob3VsZCBjb250YWluIGEgcmVmZXJlbmNlIHRvIHRo ZSBpbnRlcnJ1cHQgdXNlZCBieSB0aGlzIGRldmljZQo+PiDCoD4+IMKgwqAtIGNsb2NrczogU2hv dWxkIGNvbnRhaW4gYSByZWZlcmVuY2UgdG8gdGhlIHBhcmVudCBBSEIgY2xvY2sKPj4gwqA+PiDC oGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9zdW42aS1kbWEuYyBiL2RyaXZlcnMvZG1hL3N1bjZp LWRtYS5jCj4+IMKgPj4gwqBpbmRleCBhMjM1ODc4MGFiMmMuLjFmMzg0MjRjMWIxNCAxMDA2NDQK Pj4gwqA+PiDCoC0tLSBhL2RyaXZlcnMvZG1hL3N1bjZpLWRtYS5jCj4+IMKgPj4gwqArKysgYi9k cml2ZXJzL2RtYS9zdW42aS1kbWEuYwo+PiDCoD4+IMKgQEAgLTEwMSw2ICsxMDEsNyBAQCBzdHJ1 Y3Qgc3VuNmlfZG1hX2NvbmZpZyB7Cj4+IMKgPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqB1MzIgbnJf bWF4X2NoYW5uZWxzOwo+PiDCoD4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgdTMyIG5yX21heF9yZXF1 ZXN0czsKPj4gwqA+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoHUzMiBucl9tYXhfdmNoYW5zOwo+PiDC oD4+IMKgKyBib29sIGdhdGVfbmVlZGVkOwo+PiDCoD4+IMKgwqB9Owo+PiDCoD4+Cj4+IMKgPj4g wqDCoC8qCj4+IMKgPj4gwqBAQCAtMTAwOSwxMiArMTAxMCwxNCBAQCBzdGF0aWMgc3RydWN0IHN1 bjZpX2RtYV9jb25maWcgc3VuOGlfYTIzX2RtYV9jZmcgPSB7Cj4+IMKgPj4gwqDCoMKgwqDCoMKg wqDCoMKgwqAubnJfbWF4X2NoYW5uZWxzID0gOCwKPj4gwqA+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oC5ucl9tYXhfcmVxdWVzdHMgPSAyNCwKPj4gwqA+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoC5ucl9t YXhfdmNoYW5zID0gMzcsCj4+IMKgPj4gwqArIC5nYXRlX25lZWRlZCA9IHRydWUsCj4+IMKgPj4g wqDCoH07Cj4+IMKgPj4KPj4gwqA+PiDCoMKgc3RhdGljIHN0cnVjdCBzdW42aV9kbWFfY29uZmln IHN1bjhpX2E4M3RfZG1hX2NmZyA9IHsKPj4gwqA+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoC5ucl9t YXhfY2hhbm5lbHMgPSA4LAo+PiDCoD4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgLm5yX21heF9yZXF1 ZXN0cyA9IDI4LAo+PiDCoD4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgLm5yX21heF92Y2hhbnMgPSAz OSwKPj4gwqA+PiDCoCsgLmdhdGVfbmVlZGVkID0gdHJ1ZSwKPj4gwqA+PiDCoMKgfTsKPj4gwqA+ Pgo+PiDCoD4+IMKgwqAvKgo+PiDCoD4+IMKgQEAgLTEwMjgsMTEgKzEwMzEsMTkgQEAgc3RhdGlj IHN0cnVjdCBzdW42aV9kbWFfY29uZmlnIHN1bjhpX2gzX2RtYV9jZmcgPSB7Cj4+IMKgPj4gwqDC oMKgwqDCoMKgwqDCoMKgwqAubnJfbWF4X3ZjaGFucyA9IDM0LAo+PiDCoD4+IMKgwqB9Owo+PiDC oD4+Cj4+IMKgPj4gwqArc3RhdGljIHN0cnVjdCBzdW42aV9kbWFfY29uZmlnIHN1bjhpX3Yzc19k bWFfY2ZnID0gewo+PiDCoD4+IMKgKyAubnJfbWF4X2NoYW5uZWxzID0gOCwKPj4gwqA+PiDCoCsg Lm5yX21heF9yZXF1ZXN0cyA9IDIzLAo+PiDCoD4+IMKgKyAubnJfbWF4X3ZjaGFucyA9IDI0LAo+ PiDCoD4KPj4gwqA+IFRoaXMgb25lIGlzIHN1c3BpY2lvdXMuIFRoZXJlJ3MganVzdCBhIHNpbmds ZSBlbmRwb2ludCB0aGF0IGNhbiBiZQo+PiDCoD4gdXNlZCBpbiBib3RoIGRpcmVjdGlvbnM/Cj4+ Cj4+IMKgbnJfbWF4X3ZjaGFucyBpcyB0aGUgZW5kcG9pbnQgbnVtYmVyLiBucl9tYXhfcmVxdWVz dHMgaXMgdGhlCj4+IMKgbWF4aW11bSBEUlEgbnVtYmVyLCBmb3IgVjNzLCBhY2NvcmRpbmcgdG8g dGhlIGRhdGFzaGVldCwgaXQncwo+PiDCoDIzOiBTUEkwX3tSLFR9WC4KPgo+IFRoZXJlJ3Mgbm90 IGEgbG90IG9mIGVuZHBvaW50cyBpbmRlZWQsIGJ1dCB5b3UgbmVlZCAyOCB2Y2hhbnMgKDIgKgo+ IDE0KS4KClNvcnJ5IGJ1dCBJIGNvdW50ZWQgb25seSAxMiBwYWlycyBvZiB2Y2hhbnM6ClBvcnQg MC4gU1JBTQpQb3J0IDEuIFNEUkFNClBvcnQgNi4gVUFSVDAKUG9ydCA3LiBVQVJUMQpQb3J0IDgu IFVBUlQyClBvcnQgMTUuIEF1ZGlvIENvZGVjClBvcnQgMTYuIENFClBvcnQgMTcuIE9URyBFUDEK UG9ydCAxOC4gT1RHIEVQMgpQb3J0IDE5LiBPVEcgRVAzClBvcnQgMjAuIE9URyBFUDQKUG9ydCAy My4gU1BJMAoKPgo+IE1heGltZQo+Cj4gLS0KPiBNYXhpbWUgUmlwYXJkLCBGcmVlIEVsZWN0cm9u cwo+IEVtYmVkZGVkIExpbnV4IGFuZCBLZXJuZWwgZW5naW5lZXJpbmcKPiBodHRwOi8vZnJlZS1l bGVjdHJvbnMuY29tCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkFsc2EtZGV2ZWwgbWFpbGluZyBsaXN0CkFsc2EtZGV2ZWxAYWxzYS1wcm9qZWN0Lm9yZwpo dHRwOi8vbWFpbG1hbi5hbHNhLXByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vYWxzYS1kZXZl bAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: icenowy@aosc.xyz (Icenowy Zheng) Date: Wed, 01 Mar 2017 01:58:33 +0800 Subject: [PATCH 5/9] dmaengine: sun6i: support V3s SoC variant In-Reply-To: <20170228175604.kdlmjjcncfljnbfp@lukather> References: <20170225123029.55939-1-icenowy@aosc.xyz> <20170225123029.55939-5-icenowy@aosc.xyz> <20170227075021.e7e43o54s23jzfto@lukather> <1426971488192481@web6g.yandex.ru> <20170228175604.kdlmjjcncfljnbfp@lukather> Message-ID: <535111488304713@web26h.yandex.ru> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 01.03.2017, 01:56, "Maxime Ripard" : > On Mon, Feb 27, 2017 at 06:48:01PM +0800, Icenowy Zheng wrote: >> ?27.02.2017, 15:50, "Maxime Ripard" : >> ?> On Sat, Feb 25, 2017 at 08:30:25PM +0800, Icenowy Zheng wrote: >> ?>> ?Allwinner V3s has a DMA engine similar to the ones from A31, but with >> ?>> ?fewer channels and DRQs. >> ?>> >> ?>> ?Add support for it. >> ?>> >> ?>> ?As it also needs the special gate bit, make the gate bit generic. >> ?> >> ?> That should be part of a separate patch. >> >> ?OK. >> >> ?> >> ?>> ?According to BSP source code, SUN8IW6 (A83T) also needs the bit, so it >> ?>> ?have also been specified gate_needed property. >> ?>> >> ?>> ?Signed-off-by: Icenowy Zheng >> ?>> ?--- >> ?>> ??Documentation/devicetree/bindings/dma/sun6i-dma.txt | 1 + >> ?>> ??drivers/dma/sun6i-dma.c | 17 ++++++++++++++--- >> ?>> ??2 files changed, 15 insertions(+), 3 deletions(-) >> ?>> >> ?>> ?diff --git a/Documentation/devicetree/bindings/dma/sun6i-dma.txt b/Documentation/devicetree/bindings/dma/sun6i-dma.txt >> ?>> ?index 6b267045f522..98fbe1a5c6dd 100644 >> ?>> ?--- a/Documentation/devicetree/bindings/dma/sun6i-dma.txt >> ?>> ?+++ b/Documentation/devicetree/bindings/dma/sun6i-dma.txt >> ?>> ?@@ -9,6 +9,7 @@ Required properties: >> ?>> ????????????????????"allwinner,sun8i-a23-dma" >> ?>> ????????????????????"allwinner,sun8i-a83t-dma" >> ?>> ????????????????????"allwinner,sun8i-h3-dma" >> ?>> ?+ "allwinner,sun8i-v3s-dma" >> ?>> ??- reg: Should contain the registers base address and length >> ?>> ??- interrupts: Should contain a reference to the interrupt used by this device >> ?>> ??- clocks: Should contain a reference to the parent AHB clock >> ?>> ?diff --git a/drivers/dma/sun6i-dma.c b/drivers/dma/sun6i-dma.c >> ?>> ?index a2358780ab2c..1f38424c1b14 100644 >> ?>> ?--- a/drivers/dma/sun6i-dma.c >> ?>> ?+++ b/drivers/dma/sun6i-dma.c >> ?>> ?@@ -101,6 +101,7 @@ struct sun6i_dma_config { >> ?>> ??????????u32 nr_max_channels; >> ?>> ??????????u32 nr_max_requests; >> ?>> ??????????u32 nr_max_vchans; >> ?>> ?+ bool gate_needed; >> ?>> ??}; >> ?>> >> ?>> ??/* >> ?>> ?@@ -1009,12 +1010,14 @@ static struct sun6i_dma_config sun8i_a23_dma_cfg = { >> ?>> ??????????.nr_max_channels = 8, >> ?>> ??????????.nr_max_requests = 24, >> ?>> ??????????.nr_max_vchans = 37, >> ?>> ?+ .gate_needed = true, >> ?>> ??}; >> ?>> >> ?>> ??static struct sun6i_dma_config sun8i_a83t_dma_cfg = { >> ?>> ??????????.nr_max_channels = 8, >> ?>> ??????????.nr_max_requests = 28, >> ?>> ??????????.nr_max_vchans = 39, >> ?>> ?+ .gate_needed = true, >> ?>> ??}; >> ?>> >> ?>> ??/* >> ?>> ?@@ -1028,11 +1031,19 @@ static struct sun6i_dma_config sun8i_h3_dma_cfg = { >> ?>> ??????????.nr_max_vchans = 34, >> ?>> ??}; >> ?>> >> ?>> ?+static struct sun6i_dma_config sun8i_v3s_dma_cfg = { >> ?>> ?+ .nr_max_channels = 8, >> ?>> ?+ .nr_max_requests = 23, >> ?>> ?+ .nr_max_vchans = 24, >> ?> >> ?> This one is suspicious. There's just a single endpoint that can be >> ?> used in both directions? >> >> ?nr_max_vchans is the endpoint number. nr_max_requests is the >> ?maximum DRQ number, for V3s, according to the datasheet, it's >> ?23: SPI0_{R,T}X. > > There's not a lot of endpoints indeed, but you need 28 vchans (2 * > 14). Sorry but I counted only 12 pairs of vchans: Port 0. SRAM Port 1. SDRAM Port 6. UART0 Port 7. UART1 Port 8. UART2 Port 15. Audio Codec Port 16. CE Port 17. OTG EP1 Port 18. OTG EP2 Port 19. OTG EP3 Port 20. OTG EP4 Port 23. SPI0 > > Maxime > > -- > Maxime Ripard, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com