aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2009-04-01 02:52:39 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-04-06 20:44:22 -0400
commitf41737ece472cd803ffb24ac9f5d6fdd1d871341 (patch)
tree26ac526ec381e26c46a857f3ce44c84e75331b01 /drivers/media/video
parentcc26b076cf8b1040ccc514302ef9a24042272ec3 (diff)
V4L/DVB (11370): v4l2-subdev: move s_std from tuner to core.
s_std didn't belong in the tuner ops. Stricly speaking it should be part of the video ops, but it is used by audio and tuner devices as well, so it is more efficient to make it part of the core ops. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video')
-rw-r--r--drivers/media/video/au0828/au0828-video.c2
-rw-r--r--drivers/media/video/bt819.c4
-rw-r--r--drivers/media/video/bt8xx/bttv-driver.c2
-rw-r--r--drivers/media/video/cx18/cx18-av-core.c2
-rw-r--r--drivers/media/video/cx18/cx18-fileops.c2
-rw-r--r--drivers/media/video/cx18/cx18-gpio.c2
-rw-r--r--drivers/media/video/cx18/cx18-ioctl.c2
-rw-r--r--drivers/media/video/cx231xx/cx231xx-video.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-video.c2
-rw-r--r--drivers/media/video/cx25840/cx25840-core.c2
-rw-r--r--drivers/media/video/cx88/cx88-core.c2
-rw-r--r--drivers/media/video/em28xx/em28xx-video.c2
-rw-r--r--drivers/media/video/ivtv/ivtv-fileops.c2
-rw-r--r--drivers/media/video/ivtv/ivtv-gpio.c2
-rw-r--r--drivers/media/video/ivtv/ivtv-ioctl.c2
-rw-r--r--drivers/media/video/ks0127.c4
-rw-r--r--drivers/media/video/msp3400-driver.c2
-rw-r--r--drivers/media/video/mxb.c8
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-hdw.c2
-rw-r--r--drivers/media/video/saa7110.c4
-rw-r--r--drivers/media/video/saa7115.c2
-rw-r--r--drivers/media/video/saa7134/saa6752hs.c4
-rw-r--r--drivers/media/video/saa7134/saa7134-video.c4
-rw-r--r--drivers/media/video/saa717x.c2
-rw-r--r--drivers/media/video/saa7191.c4
-rw-r--r--drivers/media/video/tuner-core.c2
-rw-r--r--drivers/media/video/tvaudio.c2
-rw-r--r--drivers/media/video/tvp5150.c2
-rw-r--r--drivers/media/video/usbvision/usbvision-video.c2
-rw-r--r--drivers/media/video/vino.c6
-rw-r--r--drivers/media/video/vp27smpx.c2
-rw-r--r--drivers/media/video/vpx3220.c4
-rw-r--r--drivers/media/video/zoran/zoran_device.c2
-rw-r--r--drivers/media/video/zoran/zoran_driver.c6
34 files changed, 36 insertions, 60 deletions
diff --git a/drivers/media/video/au0828/au0828-video.c b/drivers/media/video/au0828/au0828-video.c
index f7ad4958b94..19b23f21f96 100644
--- a/drivers/media/video/au0828/au0828-video.c
+++ b/drivers/media/video/au0828/au0828-video.c
@@ -1100,7 +1100,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id * norm)
1100 have to make the au0828 bridge adjust the size of its capture 1100 have to make the au0828 bridge adjust the size of its capture
1101 buffer, which is currently hardcoded at 720x480 */ 1101 buffer, which is currently hardcoded at 720x480 */
1102 1102
1103 v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_std, *norm); 1103 v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, *norm);
1104 return 0; 1104 return 0;
1105} 1105}
1106 1106
diff --git a/drivers/media/video/bt819.c b/drivers/media/video/bt819.c
index df4516d8dca..9f84032ce38 100644
--- a/drivers/media/video/bt819.c
+++ b/drivers/media/video/bt819.c
@@ -444,9 +444,6 @@ static const struct v4l2_subdev_core_ops bt819_core_ops = {
444 .g_ctrl = bt819_g_ctrl, 444 .g_ctrl = bt819_g_ctrl,
445 .s_ctrl = bt819_s_ctrl, 445 .s_ctrl = bt819_s_ctrl,
446 .queryctrl = bt819_queryctrl, 446 .queryctrl = bt819_queryctrl,
447};
448
449static const struct v4l2_subdev_tuner_ops bt819_tuner_ops = {
450 .s_std = bt819_s_std, 447 .s_std = bt819_s_std,
451}; 448};
452 449
@@ -459,7 +456,6 @@ static const struct v4l2_subdev_video_ops bt819_video_ops = {
459 456
460static const struct v4l2_subdev_ops bt819_ops = { 457static const struct v4l2_subdev_ops bt819_ops = {
461 .core = &bt819_core_ops, 458 .core = &bt819_core_ops,
462 .tuner = &bt819_tuner_ops,
463 .video = &bt819_video_ops, 459 .video = &bt819_video_ops,
464}; 460};
465 461
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c
index 7a8ca0d8356..41c31eabe26 100644
--- a/drivers/media/video/bt8xx/bttv-driver.c
+++ b/drivers/media/video/bt8xx/bttv-driver.c
@@ -1329,7 +1329,7 @@ set_tvnorm(struct bttv *btv, unsigned int norm)
1329 break; 1329 break;
1330 } 1330 }
1331 id = tvnorm->v4l2_id; 1331 id = tvnorm->v4l2_id;
1332 bttv_call_all(btv, tuner, s_std, id); 1332 bttv_call_all(btv, core, s_std, id);
1333 1333
1334 return 0; 1334 return 0;
1335} 1335}
diff --git a/drivers/media/video/cx18/cx18-av-core.c b/drivers/media/video/cx18/cx18-av-core.c
index 0c58e55fdbe..9b3e574dd82 100644
--- a/drivers/media/video/cx18/cx18-av-core.c
+++ b/drivers/media/video/cx18/cx18-av-core.c
@@ -1189,6 +1189,7 @@ static const struct v4l2_subdev_core_ops cx18_av_general_ops = {
1189 .queryctrl = cx18_av_queryctrl, 1189 .queryctrl = cx18_av_queryctrl,
1190 .g_ctrl = cx18_av_g_ctrl, 1190 .g_ctrl = cx18_av_g_ctrl,
1191 .s_ctrl = cx18_av_s_ctrl, 1191 .s_ctrl = cx18_av_s_ctrl,
1192 .s_std = cx18_av_s_std,
1192#ifdef CONFIG_VIDEO_ADV_DEBUG 1193#ifdef CONFIG_VIDEO_ADV_DEBUG
1193 .g_register = cx18_av_g_register, 1194 .g_register = cx18_av_g_register,
1194 .s_register = cx18_av_s_register, 1195 .s_register = cx18_av_s_register,
@@ -1200,7 +1201,6 @@ static const struct v4l2_subdev_tuner_ops cx18_av_tuner_ops = {
1200 .s_frequency = cx18_av_s_frequency, 1201 .s_frequency = cx18_av_s_frequency,
1201 .g_tuner = cx18_av_g_tuner, 1202 .g_tuner = cx18_av_g_tuner,
1202 .s_tuner = cx18_av_s_tuner, 1203 .s_tuner = cx18_av_s_tuner,
1203 .s_std = cx18_av_s_std,
1204}; 1204};
1205 1205
1206static const struct v4l2_subdev_audio_ops cx18_av_audio_ops = { 1206static const struct v4l2_subdev_audio_ops cx18_av_audio_ops = {
diff --git a/drivers/media/video/cx18/cx18-fileops.c b/drivers/media/video/cx18/cx18-fileops.c
index 4d7d6d5a7f8..b3889c0b269 100644
--- a/drivers/media/video/cx18/cx18-fileops.c
+++ b/drivers/media/video/cx18/cx18-fileops.c
@@ -608,7 +608,7 @@ int cx18_v4l2_close(struct file *filp)
608 /* Mark that the radio is no longer in use */ 608 /* Mark that the radio is no longer in use */
609 clear_bit(CX18_F_I_RADIO_USER, &cx->i_flags); 609 clear_bit(CX18_F_I_RADIO_USER, &cx->i_flags);
610 /* Switch tuner to TV */ 610 /* Switch tuner to TV */
611 cx18_call_all(cx, tuner, s_std, cx->std); 611 cx18_call_all(cx, core, s_std, cx->std);
612 /* Select correct audio input (i.e. TV tuner or Line in) */ 612 /* Select correct audio input (i.e. TV tuner or Line in) */
613 cx18_audio_set_io(cx); 613 cx18_audio_set_io(cx);
614 if (atomic_read(&cx->ana_capturing) > 0) { 614 if (atomic_read(&cx->ana_capturing) > 0) {
diff --git a/drivers/media/video/cx18/cx18-gpio.c b/drivers/media/video/cx18/cx18-gpio.c
index 5518d1424f8..ae2460e6860 100644
--- a/drivers/media/video/cx18/cx18-gpio.c
+++ b/drivers/media/video/cx18/cx18-gpio.c
@@ -180,10 +180,10 @@ 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,
183}; 184};
184 185
185static const struct v4l2_subdev_tuner_ops gpiomux_tuner_ops = { 186static const struct v4l2_subdev_tuner_ops gpiomux_tuner_ops = {
186 .s_std = gpiomux_s_std,
187 .s_radio = gpiomux_s_radio, 187 .s_radio = gpiomux_s_radio,
188}; 188};
189 189
diff --git a/drivers/media/video/cx18/cx18-ioctl.c b/drivers/media/video/cx18/cx18-ioctl.c
index e4c9e3d8bac..f572080590f 100644
--- a/drivers/media/video/cx18/cx18-ioctl.c
+++ b/drivers/media/video/cx18/cx18-ioctl.c
@@ -705,7 +705,7 @@ int cx18_s_std(struct file *file, void *fh, v4l2_std_id *std)
705 (unsigned long long) cx->std); 705 (unsigned long long) cx->std);
706 706
707 /* Tuner */ 707 /* Tuner */
708 cx18_call_all(cx, tuner, s_std, cx->std); 708 cx18_call_all(cx, core, s_std, cx->std);
709 return 0; 709 return 0;
710} 710}
711 711
diff --git a/drivers/media/video/cx231xx/cx231xx-video.c b/drivers/media/video/cx231xx/cx231xx-video.c
index ec5aea3134e..0645703e6f9 100644
--- a/drivers/media/video/cx231xx/cx231xx-video.c
+++ b/drivers/media/video/cx231xx/cx231xx-video.c
@@ -1089,7 +1089,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id *norm)
1089 dev->height = f.fmt.pix.height; 1089 dev->height = f.fmt.pix.height;
1090 get_scale(dev, dev->width, dev->height, &dev->hscale, &dev->vscale); 1090 get_scale(dev, dev->width, dev->height, &dev->hscale, &dev->vscale);
1091 1091
1092 call_all(dev, tuner, s_std, dev->norm); 1092 call_all(dev, core, s_std, dev->norm);
1093 1093
1094 mutex_unlock(&dev->lock); 1094 mutex_unlock(&dev->lock);
1095 1095
diff --git a/drivers/media/video/cx23885/cx23885-video.c b/drivers/media/video/cx23885/cx23885-video.c
index f0ac62c5dc8..41f0a2b1187 100644
--- a/drivers/media/video/cx23885/cx23885-video.c
+++ b/drivers/media/video/cx23885/cx23885-video.c
@@ -299,7 +299,7 @@ static int cx23885_set_tvnorm(struct cx23885_dev *dev, v4l2_std_id norm)
299 299
300 dev->tvnorm = norm; 300 dev->tvnorm = norm;
301 301
302 call_all(dev, tuner, s_std, norm); 302 call_all(dev, core, s_std, norm);
303 303
304 return 0; 304 return 0;
305} 305}
diff --git a/drivers/media/video/cx25840/cx25840-core.c b/drivers/media/video/cx25840/cx25840-core.c
index 51266812d33..62090279f46 100644
--- a/drivers/media/video/cx25840/cx25840-core.c
+++ b/drivers/media/video/cx25840/cx25840-core.c
@@ -1472,6 +1472,7 @@ static const struct v4l2_subdev_core_ops cx25840_core_ops = {
1472 .g_ctrl = cx25840_g_ctrl, 1472 .g_ctrl = cx25840_g_ctrl,
1473 .s_ctrl = cx25840_s_ctrl, 1473 .s_ctrl = cx25840_s_ctrl,
1474 .queryctrl = cx25840_queryctrl, 1474 .queryctrl = cx25840_queryctrl,
1475 .s_std = cx25840_s_std,
1475 .reset = cx25840_reset, 1476 .reset = cx25840_reset,
1476 .load_fw = cx25840_load_fw, 1477 .load_fw = cx25840_load_fw,
1477#ifdef CONFIG_VIDEO_ADV_DEBUG 1478#ifdef CONFIG_VIDEO_ADV_DEBUG
@@ -1482,7 +1483,6 @@ static const struct v4l2_subdev_core_ops cx25840_core_ops = {
1482 1483
1483static const struct v4l2_subdev_tuner_ops cx25840_tuner_ops = { 1484static const struct v4l2_subdev_tuner_ops cx25840_tuner_ops = {
1484 .s_frequency = cx25840_s_frequency, 1485 .s_frequency = cx25840_s_frequency,
1485 .s_std = cx25840_s_std,
1486 .s_radio = cx25840_s_radio, 1486 .s_radio = cx25840_s_radio,
1487 .g_tuner = cx25840_g_tuner, 1487 .g_tuner = cx25840_g_tuner,
1488 .s_tuner = cx25840_s_tuner, 1488 .s_tuner = cx25840_s_tuner,
diff --git a/drivers/media/video/cx88/cx88-core.c b/drivers/media/video/cx88/cx88-core.c
index f2fb9f30bfc..0e149b22bd1 100644
--- a/drivers/media/video/cx88/cx88-core.c
+++ b/drivers/media/video/cx88/cx88-core.c
@@ -991,7 +991,7 @@ int cx88_set_tvnorm(struct cx88_core *core, v4l2_std_id norm)
991 set_tvaudio(core); 991 set_tvaudio(core);
992 992
993 // tell i2c chips 993 // tell i2c chips
994 call_all(core, tuner, s_std, norm); 994 call_all(core, core, s_std, norm);
995 995
996 // done 996 // done
997 return 0; 997 return 0;
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c
index 9d4e0c1e170..96487843a47 100644
--- a/drivers/media/video/em28xx/em28xx-video.c
+++ b/drivers/media/video/em28xx/em28xx-video.c
@@ -829,7 +829,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id *norm)
829 get_scale(dev, dev->width, dev->height, &dev->hscale, &dev->vscale); 829 get_scale(dev, dev->width, dev->height, &dev->hscale, &dev->vscale);
830 830
831 em28xx_resolution_set(dev); 831 em28xx_resolution_set(dev);
832 v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_std, dev->norm); 832 v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, dev->norm);
833 833
834 mutex_unlock(&dev->lock); 834 mutex_unlock(&dev->lock);
835 return 0; 835 return 0;
diff --git a/drivers/media/video/ivtv/ivtv-fileops.c b/drivers/media/video/ivtv/ivtv-fileops.c
index cfaacf6096d..e212337c651 100644
--- a/drivers/media/video/ivtv/ivtv-fileops.c
+++ b/drivers/media/video/ivtv/ivtv-fileops.c
@@ -857,7 +857,7 @@ int ivtv_v4l2_close(struct file *filp)
857 /* Mark that the radio is no longer in use */ 857 /* Mark that the radio is no longer in use */
858 clear_bit(IVTV_F_I_RADIO_USER, &itv->i_flags); 858 clear_bit(IVTV_F_I_RADIO_USER, &itv->i_flags);
859 /* Switch tuner to TV */ 859 /* Switch tuner to TV */
860 ivtv_call_all(itv, tuner, s_std, itv->std); 860 ivtv_call_all(itv, core, s_std, itv->std);
861 /* Select correct audio input (i.e. TV tuner or Line in) */ 861 /* Select correct audio input (i.e. TV tuner or Line in) */
862 ivtv_audio_set_io(itv); 862 ivtv_audio_set_io(itv);
863 if (itv->hw_flags & IVTV_HW_SAA711X) 863 if (itv->hw_flags & IVTV_HW_SAA711X)
diff --git a/drivers/media/video/ivtv/ivtv-gpio.c b/drivers/media/video/ivtv/ivtv-gpio.c
index 3321983d89e..0dd5f53b731 100644
--- a/drivers/media/video/ivtv/ivtv-gpio.c
+++ b/drivers/media/video/ivtv/ivtv-gpio.c
@@ -342,10 +342,10 @@ static const struct v4l2_subdev_core_ops subdev_core_ops = {
342 .g_ctrl = subdev_g_ctrl, 342 .g_ctrl = subdev_g_ctrl,
343 .s_ctrl = subdev_s_ctrl, 343 .s_ctrl = subdev_s_ctrl,
344 .queryctrl = subdev_queryctrl, 344 .queryctrl = subdev_queryctrl,
345 .s_std = subdev_s_std,
345}; 346};
346 347
347static const struct v4l2_subdev_tuner_ops subdev_tuner_ops = { 348static const struct v4l2_subdev_tuner_ops subdev_tuner_ops = {
348 .s_std = subdev_s_std,
349 .s_radio = subdev_s_radio, 349 .s_radio = subdev_s_radio,
350 .g_tuner = subdev_g_tuner, 350 .g_tuner = subdev_g_tuner,
351 .s_tuner = subdev_s_tuner, 351 .s_tuner = subdev_s_tuner,
diff --git a/drivers/media/video/ivtv/ivtv-ioctl.c b/drivers/media/video/ivtv/ivtv-ioctl.c
index 9a0424298af..052fbe9cde8 100644
--- a/drivers/media/video/ivtv/ivtv-ioctl.c
+++ b/drivers/media/video/ivtv/ivtv-ioctl.c
@@ -1121,7 +1121,7 @@ int ivtv_s_std(struct file *file, void *fh, v4l2_std_id *std)
1121 IVTV_DEBUG_INFO("Switching standard to %llx.\n", (unsigned long long)itv->std); 1121 IVTV_DEBUG_INFO("Switching standard to %llx.\n", (unsigned long long)itv->std);
1122 1122
1123 /* Tuner */ 1123 /* Tuner */
1124 ivtv_call_all(itv, tuner, s_std, itv->std); 1124 ivtv_call_all(itv, core, s_std, itv->std);
1125 1125
1126 if (itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT) { 1126 if (itv->v4l2_cap & V4L2_CAP_VIDEO_OUTPUT) {
1127 /* set display standard */ 1127 /* set display standard */
diff --git a/drivers/media/video/ks0127.c b/drivers/media/video/ks0127.c
index 841024b6bcd..4e5f0e7dc59 100644
--- a/drivers/media/video/ks0127.c
+++ b/drivers/media/video/ks0127.c
@@ -648,9 +648,6 @@ static int ks0127_g_chip_ident(struct v4l2_subdev *sd, struct v4l2_dbg_chip_iden
648 648
649static const struct v4l2_subdev_core_ops ks0127_core_ops = { 649static const struct v4l2_subdev_core_ops ks0127_core_ops = {
650 .g_chip_ident = ks0127_g_chip_ident, 650 .g_chip_ident = ks0127_g_chip_ident,
651};
652
653static const struct v4l2_subdev_tuner_ops ks0127_tuner_ops = {
654 .s_std = ks0127_s_std, 651 .s_std = ks0127_s_std,
655}; 652};
656 653
@@ -663,7 +660,6 @@ static const struct v4l2_subdev_video_ops ks0127_video_ops = {
663 660
664static const struct v4l2_subdev_ops ks0127_ops = { 661static const struct v4l2_subdev_ops ks0127_ops = {
665 .core = &ks0127_core_ops, 662 .core = &ks0127_core_ops,
666 .tuner = &ks0127_tuner_ops,
667 .video = &ks0127_video_ops, 663 .video = &ks0127_video_ops,
668}; 664};
669 665
diff --git a/drivers/media/video/msp3400-driver.c b/drivers/media/video/msp3400-driver.c
index aeab597a040..38e639750a4 100644
--- a/drivers/media/video/msp3400-driver.c
+++ b/drivers/media/video/msp3400-driver.c
@@ -700,6 +700,7 @@ static const struct v4l2_subdev_core_ops msp_core_ops = {
700 .g_ctrl = msp_g_ctrl, 700 .g_ctrl = msp_g_ctrl,
701 .s_ctrl = msp_s_ctrl, 701 .s_ctrl = msp_s_ctrl,
702 .queryctrl = msp_queryctrl, 702 .queryctrl = msp_queryctrl,
703 .s_std = msp_s_std,
703}; 704};
704 705
705static const struct v4l2_subdev_tuner_ops msp_tuner_ops = { 706static const struct v4l2_subdev_tuner_ops msp_tuner_ops = {
@@ -707,7 +708,6 @@ static const struct v4l2_subdev_tuner_ops msp_tuner_ops = {
707 .g_tuner = msp_g_tuner, 708 .g_tuner = msp_g_tuner,
708 .s_tuner = msp_s_tuner, 709 .s_tuner = msp_s_tuner,
709 .s_radio = msp_s_radio, 710 .s_radio = msp_s_radio,
710 .s_std = msp_s_std,
711}; 711};
712 712
713static const struct v4l2_subdev_audio_ops msp_audio_ops = { 713static const struct v4l2_subdev_audio_ops msp_audio_ops = {
diff --git a/drivers/media/video/mxb.c b/drivers/media/video/mxb.c
index 84aec62e845..238bb40ae09 100644
--- a/drivers/media/video/mxb.c
+++ b/drivers/media/video/mxb.c
@@ -266,7 +266,7 @@ static int mxb_init_done(struct saa7146_dev* dev)
266 int i = 0, err = 0; 266 int i = 0, err = 0;
267 267
268 /* select video mode in saa7111a */ 268 /* select video mode in saa7111a */
269 saa7111a_call(mxb, tuner, s_std, std); 269 saa7111a_call(mxb, core, s_std, std);
270 270
271 /* select tuner-output on saa7111a */ 271 /* select tuner-output on saa7111a */
272 i = 0; 272 i = 0;
@@ -286,7 +286,7 @@ static int mxb_init_done(struct saa7146_dev* dev)
286 tuner_call(mxb, tuner, s_frequency, &mxb->cur_freq); 286 tuner_call(mxb, tuner, s_frequency, &mxb->cur_freq);
287 287
288 /* set a default video standard */ 288 /* set a default video standard */
289 tuner_call(mxb, tuner, s_std, std); 289 tuner_call(mxb, core, s_std, std);
290 290
291 /* mute audio on tea6420s */ 291 /* mute audio on tea6420s */
292 tea6420_1_call(mxb, audio, s_routing, &TEA6420_line[6][0]); 292 tea6420_1_call(mxb, audio, s_routing, &TEA6420_line[6][0]);
@@ -788,7 +788,7 @@ static int std_callback(struct saa7146_dev *dev, struct saa7146_standard *standa
788 saa7146_write(dev, GPIO_CTRL, 0x00404050); 788 saa7146_write(dev, GPIO_CTRL, 0x00404050);
789 /* unset the 7111 gpio register -- I don't know what this does exactly */ 789 /* unset the 7111 gpio register -- I don't know what this does exactly */
790 saa7111a_call(mxb, core, s_gpio, 0); 790 saa7111a_call(mxb, core, s_gpio, 0);
791 tuner_call(mxb, tuner, s_std, std); 791 tuner_call(mxb, core, s_std, std);
792 } else { 792 } else {
793 v4l2_std_id std = V4L2_STD_PAL_BG; 793 v4l2_std_id std = V4L2_STD_PAL_BG;
794 794
@@ -797,7 +797,7 @@ static int std_callback(struct saa7146_dev *dev, struct saa7146_standard *standa
797 saa7146_write(dev, GPIO_CTRL, 0x00404050); 797 saa7146_write(dev, GPIO_CTRL, 0x00404050);
798 /* set the 7111 gpio register -- I don't know what this does exactly */ 798 /* set the 7111 gpio register -- I don't know what this does exactly */
799 saa7111a_call(mxb, core, s_gpio, 1); 799 saa7111a_call(mxb, core, s_gpio, 1);
800 tuner_call(mxb, tuner, s_std, std); 800 tuner_call(mxb, core, s_std, std);
801 } 801 }
802 return 0; 802 return 0;
803} 803}
diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
index 59a0259266f..2ee9d4d4c55 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
@@ -2944,7 +2944,7 @@ static void pvr2_subdev_update(struct pvr2_hdw *hdw)
2944 v4l2_std_id vs; 2944 v4l2_std_id vs;
2945 vs = hdw->std_mask_cur; 2945 vs = hdw->std_mask_cur;
2946 v4l2_device_call_all(&hdw->v4l2_dev, 0, 2946 v4l2_device_call_all(&hdw->v4l2_dev, 0,
2947 tuner, s_std, vs); 2947 core, s_std, vs);
2948 } 2948 }
2949 hdw->tuner_signal_stale = !0; 2949 hdw->tuner_signal_stale = !0;
2950 hdw->cropcap_stale = !0; 2950 hdw->cropcap_stale = !0;
diff --git a/drivers/media/video/saa7110.c b/drivers/media/video/saa7110.c
index df4e08d2dce..8bb1fc17d19 100644
--- a/drivers/media/video/saa7110.c
+++ b/drivers/media/video/saa7110.c
@@ -414,9 +414,6 @@ static const struct v4l2_subdev_core_ops saa7110_core_ops = {
414 .g_ctrl = saa7110_g_ctrl, 414 .g_ctrl = saa7110_g_ctrl,
415 .s_ctrl = saa7110_s_ctrl, 415 .s_ctrl = saa7110_s_ctrl,
416 .queryctrl = saa7110_queryctrl, 416 .queryctrl = saa7110_queryctrl,
417};
418
419static const struct v4l2_subdev_tuner_ops saa7110_tuner_ops = {
420 .s_std = saa7110_s_std, 417 .s_std = saa7110_s_std,
421}; 418};
422 419
@@ -429,7 +426,6 @@ static const struct v4l2_subdev_video_ops saa7110_video_ops = {
429 426
430static const struct v4l2_subdev_ops saa7110_ops = { 427static const struct v4l2_subdev_ops saa7110_ops = {
431 .core = &saa7110_core_ops, 428 .core = &saa7110_core_ops,
432 .tuner = &saa7110_tuner_ops,
433 .video = &saa7110_video_ops, 429 .video = &saa7110_video_ops,
434}; 430};
435 431
diff --git a/drivers/media/video/saa7115.c b/drivers/media/video/saa7115.c
index 5ee94d61869..e6538eb3aa1 100644
--- a/drivers/media/video/saa7115.c
+++ b/drivers/media/video/saa7115.c
@@ -1500,6 +1500,7 @@ static const struct v4l2_subdev_core_ops saa711x_core_ops = {
1500 .g_ctrl = saa711x_g_ctrl, 1500 .g_ctrl = saa711x_g_ctrl,
1501 .s_ctrl = saa711x_s_ctrl, 1501 .s_ctrl = saa711x_s_ctrl,
1502 .queryctrl = saa711x_queryctrl, 1502 .queryctrl = saa711x_queryctrl,
1503 .s_std = saa711x_s_std,
1503 .reset = saa711x_reset, 1504 .reset = saa711x_reset,
1504 .s_gpio = saa711x_s_gpio, 1505 .s_gpio = saa711x_s_gpio,
1505#ifdef CONFIG_VIDEO_ADV_DEBUG 1506#ifdef CONFIG_VIDEO_ADV_DEBUG
@@ -1509,7 +1510,6 @@ static const struct v4l2_subdev_core_ops saa711x_core_ops = {
1509}; 1510};
1510 1511
1511static const struct v4l2_subdev_tuner_ops saa711x_tuner_ops = { 1512static const struct v4l2_subdev_tuner_ops saa711x_tuner_ops = {
1512 .s_std = saa711x_s_std,
1513 .s_radio = saa711x_s_radio, 1513 .s_radio = saa711x_s_radio,
1514 .g_tuner = saa711x_g_tuner, 1514 .g_tuner = saa711x_g_tuner,
1515}; 1515};
diff --git a/drivers/media/video/saa7134/saa6752hs.c b/drivers/media/video/saa7134/saa6752hs.c
index dc2213e2f86..63c4b8f1f54 100644
--- a/drivers/media/video/saa7134/saa6752hs.c
+++ b/drivers/media/video/saa7134/saa6752hs.c
@@ -928,9 +928,6 @@ static const struct v4l2_subdev_core_ops saa6752hs_core_ops = {
928 .g_ext_ctrls = saa6752hs_g_ext_ctrls, 928 .g_ext_ctrls = saa6752hs_g_ext_ctrls,
929 .s_ext_ctrls = saa6752hs_s_ext_ctrls, 929 .s_ext_ctrls = saa6752hs_s_ext_ctrls,
930 .try_ext_ctrls = saa6752hs_try_ext_ctrls, 930 .try_ext_ctrls = saa6752hs_try_ext_ctrls,
931};
932
933static const struct v4l2_subdev_tuner_ops saa6752hs_tuner_ops = {
934 .s_std = saa6752hs_s_std, 931 .s_std = saa6752hs_s_std,
935}; 932};
936 933
@@ -941,7 +938,6 @@ static const struct v4l2_subdev_video_ops saa6752hs_video_ops = {
941 938
942static const struct v4l2_subdev_ops saa6752hs_ops = { 939static const struct v4l2_subdev_ops saa6752hs_ops = {
943 .core = &saa6752hs_core_ops, 940 .core = &saa6752hs_core_ops,
944 .tuner = &saa6752hs_tuner_ops,
945 .video = &saa6752hs_video_ops, 941 .video = &saa6752hs_video_ops,
946}; 942};
947 943
diff --git a/drivers/media/video/saa7134/saa7134-video.c b/drivers/media/video/saa7134/saa7134-video.c
index b520e9c2dac..493cad94146 100644
--- a/drivers/media/video/saa7134/saa7134-video.c
+++ b/drivers/media/video/saa7134/saa7134-video.c
@@ -625,10 +625,10 @@ void saa7134_set_tvnorm_hw(struct saa7134_dev *dev)
625 saa7134_set_decoder(dev); 625 saa7134_set_decoder(dev);
626 626
627 if (card_in(dev, dev->ctl_input).tv) 627 if (card_in(dev, dev->ctl_input).tv)
628 saa_call_all(dev, tuner, s_std, dev->tvnorm->id); 628 saa_call_all(dev, core, s_std, dev->tvnorm->id);
629 /* Set the correct norm for the saa6752hs. This function 629 /* Set the correct norm for the saa6752hs. This function
630 does nothing if there is no saa6752hs. */ 630 does nothing if there is no saa6752hs. */
631 saa_call_empress(dev, tuner, s_std, dev->tvnorm->id); 631 saa_call_empress(dev, core, s_std, dev->tvnorm->id);
632} 632}
633 633
634static void set_h_prescale(struct saa7134_dev *dev, int task, int prescale) 634static void set_h_prescale(struct saa7134_dev *dev, int task, int prescale)
diff --git a/drivers/media/video/saa717x.c b/drivers/media/video/saa717x.c
index 25bf2303a6b..b73801caaa9 100644
--- a/drivers/media/video/saa717x.c
+++ b/drivers/media/video/saa717x.c
@@ -1390,12 +1390,12 @@ static const struct v4l2_subdev_core_ops saa717x_core_ops = {
1390 .queryctrl = saa717x_queryctrl, 1390 .queryctrl = saa717x_queryctrl,
1391 .g_ctrl = saa717x_g_ctrl, 1391 .g_ctrl = saa717x_g_ctrl,
1392 .s_ctrl = saa717x_s_ctrl, 1392 .s_ctrl = saa717x_s_ctrl,
1393 .s_std = saa717x_s_std,
1393}; 1394};
1394 1395
1395static const struct v4l2_subdev_tuner_ops saa717x_tuner_ops = { 1396static const struct v4l2_subdev_tuner_ops saa717x_tuner_ops = {
1396 .g_tuner = saa717x_g_tuner, 1397 .g_tuner = saa717x_g_tuner,
1397 .s_tuner = saa717x_s_tuner, 1398 .s_tuner = saa717x_s_tuner,
1398 .s_std = saa717x_s_std,
1399 .s_radio = saa717x_s_radio, 1399 .s_radio = saa717x_s_radio,
1400}; 1400};
1401 1401
diff --git a/drivers/media/video/saa7191.c b/drivers/media/video/saa7191.c
index 3f523aeec56..13ab4f2ddcc 100644
--- a/drivers/media/video/saa7191.c
+++ b/drivers/media/video/saa7191.c
@@ -582,9 +582,6 @@ static const struct v4l2_subdev_core_ops saa7191_core_ops = {
582 .g_chip_ident = saa7191_g_chip_ident, 582 .g_chip_ident = saa7191_g_chip_ident,
583 .g_ctrl = saa7191_g_ctrl, 583 .g_ctrl = saa7191_g_ctrl,
584 .s_ctrl = saa7191_s_ctrl, 584 .s_ctrl = saa7191_s_ctrl,
585};
586
587static const struct v4l2_subdev_tuner_ops saa7191_tuner_ops = {
588 .s_std = saa7191_s_std, 585 .s_std = saa7191_s_std,
589}; 586};
590 587
@@ -597,7 +594,6 @@ static const struct v4l2_subdev_video_ops saa7191_video_ops = {
597static const struct v4l2_subdev_ops saa7191_ops = { 594static const struct v4l2_subdev_ops saa7191_ops = {
598 .core = &saa7191_core_ops, 595 .core = &saa7191_core_ops,
599 .video = &saa7191_video_ops, 596 .video = &saa7191_video_ops,
600 .tuner = &saa7191_tuner_ops,
601}; 597};
602 598
603static int saa7191_probe(struct i2c_client *client, 599static int saa7191_probe(struct i2c_client *client,
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c
index 61f10070345..28af7b7e951 100644
--- a/drivers/media/video/tuner-core.c
+++ b/drivers/media/video/tuner-core.c
@@ -981,10 +981,10 @@ static int tuner_command(struct i2c_client *client, unsigned cmd, void *arg)
981 981
982static const struct v4l2_subdev_core_ops tuner_core_ops = { 982static const struct v4l2_subdev_core_ops tuner_core_ops = {
983 .log_status = tuner_log_status, 983 .log_status = tuner_log_status,
984 .s_std = tuner_s_std,
984}; 985};
985 986
986static const struct v4l2_subdev_tuner_ops tuner_tuner_ops = { 987static const struct v4l2_subdev_tuner_ops tuner_tuner_ops = {
987 .s_std = tuner_s_std,
988 .s_radio = tuner_s_radio, 988 .s_radio = tuner_s_radio,
989 .g_tuner = tuner_g_tuner, 989 .g_tuner = tuner_g_tuner,
990 .s_tuner = tuner_s_tuner, 990 .s_tuner = tuner_s_tuner,
diff --git a/drivers/media/video/tvaudio.c b/drivers/media/video/tvaudio.c
index 994753cbd63..2a49c839f8a 100644
--- a/drivers/media/video/tvaudio.c
+++ b/drivers/media/video/tvaudio.c
@@ -1911,12 +1911,12 @@ static const struct v4l2_subdev_core_ops tvaudio_core_ops = {
1911 .queryctrl = tvaudio_queryctrl, 1911 .queryctrl = tvaudio_queryctrl,
1912 .g_ctrl = tvaudio_g_ctrl, 1912 .g_ctrl = tvaudio_g_ctrl,
1913 .s_ctrl = tvaudio_s_ctrl, 1913 .s_ctrl = tvaudio_s_ctrl,
1914 .s_std = tvaudio_s_std,
1914}; 1915};
1915 1916
1916static const struct v4l2_subdev_tuner_ops tvaudio_tuner_ops = { 1917static const struct v4l2_subdev_tuner_ops tvaudio_tuner_ops = {
1917 .s_radio = tvaudio_s_radio, 1918 .s_radio = tvaudio_s_radio,
1918 .s_frequency = tvaudio_s_frequency, 1919 .s_frequency = tvaudio_s_frequency,
1919 .s_std = tvaudio_s_std,
1920 .s_tuner = tvaudio_s_tuner, 1920 .s_tuner = tvaudio_s_tuner,
1921 .s_tuner = tvaudio_g_tuner, 1921 .s_tuner = tvaudio_g_tuner,
1922}; 1922};
diff --git a/drivers/media/video/tvp5150.c b/drivers/media/video/tvp5150.c
index d7f3bad2c02..4aea84a392e 100644
--- a/drivers/media/video/tvp5150.c
+++ b/drivers/media/video/tvp5150.c
@@ -1025,6 +1025,7 @@ static const struct v4l2_subdev_core_ops tvp5150_core_ops = {
1025 .g_ctrl = tvp5150_g_ctrl, 1025 .g_ctrl = tvp5150_g_ctrl,
1026 .s_ctrl = tvp5150_s_ctrl, 1026 .s_ctrl = tvp5150_s_ctrl,
1027 .queryctrl = tvp5150_queryctrl, 1027 .queryctrl = tvp5150_queryctrl,
1028 .s_std = tvp5150_s_std,
1028 .reset = tvp5150_reset, 1029 .reset = tvp5150_reset,
1029 .g_chip_ident = tvp5150_g_chip_ident, 1030 .g_chip_ident = tvp5150_g_chip_ident,
1030#ifdef CONFIG_VIDEO_ADV_DEBUG 1031#ifdef CONFIG_VIDEO_ADV_DEBUG
@@ -1034,7 +1035,6 @@ static const struct v4l2_subdev_core_ops tvp5150_core_ops = {
1034}; 1035};
1035 1036
1036static const struct v4l2_subdev_tuner_ops tvp5150_tuner_ops = { 1037static const struct v4l2_subdev_tuner_ops tvp5150_tuner_ops = {
1037 .s_std = tvp5150_s_std,
1038 .g_tuner = tvp5150_g_tuner, 1038 .g_tuner = tvp5150_g_tuner,
1039}; 1039};
1040 1040
diff --git a/drivers/media/video/usbvision/usbvision-video.c b/drivers/media/video/usbvision/usbvision-video.c
index 7db493ca87b..c8f8a3c4bbf 100644
--- a/drivers/media/video/usbvision/usbvision-video.c
+++ b/drivers/media/video/usbvision/usbvision-video.c
@@ -621,7 +621,7 @@ static int vidioc_s_std (struct file *file, void *priv, v4l2_std_id *id)
621 usbvision->tvnormId=*id; 621 usbvision->tvnormId=*id;
622 622
623 mutex_lock(&usbvision->lock); 623 mutex_lock(&usbvision->lock);
624 call_all(usbvision, tuner, s_std, usbvision->tvnormId); 624 call_all(usbvision, core, s_std, usbvision->tvnormId);
625 mutex_unlock(&usbvision->lock); 625 mutex_unlock(&usbvision->lock);
626 /* propagate the change to the decoder */ 626 /* propagate the change to the decoder */
627 usbvision_muxsel(usbvision, usbvision->ctl_input); 627 usbvision_muxsel(usbvision, usbvision->ctl_input);
diff --git a/drivers/media/video/vino.c b/drivers/media/video/vino.c
index 8da4dd1e0e9..c39a2d4d517 100644
--- a/drivers/media/video/vino.c
+++ b/drivers/media/video/vino.c
@@ -2589,7 +2589,7 @@ static int vino_acquire_input(struct vino_channel_settings *vcs)
2589 } 2589 }
2590 if (data_norm == 3) 2590 if (data_norm == 3)
2591 data_norm = VINO_DATA_NORM_PAL; 2591 data_norm = VINO_DATA_NORM_PAL;
2592 ret = decoder_call(tuner, s_std, norm); 2592 ret = decoder_call(core, s_std, norm);
2593 } 2593 }
2594 2594
2595 spin_lock_irqsave(&vino_drvdata->input_lock, flags); 2595 spin_lock_irqsave(&vino_drvdata->input_lock, flags);
@@ -2679,7 +2679,7 @@ static int vino_set_input(struct vino_channel_settings *vcs, int input)
2679 } 2679 }
2680 if (data_norm == 3) 2680 if (data_norm == 3)
2681 data_norm = VINO_DATA_NORM_PAL; 2681 data_norm = VINO_DATA_NORM_PAL;
2682 ret = decoder_call(tuner, s_std, norm); 2682 ret = decoder_call(core, s_std, norm);
2683 } 2683 }
2684 2684
2685 spin_lock_irqsave(&vino_drvdata->input_lock, flags); 2685 spin_lock_irqsave(&vino_drvdata->input_lock, flags);
@@ -2813,7 +2813,7 @@ static int vino_set_data_norm(struct vino_channel_settings *vcs,
2813 * as it may take a while... */ 2813 * as it may take a while... */
2814 2814
2815 norm = vino_data_norms[data_norm].std; 2815 norm = vino_data_norms[data_norm].std;
2816 err = decoder_call(tuner, s_std, norm); 2816 err = decoder_call(core, s_std, norm);
2817 2817
2818 spin_lock_irqsave(&vino_drvdata->input_lock, *flags); 2818 spin_lock_irqsave(&vino_drvdata->input_lock, *flags);
2819 2819
diff --git a/drivers/media/video/vp27smpx.c b/drivers/media/video/vp27smpx.c
index 42e23a4fa60..38e53b303cc 100644
--- a/drivers/media/video/vp27smpx.c
+++ b/drivers/media/video/vp27smpx.c
@@ -134,11 +134,11 @@ static int vp27smpx_log_status(struct v4l2_subdev *sd)
134static const struct v4l2_subdev_core_ops vp27smpx_core_ops = { 134static const struct v4l2_subdev_core_ops vp27smpx_core_ops = {
135 .log_status = vp27smpx_log_status, 135 .log_status = vp27smpx_log_status,
136 .g_chip_ident = vp27smpx_g_chip_ident, 136 .g_chip_ident = vp27smpx_g_chip_ident,
137 .s_std = vp27smpx_s_std,
137}; 138};
138 139
139static const struct v4l2_subdev_tuner_ops vp27smpx_tuner_ops = { 140static const struct v4l2_subdev_tuner_ops vp27smpx_tuner_ops = {
140 .s_radio = vp27smpx_s_radio, 141 .s_radio = vp27smpx_s_radio,
141 .s_std = vp27smpx_s_std,
142 .s_tuner = vp27smpx_s_tuner, 142 .s_tuner = vp27smpx_s_tuner,
143 .g_tuner = vp27smpx_g_tuner, 143 .g_tuner = vp27smpx_g_tuner,
144}; 144};
diff --git a/drivers/media/video/vpx3220.c b/drivers/media/video/vpx3220.c
index 2fa7e8bb574..59a8bb046c3 100644
--- a/drivers/media/video/vpx3220.c
+++ b/drivers/media/video/vpx3220.c
@@ -516,9 +516,6 @@ static const struct v4l2_subdev_core_ops vpx3220_core_ops = {
516 .g_ctrl = vpx3220_g_ctrl, 516 .g_ctrl = vpx3220_g_ctrl,
517 .s_ctrl = vpx3220_s_ctrl, 517 .s_ctrl = vpx3220_s_ctrl,
518 .queryctrl = vpx3220_queryctrl, 518 .queryctrl = vpx3220_queryctrl,
519};
520
521static const struct v4l2_subdev_tuner_ops vpx3220_tuner_ops = {
522 .s_std = vpx3220_s_std, 519 .s_std = vpx3220_s_std,
523}; 520};
524 521
@@ -531,7 +528,6 @@ static const struct v4l2_subdev_video_ops vpx3220_video_ops = {
531 528
532static const struct v4l2_subdev_ops vpx3220_ops = { 529static const struct v4l2_subdev_ops vpx3220_ops = {
533 .core = &vpx3220_core_ops, 530 .core = &vpx3220_core_ops,
534 .tuner = &vpx3220_tuner_ops,
535 .video = &vpx3220_video_ops, 531 .video = &vpx3220_video_ops,
536}; 532};
537 533
diff --git a/drivers/media/video/zoran/zoran_device.c b/drivers/media/video/zoran/zoran_device.c
index e0223deed35..25e565f0502 100644
--- a/drivers/media/video/zoran/zoran_device.c
+++ b/drivers/media/video/zoran/zoran_device.c
@@ -1584,7 +1584,7 @@ zoran_init_hardware (struct zoran *zr)
1584 route.input = zr->card.input[zr->input].muxsel; 1584 route.input = zr->card.input[zr->input].muxsel;
1585 1585
1586 decoder_call(zr, core, init, 0); 1586 decoder_call(zr, core, init, 0);
1587 decoder_call(zr, tuner, s_std, zr->norm); 1587 decoder_call(zr, core, s_std, zr->norm);
1588 decoder_call(zr, video, s_routing, &route); 1588 decoder_call(zr, video, s_routing, &route);
1589 1589
1590 encoder_call(zr, core, init, 0); 1590 encoder_call(zr, core, init, 0);
diff --git a/drivers/media/video/zoran/zoran_driver.c b/drivers/media/video/zoran/zoran_driver.c
index f16e57cf11e..979e8d0e80f 100644
--- a/drivers/media/video/zoran/zoran_driver.c
+++ b/drivers/media/video/zoran/zoran_driver.c
@@ -1449,7 +1449,7 @@ zoran_set_norm (struct zoran *zr,
1449 v4l2_std_id std = 0; 1449 v4l2_std_id std = 0;
1450 1450
1451 decoder_call(zr, video, querystd, &std); 1451 decoder_call(zr, video, querystd, &std);
1452 decoder_call(zr, tuner, s_std, std); 1452 decoder_call(zr, core, s_std, std);
1453 1453
1454 /* let changes come into effect */ 1454 /* let changes come into effect */
1455 ssleep(2); 1455 ssleep(2);
@@ -1461,7 +1461,7 @@ zoran_set_norm (struct zoran *zr,
1461 "%s: %s - no norm detected\n", 1461 "%s: %s - no norm detected\n",
1462 ZR_DEVNAME(zr), __func__); 1462 ZR_DEVNAME(zr), __func__);
1463 /* reset norm */ 1463 /* reset norm */
1464 decoder_call(zr, tuner, s_std, zr->norm); 1464 decoder_call(zr, core, s_std, zr->norm);
1465 return -EIO; 1465 return -EIO;
1466 } 1466 }
1467 1467
@@ -1480,7 +1480,7 @@ zoran_set_norm (struct zoran *zr,
1480 if (on) 1480 if (on)
1481 zr36057_overlay(zr, 0); 1481 zr36057_overlay(zr, 0);
1482 1482
1483 decoder_call(zr, tuner, s_std, norm); 1483 decoder_call(zr, core, s_std, norm);
1484 encoder_call(zr, video, s_std_output, norm); 1484 encoder_call(zr, video, s_std_output, norm);
1485 1485
1486 if (on) 1486 if (on)