[PATCH V2 2/4] Revert "media: platform: ti: Remove unused vpdma_update_dma_addr"

Yemike Abhilash Chandra posted 4 patches 2 months, 3 weeks ago
[PATCH V2 2/4] Revert "media: platform: ti: Remove unused vpdma_update_dma_addr"
Posted by Yemike Abhilash Chandra 2 months, 3 weeks ago
This reverts commit 9314891df119442a6ec1518b3d872c330e2bf1a1.

We're adding support for TI VIP driver, so this is no longer unused.

Signed-off-by: Yemike Abhilash Chandra <y-abhilashchandra@ti.com>
---
 drivers/media/platform/ti/vpe/vpdma.c | 32 +++++++++++++++++++++++++++
 drivers/media/platform/ti/vpe/vpdma.h |  3 +++
 2 files changed, 35 insertions(+)

diff --git a/drivers/media/platform/ti/vpe/vpdma.c b/drivers/media/platform/ti/vpe/vpdma.c
index bb8a8bd7980c..da90d7f03f82 100644
--- a/drivers/media/platform/ti/vpe/vpdma.c
+++ b/drivers/media/platform/ti/vpe/vpdma.c
@@ -552,6 +552,38 @@ EXPORT_SYMBOL(vpdma_submit_descs);
 
 static void dump_dtd(struct vpdma_dtd *dtd);
 
+void vpdma_update_dma_addr(struct vpdma_data *vpdma,
+	struct vpdma_desc_list *list, dma_addr_t dma_addr,
+	void *write_dtd, int drop, int idx)
+{
+	struct vpdma_dtd *dtd = list->buf.addr;
+	dma_addr_t write_desc_addr;
+	int offset;
+
+	dtd += idx;
+	vpdma_unmap_desc_buf(vpdma, &list->buf);
+
+	dtd->start_addr = dma_addr;
+
+	/* Calculate write address from the offset of write_dtd from start
+	 * of the list->buf
+	 */
+	offset = (void *)write_dtd - list->buf.addr;
+	write_desc_addr = list->buf.dma_addr + offset;
+
+	if (drop)
+		dtd->desc_write_addr = dtd_desc_write_addr(write_desc_addr,
+							   1, 1, 0);
+	else
+		dtd->desc_write_addr = dtd_desc_write_addr(write_desc_addr,
+							   1, 0, 0);
+
+	vpdma_map_desc_buf(vpdma, &list->buf);
+
+	dump_dtd(dtd);
+}
+EXPORT_SYMBOL(vpdma_update_dma_addr);
+
 void vpdma_set_max_size(struct vpdma_data *vpdma, int reg_addr,
 			u32 width, u32 height)
 {
diff --git a/drivers/media/platform/ti/vpe/vpdma.h b/drivers/media/platform/ti/vpe/vpdma.h
index e4d7941c6207..393fcbb3cb40 100644
--- a/drivers/media/platform/ti/vpe/vpdma.h
+++ b/drivers/media/platform/ti/vpe/vpdma.h
@@ -222,6 +222,9 @@ void vpdma_free_desc_list(struct vpdma_desc_list *list);
 int vpdma_submit_descs(struct vpdma_data *vpdma, struct vpdma_desc_list *list,
 		       int list_num);
 bool vpdma_list_busy(struct vpdma_data *vpdma, int list_num);
+void vpdma_update_dma_addr(struct vpdma_data *vpdma,
+	struct vpdma_desc_list *list, dma_addr_t dma_addr,
+	void *write_dtd, int drop, int idx);
 
 /* VPDMA hardware list funcs */
 int vpdma_hwlist_alloc(struct vpdma_data *vpdma, void *priv);
-- 
2.34.1
Re: [PATCH V2 2/4] Revert "media: platform: ti: Remove unused vpdma_update_dma_addr"
Posted by Krzysztof Kozlowski 2 months, 3 weeks ago
On 16/07/2025 13:19, Yemike Abhilash Chandra wrote:
> This reverts commit 9314891df119442a6ec1518b3d872c330e2bf1a1.
> 
> We're adding support for TI VIP driver, so this is no longer unused.
> 
> Signed-off-by: Yemike Abhilash Chandra <y-abhilashchandra@ti.com>
> ---
>  drivers/media/platform/ti/vpe/vpdma.c | 32 +++++++++++++++++++++++++++
>  drivers/media/platform/ti/vpe/vpdma.h |  3 +++
>  2 files changed, 35 insertions(+)
> 
> diff --git a/drivers/media/platform/ti/vpe/vpdma.c b/drivers/media/platform/ti/vpe/vpdma.c
> index bb8a8bd7980c..da90d7f03f82 100644
> --- a/drivers/media/platform/ti/vpe/vpdma.c
> +++ b/drivers/media/platform/ti/vpe/vpdma.c
> @@ -552,6 +552,38 @@ EXPORT_SYMBOL(vpdma_submit_descs);
>  
>  static void dump_dtd(struct vpdma_dtd *dtd);
>  


Please add kerneldoc.

> +void vpdma_update_dma_addr(struct vpdma_data *vpdma,
> +	struct vpdma_desc_list *list, dma_addr_t dma_addr,
> +	void *write_dtd, int drop, int idx)
> +{
> +	struct vpdma_dtd *dtd = list->buf.addr;
> +	dma_addr_t write_desc_addr;
> +	int offset;
> +
> +	dtd += idx;
> +	vpdma_unmap_desc_buf(vpdma, &list->buf);
> +
> +	dtd->start_addr = dma_addr;
> +
> +	/* Calculate write address from the offset of write_dtd from start
> +	 * of the list->buf
> +	 */
> +	offset = (void *)write_dtd - list->buf.addr;
> +	write_desc_addr = list->buf.dma_addr + offset;
> +
> +	if (drop)
> +		dtd->desc_write_addr = dtd_desc_write_addr(write_desc_addr,
> +							   1, 1, 0);
> +	else
> +		dtd->desc_write_addr = dtd_desc_write_addr(write_desc_addr,
> +							   1, 0, 0);
> +
> +	vpdma_map_desc_buf(vpdma, &list->buf);
> +
> +	dump_dtd(dtd);
> +}
> +EXPORT_SYMBOL(vpdma_update_dma_addr);


This has to be GPL

> +
>  void vpdma_set_max_size(struct vpdma_data *vpdma, int reg_addr,
>  			u32 width, u32 height)

Best regards,
Krzysztof
Re: [PATCH V2 2/4] Revert "media: platform: ti: Remove unused vpdma_update_dma_addr"
Posted by Yemike Abhilash Chandra 1 month, 1 week ago
Hi Krzysztof,
Thanks for the review.

On 16/07/25 19:53, Krzysztof Kozlowski wrote:
> On 16/07/2025 13:19, Yemike Abhilash Chandra wrote:
>> This reverts commit 9314891df119442a6ec1518b3d872c330e2bf1a1.
>>
>> We're adding support for TI VIP driver, so this is no longer unused.
>>
>> Signed-off-by: Yemike Abhilash Chandra <y-abhilashchandra@ti.com>
>> ---
>>   drivers/media/platform/ti/vpe/vpdma.c | 32 +++++++++++++++++++++++++++
>>   drivers/media/platform/ti/vpe/vpdma.h |  3 +++
>>   2 files changed, 35 insertions(+)
>>
>> diff --git a/drivers/media/platform/ti/vpe/vpdma.c b/drivers/media/platform/ti/vpe/vpdma.c
>> index bb8a8bd7980c..da90d7f03f82 100644
>> --- a/drivers/media/platform/ti/vpe/vpdma.c
>> +++ b/drivers/media/platform/ti/vpe/vpdma.c
>> @@ -552,6 +552,38 @@ EXPORT_SYMBOL(vpdma_submit_descs);
>>   
>>   static void dump_dtd(struct vpdma_dtd *dtd);
>>   
> 
> 
> Please add kerneldoc.
> 

I will add kerneldoc in v3. Thanks

>> +void vpdma_update_dma_addr(struct vpdma_data *vpdma,
>> +	struct vpdma_desc_list *list, dma_addr_t dma_addr,
>> +	void *write_dtd, int drop, int idx)
>> +{
>> +	struct vpdma_dtd *dtd = list->buf.addr;
>> +	dma_addr_t write_desc_addr;
>> +	int offset;
>> +
>> +	dtd += idx;
>> +	vpdma_unmap_desc_buf(vpdma, &list->buf);
>> +
>> +	dtd->start_addr = dma_addr;
>> +
>> +	/* Calculate write address from the offset of write_dtd from start
>> +	 * of the list->buf
>> +	 */
>> +	offset = (void *)write_dtd - list->buf.addr;
>> +	write_desc_addr = list->buf.dma_addr + offset;
>> +
>> +	if (drop)
>> +		dtd->desc_write_addr = dtd_desc_write_addr(write_desc_addr,
>> +							   1, 1, 0);
>> +	else
>> +		dtd->desc_write_addr = dtd_desc_write_addr(write_desc_addr,
>> +							   1, 0, 0);
>> +
>> +	vpdma_map_desc_buf(vpdma, &list->buf);
>> +
>> +	dump_dtd(dtd);
>> +}
>> +EXPORT_SYMBOL(vpdma_update_dma_addr);
> 
> 
> This has to be GPL
> 

I will correct this in v3.

Thanks and Regards
Yemike Abhilash Chandra

>> +
>>   void vpdma_set_max_size(struct vpdma_data *vpdma, int reg_addr,
>>   			u32 width, u32 height)
> 
> Best regards,
> Krzysztof