Re: [PATCHv17 10/34] v4l2-ctrls: v4l2_ctrl_add_handler: add from_other_dev

2018-08-09 Thread Mauro Carvalho Chehab
Em Sat,  4 Aug 2018 14:45:02 +0200
Hans Verkuil  escreveu:

> From: Hans Verkuil 
> 
> Add a 'bool from_other_dev' argument: set to true if the two
> handlers refer to different devices (e.g. it is true when
> inheriting controls from a subdev into a main v4l2 bridge
> driver).
> 
> This will be used later when implementing support for the
> request API since we need to skip such controls.
> 
> Signed-off-by: Hans Verkuil 
> Signed-off-by: Alexandre Courbot 

Reviewed-by: Mauro Carvalho Chehab 

> ---
>  drivers/media/dvb-frontends/rtl2832_sdr.c |  5 +-
>  drivers/media/pci/bt8xx/bttv-driver.c |  2 +-
>  drivers/media/pci/cx23885/cx23885-417.c   |  2 +-
>  drivers/media/pci/cx88/cx88-blackbird.c   |  2 +-
>  drivers/media/pci/cx88/cx88-video.c   |  2 +-
>  drivers/media/pci/saa7134/saa7134-empress.c   |  4 +-
>  drivers/media/pci/saa7134/saa7134-video.c |  2 +-
>  .../media/platform/exynos4-is/fimc-capture.c  |  2 +-
>  drivers/media/platform/rcar-vin/rcar-core.c   |  2 +-
>  drivers/media/platform/rcar_drif.c|  2 +-
>  .../media/platform/soc_camera/soc_camera.c|  3 +-
>  drivers/media/platform/vivid/vivid-ctrls.c| 46 +--
>  drivers/media/usb/cx231xx/cx231xx-417.c   |  2 +-
>  drivers/media/usb/cx231xx/cx231xx-video.c |  4 +-
>  drivers/media/usb/msi2500/msi2500.c   |  2 +-
>  drivers/media/usb/tm6000/tm6000-video.c   |  2 +-
>  drivers/media/v4l2-core/v4l2-ctrls.c  | 11 +++--
>  drivers/media/v4l2-core/v4l2-device.c |  3 +-
>  drivers/staging/media/imx/imx-media-dev.c |  2 +-
>  drivers/staging/media/imx/imx-media-fim.c |  2 +-
>  include/media/v4l2-ctrls.h|  8 +++-
>  21 files changed, 61 insertions(+), 49 deletions(-)
> 
> diff --git a/drivers/media/dvb-frontends/rtl2832_sdr.c 
> b/drivers/media/dvb-frontends/rtl2832_sdr.c
> index d448d9d4879c..7d0c89e269ab 100644
> --- a/drivers/media/dvb-frontends/rtl2832_sdr.c
> +++ b/drivers/media/dvb-frontends/rtl2832_sdr.c
> @@ -1394,7 +1394,8 @@ static int rtl2832_sdr_probe(struct platform_device 
> *pdev)
>   case RTL2832_SDR_TUNER_E4000:
>   v4l2_ctrl_handler_init(>hdl, 9);
>   if (subdev)
> - v4l2_ctrl_add_handler(>hdl, subdev->ctrl_handler, 
> NULL);
> + v4l2_ctrl_add_handler(>hdl, subdev->ctrl_handler,
> +   NULL, true);
>   break;
>   case RTL2832_SDR_TUNER_R820T:
>   case RTL2832_SDR_TUNER_R828D:
> @@ -1423,7 +1424,7 @@ static int rtl2832_sdr_probe(struct platform_device 
> *pdev)
>   v4l2_ctrl_handler_init(>hdl, 2);
>   if (subdev)
>   v4l2_ctrl_add_handler(>hdl, subdev->ctrl_handler,
> -   NULL);
> +   NULL, true);
>   break;
>   default:
>   v4l2_ctrl_handler_init(>hdl, 0);
> diff --git a/drivers/media/pci/bt8xx/bttv-driver.c 
> b/drivers/media/pci/bt8xx/bttv-driver.c
> index cf05e11da01b..e86154092558 100644
> --- a/drivers/media/pci/bt8xx/bttv-driver.c
> +++ b/drivers/media/pci/bt8xx/bttv-driver.c
> @@ -4211,7 +4211,7 @@ static int bttv_probe(struct pci_dev *dev, const struct 
> pci_device_id *pci_id)
>   /* register video4linux + input */
>   if (!bttv_tvcards[btv->c.type].no_video) {
>   v4l2_ctrl_add_handler(>radio_ctrl_handler, hdl,
> - v4l2_ctrl_radio_filter);
> + v4l2_ctrl_radio_filter, false);
>   if (btv->radio_ctrl_handler.error) {
>   result = btv->radio_ctrl_handler.error;
>   goto fail2;
> diff --git a/drivers/media/pci/cx23885/cx23885-417.c 
> b/drivers/media/pci/cx23885/cx23885-417.c
> index a71f3c7569ce..762823871c78 100644
> --- a/drivers/media/pci/cx23885/cx23885-417.c
> +++ b/drivers/media/pci/cx23885/cx23885-417.c
> @@ -1527,7 +1527,7 @@ int cx23885_417_register(struct cx23885_dev *dev)
>   dev->cxhdl.priv = dev;
>   dev->cxhdl.func = cx23885_api_func;
>   cx2341x_handler_set_50hz(>cxhdl, tsport->height == 576);
> - v4l2_ctrl_add_handler(>ctrl_handler, >cxhdl.hdl, NULL);
> + v4l2_ctrl_add_handler(>ctrl_handler, >cxhdl.hdl, NULL, false);
>  
>   /* Allocate and initialize V4L video device */
>   dev->v4l_device = cx23885_video_dev_alloc(tsport,
> diff --git a/drivers/media/pci/cx88/cx88-blackbird.c 
> b/drivers/media/pci/cx88/cx88-blackbird.c
> index 7a4876cf9f08..722dd101c9b0 100644
> --- a/drivers/media/pci/cx88/cx88-blackbird.c
> +++ b/drivers/media/pci/cx88/cx88-blackbird.c
> @@ -1183,7 +1183,7 @@ static int cx8802_blackbird_probe(struct cx8802_driver 
> *drv)
>   err = cx2341x_handler_init(>cxhdl, 36);
>   if (err)
>   goto fail_core;
> - v4l2_ctrl_add_handler(>cxhdl.hdl, >video_hdl, NULL);
> + v4l2_ctrl_add_handler(>cxhdl.hdl, >video_hdl, 

[PATCHv17 10/34] v4l2-ctrls: v4l2_ctrl_add_handler: add from_other_dev

2018-08-04 Thread Hans Verkuil
From: Hans Verkuil 

Add a 'bool from_other_dev' argument: set to true if the two
handlers refer to different devices (e.g. it is true when
inheriting controls from a subdev into a main v4l2 bridge
driver).

This will be used later when implementing support for the
request API since we need to skip such controls.

Signed-off-by: Hans Verkuil 
Signed-off-by: Alexandre Courbot 
---
 drivers/media/dvb-frontends/rtl2832_sdr.c |  5 +-
 drivers/media/pci/bt8xx/bttv-driver.c |  2 +-
 drivers/media/pci/cx23885/cx23885-417.c   |  2 +-
 drivers/media/pci/cx88/cx88-blackbird.c   |  2 +-
 drivers/media/pci/cx88/cx88-video.c   |  2 +-
 drivers/media/pci/saa7134/saa7134-empress.c   |  4 +-
 drivers/media/pci/saa7134/saa7134-video.c |  2 +-
 .../media/platform/exynos4-is/fimc-capture.c  |  2 +-
 drivers/media/platform/rcar-vin/rcar-core.c   |  2 +-
 drivers/media/platform/rcar_drif.c|  2 +-
 .../media/platform/soc_camera/soc_camera.c|  3 +-
 drivers/media/platform/vivid/vivid-ctrls.c| 46 +--
 drivers/media/usb/cx231xx/cx231xx-417.c   |  2 +-
 drivers/media/usb/cx231xx/cx231xx-video.c |  4 +-
 drivers/media/usb/msi2500/msi2500.c   |  2 +-
 drivers/media/usb/tm6000/tm6000-video.c   |  2 +-
 drivers/media/v4l2-core/v4l2-ctrls.c  | 11 +++--
 drivers/media/v4l2-core/v4l2-device.c |  3 +-
 drivers/staging/media/imx/imx-media-dev.c |  2 +-
 drivers/staging/media/imx/imx-media-fim.c |  2 +-
 include/media/v4l2-ctrls.h|  8 +++-
 21 files changed, 61 insertions(+), 49 deletions(-)

diff --git a/drivers/media/dvb-frontends/rtl2832_sdr.c 
b/drivers/media/dvb-frontends/rtl2832_sdr.c
index d448d9d4879c..7d0c89e269ab 100644
--- a/drivers/media/dvb-frontends/rtl2832_sdr.c
+++ b/drivers/media/dvb-frontends/rtl2832_sdr.c
@@ -1394,7 +1394,8 @@ static int rtl2832_sdr_probe(struct platform_device *pdev)
case RTL2832_SDR_TUNER_E4000:
v4l2_ctrl_handler_init(>hdl, 9);
if (subdev)
-   v4l2_ctrl_add_handler(>hdl, subdev->ctrl_handler, 
NULL);
+   v4l2_ctrl_add_handler(>hdl, subdev->ctrl_handler,
+ NULL, true);
break;
case RTL2832_SDR_TUNER_R820T:
case RTL2832_SDR_TUNER_R828D:
@@ -1423,7 +1424,7 @@ static int rtl2832_sdr_probe(struct platform_device *pdev)
v4l2_ctrl_handler_init(>hdl, 2);
if (subdev)
v4l2_ctrl_add_handler(>hdl, subdev->ctrl_handler,
- NULL);
+ NULL, true);
break;
default:
v4l2_ctrl_handler_init(>hdl, 0);
diff --git a/drivers/media/pci/bt8xx/bttv-driver.c 
b/drivers/media/pci/bt8xx/bttv-driver.c
index cf05e11da01b..e86154092558 100644
--- a/drivers/media/pci/bt8xx/bttv-driver.c
+++ b/drivers/media/pci/bt8xx/bttv-driver.c
@@ -4211,7 +4211,7 @@ static int bttv_probe(struct pci_dev *dev, const struct 
pci_device_id *pci_id)
/* register video4linux + input */
if (!bttv_tvcards[btv->c.type].no_video) {
v4l2_ctrl_add_handler(>radio_ctrl_handler, hdl,
-   v4l2_ctrl_radio_filter);
+   v4l2_ctrl_radio_filter, false);
if (btv->radio_ctrl_handler.error) {
result = btv->radio_ctrl_handler.error;
goto fail2;
diff --git a/drivers/media/pci/cx23885/cx23885-417.c 
b/drivers/media/pci/cx23885/cx23885-417.c
index a71f3c7569ce..762823871c78 100644
--- a/drivers/media/pci/cx23885/cx23885-417.c
+++ b/drivers/media/pci/cx23885/cx23885-417.c
@@ -1527,7 +1527,7 @@ int cx23885_417_register(struct cx23885_dev *dev)
dev->cxhdl.priv = dev;
dev->cxhdl.func = cx23885_api_func;
cx2341x_handler_set_50hz(>cxhdl, tsport->height == 576);
-   v4l2_ctrl_add_handler(>ctrl_handler, >cxhdl.hdl, NULL);
+   v4l2_ctrl_add_handler(>ctrl_handler, >cxhdl.hdl, NULL, false);
 
/* Allocate and initialize V4L video device */
dev->v4l_device = cx23885_video_dev_alloc(tsport,
diff --git a/drivers/media/pci/cx88/cx88-blackbird.c 
b/drivers/media/pci/cx88/cx88-blackbird.c
index 7a4876cf9f08..722dd101c9b0 100644
--- a/drivers/media/pci/cx88/cx88-blackbird.c
+++ b/drivers/media/pci/cx88/cx88-blackbird.c
@@ -1183,7 +1183,7 @@ static int cx8802_blackbird_probe(struct cx8802_driver 
*drv)
err = cx2341x_handler_init(>cxhdl, 36);
if (err)
goto fail_core;
-   v4l2_ctrl_add_handler(>cxhdl.hdl, >video_hdl, NULL);
+   v4l2_ctrl_add_handler(>cxhdl.hdl, >video_hdl, NULL, false);
 
/* blackbird stuff */
pr_info("cx23416 based mpeg encoder (blackbird reference design)\n");
diff --git a/drivers/media/pci/cx88/cx88-video.c 
b/drivers/media/pci/cx88/cx88-video.c
index