diff mbox series

[2/2] dmaengine: ti: k3-udma: Add TX channel data in AM62A CSIRX DMSS

Message ID 20241125083914.2934815-2-vaishnav.a@ti.com (mailing list archive)
State Changes Requested
Headers show
Series [1/2] dt-bindings: dma: ti: k3-bcdma: Add TX channel for AM62A CSIRX BCDMA | expand

Commit Message

Vaishnav Achath Nov. 25, 2024, 8:39 a.m. UTC
J722S/AM67 uses the same BCDMA CSIRX IP as AM62A, but it supports
TX channels as well in addition to RX. Add the BCDMA TCHAN information
in the am62a_dmss_csi_soc_data so as to support all the platforms in the
family with same compatible. UDMA_CAP2_TCHAN_CNT indicates the presence
of TX channels and it will be 0 for platforms without TX support.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
---

CSI2RX capture test results on J722S EVM with IMX219:
https://gist.github.com/vaishnavachath/e2eaed62ee8f53428ee9b830aaa02cc3

 drivers/dma/ti/k3-udma.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Conor Dooley Nov. 25, 2024, 6:31 p.m. UTC | #1
On Mon, Nov 25, 2024 at 02:09:14PM +0530, Vaishnav Achath wrote:
> J722S/AM67 uses the same BCDMA CSIRX IP as AM62A, but it supports
> TX channels as well in addition to RX.

This doesn't make sense. You say that the am62a doesn't have a tx
channel ("but it supports TX as well") but then modify the struct for
the am62a to add a tx channel. Does that not break things on the am62a?


> Add the BCDMA TCHAN information
> in the am62a_dmss_csi_soc_data so as to support all the platforms in the
> family with same compatible. UDMA_CAP2_TCHAN_CNT indicates the presence
> of TX channels and it will be 0 for platforms without TX support.
> 
> Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
> ---
> 
> CSI2RX capture test results on J722S EVM with IMX219:
> https://gist.github.com/vaishnavachath/e2eaed62ee8f53428ee9b830aaa02cc3
> 
>  drivers/dma/ti/k3-udma.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
> index b3f27b3f9209..4130f50979d4 100644
> --- a/drivers/dma/ti/k3-udma.c
> +++ b/drivers/dma/ti/k3-udma.c
> @@ -4340,6 +4340,8 @@ static struct udma_match_data j721e_mcu_data = {
>  
>  static struct udma_soc_data am62a_dmss_csi_soc_data = {
>  	.oes = {
> +		.bcdma_tchan_data = 0x800,
> +		.bcdma_tchan_ring = 0xa00,
>  		.bcdma_rchan_data = 0xe00,
>  		.bcdma_rchan_ring = 0x1000,
>  	},
> -- 
> 2.34.1
>
Vaishnav Achath Nov. 26, 2024, 12:58 p.m. UTC | #2
Hi Conor,

On 26/11/24 00:01, Conor Dooley wrote:
> On Mon, Nov 25, 2024 at 02:09:14PM +0530, Vaishnav Achath wrote:
>> J722S/AM67 uses the same BCDMA CSIRX IP as AM62A, but it supports
>> TX channels as well in addition to RX.
> 
> This doesn't make sense. You say that the am62a doesn't have a tx
> channel ("but it supports TX as well") but then modify the struct for
> the am62a to add a tx channel. Does that not break things on the am62a?
> 

Thank you for the review, I have sent a v2 of this series adding new 
compatible as suggested, after looking at it again, the J722S BCDMA CSI
is more similar to J721S2 in terms of having RX and TX support, so 
updated in that way.

The below changes did not really break AM62A since the driver checks 
hardware capability registers (TCHAN_CNT) to detect presence of TX 
channels and then only use the Output Event Steering(OES) data below.

V2:

https://lore.kernel.org/all/20241126125158.37744-1-vaishnav.a@ti.com/

Thanks and Regards,
Vaishnav

> 
>> Add the BCDMA TCHAN information
>> in the am62a_dmss_csi_soc_data so as to support all the platforms in the
>> family with same compatible. UDMA_CAP2_TCHAN_CNT indicates the presence
>> of TX channels and it will be 0 for platforms without TX support.
>>
>> Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
>> ---
>>
>> CSI2RX capture test results on J722S EVM with IMX219:
>> https://gist.github.com/vaishnavachath/e2eaed62ee8f53428ee9b830aaa02cc3
>>
>>   drivers/dma/ti/k3-udma.c | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
>> index b3f27b3f9209..4130f50979d4 100644
>> --- a/drivers/dma/ti/k3-udma.c
>> +++ b/drivers/dma/ti/k3-udma.c
>> @@ -4340,6 +4340,8 @@ static struct udma_match_data j721e_mcu_data = {
>>   
>>   static struct udma_soc_data am62a_dmss_csi_soc_data = {
>>   	.oes = {
>> +		.bcdma_tchan_data = 0x800,
>> +		.bcdma_tchan_ring = 0xa00,
>>   		.bcdma_rchan_data = 0xe00,
>>   		.bcdma_rchan_ring = 0x1000,
>>   	},
>> -- 
>> 2.34.1
>>
diff mbox series

Patch

diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
index b3f27b3f9209..4130f50979d4 100644
--- a/drivers/dma/ti/k3-udma.c
+++ b/drivers/dma/ti/k3-udma.c
@@ -4340,6 +4340,8 @@  static struct udma_match_data j721e_mcu_data = {
 
 static struct udma_soc_data am62a_dmss_csi_soc_data = {
 	.oes = {
+		.bcdma_tchan_data = 0x800,
+		.bcdma_tchan_ring = 0xa00,
 		.bcdma_rchan_data = 0xe00,
 		.bcdma_rchan_ring = 0x1000,
 	},