summaryrefslogtreecommitdiff
path: root/drivers/media/platform/st/stm32/stm32-dcmi.c
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2023-03-05 23:51:07 +0300
committerMauro Carvalho Chehab <mchehab@kernel.org>2023-03-20 00:57:07 +0300
commit82b88d4da541e986e40445773b9c19187622d230 (patch)
treeaab0d75e34896fcbaeacd7600f1c2aa8bbfc1d15 /drivers/media/platform/st/stm32/stm32-dcmi.c
parent1634b7adcc5bef645b3666fdd564e5952a9e24e0 (diff)
downloadlinux-82b88d4da541e986e40445773b9c19187622d230.tar.xz
media: stm32-dcmi: Enable incoherent buffer allocation
Set allow_cache_hints to 1 for the vb2_queue capture queue in the STM32MP15xx DCMI V4L2 driver. This allows us to allocate buffers with the V4L2_MEMORY_FLAG_NON_COHERENT set. On STM32MP15xx SoCs, this enables caching for this memory, which improves performance when being read from CPU. This change should be safe from race conditions since videobuf2 already invalidates or flushes the appropriate cache lines in its prepare() and finish() methods. Tested on a STM32MP157F SoC. Resulted in 4x buffer access speedup. Signed-off-by: Marek Vasut <marex@denx.de> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'drivers/media/platform/st/stm32/stm32-dcmi.c')
-rw-r--r--drivers/media/platform/st/stm32/stm32-dcmi.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/media/platform/st/stm32/stm32-dcmi.c b/drivers/media/platform/st/stm32/stm32-dcmi.c
index ad8e9742e1ae..2ac508da5ba3 100644
--- a/drivers/media/platform/st/stm32/stm32-dcmi.c
+++ b/drivers/media/platform/st/stm32/stm32-dcmi.c
@@ -2084,6 +2084,7 @@ static int dcmi_probe(struct platform_device *pdev)
q->mem_ops = &vb2_dma_contig_memops;
q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
q->min_buffers_needed = 2;
+ q->allow_cache_hints = 1;
q->dev = &pdev->dev;
ret = vb2_queue_init(q);