]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: ti: j721e-csi2rx: Allow passing cache hints from user-space
authorDevarsh Thakkar <devarsht@ti.com>
Wed, 12 Mar 2025 11:21:40 +0000 (16:51 +0530)
committerHans Verkuil <hverkuil@xs4all.nl>
Thu, 10 Jul 2025 09:32:24 +0000 (11:32 +0200)
User-space can provide cache hints to enable software managed cache
operations or skip certain cache operations using memory flags and buffer
flags. This is useful for SoCs such as AM62px which do not support
hardware cache coherency.

This is tested on AM62px with yavta capture by passing
V4L2_MEMORY_FLAG_NON_COHERENT while using VIDIOC_REQBUFS and
V4L2_BUF_FLAG_NO_CACHE_CLEAN while using VIDIOC_QBUF and ~5x reduction in
memcpy time is seen for copying captured frame to DDR.

Link: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1452545/am62p-the-ads6311-radar-camera-has-lost-frame-capture/5580472#5580472
Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
Acked-by: Jai Luthra <jai.luthra@linux.dev>
[Sakari Ailus: Reword and rewrap the commit message a little.]
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c

index 6412a00be8eab89548950dd21b3b3ec02dafa5b4..284d33b2a0ec9fde41a0fe3a2b3a5a561872d9c3 100644 (file)
@@ -895,6 +895,7 @@ static int ti_csi2rx_init_vb2q(struct ti_csi2rx_dev *csi)
        q->dev = dmaengine_get_dma_device(csi->dma.chan);
        q->lock = &csi->mutex;
        q->min_queued_buffers = 1;
+       q->allow_cache_hints = 1;
 
        ret = vb2_queue_init(q);
        if (ret)