linux/drivers/media/platform
Laurent Pinchart cbb8cd7cc1 media: ti-vpe: cal: Stop write DMA without disabling PPI
When stopping the stream, the driver needs to ensure that ongoing DMA
completes and that no new DMA is started. It does so using a feature of
the PPI that can be stopped on a frame boundary. The downside of this
mechanism is that the DMA can't be stopped independently of the source,
which prevents usage of multiple contexts for the same source (to handle
CSI-2 virtual channels or data types).

Rework the stream stop mechanism to stop the write DMA without disabling
the PPI first. The new mechanism relies on the combination of a state
machine in the driver and shadowing of the CAL_WR_DMA_CTRL_j.MODE field
in the hardware. When a stop is requested, the DMA start interrupt
handler will request the hardware to stop at the end of the current
frame by disabling the write DMA context in the shadowed register, and
flag that a stop is in progress. The next DMA end interrupt will then
report that the stop is complete.

This makes it possible to stop the PPI after stopping the DMA, and fold
the cal_camerarx_ppi_disable() call into cal_camerarx_stop().

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Benoit Parrot <bparrot@ti.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2021-01-04 11:43:52 +01:00
..
am437x media: use v4l2_rect_enclosed helper 2020-07-04 12:30:13 +02:00
atmel media: atmel: atmel-isc: rework component offsets 2020-07-19 07:55:39 +02:00
cadence media: Kconfig files: use select for V4L2 subdevs and MC 2020-04-14 10:29:05 +02:00
coda media: coda: Convert the driver to DT-only 2020-12-03 07:37:59 +01:00
davinci media: isif: reset global state 2020-11-16 10:31:15 +01:00
exynos-gsc media: Add V4L2_TYPE_IS_CAPTURE helper 2020-07-19 08:13:24 +02:00
exynos4-is media: platform: exynos4-is: remove all references to physical addresses 2020-12-03 07:49:16 +01:00
marvell-ccic media: marvell-ccic: Fix -Wunused-function warnings 2020-11-16 10:31:07 +01:00
meson/ge2d media: meson: Add M2M driver for the Amlogic GE2D Accelerator Unit 2020-12-07 15:05:54 +01:00
mtk-jpeg media: platform: add missing put_device() call in mtk_jpeg_probe() and mtk_jpeg_remove() 2020-11-16 10:31:16 +01:00
mtk-mdp media: mtk-mdp: Fix Null pointer dereference when calling list_add 2020-09-26 10:23:48 +02:00
mtk-vcodec Linux 5.10-rc6 2020-12-01 16:21:40 +01:00
mtk-vpu media: mtk-vpu: dump VPU status when IPI times out 2020-12-03 07:42:34 +01:00
omap media: media/platform: rename VFL_TYPE_GRABBER to _VIDEO 2020-02-24 16:54:14 +01:00
omap3isp media: omap3isp: Remove misleading comment 2020-12-02 15:55:12 +01:00
qcom Power management updates for 5.11-rc1 2020-12-15 16:30:31 -08:00
rcar-vin media: rcar-vin: Mask VNCSI_IFMD register 2020-12-07 15:07:23 +01:00
rockchip media: rockchip: rkisp1: remove useless debugfs checks 2020-12-03 08:59:10 +01:00
s3c-camif media: s3c-camif: use semicolons rather than commas to separate statements 2020-11-16 10:31:06 +01:00
s5p-g2d media: s5p-g2d: Fix a memory leak in an error handling path in 'g2d_probe()' 2020-07-19 08:14:00 +02:00
s5p-jpeg media: s5p-jpeg: handle error condition in s5p_jpeg_probe 2020-12-03 07:45:49 +01:00
s5p-mfc media: Rename stateful codec control macros 2020-12-03 12:27:32 +01:00
sti media: c8sectpfe: clean up some indenting 2020-11-27 10:43:34 +01:00
stm32 media: stm32-dcmi: add support of BT656 bus 2020-11-25 14:36:42 +01:00
sunxi ARM: SoC drivers for v5.11 2020-12-16 16:38:41 -08:00
ti-vpe media: ti-vpe: cal: Stop write DMA without disabling PPI 2021-01-04 11:43:52 +01:00
vsp1 drm next for 5.10-rc1 2020-10-15 10:46:16 -07:00
xilinx media: v4l: xilinx: Add Xilinx MIPI CSI-2 Rx Subsystem driver 2020-06-23 13:11:46 +02:00
aspeed-video.c media: media/platform: drop vb2_queue_release() 2020-08-28 15:02:26 +02:00
fsl-viu.c media: fsl-viu: Use the ioread/write32be() accessors 2020-12-03 07:49:49 +01:00
imx-pxp.c media: media/platform: rename VFL_TYPE_GRABBER to _VIDEO 2020-02-24 16:54:14 +01:00
imx-pxp.h
Kconfig media: meson: Add M2M driver for the Amlogic GE2D Accelerator Unit 2020-12-07 15:05:54 +01:00
m2m-deinterlace.c media: media/platform: rename VFL_TYPE_GRABBER to _VIDEO 2020-02-24 16:54:14 +01:00
Makefile media: meson: Add M2M driver for the Amlogic GE2D Accelerator Unit 2020-12-07 15:05:54 +01:00
mx2_emmaprp.c media: mx2_emmaprp: Fix memleak in emmaprp_probe 2020-09-26 10:15:39 +02:00
pxa_camera.c media: pxa_camera: Use fallthrough pseudo-keyword 2020-11-16 10:31:09 +01:00
rcar-fcp.c media: platform: fcp: Fix a reference count leak. 2020-09-27 10:52:52 +02:00
rcar_drif.c media: rcar_drif: Allocate v4l2_async_subdev dynamically 2020-09-10 14:27:04 +02:00
rcar_fdp1.c media: media/platform: rename VFL_TYPE_GRABBER to _VIDEO 2020-02-24 16:54:14 +01:00
rcar_jpu.c media: Add V4L2_TYPE_IS_CAPTURE helper 2020-07-19 08:13:24 +02:00
renesas-ceu.c media: Use fallthrough pseudo-keyword 2020-08-29 08:35:27 +02:00
sh_vou.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
via-camera.c Power management updates for 5.7-rc1 2020-03-30 15:05:01 -07:00
via-camera.h
video-mux.c media: video-mux: Create media links in bound notifier 2020-05-18 14:20:56 +02:00