Re: [PATCHv17 10/34] v4l2-ctrls: v4l2_ctrl_add_handler: add from_other_dev
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
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