aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2014-04-28 15:53:01 -0400
committerMauro Carvalho Chehab <m.chehab@samsung.com>2014-05-24 16:11:26 -0400
commit8774bed9ce832d8d9ccb79e92800b808aa2d2ad2 (patch)
tree30756d116a47317fff754ca0f976cf5134033756
parent85ada737b9d9ede7dbb17e831d3b4bb187dc1915 (diff)
[media] v4l: subdev: Move [gs]_std operation to video ops
The g_std and s_std operations are video-related, move them to the video ops where they belong. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
-rw-r--r--drivers/media/i2c/adv7180.c2
-rw-r--r--drivers/media/i2c/adv7183.c4
-rw-r--r--drivers/media/i2c/adv7842.c4
-rw-r--r--drivers/media/i2c/bt819.c2
-rw-r--r--drivers/media/i2c/cx25840/cx25840-core.c4
-rw-r--r--drivers/media/i2c/ks0127.c6
-rw-r--r--drivers/media/i2c/ml86v7667.c2
-rw-r--r--drivers/media/i2c/msp3400-driver.c2
-rw-r--r--drivers/media/i2c/saa6752hs.c2
-rw-r--r--drivers/media/i2c/saa7110.c2
-rw-r--r--drivers/media/i2c/saa7115.c2
-rw-r--r--drivers/media/i2c/saa717x.c2
-rw-r--r--drivers/media/i2c/saa7191.c2
-rw-r--r--drivers/media/i2c/soc_camera/tw9910.c4
-rw-r--r--drivers/media/i2c/sony-btf-mpx.c10
-rw-r--r--drivers/media/i2c/tvaudio.c6
-rw-r--r--drivers/media/i2c/tvp514x.c2
-rw-r--r--drivers/media/i2c/tvp5150.c2
-rw-r--r--drivers/media/i2c/tw2804.c2
-rw-r--r--drivers/media/i2c/tw9903.c2
-rw-r--r--drivers/media/i2c/tw9906.c2
-rw-r--r--drivers/media/i2c/vp27smpx.c6
-rw-r--r--drivers/media/i2c/vpx3220.c2
-rw-r--r--drivers/media/pci/bt8xx/bttv-driver.c2
-rw-r--r--drivers/media/pci/cx18/cx18-av-core.c2
-rw-r--r--drivers/media/pci/cx18/cx18-fileops.c2
-rw-r--r--drivers/media/pci/cx18/cx18-gpio.c6
-rw-r--r--drivers/media/pci/cx18/cx18-ioctl.c2
-rw-r--r--drivers/media/pci/cx23885/cx23885-video.c4
-rw-r--r--drivers/media/pci/cx88/cx88-core.c2
-rw-r--r--drivers/media/pci/ivtv/ivtv-fileops.c2
-rw-r--r--drivers/media/pci/ivtv/ivtv-ioctl.c2
-rw-r--r--drivers/media/pci/saa7134/saa7134-video.c4
-rw-r--r--drivers/media/pci/saa7146/mxb.c14
-rw-r--r--drivers/media/pci/sta2x11/sta2x11_vip.c4
-rw-r--r--drivers/media/pci/zoran/zoran_device.c2
-rw-r--r--drivers/media/pci/zoran/zoran_driver.c2
-rw-r--r--drivers/media/platform/blackfin/bfin_capture.c4
-rw-r--r--drivers/media/platform/davinci/vpfe_capture.c2
-rw-r--r--drivers/media/platform/davinci/vpif_capture.c2
-rw-r--r--drivers/media/platform/davinci/vpif_display.c2
-rw-r--r--drivers/media/platform/fsl-viu.c2
-rw-r--r--drivers/media/platform/soc_camera/soc_camera.c4
-rw-r--r--drivers/media/platform/timblogiw.c2
-rw-r--r--drivers/media/platform/vino.c6
-rw-r--r--drivers/media/usb/au0828/au0828-video.c4
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-417.c2
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-video.c6
-rw-r--r--drivers/media/usb/em28xx/em28xx-video.c4
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-hdw.c2
-rw-r--r--drivers/media/usb/stk1160/stk1160-v4l.c4
-rw-r--r--drivers/media/usb/tm6000/tm6000-cards.c2
-rw-r--r--drivers/media/usb/tm6000/tm6000-video.c2
-rw-r--r--drivers/media/usb/usbvision/usbvision-video.c2
-rw-r--r--drivers/media/v4l2-core/tuner-core.c6
-rw-r--r--drivers/staging/media/davinci_vpfe/vpfe_video.c2
-rw-r--r--drivers/staging/media/go7007/go7007-v4l2.c2
-rw-r--r--drivers/staging/media/go7007/s2250-board.c2
-rw-r--r--drivers/staging/media/go7007/saa7134-go7007.c4
-rw-r--r--include/media/v4l2-subdev.h6
60 files changed, 107 insertions, 91 deletions
diff --git a/drivers/media/i2c/adv7180.c b/drivers/media/i2c/adv7180.c
index 5e638b159452..ac1cdbe251a3 100644
--- a/drivers/media/i2c/adv7180.c
+++ b/drivers/media/i2c/adv7180.c
@@ -461,6 +461,7 @@ static int adv7180_g_mbus_config(struct v4l2_subdev *sd,
461} 461}
462 462
463static const struct v4l2_subdev_video_ops adv7180_video_ops = { 463static const struct v4l2_subdev_video_ops adv7180_video_ops = {
464 .s_std = adv7180_s_std,
464 .querystd = adv7180_querystd, 465 .querystd = adv7180_querystd,
465 .g_input_status = adv7180_g_input_status, 466 .g_input_status = adv7180_g_input_status,
466 .s_routing = adv7180_s_routing, 467 .s_routing = adv7180_s_routing,
@@ -472,7 +473,6 @@ static const struct v4l2_subdev_video_ops adv7180_video_ops = {
472}; 473};
473 474
474static const struct v4l2_subdev_core_ops adv7180_core_ops = { 475static const struct v4l2_subdev_core_ops adv7180_core_ops = {
475 .s_std = adv7180_s_std,
476 .s_power = adv7180_s_power, 476 .s_power = adv7180_s_power,
477}; 477};
478 478
diff --git a/drivers/media/i2c/adv7183.c b/drivers/media/i2c/adv7183.c
index d45e0e3a781d..df461b07b2f7 100644
--- a/drivers/media/i2c/adv7183.c
+++ b/drivers/media/i2c/adv7183.c
@@ -501,8 +501,6 @@ static const struct v4l2_ctrl_ops adv7183_ctrl_ops = {
501 501
502static const struct v4l2_subdev_core_ops adv7183_core_ops = { 502static const struct v4l2_subdev_core_ops adv7183_core_ops = {
503 .log_status = adv7183_log_status, 503 .log_status = adv7183_log_status,
504 .g_std = adv7183_g_std,
505 .s_std = adv7183_s_std,
506 .reset = adv7183_reset, 504 .reset = adv7183_reset,
507#ifdef CONFIG_VIDEO_ADV_DEBUG 505#ifdef CONFIG_VIDEO_ADV_DEBUG
508 .g_register = adv7183_g_register, 506 .g_register = adv7183_g_register,
@@ -511,6 +509,8 @@ static const struct v4l2_subdev_core_ops adv7183_core_ops = {
511}; 509};
512 510
513static const struct v4l2_subdev_video_ops adv7183_video_ops = { 511static const struct v4l2_subdev_video_ops adv7183_video_ops = {
512 .g_std = adv7183_g_std,
513 .s_std = adv7183_s_std,
514 .s_routing = adv7183_s_routing, 514 .s_routing = adv7183_s_routing,
515 .querystd = adv7183_querystd, 515 .querystd = adv7183_querystd,
516 .g_input_status = adv7183_g_input_status, 516 .g_input_status = adv7183_g_input_status,
diff --git a/drivers/media/i2c/adv7842.c b/drivers/media/i2c/adv7842.c
index 06c25c3fa3a9..6a4d389c749c 100644
--- a/drivers/media/i2c/adv7842.c
+++ b/drivers/media/i2c/adv7842.c
@@ -2873,8 +2873,6 @@ static const struct v4l2_ctrl_ops adv7842_ctrl_ops = {
2873 2873
2874static const struct v4l2_subdev_core_ops adv7842_core_ops = { 2874static const struct v4l2_subdev_core_ops adv7842_core_ops = {
2875 .log_status = adv7842_log_status, 2875 .log_status = adv7842_log_status,
2876 .g_std = adv7842_g_std,
2877 .s_std = adv7842_s_std,
2878 .ioctl = adv7842_ioctl, 2876 .ioctl = adv7842_ioctl,
2879 .interrupt_service_routine = adv7842_isr, 2877 .interrupt_service_routine = adv7842_isr,
2880#ifdef CONFIG_VIDEO_ADV_DEBUG 2878#ifdef CONFIG_VIDEO_ADV_DEBUG
@@ -2884,6 +2882,8 @@ static const struct v4l2_subdev_core_ops adv7842_core_ops = {
2884}; 2882};
2885 2883
2886static const struct v4l2_subdev_video_ops adv7842_video_ops = { 2884static const struct v4l2_subdev_video_ops adv7842_video_ops = {
2885 .g_std = adv7842_g_std,
2886 .s_std = adv7842_s_std,
2887 .s_routing = adv7842_s_routing, 2887 .s_routing = adv7842_s_routing,
2888 .querystd = adv7842_querystd, 2888 .querystd = adv7842_querystd,
2889 .g_input_status = adv7842_g_input_status, 2889 .g_input_status = adv7842_g_input_status,
diff --git a/drivers/media/i2c/bt819.c b/drivers/media/i2c/bt819.c
index 369cf6ff88f7..76b334a6a56d 100644
--- a/drivers/media/i2c/bt819.c
+++ b/drivers/media/i2c/bt819.c
@@ -387,10 +387,10 @@ static const struct v4l2_subdev_core_ops bt819_core_ops = {
387 .s_ctrl = v4l2_subdev_s_ctrl, 387 .s_ctrl = v4l2_subdev_s_ctrl,
388 .queryctrl = v4l2_subdev_queryctrl, 388 .queryctrl = v4l2_subdev_queryctrl,
389 .querymenu = v4l2_subdev_querymenu, 389 .querymenu = v4l2_subdev_querymenu,
390 .s_std = bt819_s_std,
391}; 390};
392 391
393static const struct v4l2_subdev_video_ops bt819_video_ops = { 392static const struct v4l2_subdev_video_ops bt819_video_ops = {
393 .s_std = bt819_s_std,
394 .s_routing = bt819_s_routing, 394 .s_routing = bt819_s_routing,
395 .s_stream = bt819_s_stream, 395 .s_stream = bt819_s_stream,
396 .querystd = bt819_querystd, 396 .querystd = bt819_querystd,
diff --git a/drivers/media/i2c/cx25840/cx25840-core.c b/drivers/media/i2c/cx25840/cx25840-core.c
index 2e3771d57354..e453a3ffe7d1 100644
--- a/drivers/media/i2c/cx25840/cx25840-core.c
+++ b/drivers/media/i2c/cx25840/cx25840-core.c
@@ -5041,8 +5041,6 @@ static const struct v4l2_subdev_core_ops cx25840_core_ops = {
5041 .g_ext_ctrls = v4l2_subdev_g_ext_ctrls, 5041 .g_ext_ctrls = v4l2_subdev_g_ext_ctrls,
5042 .queryctrl = v4l2_subdev_queryctrl, 5042 .queryctrl = v4l2_subdev_queryctrl,
5043 .querymenu = v4l2_subdev_querymenu, 5043 .querymenu = v4l2_subdev_querymenu,
5044 .s_std = cx25840_s_std,
5045 .g_std = cx25840_g_std,
5046 .reset = cx25840_reset, 5044 .reset = cx25840_reset,
5047 .load_fw = cx25840_load_fw, 5045 .load_fw = cx25840_load_fw,
5048 .s_io_pin_config = common_s_io_pin_config, 5046 .s_io_pin_config = common_s_io_pin_config,
@@ -5067,6 +5065,8 @@ static const struct v4l2_subdev_audio_ops cx25840_audio_ops = {
5067}; 5065};
5068 5066
5069static const struct v4l2_subdev_video_ops cx25840_video_ops = { 5067static const struct v4l2_subdev_video_ops cx25840_video_ops = {
5068 .s_std = cx25840_s_std,
5069 .g_std = cx25840_g_std,
5070 .s_routing = cx25840_s_video_routing, 5070 .s_routing = cx25840_s_video_routing,
5071 .s_mbus_fmt = cx25840_s_mbus_fmt, 5071 .s_mbus_fmt = cx25840_s_mbus_fmt,
5072 .s_stream = cx25840_s_stream, 5072 .s_stream = cx25840_s_stream,
diff --git a/drivers/media/i2c/ks0127.c b/drivers/media/i2c/ks0127.c
index c3e94ae82c03..25b81bc58c81 100644
--- a/drivers/media/i2c/ks0127.c
+++ b/drivers/media/i2c/ks0127.c
@@ -648,11 +648,8 @@ static int ks0127_g_input_status(struct v4l2_subdev *sd, u32 *status)
648 648
649/* ----------------------------------------------------------------------- */ 649/* ----------------------------------------------------------------------- */
650 650
651static const struct v4l2_subdev_core_ops ks0127_core_ops = {
652 .s_std = ks0127_s_std,
653};
654
655static const struct v4l2_subdev_video_ops ks0127_video_ops = { 651static const struct v4l2_subdev_video_ops ks0127_video_ops = {
652 .s_std = ks0127_s_std,
656 .s_routing = ks0127_s_routing, 653 .s_routing = ks0127_s_routing,
657 .s_stream = ks0127_s_stream, 654 .s_stream = ks0127_s_stream,
658 .querystd = ks0127_querystd, 655 .querystd = ks0127_querystd,
@@ -660,7 +657,6 @@ static const struct v4l2_subdev_video_ops ks0127_video_ops = {
660}; 657};
661 658
662static const struct v4l2_subdev_ops ks0127_ops = { 659static const struct v4l2_subdev_ops ks0127_ops = {
663 .core = &ks0127_core_ops,
664 .video = &ks0127_video_ops, 660 .video = &ks0127_video_ops,
665}; 661};
666 662
diff --git a/drivers/media/i2c/ml86v7667.c b/drivers/media/i2c/ml86v7667.c
index a9110d8bbbcd..2cace7313a22 100644
--- a/drivers/media/i2c/ml86v7667.c
+++ b/drivers/media/i2c/ml86v7667.c
@@ -276,6 +276,7 @@ static const struct v4l2_ctrl_ops ml86v7667_ctrl_ops = {
276}; 276};
277 277
278static struct v4l2_subdev_video_ops ml86v7667_subdev_video_ops = { 278static struct v4l2_subdev_video_ops ml86v7667_subdev_video_ops = {
279 .s_std = ml86v7667_s_std,
279 .querystd = ml86v7667_querystd, 280 .querystd = ml86v7667_querystd,
280 .g_input_status = ml86v7667_g_input_status, 281 .g_input_status = ml86v7667_g_input_status,
281 .enum_mbus_fmt = ml86v7667_enum_mbus_fmt, 282 .enum_mbus_fmt = ml86v7667_enum_mbus_fmt,
@@ -286,7 +287,6 @@ static struct v4l2_subdev_video_ops ml86v7667_subdev_video_ops = {
286}; 287};
287 288
288static struct v4l2_subdev_core_ops ml86v7667_subdev_core_ops = { 289static struct v4l2_subdev_core_ops ml86v7667_subdev_core_ops = {
289 .s_std = ml86v7667_s_std,
290#ifdef CONFIG_VIDEO_ADV_DEBUG 290#ifdef CONFIG_VIDEO_ADV_DEBUG
291 .g_register = ml86v7667_g_register, 291 .g_register = ml86v7667_g_register,
292 .s_register = ml86v7667_s_register, 292 .s_register = ml86v7667_s_register,
diff --git a/drivers/media/i2c/msp3400-driver.c b/drivers/media/i2c/msp3400-driver.c
index 8190fec68080..4d9c6bc34265 100644
--- a/drivers/media/i2c/msp3400-driver.c
+++ b/drivers/media/i2c/msp3400-driver.c
@@ -649,10 +649,10 @@ static const struct v4l2_subdev_core_ops msp_core_ops = {
649 .s_ctrl = v4l2_subdev_s_ctrl, 649 .s_ctrl = v4l2_subdev_s_ctrl,
650 .queryctrl = v4l2_subdev_queryctrl, 650 .queryctrl = v4l2_subdev_queryctrl,
651 .querymenu = v4l2_subdev_querymenu, 651 .querymenu = v4l2_subdev_querymenu,
652 .s_std = msp_s_std,
653}; 652};
654 653
655static const struct v4l2_subdev_video_ops msp_video_ops = { 654static const struct v4l2_subdev_video_ops msp_video_ops = {
655 .s_std = msp_s_std,
656 .querystd = msp_querystd, 656 .querystd = msp_querystd,
657}; 657};
658 658
diff --git a/drivers/media/i2c/saa6752hs.c b/drivers/media/i2c/saa6752hs.c
index 8272c0b9c5bf..04e9e55018a5 100644
--- a/drivers/media/i2c/saa6752hs.c
+++ b/drivers/media/i2c/saa6752hs.c
@@ -643,10 +643,10 @@ static const struct v4l2_ctrl_ops saa6752hs_ctrl_ops = {
643 643
644static const struct v4l2_subdev_core_ops saa6752hs_core_ops = { 644static const struct v4l2_subdev_core_ops saa6752hs_core_ops = {
645 .init = saa6752hs_init, 645 .init = saa6752hs_init,
646 .s_std = saa6752hs_s_std,
647}; 646};
648 647
649static const struct v4l2_subdev_video_ops saa6752hs_video_ops = { 648static const struct v4l2_subdev_video_ops saa6752hs_video_ops = {
649 .s_std = saa6752hs_s_std,
650 .s_mbus_fmt = saa6752hs_s_mbus_fmt, 650 .s_mbus_fmt = saa6752hs_s_mbus_fmt,
651 .try_mbus_fmt = saa6752hs_try_mbus_fmt, 651 .try_mbus_fmt = saa6752hs_try_mbus_fmt,
652 .g_mbus_fmt = saa6752hs_g_mbus_fmt, 652 .g_mbus_fmt = saa6752hs_g_mbus_fmt,
diff --git a/drivers/media/i2c/saa7110.c b/drivers/media/i2c/saa7110.c
index ac43e929a1d6..99689ee57d7e 100644
--- a/drivers/media/i2c/saa7110.c
+++ b/drivers/media/i2c/saa7110.c
@@ -365,10 +365,10 @@ static const struct v4l2_subdev_core_ops saa7110_core_ops = {
365 .s_ctrl = v4l2_subdev_s_ctrl, 365 .s_ctrl = v4l2_subdev_s_ctrl,
366 .queryctrl = v4l2_subdev_queryctrl, 366 .queryctrl = v4l2_subdev_queryctrl,
367 .querymenu = v4l2_subdev_querymenu, 367 .querymenu = v4l2_subdev_querymenu,
368 .s_std = saa7110_s_std,
369}; 368};
370 369
371static const struct v4l2_subdev_video_ops saa7110_video_ops = { 370static const struct v4l2_subdev_video_ops saa7110_video_ops = {
371 .s_std = saa7110_s_std,
372 .s_routing = saa7110_s_routing, 372 .s_routing = saa7110_s_routing,
373 .s_stream = saa7110_s_stream, 373 .s_stream = saa7110_s_stream,
374 .querystd = saa7110_querystd, 374 .querystd = saa7110_querystd,
diff --git a/drivers/media/i2c/saa7115.c b/drivers/media/i2c/saa7115.c
index afdbcb045cee..35a44648150e 100644
--- a/drivers/media/i2c/saa7115.c
+++ b/drivers/media/i2c/saa7115.c
@@ -1582,7 +1582,6 @@ static const struct v4l2_subdev_core_ops saa711x_core_ops = {
1582 .s_ctrl = v4l2_subdev_s_ctrl, 1582 .s_ctrl = v4l2_subdev_s_ctrl,
1583 .queryctrl = v4l2_subdev_queryctrl, 1583 .queryctrl = v4l2_subdev_queryctrl,
1584 .querymenu = v4l2_subdev_querymenu, 1584 .querymenu = v4l2_subdev_querymenu,
1585 .s_std = saa711x_s_std,
1586 .reset = saa711x_reset, 1585 .reset = saa711x_reset,
1587 .s_gpio = saa711x_s_gpio, 1586 .s_gpio = saa711x_s_gpio,
1588#ifdef CONFIG_VIDEO_ADV_DEBUG 1587#ifdef CONFIG_VIDEO_ADV_DEBUG
@@ -1601,6 +1600,7 @@ static const struct v4l2_subdev_audio_ops saa711x_audio_ops = {
1601}; 1600};
1602 1601
1603static const struct v4l2_subdev_video_ops saa711x_video_ops = { 1602static const struct v4l2_subdev_video_ops saa711x_video_ops = {
1603 .s_std = saa711x_s_std,
1604 .s_routing = saa711x_s_routing, 1604 .s_routing = saa711x_s_routing,
1605 .s_crystal_freq = saa711x_s_crystal_freq, 1605 .s_crystal_freq = saa711x_s_crystal_freq,
1606 .s_mbus_fmt = saa711x_s_mbus_fmt, 1606 .s_mbus_fmt = saa711x_s_mbus_fmt,
diff --git a/drivers/media/i2c/saa717x.c b/drivers/media/i2c/saa717x.c
index 401ca114ab99..6922a9f9a5cd 100644
--- a/drivers/media/i2c/saa717x.c
+++ b/drivers/media/i2c/saa717x.c
@@ -1198,7 +1198,6 @@ static const struct v4l2_subdev_core_ops saa717x_core_ops = {
1198 .g_register = saa717x_g_register, 1198 .g_register = saa717x_g_register,
1199 .s_register = saa717x_s_register, 1199 .s_register = saa717x_s_register,
1200#endif 1200#endif
1201 .s_std = saa717x_s_std,
1202 .g_ext_ctrls = v4l2_subdev_g_ext_ctrls, 1201 .g_ext_ctrls = v4l2_subdev_g_ext_ctrls,
1203 .try_ext_ctrls = v4l2_subdev_try_ext_ctrls, 1202 .try_ext_ctrls = v4l2_subdev_try_ext_ctrls,
1204 .s_ext_ctrls = v4l2_subdev_s_ext_ctrls, 1203 .s_ext_ctrls = v4l2_subdev_s_ext_ctrls,
@@ -1216,6 +1215,7 @@ static const struct v4l2_subdev_tuner_ops saa717x_tuner_ops = {
1216}; 1215};
1217 1216
1218static const struct v4l2_subdev_video_ops saa717x_video_ops = { 1217static const struct v4l2_subdev_video_ops saa717x_video_ops = {
1218 .s_std = saa717x_s_std,
1219 .s_routing = saa717x_s_video_routing, 1219 .s_routing = saa717x_s_video_routing,
1220 .s_mbus_fmt = saa717x_s_mbus_fmt, 1220 .s_mbus_fmt = saa717x_s_mbus_fmt,
1221 .s_stream = saa717x_s_stream, 1221 .s_stream = saa717x_s_stream,
diff --git a/drivers/media/i2c/saa7191.c b/drivers/media/i2c/saa7191.c
index 606a4baf944d..8e9699268a63 100644
--- a/drivers/media/i2c/saa7191.c
+++ b/drivers/media/i2c/saa7191.c
@@ -573,10 +573,10 @@ static int saa7191_g_input_status(struct v4l2_subdev *sd, u32 *status)
573static const struct v4l2_subdev_core_ops saa7191_core_ops = { 573static const struct v4l2_subdev_core_ops saa7191_core_ops = {
574 .g_ctrl = saa7191_g_ctrl, 574 .g_ctrl = saa7191_g_ctrl,
575 .s_ctrl = saa7191_s_ctrl, 575 .s_ctrl = saa7191_s_ctrl,
576 .s_std = saa7191_s_std,
577}; 576};
578 577
579static const struct v4l2_subdev_video_ops saa7191_video_ops = { 578static const struct v4l2_subdev_video_ops saa7191_video_ops = {
579 .s_std = saa7191_s_std,
580 .s_routing = saa7191_s_routing, 580 .s_routing = saa7191_s_routing,
581 .querystd = saa7191_querystd, 581 .querystd = saa7191_querystd,
582 .g_input_status = saa7191_g_input_status, 582 .g_input_status = saa7191_g_input_status,
diff --git a/drivers/media/i2c/soc_camera/tw9910.c b/drivers/media/i2c/soc_camera/tw9910.c
index 02a51ff57e5d..416402eb4f82 100644
--- a/drivers/media/i2c/soc_camera/tw9910.c
+++ b/drivers/media/i2c/soc_camera/tw9910.c
@@ -814,8 +814,6 @@ done:
814} 814}
815 815
816static struct v4l2_subdev_core_ops tw9910_subdev_core_ops = { 816static struct v4l2_subdev_core_ops tw9910_subdev_core_ops = {
817 .s_std = tw9910_s_std,
818 .g_std = tw9910_g_std,
819#ifdef CONFIG_VIDEO_ADV_DEBUG 817#ifdef CONFIG_VIDEO_ADV_DEBUG
820 .g_register = tw9910_g_register, 818 .g_register = tw9910_g_register,
821 .s_register = tw9910_s_register, 819 .s_register = tw9910_s_register,
@@ -879,6 +877,8 @@ static int tw9910_g_tvnorms(struct v4l2_subdev *sd, v4l2_std_id *norm)
879} 877}
880 878
881static struct v4l2_subdev_video_ops tw9910_subdev_video_ops = { 879static struct v4l2_subdev_video_ops tw9910_subdev_video_ops = {
880 .s_std = tw9910_s_std,
881 .g_std = tw9910_g_std,
882 .s_stream = tw9910_s_stream, 882 .s_stream = tw9910_s_stream,
883 .g_mbus_fmt = tw9910_g_fmt, 883 .g_mbus_fmt = tw9910_g_fmt,
884 .s_mbus_fmt = tw9910_s_fmt, 884 .s_mbus_fmt = tw9910_s_fmt,
diff --git a/drivers/media/i2c/sony-btf-mpx.c b/drivers/media/i2c/sony-btf-mpx.c
index 32d82320b485..1da8004f5a8e 100644
--- a/drivers/media/i2c/sony-btf-mpx.c
+++ b/drivers/media/i2c/sony-btf-mpx.c
@@ -327,18 +327,18 @@ static int sony_btf_mpx_s_tuner(struct v4l2_subdev *sd, const struct v4l2_tuner
327 327
328/* --------------------------------------------------------------------------*/ 328/* --------------------------------------------------------------------------*/
329 329
330static const struct v4l2_subdev_core_ops sony_btf_mpx_core_ops = {
331 .s_std = sony_btf_mpx_s_std,
332};
333
334static const struct v4l2_subdev_tuner_ops sony_btf_mpx_tuner_ops = { 330static const struct v4l2_subdev_tuner_ops sony_btf_mpx_tuner_ops = {
335 .s_tuner = sony_btf_mpx_s_tuner, 331 .s_tuner = sony_btf_mpx_s_tuner,
336 .g_tuner = sony_btf_mpx_g_tuner, 332 .g_tuner = sony_btf_mpx_g_tuner,
337}; 333};
338 334
335static const struct v4l2_subdev_video_ops sony_btf_mpx_video_ops = {
336 .s_std = sony_btf_mpx_s_std,
337};
338
339static const struct v4l2_subdev_ops sony_btf_mpx_ops = { 339static const struct v4l2_subdev_ops sony_btf_mpx_ops = {
340 .core = &sony_btf_mpx_core_ops,
341 .tuner = &sony_btf_mpx_tuner_ops, 340 .tuner = &sony_btf_mpx_tuner_ops,
341 .video = &sony_btf_mpx_video_ops,
342}; 342};
343 343
344/* --------------------------------------------------------------------------*/ 344/* --------------------------------------------------------------------------*/
diff --git a/drivers/media/i2c/tvaudio.c b/drivers/media/i2c/tvaudio.c
index d76c53a8f027..070c152da95a 100644
--- a/drivers/media/i2c/tvaudio.c
+++ b/drivers/media/i2c/tvaudio.c
@@ -1862,7 +1862,6 @@ static const struct v4l2_subdev_core_ops tvaudio_core_ops = {
1862 .s_ctrl = v4l2_subdev_s_ctrl, 1862 .s_ctrl = v4l2_subdev_s_ctrl,
1863 .queryctrl = v4l2_subdev_queryctrl, 1863 .queryctrl = v4l2_subdev_queryctrl,
1864 .querymenu = v4l2_subdev_querymenu, 1864 .querymenu = v4l2_subdev_querymenu,
1865 .s_std = tvaudio_s_std,
1866}; 1865};
1867 1866
1868static const struct v4l2_subdev_tuner_ops tvaudio_tuner_ops = { 1867static const struct v4l2_subdev_tuner_ops tvaudio_tuner_ops = {
@@ -1876,10 +1875,15 @@ static const struct v4l2_subdev_audio_ops tvaudio_audio_ops = {
1876 .s_routing = tvaudio_s_routing, 1875 .s_routing = tvaudio_s_routing,
1877}; 1876};
1878 1877
1878static const struct v4l2_subdev_video_ops tvaudio_video_ops = {
1879 .s_std = tvaudio_s_std,
1880};
1881
1879static const struct v4l2_subdev_ops tvaudio_ops = { 1882static const struct v4l2_subdev_ops tvaudio_ops = {
1880 .core = &tvaudio_core_ops, 1883 .core = &tvaudio_core_ops,
1881 .tuner = &tvaudio_tuner_ops, 1884 .tuner = &tvaudio_tuner_ops,
1882 .audio = &tvaudio_audio_ops, 1885 .audio = &tvaudio_audio_ops,
1886 .video = &tvaudio_video_ops,
1883}; 1887};
1884 1888
1885/* ----------------------------------------------------------------------- */ 1889/* ----------------------------------------------------------------------- */
diff --git a/drivers/media/i2c/tvp514x.c b/drivers/media/i2c/tvp514x.c
index ca001178c5bf..b9dabc9f4050 100644
--- a/drivers/media/i2c/tvp514x.c
+++ b/drivers/media/i2c/tvp514x.c
@@ -1010,10 +1010,10 @@ static const struct v4l2_subdev_core_ops tvp514x_core_ops = {
1010 .s_ctrl = v4l2_subdev_s_ctrl, 1010 .s_ctrl = v4l2_subdev_s_ctrl,
1011 .queryctrl = v4l2_subdev_queryctrl, 1011 .queryctrl = v4l2_subdev_queryctrl,
1012 .querymenu = v4l2_subdev_querymenu, 1012 .querymenu = v4l2_subdev_querymenu,
1013 .s_std = tvp514x_s_std,
1014}; 1013};
1015 1014
1016static const struct v4l2_subdev_video_ops tvp514x_video_ops = { 1015static const struct v4l2_subdev_video_ops tvp514x_video_ops = {
1016 .s_std = tvp514x_s_std,
1017 .s_routing = tvp514x_s_routing, 1017 .s_routing = tvp514x_s_routing,
1018 .querystd = tvp514x_querystd, 1018 .querystd = tvp514x_querystd,
1019 .enum_mbus_fmt = tvp514x_enum_mbus_fmt, 1019 .enum_mbus_fmt = tvp514x_enum_mbus_fmt,
diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c
index 07dee4439c2f..a9121254e37a 100644
--- a/drivers/media/i2c/tvp5150.c
+++ b/drivers/media/i2c/tvp5150.c
@@ -1063,7 +1063,6 @@ static const struct v4l2_ctrl_ops tvp5150_ctrl_ops = {
1063 1063
1064static const struct v4l2_subdev_core_ops tvp5150_core_ops = { 1064static const struct v4l2_subdev_core_ops tvp5150_core_ops = {
1065 .log_status = tvp5150_log_status, 1065 .log_status = tvp5150_log_status,
1066 .s_std = tvp5150_s_std,
1067 .reset = tvp5150_reset, 1066 .reset = tvp5150_reset,
1068#ifdef CONFIG_VIDEO_ADV_DEBUG 1067#ifdef CONFIG_VIDEO_ADV_DEBUG
1069 .g_register = tvp5150_g_register, 1068 .g_register = tvp5150_g_register,
@@ -1076,6 +1075,7 @@ static const struct v4l2_subdev_tuner_ops tvp5150_tuner_ops = {
1076}; 1075};
1077 1076
1078static const struct v4l2_subdev_video_ops tvp5150_video_ops = { 1077static const struct v4l2_subdev_video_ops tvp5150_video_ops = {
1078 .s_std = tvp5150_s_std,
1079 .s_routing = tvp5150_s_routing, 1079 .s_routing = tvp5150_s_routing,
1080 .enum_mbus_fmt = tvp5150_enum_mbus_fmt, 1080 .enum_mbus_fmt = tvp5150_enum_mbus_fmt,
1081 .s_mbus_fmt = tvp5150_mbus_fmt, 1081 .s_mbus_fmt = tvp5150_mbus_fmt,
diff --git a/drivers/media/i2c/tw2804.c b/drivers/media/i2c/tw2804.c
index f58607df6193..7347480c0b0c 100644
--- a/drivers/media/i2c/tw2804.c
+++ b/drivers/media/i2c/tw2804.c
@@ -342,12 +342,12 @@ static const struct v4l2_ctrl_ops tw2804_ctrl_ops = {
342}; 342};
343 343
344static const struct v4l2_subdev_video_ops tw2804_video_ops = { 344static const struct v4l2_subdev_video_ops tw2804_video_ops = {
345 .s_std = tw2804_s_std,
345 .s_routing = tw2804_s_video_routing, 346 .s_routing = tw2804_s_video_routing,
346}; 347};
347 348
348static const struct v4l2_subdev_core_ops tw2804_core_ops = { 349static const struct v4l2_subdev_core_ops tw2804_core_ops = {
349 .log_status = tw2804_log_status, 350 .log_status = tw2804_log_status,
350 .s_std = tw2804_s_std,
351}; 351};
352 352
353static const struct v4l2_subdev_ops tw2804_ops = { 353static const struct v4l2_subdev_ops tw2804_ops = {
diff --git a/drivers/media/i2c/tw9903.c b/drivers/media/i2c/tw9903.c
index 285b759a5f7f..12c7d211a4a4 100644
--- a/drivers/media/i2c/tw9903.c
+++ b/drivers/media/i2c/tw9903.c
@@ -187,10 +187,10 @@ static const struct v4l2_ctrl_ops tw9903_ctrl_ops = {
187 187
188static const struct v4l2_subdev_core_ops tw9903_core_ops = { 188static const struct v4l2_subdev_core_ops tw9903_core_ops = {
189 .log_status = tw9903_log_status, 189 .log_status = tw9903_log_status,
190 .s_std = tw9903_s_std,
191}; 190};
192 191
193static const struct v4l2_subdev_video_ops tw9903_video_ops = { 192static const struct v4l2_subdev_video_ops tw9903_video_ops = {
193 .s_std = tw9903_s_std,
194 .s_routing = tw9903_s_video_routing, 194 .s_routing = tw9903_s_video_routing,
195}; 195};
196 196
diff --git a/drivers/media/i2c/tw9906.c b/drivers/media/i2c/tw9906.c
index f6bef25bd9ce..2672d89265ff 100644
--- a/drivers/media/i2c/tw9906.c
+++ b/drivers/media/i2c/tw9906.c
@@ -157,10 +157,10 @@ static const struct v4l2_ctrl_ops tw9906_ctrl_ops = {
157 157
158static const struct v4l2_subdev_core_ops tw9906_core_ops = { 158static const struct v4l2_subdev_core_ops tw9906_core_ops = {
159 .log_status = tw9906_log_status, 159 .log_status = tw9906_log_status,
160 .s_std = tw9906_s_std,
161}; 160};
162 161
163static const struct v4l2_subdev_video_ops tw9906_video_ops = { 162static const struct v4l2_subdev_video_ops tw9906_video_ops = {
163 .s_std = tw9906_s_std,
164 .s_routing = tw9906_s_video_routing, 164 .s_routing = tw9906_s_video_routing,
165}; 165};
166 166
diff --git a/drivers/media/i2c/vp27smpx.c b/drivers/media/i2c/vp27smpx.c
index 6a3a3ff7ee6a..819ab6d12989 100644
--- a/drivers/media/i2c/vp27smpx.c
+++ b/drivers/media/i2c/vp27smpx.c
@@ -124,7 +124,6 @@ static int vp27smpx_log_status(struct v4l2_subdev *sd)
124 124
125static const struct v4l2_subdev_core_ops vp27smpx_core_ops = { 125static const struct v4l2_subdev_core_ops vp27smpx_core_ops = {
126 .log_status = vp27smpx_log_status, 126 .log_status = vp27smpx_log_status,
127 .s_std = vp27smpx_s_std,
128}; 127};
129 128
130static const struct v4l2_subdev_tuner_ops vp27smpx_tuner_ops = { 129static const struct v4l2_subdev_tuner_ops vp27smpx_tuner_ops = {
@@ -133,9 +132,14 @@ static const struct v4l2_subdev_tuner_ops vp27smpx_tuner_ops = {
133 .g_tuner = vp27smpx_g_tuner, 132 .g_tuner = vp27smpx_g_tuner,
134}; 133};
135 134
135static const struct v4l2_subdev_video_ops vp27smpx_video_ops = {
136 .s_std = vp27smpx_s_std,
137};
138
136static const struct v4l2_subdev_ops vp27smpx_ops = { 139static const struct v4l2_subdev_ops vp27smpx_ops = {
137 .core = &vp27smpx_core_ops, 140 .core = &vp27smpx_core_ops,
138 .tuner = &vp27smpx_tuner_ops, 141 .tuner = &vp27smpx_tuner_ops,
142 .video = &vp27smpx_video_ops,
139}; 143};
140 144
141/* ----------------------------------------------------------------------- */ 145/* ----------------------------------------------------------------------- */
diff --git a/drivers/media/i2c/vpx3220.c b/drivers/media/i2c/vpx3220.c
index ece90df6a043..016e766e72ba 100644
--- a/drivers/media/i2c/vpx3220.c
+++ b/drivers/media/i2c/vpx3220.c
@@ -457,10 +457,10 @@ static const struct v4l2_subdev_core_ops vpx3220_core_ops = {
457 .s_ctrl = v4l2_subdev_s_ctrl, 457 .s_ctrl = v4l2_subdev_s_ctrl,
458 .queryctrl = v4l2_subdev_queryctrl, 458 .queryctrl = v4l2_subdev_queryctrl,
459 .querymenu = v4l2_subdev_querymenu, 459 .querymenu = v4l2_subdev_querymenu,
460 .s_std = vpx3220_s_std,
461}; 460};
462 461
463static const struct v4l2_subdev_video_ops vpx3220_video_ops = { 462static const struct v4l2_subdev_video_ops vpx3220_video_ops = {
463 .s_std = vpx3220_s_std,
464 .s_routing = vpx3220_s_routing, 464 .s_routing = vpx3220_s_routing,
465 .s_stream = vpx3220_s_stream, 465 .s_stream = vpx3220_s_stream,
466 .querystd = vpx3220_querystd, 466 .querystd = vpx3220_querystd,
diff --git a/drivers/media/pci/bt8xx/bttv-driver.c b/drivers/media/pci/bt8xx/bttv-driver.c
index afcd53bfcf8e..da780f42b121 100644
--- a/drivers/media/pci/bt8xx/bttv-driver.c
+++ b/drivers/media/pci/bt8xx/bttv-driver.c
@@ -1182,7 +1182,7 @@ set_tvnorm(struct bttv *btv, unsigned int norm)
1182 break; 1182 break;
1183 } 1183 }
1184 id = tvnorm->v4l2_id; 1184 id = tvnorm->v4l2_id;
1185 bttv_call_all(btv, core, s_std, id); 1185 bttv_call_all(btv, video, s_std, id);
1186 1186
1187 return 0; 1187 return 0;
1188} 1188}
diff --git a/drivers/media/pci/cx18/cx18-av-core.c b/drivers/media/pci/cx18/cx18-av-core.c
index c4890a430dc6..2d3afe0431a9 100644
--- a/drivers/media/pci/cx18/cx18-av-core.c
+++ b/drivers/media/pci/cx18/cx18-av-core.c
@@ -1263,7 +1263,6 @@ static const struct v4l2_subdev_core_ops cx18_av_general_ops = {
1263 .log_status = cx18_av_log_status, 1263 .log_status = cx18_av_log_status,
1264 .load_fw = cx18_av_load_fw, 1264 .load_fw = cx18_av_load_fw,
1265 .reset = cx18_av_reset, 1265 .reset = cx18_av_reset,
1266 .s_std = cx18_av_s_std,
1267#ifdef CONFIG_VIDEO_ADV_DEBUG 1266#ifdef CONFIG_VIDEO_ADV_DEBUG
1268 .g_register = cx18_av_g_register, 1267 .g_register = cx18_av_g_register,
1269 .s_register = cx18_av_s_register, 1268 .s_register = cx18_av_s_register,
@@ -1283,6 +1282,7 @@ static const struct v4l2_subdev_audio_ops cx18_av_audio_ops = {
1283}; 1282};
1284 1283
1285static const struct v4l2_subdev_video_ops cx18_av_video_ops = { 1284static const struct v4l2_subdev_video_ops cx18_av_video_ops = {
1285 .s_std = cx18_av_s_std,
1286 .s_routing = cx18_av_s_video_routing, 1286 .s_routing = cx18_av_s_video_routing,
1287 .s_stream = cx18_av_s_stream, 1287 .s_stream = cx18_av_s_stream,
1288 .s_mbus_fmt = cx18_av_s_mbus_fmt, 1288 .s_mbus_fmt = cx18_av_s_mbus_fmt,
diff --git a/drivers/media/pci/cx18/cx18-fileops.c b/drivers/media/pci/cx18/cx18-fileops.c
index 4bfd865a4106..76a3b4ac541e 100644
--- a/drivers/media/pci/cx18/cx18-fileops.c
+++ b/drivers/media/pci/cx18/cx18-fileops.c
@@ -760,7 +760,7 @@ int cx18_v4l2_close(struct file *filp)
760 /* Mark that the radio is no longer in use */ 760 /* Mark that the radio is no longer in use */
761 clear_bit(CX18_F_I_RADIO_USER, &cx->i_flags); 761 clear_bit(CX18_F_I_RADIO_USER, &cx->i_flags);
762 /* Switch tuner to TV */ 762 /* Switch tuner to TV */
763 cx18_call_all(cx, core, s_std, cx->std); 763 cx18_call_all(cx, video, s_std, cx->std);
764 /* Select correct audio input (i.e. TV tuner or Line in) */ 764 /* Select correct audio input (i.e. TV tuner or Line in) */
765 cx18_audio_set_io(cx); 765 cx18_audio_set_io(cx);
766 if (atomic_read(&cx->ana_capturing) > 0) { 766 if (atomic_read(&cx->ana_capturing) > 0) {
diff --git a/drivers/media/pci/cx18/cx18-gpio.c b/drivers/media/pci/cx18/cx18-gpio.c
index 5374aeb0cd22..38dc6b8f8254 100644
--- a/drivers/media/pci/cx18/cx18-gpio.c
+++ b/drivers/media/pci/cx18/cx18-gpio.c
@@ -180,7 +180,6 @@ static int gpiomux_s_audio_routing(struct v4l2_subdev *sd,
180 180
181static const struct v4l2_subdev_core_ops gpiomux_core_ops = { 181static const struct v4l2_subdev_core_ops gpiomux_core_ops = {
182 .log_status = gpiomux_log_status, 182 .log_status = gpiomux_log_status,
183 .s_std = gpiomux_s_std,
184}; 183};
185 184
186static const struct v4l2_subdev_tuner_ops gpiomux_tuner_ops = { 185static const struct v4l2_subdev_tuner_ops gpiomux_tuner_ops = {
@@ -191,10 +190,15 @@ static const struct v4l2_subdev_audio_ops gpiomux_audio_ops = {
191 .s_routing = gpiomux_s_audio_routing, 190 .s_routing = gpiomux_s_audio_routing,
192}; 191};
193 192
193static const struct v4l2_subdev_video_ops gpiomux_video_ops = {
194 .s_std = gpiomux_s_std,
195};
196
194static const struct v4l2_subdev_ops gpiomux_ops = { 197static const struct v4l2_subdev_ops gpiomux_ops = {
195 .core = &gpiomux_core_ops, 198 .core = &gpiomux_core_ops,
196 .tuner = &gpiomux_tuner_ops, 199 .tuner = &gpiomux_tuner_ops,
197 .audio = &gpiomux_audio_ops, 200 .audio = &gpiomux_audio_ops,
201 .video = &gpiomux_video_ops,
198}; 202};
199 203
200/* 204/*
diff --git a/drivers/media/pci/cx18/cx18-ioctl.c b/drivers/media/pci/cx18/cx18-ioctl.c
index 1110bcb14e2f..fefb2cd35838 100644
--- a/drivers/media/pci/cx18/cx18-ioctl.c
+++ b/drivers/media/pci/cx18/cx18-ioctl.c
@@ -602,7 +602,7 @@ int cx18_s_std(struct file *file, void *fh, v4l2_std_id std)
602 (unsigned long long) cx->std); 602 (unsigned long long) cx->std);
603 603
604 /* Tuner */ 604 /* Tuner */
605 cx18_call_all(cx, core, s_std, cx->std); 605 cx18_call_all(cx, video, s_std, cx->std);
606 return 0; 606 return 0;
607} 607}
608 608
diff --git a/drivers/media/pci/cx23885/cx23885-video.c b/drivers/media/pci/cx23885/cx23885-video.c
index 7891f34157d1..e0a59523cf3c 100644
--- a/drivers/media/pci/cx23885/cx23885-video.c
+++ b/drivers/media/pci/cx23885/cx23885-video.c
@@ -326,7 +326,7 @@ int cx23885_set_tvnorm(struct cx23885_dev *dev, v4l2_std_id norm)
326 326
327 dev->tvnorm = norm; 327 dev->tvnorm = norm;
328 328
329 call_all(dev, core, s_std, norm); 329 call_all(dev, video, s_std, norm);
330 330
331 return 0; 331 return 0;
332} 332}
@@ -1589,7 +1589,7 @@ static int cx23885_set_freq_via_ops(struct cx23885_dev *dev,
1589 fe = &dev->ts1.analog_fe; 1589 fe = &dev->ts1.analog_fe;
1590 1590
1591 if (fe && fe->ops.tuner_ops.set_analog_params) { 1591 if (fe && fe->ops.tuner_ops.set_analog_params) {
1592 call_all(dev, core, s_std, dev->tvnorm); 1592 call_all(dev, video, s_std, dev->tvnorm);
1593 fe->ops.tuner_ops.set_analog_params(fe, &params); 1593 fe->ops.tuner_ops.set_analog_params(fe, &params);
1594 } 1594 }
1595 else 1595 else
diff --git a/drivers/media/pci/cx88/cx88-core.c b/drivers/media/pci/cx88/cx88-core.c
index ad59dc9235ae..e061c88b697e 100644
--- a/drivers/media/pci/cx88/cx88-core.c
+++ b/drivers/media/pci/cx88/cx88-core.c
@@ -1012,7 +1012,7 @@ int cx88_set_tvnorm(struct cx88_core *core, v4l2_std_id norm)
1012 set_tvaudio(core); 1012 set_tvaudio(core);
1013 1013
1014 // tell i2c chips 1014 // tell i2c chips
1015 call_all(core, core, s_std, norm); 1015 call_all(core, video, s_std, norm);
1016 1016
1017 /* The chroma_agc control should be inaccessible if the video format is SECAM */ 1017 /* The chroma_agc control should be inaccessible if the video format is SECAM */
1018 v4l2_ctrl_grab(core->chroma_agc, cxiformat == VideoFormatSECAM); 1018 v4l2_ctrl_grab(core->chroma_agc, cxiformat == VideoFormatSECAM);
diff --git a/drivers/media/pci/ivtv/ivtv-fileops.c b/drivers/media/pci/ivtv/ivtv-fileops.c
index 9caffd8aa995..e5ff6277ca85 100644
--- a/drivers/media/pci/ivtv/ivtv-fileops.c
+++ b/drivers/media/pci/ivtv/ivtv-fileops.c
@@ -894,7 +894,7 @@ int ivtv_v4l2_close(struct file *filp)
894 /* Mark that the radio is no longer in use */ 894 /* Mark that the radio is no longer in use */
895 clear_bit(IVTV_F_I_RADIO_USER, &itv->i_flags); 895 clear_bit(IVTV_F_I_RADIO_USER, &itv->i_flags);
896 /* Switch tuner to TV */ 896 /* Switch tuner to TV */
897 ivtv_call_all(itv, core, s_std, itv->std); 897 ivtv_call_all(itv, video, s_std, itv->std);
898 /* Select correct audio input (i.e. TV tuner or Line in) */ 898 /* Select correct audio input (i.e. TV tuner or Line in) */
899 ivtv_audio_set_io(itv); 899 ivtv_audio_set_io(itv);
900 if (itv->hw_flags & IVTV_HW_SAA711X) { 900 if (itv->hw_flags & IVTV_HW_SAA711X) {
diff --git a/drivers/media/pci/ivtv/ivtv-ioctl.c b/drivers/media/pci/ivtv/ivtv-ioctl.c
index 807b275a847e..b3667a00db3a 100644
--- a/drivers/media/pci/ivtv/ivtv-ioctl.c
+++ b/drivers/media/pci/ivtv/ivtv-ioctl.c
@@ -1090,7 +1090,7 @@ void ivtv_s_std_enc(struct ivtv *itv, v4l2_std_id std)
1090 itv->vbi.sliced_decoder_line_size = itv->is_60hz ? 272 : 284; 1090 itv->vbi.sliced_decoder_line_size = itv->is_60hz ? 272 : 284;
1091 1091
1092 /* Tuner */ 1092 /* Tuner */
1093 ivtv_call_all(itv, core, s_std, itv->std); 1093 ivtv_call_all(itv, video, s_std, itv->std);
1094} 1094}
1095 1095
1096void ivtv_s_std_dec(struct ivtv *itv, v4l2_std_id std) 1096void ivtv_s_std_dec(struct ivtv *itv, v4l2_std_id std)
diff --git a/drivers/media/pci/saa7134/saa7134-video.c b/drivers/media/pci/saa7134/saa7134-video.c
index f1452da0a76d..d37599980768 100644
--- a/drivers/media/pci/saa7134/saa7134-video.c
+++ b/drivers/media/pci/saa7134/saa7134-video.c
@@ -477,10 +477,10 @@ void saa7134_set_tvnorm_hw(struct saa7134_dev *dev)
477 saa7134_set_decoder(dev); 477 saa7134_set_decoder(dev);
478 478
479 if (card_in(dev, dev->ctl_input).tv) 479 if (card_in(dev, dev->ctl_input).tv)
480 saa_call_all(dev, core, s_std, dev->tvnorm->id); 480 saa_call_all(dev, video, s_std, dev->tvnorm->id);
481 /* Set the correct norm for the saa6752hs. This function 481 /* Set the correct norm for the saa6752hs. This function
482 does nothing if there is no saa6752hs. */ 482 does nothing if there is no saa6752hs. */
483 saa_call_empress(dev, core, s_std, dev->tvnorm->id); 483 saa_call_empress(dev, video, s_std, dev->tvnorm->id);
484} 484}
485 485
486static void set_h_prescale(struct saa7134_dev *dev, int task, int prescale) 486static void set_h_prescale(struct saa7134_dev *dev, int task, int prescale)
diff --git a/drivers/media/pci/saa7146/mxb.c b/drivers/media/pci/saa7146/mxb.c
index 33abe332d175..c4c8fce8f2b4 100644
--- a/drivers/media/pci/saa7146/mxb.c
+++ b/drivers/media/pci/saa7146/mxb.c
@@ -357,7 +357,7 @@ static int mxb_init_done(struct saa7146_dev* dev)
357 tea6420_route(mxb, 6); 357 tea6420_route(mxb, 6);
358 358
359 /* select video mode in saa7111a */ 359 /* select video mode in saa7111a */
360 saa7111a_call(mxb, core, s_std, std); 360 saa7111a_call(mxb, video, s_std, std);
361 361
362 /* select tuner-output on saa7111a */ 362 /* select tuner-output on saa7111a */
363 i = 0; 363 i = 0;
@@ -379,8 +379,8 @@ static int mxb_init_done(struct saa7146_dev* dev)
379 /* These two gpio calls set the GPIO pins that control the tda9820 */ 379 /* These two gpio calls set the GPIO pins that control the tda9820 */
380 saa7146_write(dev, GPIO_CTRL, 0x00404050); 380 saa7146_write(dev, GPIO_CTRL, 0x00404050);
381 saa7111a_call(mxb, core, s_gpio, 1); 381 saa7111a_call(mxb, core, s_gpio, 1);
382 saa7111a_call(mxb, core, s_std, std); 382 saa7111a_call(mxb, video, s_std, std);
383 tuner_call(mxb, core, s_std, std); 383 tuner_call(mxb, video, s_std, std);
384 384
385 /* switch to tuner-channel on tea6415c */ 385 /* switch to tuner-channel on tea6415c */
386 tea6415c_call(mxb, video, s_routing, 3, 17, 0); 386 tea6415c_call(mxb, video, s_routing, 3, 17, 0);
@@ -771,9 +771,9 @@ static int std_callback(struct saa7146_dev *dev, struct saa7146_standard *standa
771 /* These two gpio calls set the GPIO pins that control the tda9820 */ 771 /* These two gpio calls set the GPIO pins that control the tda9820 */
772 saa7146_write(dev, GPIO_CTRL, 0x00404050); 772 saa7146_write(dev, GPIO_CTRL, 0x00404050);
773 saa7111a_call(mxb, core, s_gpio, 0); 773 saa7111a_call(mxb, core, s_gpio, 0);
774 saa7111a_call(mxb, core, s_std, std); 774 saa7111a_call(mxb, video, s_std, std);
775 if (mxb->cur_input == 0) 775 if (mxb->cur_input == 0)
776 tuner_call(mxb, core, s_std, std); 776 tuner_call(mxb, video, s_std, std);
777 } else { 777 } else {
778 v4l2_std_id std = V4L2_STD_PAL_BG; 778 v4l2_std_id std = V4L2_STD_PAL_BG;
779 779
@@ -783,9 +783,9 @@ static int std_callback(struct saa7146_dev *dev, struct saa7146_standard *standa
783 /* These two gpio calls set the GPIO pins that control the tda9820 */ 783 /* These two gpio calls set the GPIO pins that control the tda9820 */
784 saa7146_write(dev, GPIO_CTRL, 0x00404050); 784 saa7146_write(dev, GPIO_CTRL, 0x00404050);
785 saa7111a_call(mxb, core, s_gpio, 1); 785 saa7111a_call(mxb, core, s_gpio, 1);
786 saa7111a_call(mxb, core, s_std, std); 786 saa7111a_call(mxb, video, s_std, std);
787 if (mxb->cur_input == 0) 787 if (mxb->cur_input == 0)
788 tuner_call(mxb, core, s_std, std); 788 tuner_call(mxb, video, s_std, std);
789 } 789 }
790 return 0; 790 return 0;
791} 791}
diff --git a/drivers/media/pci/sta2x11/sta2x11_vip.c b/drivers/media/pci/sta2x11/sta2x11_vip.c
index 7559951b2ea4..d2abd3b5c2bf 100644
--- a/drivers/media/pci/sta2x11/sta2x11_vip.c
+++ b/drivers/media/pci/sta2x11/sta2x11_vip.c
@@ -444,7 +444,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id std)
444 int status; 444 int status;
445 445
446 if (V4L2_STD_ALL == std) { 446 if (V4L2_STD_ALL == std) {
447 v4l2_subdev_call(vip->decoder, core, s_std, std); 447 v4l2_subdev_call(vip->decoder, video, s_std, std);
448 ssleep(2); 448 ssleep(2);
449 v4l2_subdev_call(vip->decoder, video, querystd, &newstd); 449 v4l2_subdev_call(vip->decoder, video, querystd, &newstd);
450 v4l2_subdev_call(vip->decoder, video, g_input_status, &status); 450 v4l2_subdev_call(vip->decoder, video, g_input_status, &status);
@@ -467,7 +467,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id std)
467 vip->format = formats_50[0]; 467 vip->format = formats_50[0];
468 } 468 }
469 469
470 return v4l2_subdev_call(vip->decoder, core, s_std, std); 470 return v4l2_subdev_call(vip->decoder, video, s_std, std);
471} 471}
472 472
473/** 473/**
diff --git a/drivers/media/pci/zoran/zoran_device.c b/drivers/media/pci/zoran/zoran_device.c
index 519164c572c8..bf34b93f23ee 100644
--- a/drivers/media/pci/zoran/zoran_device.c
+++ b/drivers/media/pci/zoran/zoran_device.c
@@ -1572,7 +1572,7 @@ zoran_init_hardware (struct zoran *zr)
1572 } 1572 }
1573 1573
1574 decoder_call(zr, core, init, 0); 1574 decoder_call(zr, core, init, 0);
1575 decoder_call(zr, core, s_std, zr->norm); 1575 decoder_call(zr, video, s_std, zr->norm);
1576 decoder_call(zr, video, s_routing, 1576 decoder_call(zr, video, s_routing,
1577 zr->card.input[zr->input].muxsel, 0, 0); 1577 zr->card.input[zr->input].muxsel, 0, 0);
1578 1578
diff --git a/drivers/media/pci/zoran/zoran_driver.c b/drivers/media/pci/zoran/zoran_driver.c
index e7e9840c6c35..099d5fbebb7c 100644
--- a/drivers/media/pci/zoran/zoran_driver.c
+++ b/drivers/media/pci/zoran/zoran_driver.c
@@ -1469,7 +1469,7 @@ zoran_set_norm (struct zoran *zr,
1469 if (on) 1469 if (on)
1470 zr36057_overlay(zr, 0); 1470 zr36057_overlay(zr, 0);
1471 1471
1472 decoder_call(zr, core, s_std, norm); 1472 decoder_call(zr, video, s_std, norm);
1473 encoder_call(zr, video, s_std_output, norm); 1473 encoder_call(zr, video, s_std_output, norm);
1474 1474
1475 if (on) 1475 if (on)
diff --git a/drivers/media/platform/blackfin/bfin_capture.c b/drivers/media/platform/blackfin/bfin_capture.c
index 16f643c4aad6..cf3d94f733ff 100644
--- a/drivers/media/platform/blackfin/bfin_capture.c
+++ b/drivers/media/platform/blackfin/bfin_capture.c
@@ -631,7 +631,7 @@ static int bcap_s_std(struct file *file, void *priv, v4l2_std_id std)
631 if (vb2_is_busy(&bcap_dev->buffer_queue)) 631 if (vb2_is_busy(&bcap_dev->buffer_queue))
632 return -EBUSY; 632 return -EBUSY;
633 633
634 ret = v4l2_subdev_call(bcap_dev->sd, core, s_std, std); 634 ret = v4l2_subdev_call(bcap_dev->sd, video, s_std, std);
635 if (ret < 0) 635 if (ret < 0)
636 return ret; 636 return ret;
637 637
@@ -1065,7 +1065,7 @@ static int bcap_probe(struct platform_device *pdev)
1065 /* now we can probe the default state */ 1065 /* now we can probe the default state */
1066 if (config->inputs[0].capabilities & V4L2_IN_CAP_STD) { 1066 if (config->inputs[0].capabilities & V4L2_IN_CAP_STD) {
1067 v4l2_std_id std; 1067 v4l2_std_id std;
1068 ret = v4l2_subdev_call(bcap_dev->sd, core, g_std, &std); 1068 ret = v4l2_subdev_call(bcap_dev->sd, video, g_std, &std);
1069 if (ret) { 1069 if (ret) {
1070 v4l2_err(&bcap_dev->v4l2_dev, 1070 v4l2_err(&bcap_dev->v4l2_dev,
1071 "Unable to get std\n"); 1071 "Unable to get std\n");
diff --git a/drivers/media/platform/davinci/vpfe_capture.c b/drivers/media/platform/davinci/vpfe_capture.c
index ac6c8c6ac7d0..a51bda2fb637 100644
--- a/drivers/media/platform/davinci/vpfe_capture.c
+++ b/drivers/media/platform/davinci/vpfe_capture.c
@@ -1217,7 +1217,7 @@ static int vpfe_s_std(struct file *file, void *priv, v4l2_std_id std_id)
1217 } 1217 }
1218 1218
1219 ret = v4l2_device_call_until_err(&vpfe_dev->v4l2_dev, sdinfo->grp_id, 1219 ret = v4l2_device_call_until_err(&vpfe_dev->v4l2_dev, sdinfo->grp_id,
1220 core, s_std, std_id); 1220 video, s_std, std_id);
1221 if (ret < 0) { 1221 if (ret < 0) {
1222 v4l2_err(&vpfe_dev->v4l2_dev, "Failed to set standard\n"); 1222 v4l2_err(&vpfe_dev->v4l2_dev, "Failed to set standard\n");
1223 goto unlock_out; 1223 goto unlock_out;
diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c
index 0198a5a16ed4..f3d9d9cde98c 100644
--- a/drivers/media/platform/davinci/vpif_capture.c
+++ b/drivers/media/platform/davinci/vpif_capture.c
@@ -951,7 +951,7 @@ static int vpif_s_std(struct file *file, void *priv, v4l2_std_id std_id)
951 vpif_config_format(ch); 951 vpif_config_format(ch);
952 952
953 /* set standard in the sub device */ 953 /* set standard in the sub device */
954 ret = v4l2_subdev_call(ch->sd, core, s_std, std_id); 954 ret = v4l2_subdev_call(ch->sd, video, s_std, std_id);
955 if (ret && ret != -ENOIOCTLCMD && ret != -ENODEV) { 955 if (ret && ret != -ENOIOCTLCMD && ret != -ENODEV) {
956 vpif_dbg(1, debug, "Failed to set standard for sub devices\n"); 956 vpif_dbg(1, debug, "Failed to set standard for sub devices\n");
957 return ret; 957 return ret;
diff --git a/drivers/media/platform/davinci/vpif_display.c b/drivers/media/platform/davinci/vpif_display.c
index d6110459a203..6513f5188f65 100644
--- a/drivers/media/platform/davinci/vpif_display.c
+++ b/drivers/media/platform/davinci/vpif_display.c
@@ -718,7 +718,7 @@ static int vpif_s_std(struct file *file, void *priv, v4l2_std_id std_id)
718 return ret; 718 return ret;
719 } 719 }
720 720
721 ret = v4l2_device_call_until_err(&vpif_obj.v4l2_dev, 1, core, 721 ret = v4l2_device_call_until_err(&vpif_obj.v4l2_dev, 1, video,
722 s_std, std_id); 722 s_std, std_id);
723 if (ret < 0) 723 if (ret < 0)
724 vpif_err("Failed to set standard for sub devices\n"); 724 vpif_err("Failed to set standard for sub devices\n");
diff --git a/drivers/media/platform/fsl-viu.c b/drivers/media/platform/fsl-viu.c
index dbf0ce38a8e7..d5dc198502ef 100644
--- a/drivers/media/platform/fsl-viu.c
+++ b/drivers/media/platform/fsl-viu.c
@@ -964,7 +964,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id)
964 struct viu_fh *fh = priv; 964 struct viu_fh *fh = priv;
965 965
966 fh->dev->std = id; 966 fh->dev->std = id;
967 decoder_call(fh->dev, core, s_std, id); 967 decoder_call(fh->dev, video, s_std, id);
968 return 0; 968 return 0;
969} 969}
970 970
diff --git a/drivers/media/platform/soc_camera/soc_camera.c b/drivers/media/platform/soc_camera/soc_camera.c
index c8549bf3213b..7fec8cdaf095 100644
--- a/drivers/media/platform/soc_camera/soc_camera.c
+++ b/drivers/media/platform/soc_camera/soc_camera.c
@@ -314,7 +314,7 @@ static int soc_camera_s_std(struct file *file, void *priv, v4l2_std_id a)
314 struct soc_camera_device *icd = file->private_data; 314 struct soc_camera_device *icd = file->private_data;
315 struct v4l2_subdev *sd = soc_camera_to_subdev(icd); 315 struct v4l2_subdev *sd = soc_camera_to_subdev(icd);
316 316
317 return v4l2_subdev_call(sd, core, s_std, a); 317 return v4l2_subdev_call(sd, video, s_std, a);
318} 318}
319 319
320static int soc_camera_g_std(struct file *file, void *priv, v4l2_std_id *a) 320static int soc_camera_g_std(struct file *file, void *priv, v4l2_std_id *a)
@@ -322,7 +322,7 @@ static int soc_camera_g_std(struct file *file, void *priv, v4l2_std_id *a)
322 struct soc_camera_device *icd = file->private_data; 322 struct soc_camera_device *icd = file->private_data;
323 struct v4l2_subdev *sd = soc_camera_to_subdev(icd); 323 struct v4l2_subdev *sd = soc_camera_to_subdev(icd);
324 324
325 return v4l2_subdev_call(sd, core, g_std, a); 325 return v4l2_subdev_call(sd, video, g_std, a);
326} 326}
327 327
328static int soc_camera_enum_framesizes(struct file *file, void *fh, 328static int soc_camera_enum_framesizes(struct file *file, void *fh,
diff --git a/drivers/media/platform/timblogiw.c b/drivers/media/platform/timblogiw.c
index fbfdadaa0803..3cb2f3564873 100644
--- a/drivers/media/platform/timblogiw.c
+++ b/drivers/media/platform/timblogiw.c
@@ -347,7 +347,7 @@ static int timblogiw_s_std(struct file *file, void *priv, v4l2_std_id std)
347 mutex_lock(&lw->lock); 347 mutex_lock(&lw->lock);
348 348
349 if (TIMBLOGIW_HAS_DECODER(lw)) 349 if (TIMBLOGIW_HAS_DECODER(lw))
350 err = v4l2_subdev_call(lw->sd_enc, core, s_std, std); 350 err = v4l2_subdev_call(lw->sd_enc, video, s_std, std);
351 351
352 if (!err) 352 if (!err)
353 fh->cur_norm = timblogiw_get_norm(std); 353 fh->cur_norm = timblogiw_get_norm(std);
diff --git a/drivers/media/platform/vino.c b/drivers/media/platform/vino.c
index c6af974c5b45..470d35336119 100644
--- a/drivers/media/platform/vino.c
+++ b/drivers/media/platform/vino.c
@@ -2586,7 +2586,7 @@ static int vino_acquire_input(struct vino_channel_settings *vcs)
2586 } 2586 }
2587 if (data_norm == 3) 2587 if (data_norm == 3)
2588 data_norm = VINO_DATA_NORM_PAL; 2588 data_norm = VINO_DATA_NORM_PAL;
2589 ret = decoder_call(core, s_std, norm); 2589 ret = decoder_call(video, s_std, norm);
2590 } 2590 }
2591 2591
2592 spin_lock_irqsave(&vino_drvdata->input_lock, flags); 2592 spin_lock_irqsave(&vino_drvdata->input_lock, flags);
@@ -2675,7 +2675,7 @@ static int vino_set_input(struct vino_channel_settings *vcs, int input)
2675 } 2675 }
2676 if (data_norm == 3) 2676 if (data_norm == 3)
2677 data_norm = VINO_DATA_NORM_PAL; 2677 data_norm = VINO_DATA_NORM_PAL;
2678 ret = decoder_call(core, s_std, norm); 2678 ret = decoder_call(video, s_std, norm);
2679 } 2679 }
2680 2680
2681 spin_lock_irqsave(&vino_drvdata->input_lock, flags); 2681 spin_lock_irqsave(&vino_drvdata->input_lock, flags);
@@ -2809,7 +2809,7 @@ static int vino_set_data_norm(struct vino_channel_settings *vcs,
2809 * as it may take a while... */ 2809 * as it may take a while... */
2810 2810
2811 norm = vino_data_norms[data_norm].std; 2811 norm = vino_data_norms[data_norm].std;
2812 err = decoder_call(core, s_std, norm); 2812 err = decoder_call(video, s_std, norm);
2813 2813
2814 spin_lock_irqsave(&vino_drvdata->input_lock, *flags); 2814 spin_lock_irqsave(&vino_drvdata->input_lock, *flags);
2815 2815
diff --git a/drivers/media/usb/au0828/au0828-video.c b/drivers/media/usb/au0828/au0828-video.c
index f6154546b5c0..9038194513c5 100644
--- a/drivers/media/usb/au0828/au0828-video.c
+++ b/drivers/media/usb/au0828/au0828-video.c
@@ -1109,7 +1109,7 @@ static void au0828_init_tuner(struct au0828_dev *dev)
1109 /* If we've never sent the standard in tuner core, do so now. 1109 /* If we've never sent the standard in tuner core, do so now.
1110 We don't do this at device probe because we don't want to 1110 We don't do this at device probe because we don't want to
1111 incur the cost of a firmware load */ 1111 incur the cost of a firmware load */
1112 v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, dev->std); 1112 v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_std, dev->std);
1113 v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_frequency, &f); 1113 v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_frequency, &f);
1114 i2c_gate_ctrl(dev, 0); 1114 i2c_gate_ctrl(dev, 0);
1115} 1115}
@@ -1368,7 +1368,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm)
1368 have to make the au0828 bridge adjust the size of its capture 1368 have to make the au0828 bridge adjust the size of its capture
1369 buffer, which is currently hardcoded at 720x480 */ 1369 buffer, which is currently hardcoded at 720x480 */
1370 1370
1371 v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, norm); 1371 v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_std, norm);
1372 1372
1373 i2c_gate_ctrl(dev, 0); 1373 i2c_gate_ctrl(dev, 0);
1374 1374
diff --git a/drivers/media/usb/cx231xx/cx231xx-417.c b/drivers/media/usb/cx231xx/cx231xx-417.c
index 2f63029e7a36..30a0c69fb42f 100644
--- a/drivers/media/usb/cx231xx/cx231xx-417.c
+++ b/drivers/media/usb/cx231xx/cx231xx-417.c
@@ -1516,7 +1516,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id)
1516 dev->ts1.height = 576; 1516 dev->ts1.height = 576;
1517 cx2341x_handler_set_50hz(&dev->mpeg_ctrl_handler, true); 1517 cx2341x_handler_set_50hz(&dev->mpeg_ctrl_handler, true);
1518 } 1518 }
1519 call_all(dev, core, s_std, dev->norm); 1519 call_all(dev, video, s_std, dev->norm);
1520 /* do mode control overrides */ 1520 /* do mode control overrides */
1521 cx231xx_do_mode_ctrl_overrides(dev); 1521 cx231xx_do_mode_ctrl_overrides(dev);
1522 1522
diff --git a/drivers/media/usb/cx231xx/cx231xx-video.c b/drivers/media/usb/cx231xx/cx231xx-video.c
index 990626101718..1f8751379e24 100644
--- a/drivers/media/usb/cx231xx/cx231xx-video.c
+++ b/drivers/media/usb/cx231xx/cx231xx-video.c
@@ -1009,7 +1009,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm)
1009 dev->width = 720; 1009 dev->width = 720;
1010 dev->height = (dev->norm & V4L2_STD_625_50) ? 576 : 480; 1010 dev->height = (dev->norm & V4L2_STD_625_50) ? 576 : 480;
1011 1011
1012 call_all(dev, core, s_std, dev->norm); 1012 call_all(dev, video, s_std, dev->norm);
1013 1013
1014 /* We need to reset basic properties in the decoder related to 1014 /* We need to reset basic properties in the decoder related to
1015 resolution (since a standard change effects things like the number 1015 resolution (since a standard change effects things like the number
@@ -1108,7 +1108,7 @@ int cx231xx_s_input(struct file *file, void *priv, unsigned int i)
1108 /* There's a tuner, so reset the standard and put it on the 1108 /* There's a tuner, so reset the standard and put it on the
1109 last known frequency (since it was probably powered down 1109 last known frequency (since it was probably powered down
1110 until now */ 1110 until now */
1111 call_all(dev, core, s_std, dev->norm); 1111 call_all(dev, video, s_std, dev->norm);
1112 } 1112 }
1113 1113
1114 return 0; 1114 return 0;
@@ -2099,7 +2099,7 @@ int cx231xx_register_analog_devices(struct cx231xx *dev)
2099 /* Set the initial input */ 2099 /* Set the initial input */
2100 video_mux(dev, dev->video_input); 2100 video_mux(dev, dev->video_input);
2101 2101
2102 call_all(dev, core, s_std, dev->norm); 2102 call_all(dev, video, s_std, dev->norm);
2103 2103
2104 v4l2_ctrl_handler_init(&dev->ctrl_handler, 10); 2104 v4l2_ctrl_handler_init(&dev->ctrl_handler, 10);
2105 v4l2_ctrl_handler_init(&dev->radio_ctrl_handler, 5); 2105 v4l2_ctrl_handler_init(&dev->radio_ctrl_handler, 5);
diff --git a/drivers/media/usb/em28xx/em28xx-video.c b/drivers/media/usb/em28xx/em28xx-video.c
index 0f8501f39fa7..f6b49c98e2c9 100644
--- a/drivers/media/usb/em28xx/em28xx-video.c
+++ b/drivers/media/usb/em28xx/em28xx-video.c
@@ -1400,7 +1400,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm)
1400 &v4l2->hscale, &v4l2->vscale); 1400 &v4l2->hscale, &v4l2->vscale);
1401 1401
1402 em28xx_resolution_set(dev); 1402 em28xx_resolution_set(dev);
1403 v4l2_device_call_all(&v4l2->v4l2_dev, 0, core, s_std, v4l2->norm); 1403 v4l2_device_call_all(&v4l2->v4l2_dev, 0, video, s_std, v4l2->norm);
1404 1404
1405 return 0; 1405 return 0;
1406} 1406}
@@ -2440,7 +2440,7 @@ static int em28xx_v4l2_init(struct em28xx *dev)
2440 2440
2441 /* set default norm */ 2441 /* set default norm */
2442 v4l2->norm = V4L2_STD_PAL; 2442 v4l2->norm = V4L2_STD_PAL;
2443 v4l2_device_call_all(&v4l2->v4l2_dev, 0, core, s_std, v4l2->norm); 2443 v4l2_device_call_all(&v4l2->v4l2_dev, 0, video, s_std, v4l2->norm);
2444 v4l2->interlaced_fieldmode = EM28XX_INTERLACED_DEFAULT; 2444 v4l2->interlaced_fieldmode = EM28XX_INTERLACED_DEFAULT;
2445 2445
2446 /* Analog specific initialization */ 2446 /* Analog specific initialization */
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
index ea05f678b559..9623b6218214 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
@@ -2910,7 +2910,7 @@ static void pvr2_subdev_update(struct pvr2_hdw *hdw)
2910 v4l2_std_id vs; 2910 v4l2_std_id vs;
2911 vs = hdw->std_mask_cur; 2911 vs = hdw->std_mask_cur;
2912 v4l2_device_call_all(&hdw->v4l2_dev, 0, 2912 v4l2_device_call_all(&hdw->v4l2_dev, 0,
2913 core, s_std, vs); 2913 video, s_std, vs);
2914 pvr2_hdw_cx25840_vbi_hack(hdw); 2914 pvr2_hdw_cx25840_vbi_hack(hdw);
2915 } 2915 }
2916 hdw->tuner_signal_stale = !0; 2916 hdw->tuner_signal_stale = !0;
diff --git a/drivers/media/usb/stk1160/stk1160-v4l.c b/drivers/media/usb/stk1160/stk1160-v4l.c
index 46e8a5069b37..5461341a31cb 100644
--- a/drivers/media/usb/stk1160/stk1160-v4l.c
+++ b/drivers/media/usb/stk1160/stk1160-v4l.c
@@ -406,7 +406,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm)
406 406
407 stk1160_set_std(dev); 407 stk1160_set_std(dev);
408 408
409 v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, 409 v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_std,
410 dev->norm); 410 dev->norm);
411 411
412 return 0; 412 return 0;
@@ -682,7 +682,7 @@ int stk1160_video_register(struct stk1160 *dev)
682 dev->fmt = &format[0]; 682 dev->fmt = &format[0];
683 stk1160_set_std(dev); 683 stk1160_set_std(dev);
684 684
685 v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, 685 v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_std,
686 dev->norm); 686 dev->norm);
687 687
688 video_set_drvdata(&dev->vdev, dev); 688 video_set_drvdata(&dev->vdev, dev);
diff --git a/drivers/media/usb/tm6000/tm6000-cards.c b/drivers/media/usb/tm6000/tm6000-cards.c
index 1ccaaddaa307..2e8c3afe4ec4 100644
--- a/drivers/media/usb/tm6000/tm6000-cards.c
+++ b/drivers/media/usb/tm6000/tm6000-cards.c
@@ -1120,7 +1120,7 @@ static int tm6000_init_dev(struct tm6000_core *dev)
1120 tm6000_config_tuner(dev); 1120 tm6000_config_tuner(dev);
1121 1121
1122 /* Set video standard */ 1122 /* Set video standard */
1123 v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, dev->norm); 1123 v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_std, dev->norm);
1124 1124
1125 /* Set tuner frequency - also loads firmware on xc2028/xc3028 */ 1125 /* Set tuner frequency - also loads firmware on xc2028/xc3028 */
1126 f.tuner = 0; 1126 f.tuner = 0;
diff --git a/drivers/media/usb/tm6000/tm6000-video.c b/drivers/media/usb/tm6000/tm6000-video.c
index cc1aa14996ff..e6b3d5d83d43 100644
--- a/drivers/media/usb/tm6000/tm6000-video.c
+++ b/drivers/media/usb/tm6000/tm6000-video.c
@@ -1071,7 +1071,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm)
1071 if (rc < 0) 1071 if (rc < 0)
1072 return rc; 1072 return rc;
1073 1073
1074 v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, dev->norm); 1074 v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_std, dev->norm);
1075 1075
1076 return 0; 1076 return 0;
1077} 1077}
diff --git a/drivers/media/usb/usbvision/usbvision-video.c b/drivers/media/usb/usbvision/usbvision-video.c
index 5c9e3123ad2e..68bc9615660e 100644
--- a/drivers/media/usb/usbvision/usbvision-video.c
+++ b/drivers/media/usb/usbvision/usbvision-video.c
@@ -597,7 +597,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id)
597 597
598 usbvision->tvnorm_id = id; 598 usbvision->tvnorm_id = id;
599 599
600 call_all(usbvision, core, s_std, usbvision->tvnorm_id); 600 call_all(usbvision, video, s_std, usbvision->tvnorm_id);
601 /* propagate the change to the decoder */ 601 /* propagate the change to the decoder */
602 usbvision_muxsel(usbvision, usbvision->ctl_input); 602 usbvision_muxsel(usbvision, usbvision->ctl_input);
603 603
diff --git a/drivers/media/v4l2-core/tuner-core.c b/drivers/media/v4l2-core/tuner-core.c
index 20c09229a08e..06c18ba16fa0 100644
--- a/drivers/media/v4l2-core/tuner-core.c
+++ b/drivers/media/v4l2-core/tuner-core.c
@@ -1301,7 +1301,6 @@ static int tuner_command(struct i2c_client *client, unsigned cmd, void *arg)
1301 1301
1302static const struct v4l2_subdev_core_ops tuner_core_ops = { 1302static const struct v4l2_subdev_core_ops tuner_core_ops = {
1303 .log_status = tuner_log_status, 1303 .log_status = tuner_log_status,
1304 .s_std = tuner_s_std,
1305 .s_power = tuner_s_power, 1304 .s_power = tuner_s_power,
1306}; 1305};
1307 1306
@@ -1315,9 +1314,14 @@ static const struct v4l2_subdev_tuner_ops tuner_tuner_ops = {
1315 .s_config = tuner_s_config, 1314 .s_config = tuner_s_config,
1316}; 1315};
1317 1316
1317static const struct v4l2_subdev_video_ops tuner_video_ops = {
1318 .s_std = tuner_s_std,
1319};
1320
1318static const struct v4l2_subdev_ops tuner_ops = { 1321static const struct v4l2_subdev_ops tuner_ops = {
1319 .core = &tuner_core_ops, 1322 .core = &tuner_core_ops,
1320 .tuner = &tuner_tuner_ops, 1323 .tuner = &tuner_tuner_ops,
1324 .video = &tuner_video_ops,
1321}; 1325};
1322 1326
1323/* 1327/*
diff --git a/drivers/staging/media/davinci_vpfe/vpfe_video.c b/drivers/staging/media/davinci_vpfe/vpfe_video.c
index 7b213a7f9623..425e2c849723 100644
--- a/drivers/staging/media/davinci_vpfe/vpfe_video.c
+++ b/drivers/staging/media/davinci_vpfe/vpfe_video.c
@@ -944,7 +944,7 @@ static int vpfe_s_std(struct file *file, void *priv, v4l2_std_id std_id)
944 goto unlock_out; 944 goto unlock_out;
945 } 945 }
946 ret = v4l2_device_call_until_err(&vpfe_dev->v4l2_dev, sdinfo->grp_id, 946 ret = v4l2_device_call_until_err(&vpfe_dev->v4l2_dev, sdinfo->grp_id,
947 core, s_std, std_id); 947 video, s_std, std_id);
948 if (ret < 0) { 948 if (ret < 0) {
949 v4l2_err(&vpfe_dev->v4l2_dev, "Failed to set standard\n"); 949 v4l2_err(&vpfe_dev->v4l2_dev, "Failed to set standard\n");
950 video->stdid = V4L2_STD_UNKNOWN; 950 video->stdid = V4L2_STD_UNKNOWN;
diff --git a/drivers/staging/media/go7007/go7007-v4l2.c b/drivers/staging/media/go7007/go7007-v4l2.c
index 090b3e6e852a..da7b5493e13e 100644
--- a/drivers/staging/media/go7007/go7007-v4l2.c
+++ b/drivers/staging/media/go7007/go7007-v4l2.c
@@ -665,7 +665,7 @@ static int go7007_s_std(struct go7007 *go)
665 go->sensor_framerate = 30000; 665 go->sensor_framerate = 30000;
666 } 666 }
667 667
668 call_all(&go->v4l2_dev, core, s_std, go->std); 668 call_all(&go->v4l2_dev, video, s_std, go->std);
669 set_capture_size(go, NULL, 0); 669 set_capture_size(go, NULL, 0);
670 return 0; 670 return 0;
671} 671}
diff --git a/drivers/staging/media/go7007/s2250-board.c b/drivers/staging/media/go7007/s2250-board.c
index 696a80756691..eaa2b0990a1b 100644
--- a/drivers/staging/media/go7007/s2250-board.c
+++ b/drivers/staging/media/go7007/s2250-board.c
@@ -474,7 +474,6 @@ static const struct v4l2_ctrl_ops s2250_ctrl_ops = {
474 474
475static const struct v4l2_subdev_core_ops s2250_core_ops = { 475static const struct v4l2_subdev_core_ops s2250_core_ops = {
476 .log_status = s2250_log_status, 476 .log_status = s2250_log_status,
477 .s_std = s2250_s_std,
478}; 477};
479 478
480static const struct v4l2_subdev_audio_ops s2250_audio_ops = { 479static const struct v4l2_subdev_audio_ops s2250_audio_ops = {
@@ -482,6 +481,7 @@ static const struct v4l2_subdev_audio_ops s2250_audio_ops = {
482}; 481};
483 482
484static const struct v4l2_subdev_video_ops s2250_video_ops = { 483static const struct v4l2_subdev_video_ops s2250_video_ops = {
484 .s_std = s2250_s_std,
485 .s_routing = s2250_s_video_routing, 485 .s_routing = s2250_s_video_routing,
486 .s_mbus_fmt = s2250_s_mbus_fmt, 486 .s_mbus_fmt = s2250_s_mbus_fmt,
487}; 487};
diff --git a/drivers/staging/media/go7007/saa7134-go7007.c b/drivers/staging/media/go7007/saa7134-go7007.c
index 6e2ca338cdd9..e40f7fbfc0a5 100644
--- a/drivers/staging/media/go7007/saa7134-go7007.c
+++ b/drivers/staging/media/go7007/saa7134-go7007.c
@@ -434,11 +434,15 @@ static const struct v4l2_subdev_core_ops saa7134_go7007_core_ops = {
434 .g_ctrl = saa7134_go7007_g_ctrl, 434 .g_ctrl = saa7134_go7007_g_ctrl,
435 .s_ctrl = saa7134_go7007_s_ctrl, 435 .s_ctrl = saa7134_go7007_s_ctrl,
436 .queryctrl = saa7134_go7007_queryctrl, 436 .queryctrl = saa7134_go7007_queryctrl,
437};
438
439static const struct v4l2_subdev_video_ops saa7134_go7007_video_ops = {
437 .s_std = saa7134_go7007_s_std, 440 .s_std = saa7134_go7007_s_std,
438}; 441};
439 442
440static const struct v4l2_subdev_ops saa7134_go7007_sd_ops = { 443static const struct v4l2_subdev_ops saa7134_go7007_sd_ops = {
441 .core = &saa7134_go7007_core_ops, 444 .core = &saa7134_go7007_core_ops,
445 .video = &saa7134_go7007_video_ops,
442}; 446};
443 447
444/* --------------------------------------------------------------------------*/ 448/* --------------------------------------------------------------------------*/
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
index 9205df13f3a5..dd5bbbe2d56a 100644
--- a/include/media/v4l2-subdev.h
+++ b/include/media/v4l2-subdev.h
@@ -159,8 +159,6 @@ struct v4l2_subdev_core_ops {
159 int (*s_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls); 159 int (*s_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls);
160 int (*try_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls); 160 int (*try_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls);
161 int (*querymenu)(struct v4l2_subdev *sd, struct v4l2_querymenu *qm); 161 int (*querymenu)(struct v4l2_subdev *sd, struct v4l2_querymenu *qm);
162 int (*g_std)(struct v4l2_subdev *sd, v4l2_std_id *norm);
163 int (*s_std)(struct v4l2_subdev *sd, v4l2_std_id norm);
164 long (*ioctl)(struct v4l2_subdev *sd, unsigned int cmd, void *arg); 162 long (*ioctl)(struct v4l2_subdev *sd, unsigned int cmd, void *arg);
165#ifdef CONFIG_COMPAT 163#ifdef CONFIG_COMPAT
166 long (*compat_ioctl32)(struct v4l2_subdev *sd, unsigned int cmd, 164 long (*compat_ioctl32)(struct v4l2_subdev *sd, unsigned int cmd,
@@ -316,6 +314,8 @@ struct v4l2_mbus_frame_desc {
316struct v4l2_subdev_video_ops { 314struct v4l2_subdev_video_ops {
317 int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config); 315 int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config);
318 int (*s_crystal_freq)(struct v4l2_subdev *sd, u32 freq, u32 flags); 316 int (*s_crystal_freq)(struct v4l2_subdev *sd, u32 freq, u32 flags);
317 int (*g_std)(struct v4l2_subdev *sd, v4l2_std_id *norm);
318 int (*s_std)(struct v4l2_subdev *sd, v4l2_std_id norm);
319 int (*s_std_output)(struct v4l2_subdev *sd, v4l2_std_id std); 319 int (*s_std_output)(struct v4l2_subdev *sd, v4l2_std_id std);
320 int (*g_std_output)(struct v4l2_subdev *sd, v4l2_std_id *std); 320 int (*g_std_output)(struct v4l2_subdev *sd, v4l2_std_id *std);
321 int (*querystd)(struct v4l2_subdev *sd, v4l2_std_id *std); 321 int (*querystd)(struct v4l2_subdev *sd, v4l2_std_id *std);
@@ -693,7 +693,7 @@ void v4l2_subdev_init(struct v4l2_subdev *sd,
693/* Call an ops of a v4l2_subdev, doing the right checks against 693/* Call an ops of a v4l2_subdev, doing the right checks against
694 NULL pointers. 694 NULL pointers.
695 695
696 Example: err = v4l2_subdev_call(sd, core, s_std, norm); 696 Example: err = v4l2_subdev_call(sd, video, s_std, norm);
697 */ 697 */
698#define v4l2_subdev_call(sd, o, f, args...) \ 698#define v4l2_subdev_call(sd, o, f, args...) \
699 (!(sd) ? -ENODEV : (((sd)->ops->o && (sd)->ops->o->f) ? \ 699 (!(sd) ? -ENODEV : (((sd)->ops->o && (sd)->ops->o->f) ? \