linux_dsm_epyc7002/drivers/media/platform
Akinobu Mita 94ae1d6ba6 media: pxa_camera: avoid duplicate s_power calls
The open() operation for the pxa_camera driver always calls s_power()
operation to put its subdevice sensor in normal operation mode, and the
release() operation always call s_power() operation to put the subdevice
in power saving mode.

This requires the subdevice sensor driver to keep track of its power
state in order to avoid putting the subdevice in power saving mode while
the device is still opened by some users.

Many subdevice drivers handle it by the boilerplate code that increments
and decrements an internal counter in s_power() like below:

	/*
	 * If the power count is modified from 0 to != 0 or from != 0 to 0,
	 * update the power state.
	 */
	if (sensor->power_count == !on) {
		ret = ov5640_set_power(sensor, !!on);
		if (ret)
			goto out;
	}

	/* Update the power count. */
	sensor->power_count += on ? 1 : -1;

However, some subdevice drivers don't handle it and may cause a problem
with the pxa_camera driver if the video device is opened by more than
two users at the same time.

Instead of propagating the boilerplate code for each subdevice driver
that implement s_power, this introduces an trick that many V4L2 drivers
are using with v4l2_fh_is_singular_file().

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-05-28 16:24:30 -04:00
..
am437x media: Remove depends on HAS_DMA in case of platform dependency 2018-05-28 16:17:08 -04:00
atmel media: Remove depends on HAS_DMA in case of platform dependency 2018-05-28 16:17:08 -04:00
cadence media: v4l: cadence: Add Cadence MIPI-CSI2 TX driver 2018-05-17 06:22:08 -04:00
cec-gpio media: cec-gpio: use GPIOD_OUT_HIGH_OPEN_DRAIN 2018-05-09 16:15:06 -04:00
coda media: coda: set colorimetry on coded queue 2018-05-09 16:23:33 -04:00
davinci media: Remove depends on HAS_DMA in case of platform dependency 2018-05-28 16:17:08 -04:00
exynos4-is media: include/media: fix missing | operator when setting cfg 2018-05-05 09:01:22 -04:00
exynos-gsc media updates for v4.16-rc1 2018-02-06 11:27:48 -08:00
marvell-ccic media: Remove depends on HAS_DMA in case of platform dependency 2018-05-28 16:17:08 -04:00
meson media: platform: Add Amlogic Meson AO CEC Controller driver 2017-08-09 10:45:26 -04:00
mtk-jpeg media: vcodec: fix ptr_ret.cocci warnings 2018-05-09 15:58:30 -04:00
mtk-mdp License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mtk-vcodec media: mtk-vcodec: Always signal source change event on format change 2018-02-26 07:41:36 -05:00
mtk-vpu media: mtk-vpu: add description for wdt fields at struct mtk_vpu 2017-11-30 04:19:00 -05:00
omap media: omap2: allow building it with COMPILE_TEST && DRM_OMAP 2018-05-04 09:55:38 -04:00
omap3isp media: omap3isp: Don't use GFP_DMA 2018-05-09 16:38:38 -04:00
qcom remoteproc updates for v4.17 2018-04-10 12:09:27 -07:00
rcar-vin media: Remove depends on HAS_DMA in case of platform dependency 2018-05-28 16:17:08 -04:00
rockchip/rga media: rca: declare formats var as static 2018-03-23 06:28:41 -04:00
s3c-camif media: s3c-camif: fix out-of-bounds array access 2018-03-06 07:29:04 -05:00
s5p-cec media: s5p-cec: add NACK detection support 2017-09-23 07:29:30 -04:00
s5p-g2d media: platform: make video_device const 2017-08-27 08:44:30 -04:00
s5p-jpeg media: s5p-jpeg: don't return a value on a void function 2018-05-04 08:58:22 -04:00
s5p-mfc media: s5p-mfc: fix two sparse warnings 2018-05-25 15:31:00 -04:00
soc_camera media: Remove depends on HAS_DMA in case of platform dependency 2018-05-28 16:17:08 -04:00
sti media: Remove depends on HAS_DMA in case of platform dependency 2018-05-28 16:17:08 -04:00
stm32 media: stm32-dcmi: add JPEG support 2018-03-21 11:53:09 -04:00
tegra-cec media: tegra-cec: reset rx_buf_cnt when start bit detected 2018-03-05 07:46:24 -05:00
ti-vpe media: v4l2-async: simplify v4l2_async_subdev structure 2017-12-29 07:14:28 -05:00
vimc media: vimc: use correct subdev functions 2018-02-26 09:31:41 -05:00
vivid media: vivid: potential integer overflow in vidioc_g_edid() 2018-05-28 16:12:07 -04:00
vsp1 media: vsp1: Move video configuration to a cached dlb 2018-05-25 19:05:46 -04:00
xilinx media: xilinx: regroup caps on querycap 2018-05-11 11:25:06 -04:00
fsl-viu.c media: platform: fix some 64-bits warnings 2018-04-17 05:50:00 -04:00
Kconfig media: m2m-deinterlace: Remove DMA_ENGINE dependency 2018-05-28 16:20:25 -04:00
m2m-deinterlace.c media updates for v4.16-rc1 2018-02-06 11:27:48 -08:00
Makefile media: v4l: cadence: Add Cadence MIPI-CSI2 RX driver 2018-05-16 11:12:21 -04:00
mx2_emmaprp.c media: annotate ->poll() instances 2017-11-27 16:20:06 -05:00
pxa_camera.c media: pxa_camera: avoid duplicate s_power calls 2018-05-28 16:24:30 -04:00
rcar_drif.c media: rcar_drif: fix error return code in rcar_drif_alloc_dmachannels() 2018-02-26 07:43:29 -05:00
rcar_fdp1.c media: drivers: remove "/**" from non-kernel-doc comments 2017-11-30 04:19:03 -05:00
rcar_jpu.c media: rcar_jpu: Add missing clk_disable_unprepare() on error in jpu_open() 2018-05-11 11:23:54 -04:00
rcar-fcp.c v4l: rcar-fcp: Add an API to retrieve the FCP device 2017-06-09 12:25:36 +01:00
renesas-ceu.c media: renesas-ceu: fix compiler warning 2018-05-25 15:33:34 -04:00
sh_veu.c media: platform: sh_veu: use 64-bit arithmetic instead of 32-bit 2018-02-26 08:09:48 -05:00
sh_vou.c media: replace all <spaces><tab> occurrences 2018-01-04 13:15:05 -05:00
via-camera.c media: platform: Use gpio_is_valid() 2018-05-09 16:17:15 -04:00
via-camera.h media: fix usage of whitespaces and on indentation 2018-01-04 13:12:01 -05:00
video-mux.c media: platform: video-mux: propagate format from sink to source 2018-05-04 15:56:15 -04:00
vim2m.c media: drivers: remove "/**" from non-kernel-doc comments 2017-11-30 04:19:03 -05:00