[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>
This commit is contained in:
Laurent Pinchart 2014-04-28 16:53:01 -03:00 committed by Mauro Carvalho Chehab
parent 85ada737b9
commit 8774bed9ce
60 changed files with 107 additions and 91 deletions

View File

@ -461,6 +461,7 @@ static int adv7180_g_mbus_config(struct v4l2_subdev *sd,
} }
static const struct v4l2_subdev_video_ops adv7180_video_ops = { static const struct v4l2_subdev_video_ops adv7180_video_ops = {
.s_std = adv7180_s_std,
.querystd = adv7180_querystd, .querystd = adv7180_querystd,
.g_input_status = adv7180_g_input_status, .g_input_status = adv7180_g_input_status,
.s_routing = adv7180_s_routing, .s_routing = adv7180_s_routing,
@ -472,7 +473,6 @@ static const struct v4l2_subdev_video_ops adv7180_video_ops = {
}; };
static const struct v4l2_subdev_core_ops adv7180_core_ops = { static const struct v4l2_subdev_core_ops adv7180_core_ops = {
.s_std = adv7180_s_std,
.s_power = adv7180_s_power, .s_power = adv7180_s_power,
}; };

View File

@ -501,8 +501,6 @@ static const struct v4l2_ctrl_ops adv7183_ctrl_ops = {
static const struct v4l2_subdev_core_ops adv7183_core_ops = { static const struct v4l2_subdev_core_ops adv7183_core_ops = {
.log_status = adv7183_log_status, .log_status = adv7183_log_status,
.g_std = adv7183_g_std,
.s_std = adv7183_s_std,
.reset = adv7183_reset, .reset = adv7183_reset,
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
.g_register = adv7183_g_register, .g_register = adv7183_g_register,
@ -511,6 +509,8 @@ static const struct v4l2_subdev_core_ops adv7183_core_ops = {
}; };
static const struct v4l2_subdev_video_ops adv7183_video_ops = { static const struct v4l2_subdev_video_ops adv7183_video_ops = {
.g_std = adv7183_g_std,
.s_std = adv7183_s_std,
.s_routing = adv7183_s_routing, .s_routing = adv7183_s_routing,
.querystd = adv7183_querystd, .querystd = adv7183_querystd,
.g_input_status = adv7183_g_input_status, .g_input_status = adv7183_g_input_status,

View File

@ -2873,8 +2873,6 @@ static const struct v4l2_ctrl_ops adv7842_ctrl_ops = {
static const struct v4l2_subdev_core_ops adv7842_core_ops = { static const struct v4l2_subdev_core_ops adv7842_core_ops = {
.log_status = adv7842_log_status, .log_status = adv7842_log_status,
.g_std = adv7842_g_std,
.s_std = adv7842_s_std,
.ioctl = adv7842_ioctl, .ioctl = adv7842_ioctl,
.interrupt_service_routine = adv7842_isr, .interrupt_service_routine = adv7842_isr,
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
@ -2884,6 +2882,8 @@ static const struct v4l2_subdev_core_ops adv7842_core_ops = {
}; };
static const struct v4l2_subdev_video_ops adv7842_video_ops = { static const struct v4l2_subdev_video_ops adv7842_video_ops = {
.g_std = adv7842_g_std,
.s_std = adv7842_s_std,
.s_routing = adv7842_s_routing, .s_routing = adv7842_s_routing,
.querystd = adv7842_querystd, .querystd = adv7842_querystd,
.g_input_status = adv7842_g_input_status, .g_input_status = adv7842_g_input_status,

View File

@ -387,10 +387,10 @@ static const struct v4l2_subdev_core_ops bt819_core_ops = {
.s_ctrl = v4l2_subdev_s_ctrl, .s_ctrl = v4l2_subdev_s_ctrl,
.queryctrl = v4l2_subdev_queryctrl, .queryctrl = v4l2_subdev_queryctrl,
.querymenu = v4l2_subdev_querymenu, .querymenu = v4l2_subdev_querymenu,
.s_std = bt819_s_std,
}; };
static const struct v4l2_subdev_video_ops bt819_video_ops = { static const struct v4l2_subdev_video_ops bt819_video_ops = {
.s_std = bt819_s_std,
.s_routing = bt819_s_routing, .s_routing = bt819_s_routing,
.s_stream = bt819_s_stream, .s_stream = bt819_s_stream,
.querystd = bt819_querystd, .querystd = bt819_querystd,

View File

@ -5041,8 +5041,6 @@ static const struct v4l2_subdev_core_ops cx25840_core_ops = {
.g_ext_ctrls = v4l2_subdev_g_ext_ctrls, .g_ext_ctrls = v4l2_subdev_g_ext_ctrls,
.queryctrl = v4l2_subdev_queryctrl, .queryctrl = v4l2_subdev_queryctrl,
.querymenu = v4l2_subdev_querymenu, .querymenu = v4l2_subdev_querymenu,
.s_std = cx25840_s_std,
.g_std = cx25840_g_std,
.reset = cx25840_reset, .reset = cx25840_reset,
.load_fw = cx25840_load_fw, .load_fw = cx25840_load_fw,
.s_io_pin_config = common_s_io_pin_config, .s_io_pin_config = common_s_io_pin_config,
@ -5067,6 +5065,8 @@ static const struct v4l2_subdev_audio_ops cx25840_audio_ops = {
}; };
static const struct v4l2_subdev_video_ops cx25840_video_ops = { static const struct v4l2_subdev_video_ops cx25840_video_ops = {
.s_std = cx25840_s_std,
.g_std = cx25840_g_std,
.s_routing = cx25840_s_video_routing, .s_routing = cx25840_s_video_routing,
.s_mbus_fmt = cx25840_s_mbus_fmt, .s_mbus_fmt = cx25840_s_mbus_fmt,
.s_stream = cx25840_s_stream, .s_stream = cx25840_s_stream,

View File

@ -648,11 +648,8 @@ static int ks0127_g_input_status(struct v4l2_subdev *sd, u32 *status)
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */
static const struct v4l2_subdev_core_ops ks0127_core_ops = {
.s_std = ks0127_s_std,
};
static const struct v4l2_subdev_video_ops ks0127_video_ops = { static const struct v4l2_subdev_video_ops ks0127_video_ops = {
.s_std = ks0127_s_std,
.s_routing = ks0127_s_routing, .s_routing = ks0127_s_routing,
.s_stream = ks0127_s_stream, .s_stream = ks0127_s_stream,
.querystd = ks0127_querystd, .querystd = ks0127_querystd,
@ -660,7 +657,6 @@ static const struct v4l2_subdev_video_ops ks0127_video_ops = {
}; };
static const struct v4l2_subdev_ops ks0127_ops = { static const struct v4l2_subdev_ops ks0127_ops = {
.core = &ks0127_core_ops,
.video = &ks0127_video_ops, .video = &ks0127_video_ops,
}; };

View File

@ -276,6 +276,7 @@ static const struct v4l2_ctrl_ops ml86v7667_ctrl_ops = {
}; };
static struct v4l2_subdev_video_ops ml86v7667_subdev_video_ops = { static struct v4l2_subdev_video_ops ml86v7667_subdev_video_ops = {
.s_std = ml86v7667_s_std,
.querystd = ml86v7667_querystd, .querystd = ml86v7667_querystd,
.g_input_status = ml86v7667_g_input_status, .g_input_status = ml86v7667_g_input_status,
.enum_mbus_fmt = ml86v7667_enum_mbus_fmt, .enum_mbus_fmt = ml86v7667_enum_mbus_fmt,
@ -286,7 +287,6 @@ static struct v4l2_subdev_video_ops ml86v7667_subdev_video_ops = {
}; };
static struct v4l2_subdev_core_ops ml86v7667_subdev_core_ops = { static struct v4l2_subdev_core_ops ml86v7667_subdev_core_ops = {
.s_std = ml86v7667_s_std,
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
.g_register = ml86v7667_g_register, .g_register = ml86v7667_g_register,
.s_register = ml86v7667_s_register, .s_register = ml86v7667_s_register,

View File

@ -649,10 +649,10 @@ static const struct v4l2_subdev_core_ops msp_core_ops = {
.s_ctrl = v4l2_subdev_s_ctrl, .s_ctrl = v4l2_subdev_s_ctrl,
.queryctrl = v4l2_subdev_queryctrl, .queryctrl = v4l2_subdev_queryctrl,
.querymenu = v4l2_subdev_querymenu, .querymenu = v4l2_subdev_querymenu,
.s_std = msp_s_std,
}; };
static const struct v4l2_subdev_video_ops msp_video_ops = { static const struct v4l2_subdev_video_ops msp_video_ops = {
.s_std = msp_s_std,
.querystd = msp_querystd, .querystd = msp_querystd,
}; };

View File

@ -643,10 +643,10 @@ static const struct v4l2_ctrl_ops saa6752hs_ctrl_ops = {
static const struct v4l2_subdev_core_ops saa6752hs_core_ops = { static const struct v4l2_subdev_core_ops saa6752hs_core_ops = {
.init = saa6752hs_init, .init = saa6752hs_init,
.s_std = saa6752hs_s_std,
}; };
static const struct v4l2_subdev_video_ops saa6752hs_video_ops = { static const struct v4l2_subdev_video_ops saa6752hs_video_ops = {
.s_std = saa6752hs_s_std,
.s_mbus_fmt = saa6752hs_s_mbus_fmt, .s_mbus_fmt = saa6752hs_s_mbus_fmt,
.try_mbus_fmt = saa6752hs_try_mbus_fmt, .try_mbus_fmt = saa6752hs_try_mbus_fmt,
.g_mbus_fmt = saa6752hs_g_mbus_fmt, .g_mbus_fmt = saa6752hs_g_mbus_fmt,

View File

@ -365,10 +365,10 @@ static const struct v4l2_subdev_core_ops saa7110_core_ops = {
.s_ctrl = v4l2_subdev_s_ctrl, .s_ctrl = v4l2_subdev_s_ctrl,
.queryctrl = v4l2_subdev_queryctrl, .queryctrl = v4l2_subdev_queryctrl,
.querymenu = v4l2_subdev_querymenu, .querymenu = v4l2_subdev_querymenu,
.s_std = saa7110_s_std,
}; };
static const struct v4l2_subdev_video_ops saa7110_video_ops = { static const struct v4l2_subdev_video_ops saa7110_video_ops = {
.s_std = saa7110_s_std,
.s_routing = saa7110_s_routing, .s_routing = saa7110_s_routing,
.s_stream = saa7110_s_stream, .s_stream = saa7110_s_stream,
.querystd = saa7110_querystd, .querystd = saa7110_querystd,

View File

@ -1582,7 +1582,6 @@ static const struct v4l2_subdev_core_ops saa711x_core_ops = {
.s_ctrl = v4l2_subdev_s_ctrl, .s_ctrl = v4l2_subdev_s_ctrl,
.queryctrl = v4l2_subdev_queryctrl, .queryctrl = v4l2_subdev_queryctrl,
.querymenu = v4l2_subdev_querymenu, .querymenu = v4l2_subdev_querymenu,
.s_std = saa711x_s_std,
.reset = saa711x_reset, .reset = saa711x_reset,
.s_gpio = saa711x_s_gpio, .s_gpio = saa711x_s_gpio,
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
@ -1601,6 +1600,7 @@ static const struct v4l2_subdev_audio_ops saa711x_audio_ops = {
}; };
static const struct v4l2_subdev_video_ops saa711x_video_ops = { static const struct v4l2_subdev_video_ops saa711x_video_ops = {
.s_std = saa711x_s_std,
.s_routing = saa711x_s_routing, .s_routing = saa711x_s_routing,
.s_crystal_freq = saa711x_s_crystal_freq, .s_crystal_freq = saa711x_s_crystal_freq,
.s_mbus_fmt = saa711x_s_mbus_fmt, .s_mbus_fmt = saa711x_s_mbus_fmt,

View File

@ -1198,7 +1198,6 @@ static const struct v4l2_subdev_core_ops saa717x_core_ops = {
.g_register = saa717x_g_register, .g_register = saa717x_g_register,
.s_register = saa717x_s_register, .s_register = saa717x_s_register,
#endif #endif
.s_std = saa717x_s_std,
.g_ext_ctrls = v4l2_subdev_g_ext_ctrls, .g_ext_ctrls = v4l2_subdev_g_ext_ctrls,
.try_ext_ctrls = v4l2_subdev_try_ext_ctrls, .try_ext_ctrls = v4l2_subdev_try_ext_ctrls,
.s_ext_ctrls = v4l2_subdev_s_ext_ctrls, .s_ext_ctrls = v4l2_subdev_s_ext_ctrls,
@ -1216,6 +1215,7 @@ static const struct v4l2_subdev_tuner_ops saa717x_tuner_ops = {
}; };
static const struct v4l2_subdev_video_ops saa717x_video_ops = { static const struct v4l2_subdev_video_ops saa717x_video_ops = {
.s_std = saa717x_s_std,
.s_routing = saa717x_s_video_routing, .s_routing = saa717x_s_video_routing,
.s_mbus_fmt = saa717x_s_mbus_fmt, .s_mbus_fmt = saa717x_s_mbus_fmt,
.s_stream = saa717x_s_stream, .s_stream = saa717x_s_stream,

View File

@ -573,10 +573,10 @@ static int saa7191_g_input_status(struct v4l2_subdev *sd, u32 *status)
static const struct v4l2_subdev_core_ops saa7191_core_ops = { static const struct v4l2_subdev_core_ops saa7191_core_ops = {
.g_ctrl = saa7191_g_ctrl, .g_ctrl = saa7191_g_ctrl,
.s_ctrl = saa7191_s_ctrl, .s_ctrl = saa7191_s_ctrl,
.s_std = saa7191_s_std,
}; };
static const struct v4l2_subdev_video_ops saa7191_video_ops = { static const struct v4l2_subdev_video_ops saa7191_video_ops = {
.s_std = saa7191_s_std,
.s_routing = saa7191_s_routing, .s_routing = saa7191_s_routing,
.querystd = saa7191_querystd, .querystd = saa7191_querystd,
.g_input_status = saa7191_g_input_status, .g_input_status = saa7191_g_input_status,

View File

@ -814,8 +814,6 @@ done:
} }
static struct v4l2_subdev_core_ops tw9910_subdev_core_ops = { static struct v4l2_subdev_core_ops tw9910_subdev_core_ops = {
.s_std = tw9910_s_std,
.g_std = tw9910_g_std,
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
.g_register = tw9910_g_register, .g_register = tw9910_g_register,
.s_register = tw9910_s_register, .s_register = tw9910_s_register,
@ -879,6 +877,8 @@ static int tw9910_g_tvnorms(struct v4l2_subdev *sd, v4l2_std_id *norm)
} }
static struct v4l2_subdev_video_ops tw9910_subdev_video_ops = { static struct v4l2_subdev_video_ops tw9910_subdev_video_ops = {
.s_std = tw9910_s_std,
.g_std = tw9910_g_std,
.s_stream = tw9910_s_stream, .s_stream = tw9910_s_stream,
.g_mbus_fmt = tw9910_g_fmt, .g_mbus_fmt = tw9910_g_fmt,
.s_mbus_fmt = tw9910_s_fmt, .s_mbus_fmt = tw9910_s_fmt,

View File

@ -327,18 +327,18 @@ static int sony_btf_mpx_s_tuner(struct v4l2_subdev *sd, const struct v4l2_tuner
/* --------------------------------------------------------------------------*/ /* --------------------------------------------------------------------------*/
static const struct v4l2_subdev_core_ops sony_btf_mpx_core_ops = {
.s_std = sony_btf_mpx_s_std,
};
static const struct v4l2_subdev_tuner_ops sony_btf_mpx_tuner_ops = { static const struct v4l2_subdev_tuner_ops sony_btf_mpx_tuner_ops = {
.s_tuner = sony_btf_mpx_s_tuner, .s_tuner = sony_btf_mpx_s_tuner,
.g_tuner = sony_btf_mpx_g_tuner, .g_tuner = sony_btf_mpx_g_tuner,
}; };
static const struct v4l2_subdev_video_ops sony_btf_mpx_video_ops = {
.s_std = sony_btf_mpx_s_std,
};
static const struct v4l2_subdev_ops sony_btf_mpx_ops = { static const struct v4l2_subdev_ops sony_btf_mpx_ops = {
.core = &sony_btf_mpx_core_ops,
.tuner = &sony_btf_mpx_tuner_ops, .tuner = &sony_btf_mpx_tuner_ops,
.video = &sony_btf_mpx_video_ops,
}; };
/* --------------------------------------------------------------------------*/ /* --------------------------------------------------------------------------*/

View File

@ -1862,7 +1862,6 @@ static const struct v4l2_subdev_core_ops tvaudio_core_ops = {
.s_ctrl = v4l2_subdev_s_ctrl, .s_ctrl = v4l2_subdev_s_ctrl,
.queryctrl = v4l2_subdev_queryctrl, .queryctrl = v4l2_subdev_queryctrl,
.querymenu = v4l2_subdev_querymenu, .querymenu = v4l2_subdev_querymenu,
.s_std = tvaudio_s_std,
}; };
static const struct v4l2_subdev_tuner_ops tvaudio_tuner_ops = { static const struct v4l2_subdev_tuner_ops tvaudio_tuner_ops = {
@ -1876,10 +1875,15 @@ static const struct v4l2_subdev_audio_ops tvaudio_audio_ops = {
.s_routing = tvaudio_s_routing, .s_routing = tvaudio_s_routing,
}; };
static const struct v4l2_subdev_video_ops tvaudio_video_ops = {
.s_std = tvaudio_s_std,
};
static const struct v4l2_subdev_ops tvaudio_ops = { static const struct v4l2_subdev_ops tvaudio_ops = {
.core = &tvaudio_core_ops, .core = &tvaudio_core_ops,
.tuner = &tvaudio_tuner_ops, .tuner = &tvaudio_tuner_ops,
.audio = &tvaudio_audio_ops, .audio = &tvaudio_audio_ops,
.video = &tvaudio_video_ops,
}; };
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */

View File

@ -1010,10 +1010,10 @@ static const struct v4l2_subdev_core_ops tvp514x_core_ops = {
.s_ctrl = v4l2_subdev_s_ctrl, .s_ctrl = v4l2_subdev_s_ctrl,
.queryctrl = v4l2_subdev_queryctrl, .queryctrl = v4l2_subdev_queryctrl,
.querymenu = v4l2_subdev_querymenu, .querymenu = v4l2_subdev_querymenu,
.s_std = tvp514x_s_std,
}; };
static const struct v4l2_subdev_video_ops tvp514x_video_ops = { static const struct v4l2_subdev_video_ops tvp514x_video_ops = {
.s_std = tvp514x_s_std,
.s_routing = tvp514x_s_routing, .s_routing = tvp514x_s_routing,
.querystd = tvp514x_querystd, .querystd = tvp514x_querystd,
.enum_mbus_fmt = tvp514x_enum_mbus_fmt, .enum_mbus_fmt = tvp514x_enum_mbus_fmt,

View File

@ -1063,7 +1063,6 @@ static const struct v4l2_ctrl_ops tvp5150_ctrl_ops = {
static const struct v4l2_subdev_core_ops tvp5150_core_ops = { static const struct v4l2_subdev_core_ops tvp5150_core_ops = {
.log_status = tvp5150_log_status, .log_status = tvp5150_log_status,
.s_std = tvp5150_s_std,
.reset = tvp5150_reset, .reset = tvp5150_reset,
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
.g_register = tvp5150_g_register, .g_register = tvp5150_g_register,
@ -1076,6 +1075,7 @@ static const struct v4l2_subdev_tuner_ops tvp5150_tuner_ops = {
}; };
static const struct v4l2_subdev_video_ops tvp5150_video_ops = { static const struct v4l2_subdev_video_ops tvp5150_video_ops = {
.s_std = tvp5150_s_std,
.s_routing = tvp5150_s_routing, .s_routing = tvp5150_s_routing,
.enum_mbus_fmt = tvp5150_enum_mbus_fmt, .enum_mbus_fmt = tvp5150_enum_mbus_fmt,
.s_mbus_fmt = tvp5150_mbus_fmt, .s_mbus_fmt = tvp5150_mbus_fmt,

View File

@ -342,12 +342,12 @@ static const struct v4l2_ctrl_ops tw2804_ctrl_ops = {
}; };
static const struct v4l2_subdev_video_ops tw2804_video_ops = { static const struct v4l2_subdev_video_ops tw2804_video_ops = {
.s_std = tw2804_s_std,
.s_routing = tw2804_s_video_routing, .s_routing = tw2804_s_video_routing,
}; };
static const struct v4l2_subdev_core_ops tw2804_core_ops = { static const struct v4l2_subdev_core_ops tw2804_core_ops = {
.log_status = tw2804_log_status, .log_status = tw2804_log_status,
.s_std = tw2804_s_std,
}; };
static const struct v4l2_subdev_ops tw2804_ops = { static const struct v4l2_subdev_ops tw2804_ops = {

View File

@ -187,10 +187,10 @@ static const struct v4l2_ctrl_ops tw9903_ctrl_ops = {
static const struct v4l2_subdev_core_ops tw9903_core_ops = { static const struct v4l2_subdev_core_ops tw9903_core_ops = {
.log_status = tw9903_log_status, .log_status = tw9903_log_status,
.s_std = tw9903_s_std,
}; };
static const struct v4l2_subdev_video_ops tw9903_video_ops = { static const struct v4l2_subdev_video_ops tw9903_video_ops = {
.s_std = tw9903_s_std,
.s_routing = tw9903_s_video_routing, .s_routing = tw9903_s_video_routing,
}; };

View File

@ -157,10 +157,10 @@ static const struct v4l2_ctrl_ops tw9906_ctrl_ops = {
static const struct v4l2_subdev_core_ops tw9906_core_ops = { static const struct v4l2_subdev_core_ops tw9906_core_ops = {
.log_status = tw9906_log_status, .log_status = tw9906_log_status,
.s_std = tw9906_s_std,
}; };
static const struct v4l2_subdev_video_ops tw9906_video_ops = { static const struct v4l2_subdev_video_ops tw9906_video_ops = {
.s_std = tw9906_s_std,
.s_routing = tw9906_s_video_routing, .s_routing = tw9906_s_video_routing,
}; };

View File

@ -124,7 +124,6 @@ static int vp27smpx_log_status(struct v4l2_subdev *sd)
static const struct v4l2_subdev_core_ops vp27smpx_core_ops = { static const struct v4l2_subdev_core_ops vp27smpx_core_ops = {
.log_status = vp27smpx_log_status, .log_status = vp27smpx_log_status,
.s_std = vp27smpx_s_std,
}; };
static const struct v4l2_subdev_tuner_ops vp27smpx_tuner_ops = { static const struct v4l2_subdev_tuner_ops vp27smpx_tuner_ops = {
@ -133,9 +132,14 @@ static const struct v4l2_subdev_tuner_ops vp27smpx_tuner_ops = {
.g_tuner = vp27smpx_g_tuner, .g_tuner = vp27smpx_g_tuner,
}; };
static const struct v4l2_subdev_video_ops vp27smpx_video_ops = {
.s_std = vp27smpx_s_std,
};
static const struct v4l2_subdev_ops vp27smpx_ops = { static const struct v4l2_subdev_ops vp27smpx_ops = {
.core = &vp27smpx_core_ops, .core = &vp27smpx_core_ops,
.tuner = &vp27smpx_tuner_ops, .tuner = &vp27smpx_tuner_ops,
.video = &vp27smpx_video_ops,
}; };
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */

View File

@ -457,10 +457,10 @@ static const struct v4l2_subdev_core_ops vpx3220_core_ops = {
.s_ctrl = v4l2_subdev_s_ctrl, .s_ctrl = v4l2_subdev_s_ctrl,
.queryctrl = v4l2_subdev_queryctrl, .queryctrl = v4l2_subdev_queryctrl,
.querymenu = v4l2_subdev_querymenu, .querymenu = v4l2_subdev_querymenu,
.s_std = vpx3220_s_std,
}; };
static const struct v4l2_subdev_video_ops vpx3220_video_ops = { static const struct v4l2_subdev_video_ops vpx3220_video_ops = {
.s_std = vpx3220_s_std,
.s_routing = vpx3220_s_routing, .s_routing = vpx3220_s_routing,
.s_stream = vpx3220_s_stream, .s_stream = vpx3220_s_stream,
.querystd = vpx3220_querystd, .querystd = vpx3220_querystd,

View File

@ -1182,7 +1182,7 @@ set_tvnorm(struct bttv *btv, unsigned int norm)
break; break;
} }
id = tvnorm->v4l2_id; id = tvnorm->v4l2_id;
bttv_call_all(btv, core, s_std, id); bttv_call_all(btv, video, s_std, id);
return 0; return 0;
} }

View File

@ -1263,7 +1263,6 @@ static const struct v4l2_subdev_core_ops cx18_av_general_ops = {
.log_status = cx18_av_log_status, .log_status = cx18_av_log_status,
.load_fw = cx18_av_load_fw, .load_fw = cx18_av_load_fw,
.reset = cx18_av_reset, .reset = cx18_av_reset,
.s_std = cx18_av_s_std,
#ifdef CONFIG_VIDEO_ADV_DEBUG #ifdef CONFIG_VIDEO_ADV_DEBUG
.g_register = cx18_av_g_register, .g_register = cx18_av_g_register,
.s_register = cx18_av_s_register, .s_register = cx18_av_s_register,
@ -1283,6 +1282,7 @@ static const struct v4l2_subdev_audio_ops cx18_av_audio_ops = {
}; };
static const struct v4l2_subdev_video_ops cx18_av_video_ops = { static const struct v4l2_subdev_video_ops cx18_av_video_ops = {
.s_std = cx18_av_s_std,
.s_routing = cx18_av_s_video_routing, .s_routing = cx18_av_s_video_routing,
.s_stream = cx18_av_s_stream, .s_stream = cx18_av_s_stream,
.s_mbus_fmt = cx18_av_s_mbus_fmt, .s_mbus_fmt = cx18_av_s_mbus_fmt,

View File

@ -760,7 +760,7 @@ int cx18_v4l2_close(struct file *filp)
/* Mark that the radio is no longer in use */ /* Mark that the radio is no longer in use */
clear_bit(CX18_F_I_RADIO_USER, &cx->i_flags); clear_bit(CX18_F_I_RADIO_USER, &cx->i_flags);
/* Switch tuner to TV */ /* Switch tuner to TV */
cx18_call_all(cx, core, s_std, cx->std); cx18_call_all(cx, video, s_std, cx->std);
/* Select correct audio input (i.e. TV tuner or Line in) */ /* Select correct audio input (i.e. TV tuner or Line in) */
cx18_audio_set_io(cx); cx18_audio_set_io(cx);
if (atomic_read(&cx->ana_capturing) > 0) { if (atomic_read(&cx->ana_capturing) > 0) {

View File

@ -180,7 +180,6 @@ static int gpiomux_s_audio_routing(struct v4l2_subdev *sd,
static const struct v4l2_subdev_core_ops gpiomux_core_ops = { static const struct v4l2_subdev_core_ops gpiomux_core_ops = {
.log_status = gpiomux_log_status, .log_status = gpiomux_log_status,
.s_std = gpiomux_s_std,
}; };
static const struct v4l2_subdev_tuner_ops gpiomux_tuner_ops = { static const struct v4l2_subdev_tuner_ops gpiomux_tuner_ops = {
@ -191,10 +190,15 @@ static const struct v4l2_subdev_audio_ops gpiomux_audio_ops = {
.s_routing = gpiomux_s_audio_routing, .s_routing = gpiomux_s_audio_routing,
}; };
static const struct v4l2_subdev_video_ops gpiomux_video_ops = {
.s_std = gpiomux_s_std,
};
static const struct v4l2_subdev_ops gpiomux_ops = { static const struct v4l2_subdev_ops gpiomux_ops = {
.core = &gpiomux_core_ops, .core = &gpiomux_core_ops,
.tuner = &gpiomux_tuner_ops, .tuner = &gpiomux_tuner_ops,
.audio = &gpiomux_audio_ops, .audio = &gpiomux_audio_ops,
.video = &gpiomux_video_ops,
}; };
/* /*

View File

@ -602,7 +602,7 @@ int cx18_s_std(struct file *file, void *fh, v4l2_std_id std)
(unsigned long long) cx->std); (unsigned long long) cx->std);
/* Tuner */ /* Tuner */
cx18_call_all(cx, core, s_std, cx->std); cx18_call_all(cx, video, s_std, cx->std);
return 0; return 0;
} }

View File

@ -326,7 +326,7 @@ int cx23885_set_tvnorm(struct cx23885_dev *dev, v4l2_std_id norm)
dev->tvnorm = norm; dev->tvnorm = norm;
call_all(dev, core, s_std, norm); call_all(dev, video, s_std, norm);
return 0; return 0;
} }
@ -1589,7 +1589,7 @@ static int cx23885_set_freq_via_ops(struct cx23885_dev *dev,
fe = &dev->ts1.analog_fe; fe = &dev->ts1.analog_fe;
if (fe && fe->ops.tuner_ops.set_analog_params) { if (fe && fe->ops.tuner_ops.set_analog_params) {
call_all(dev, core, s_std, dev->tvnorm); call_all(dev, video, s_std, dev->tvnorm);
fe->ops.tuner_ops.set_analog_params(fe, &params); fe->ops.tuner_ops.set_analog_params(fe, &params);
} }
else else

View File

@ -1012,7 +1012,7 @@ int cx88_set_tvnorm(struct cx88_core *core, v4l2_std_id norm)
set_tvaudio(core); set_tvaudio(core);
// tell i2c chips // tell i2c chips
call_all(core, core, s_std, norm); call_all(core, video, s_std, norm);
/* The chroma_agc control should be inaccessible if the video format is SECAM */ /* The chroma_agc control should be inaccessible if the video format is SECAM */
v4l2_ctrl_grab(core->chroma_agc, cxiformat == VideoFormatSECAM); v4l2_ctrl_grab(core->chroma_agc, cxiformat == VideoFormatSECAM);

View File

@ -894,7 +894,7 @@ int ivtv_v4l2_close(struct file *filp)
/* Mark that the radio is no longer in use */ /* Mark that the radio is no longer in use */
clear_bit(IVTV_F_I_RADIO_USER, &itv->i_flags); clear_bit(IVTV_F_I_RADIO_USER, &itv->i_flags);
/* Switch tuner to TV */ /* Switch tuner to TV */
ivtv_call_all(itv, core, s_std, itv->std); ivtv_call_all(itv, video, s_std, itv->std);
/* Select correct audio input (i.e. TV tuner or Line in) */ /* Select correct audio input (i.e. TV tuner or Line in) */
ivtv_audio_set_io(itv); ivtv_audio_set_io(itv);
if (itv->hw_flags & IVTV_HW_SAA711X) { if (itv->hw_flags & IVTV_HW_SAA711X) {

View File

@ -1090,7 +1090,7 @@ void ivtv_s_std_enc(struct ivtv *itv, v4l2_std_id std)
itv->vbi.sliced_decoder_line_size = itv->is_60hz ? 272 : 284; itv->vbi.sliced_decoder_line_size = itv->is_60hz ? 272 : 284;
/* Tuner */ /* Tuner */
ivtv_call_all(itv, core, s_std, itv->std); ivtv_call_all(itv, video, s_std, itv->std);
} }
void ivtv_s_std_dec(struct ivtv *itv, v4l2_std_id std) void ivtv_s_std_dec(struct ivtv *itv, v4l2_std_id std)

View File

@ -477,10 +477,10 @@ void saa7134_set_tvnorm_hw(struct saa7134_dev *dev)
saa7134_set_decoder(dev); saa7134_set_decoder(dev);
if (card_in(dev, dev->ctl_input).tv) if (card_in(dev, dev->ctl_input).tv)
saa_call_all(dev, core, s_std, dev->tvnorm->id); saa_call_all(dev, video, s_std, dev->tvnorm->id);
/* Set the correct norm for the saa6752hs. This function /* Set the correct norm for the saa6752hs. This function
does nothing if there is no saa6752hs. */ does nothing if there is no saa6752hs. */
saa_call_empress(dev, core, s_std, dev->tvnorm->id); saa_call_empress(dev, video, s_std, dev->tvnorm->id);
} }
static void set_h_prescale(struct saa7134_dev *dev, int task, int prescale) static void set_h_prescale(struct saa7134_dev *dev, int task, int prescale)

View File

@ -357,7 +357,7 @@ static int mxb_init_done(struct saa7146_dev* dev)
tea6420_route(mxb, 6); tea6420_route(mxb, 6);
/* select video mode in saa7111a */ /* select video mode in saa7111a */
saa7111a_call(mxb, core, s_std, std); saa7111a_call(mxb, video, s_std, std);
/* select tuner-output on saa7111a */ /* select tuner-output on saa7111a */
i = 0; i = 0;
@ -379,8 +379,8 @@ static int mxb_init_done(struct saa7146_dev* dev)
/* These two gpio calls set the GPIO pins that control the tda9820 */ /* These two gpio calls set the GPIO pins that control the tda9820 */
saa7146_write(dev, GPIO_CTRL, 0x00404050); saa7146_write(dev, GPIO_CTRL, 0x00404050);
saa7111a_call(mxb, core, s_gpio, 1); saa7111a_call(mxb, core, s_gpio, 1);
saa7111a_call(mxb, core, s_std, std); saa7111a_call(mxb, video, s_std, std);
tuner_call(mxb, core, s_std, std); tuner_call(mxb, video, s_std, std);
/* switch to tuner-channel on tea6415c */ /* switch to tuner-channel on tea6415c */
tea6415c_call(mxb, video, s_routing, 3, 17, 0); 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
/* These two gpio calls set the GPIO pins that control the tda9820 */ /* These two gpio calls set the GPIO pins that control the tda9820 */
saa7146_write(dev, GPIO_CTRL, 0x00404050); saa7146_write(dev, GPIO_CTRL, 0x00404050);
saa7111a_call(mxb, core, s_gpio, 0); saa7111a_call(mxb, core, s_gpio, 0);
saa7111a_call(mxb, core, s_std, std); saa7111a_call(mxb, video, s_std, std);
if (mxb->cur_input == 0) if (mxb->cur_input == 0)
tuner_call(mxb, core, s_std, std); tuner_call(mxb, video, s_std, std);
} else { } else {
v4l2_std_id std = V4L2_STD_PAL_BG; v4l2_std_id std = V4L2_STD_PAL_BG;
@ -783,9 +783,9 @@ static int std_callback(struct saa7146_dev *dev, struct saa7146_standard *standa
/* These two gpio calls set the GPIO pins that control the tda9820 */ /* These two gpio calls set the GPIO pins that control the tda9820 */
saa7146_write(dev, GPIO_CTRL, 0x00404050); saa7146_write(dev, GPIO_CTRL, 0x00404050);
saa7111a_call(mxb, core, s_gpio, 1); saa7111a_call(mxb, core, s_gpio, 1);
saa7111a_call(mxb, core, s_std, std); saa7111a_call(mxb, video, s_std, std);
if (mxb->cur_input == 0) if (mxb->cur_input == 0)
tuner_call(mxb, core, s_std, std); tuner_call(mxb, video, s_std, std);
} }
return 0; return 0;
} }

View File

@ -444,7 +444,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id std)
int status; int status;
if (V4L2_STD_ALL == std) { if (V4L2_STD_ALL == std) {
v4l2_subdev_call(vip->decoder, core, s_std, std); v4l2_subdev_call(vip->decoder, video, s_std, std);
ssleep(2); ssleep(2);
v4l2_subdev_call(vip->decoder, video, querystd, &newstd); v4l2_subdev_call(vip->decoder, video, querystd, &newstd);
v4l2_subdev_call(vip->decoder, video, g_input_status, &status); 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)
vip->format = formats_50[0]; vip->format = formats_50[0];
} }
return v4l2_subdev_call(vip->decoder, core, s_std, std); return v4l2_subdev_call(vip->decoder, video, s_std, std);
} }
/** /**

View File

@ -1572,7 +1572,7 @@ zoran_init_hardware (struct zoran *zr)
} }
decoder_call(zr, core, init, 0); decoder_call(zr, core, init, 0);
decoder_call(zr, core, s_std, zr->norm); decoder_call(zr, video, s_std, zr->norm);
decoder_call(zr, video, s_routing, decoder_call(zr, video, s_routing,
zr->card.input[zr->input].muxsel, 0, 0); zr->card.input[zr->input].muxsel, 0, 0);

View File

@ -1469,7 +1469,7 @@ zoran_set_norm (struct zoran *zr,
if (on) if (on)
zr36057_overlay(zr, 0); zr36057_overlay(zr, 0);
decoder_call(zr, core, s_std, norm); decoder_call(zr, video, s_std, norm);
encoder_call(zr, video, s_std_output, norm); encoder_call(zr, video, s_std_output, norm);
if (on) if (on)

View File

@ -631,7 +631,7 @@ static int bcap_s_std(struct file *file, void *priv, v4l2_std_id std)
if (vb2_is_busy(&bcap_dev->buffer_queue)) if (vb2_is_busy(&bcap_dev->buffer_queue))
return -EBUSY; return -EBUSY;
ret = v4l2_subdev_call(bcap_dev->sd, core, s_std, std); ret = v4l2_subdev_call(bcap_dev->sd, video, s_std, std);
if (ret < 0) if (ret < 0)
return ret; return ret;
@ -1065,7 +1065,7 @@ static int bcap_probe(struct platform_device *pdev)
/* now we can probe the default state */ /* now we can probe the default state */
if (config->inputs[0].capabilities & V4L2_IN_CAP_STD) { if (config->inputs[0].capabilities & V4L2_IN_CAP_STD) {
v4l2_std_id std; v4l2_std_id std;
ret = v4l2_subdev_call(bcap_dev->sd, core, g_std, &std); ret = v4l2_subdev_call(bcap_dev->sd, video, g_std, &std);
if (ret) { if (ret) {
v4l2_err(&bcap_dev->v4l2_dev, v4l2_err(&bcap_dev->v4l2_dev,
"Unable to get std\n"); "Unable to get std\n");

View File

@ -1217,7 +1217,7 @@ static int vpfe_s_std(struct file *file, void *priv, v4l2_std_id std_id)
} }
ret = v4l2_device_call_until_err(&vpfe_dev->v4l2_dev, sdinfo->grp_id, ret = v4l2_device_call_until_err(&vpfe_dev->v4l2_dev, sdinfo->grp_id,
core, s_std, std_id); video, s_std, std_id);
if (ret < 0) { if (ret < 0) {
v4l2_err(&vpfe_dev->v4l2_dev, "Failed to set standard\n"); v4l2_err(&vpfe_dev->v4l2_dev, "Failed to set standard\n");
goto unlock_out; goto unlock_out;

View File

@ -951,7 +951,7 @@ static int vpif_s_std(struct file *file, void *priv, v4l2_std_id std_id)
vpif_config_format(ch); vpif_config_format(ch);
/* set standard in the sub device */ /* set standard in the sub device */
ret = v4l2_subdev_call(ch->sd, core, s_std, std_id); ret = v4l2_subdev_call(ch->sd, video, s_std, std_id);
if (ret && ret != -ENOIOCTLCMD && ret != -ENODEV) { if (ret && ret != -ENOIOCTLCMD && ret != -ENODEV) {
vpif_dbg(1, debug, "Failed to set standard for sub devices\n"); vpif_dbg(1, debug, "Failed to set standard for sub devices\n");
return ret; return ret;

View File

@ -718,7 +718,7 @@ static int vpif_s_std(struct file *file, void *priv, v4l2_std_id std_id)
return ret; return ret;
} }
ret = v4l2_device_call_until_err(&vpif_obj.v4l2_dev, 1, core, ret = v4l2_device_call_until_err(&vpif_obj.v4l2_dev, 1, video,
s_std, std_id); s_std, std_id);
if (ret < 0) if (ret < 0)
vpif_err("Failed to set standard for sub devices\n"); vpif_err("Failed to set standard for sub devices\n");

View File

@ -964,7 +964,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id)
struct viu_fh *fh = priv; struct viu_fh *fh = priv;
fh->dev->std = id; fh->dev->std = id;
decoder_call(fh->dev, core, s_std, id); decoder_call(fh->dev, video, s_std, id);
return 0; return 0;
} }

View File

@ -314,7 +314,7 @@ static int soc_camera_s_std(struct file *file, void *priv, v4l2_std_id a)
struct soc_camera_device *icd = file->private_data; struct soc_camera_device *icd = file->private_data;
struct v4l2_subdev *sd = soc_camera_to_subdev(icd); struct v4l2_subdev *sd = soc_camera_to_subdev(icd);
return v4l2_subdev_call(sd, core, s_std, a); return v4l2_subdev_call(sd, video, s_std, a);
} }
static int soc_camera_g_std(struct file *file, void *priv, v4l2_std_id *a) static 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)
struct soc_camera_device *icd = file->private_data; struct soc_camera_device *icd = file->private_data;
struct v4l2_subdev *sd = soc_camera_to_subdev(icd); struct v4l2_subdev *sd = soc_camera_to_subdev(icd);
return v4l2_subdev_call(sd, core, g_std, a); return v4l2_subdev_call(sd, video, g_std, a);
} }
static int soc_camera_enum_framesizes(struct file *file, void *fh, static int soc_camera_enum_framesizes(struct file *file, void *fh,

View File

@ -347,7 +347,7 @@ static int timblogiw_s_std(struct file *file, void *priv, v4l2_std_id std)
mutex_lock(&lw->lock); mutex_lock(&lw->lock);
if (TIMBLOGIW_HAS_DECODER(lw)) if (TIMBLOGIW_HAS_DECODER(lw))
err = v4l2_subdev_call(lw->sd_enc, core, s_std, std); err = v4l2_subdev_call(lw->sd_enc, video, s_std, std);
if (!err) if (!err)
fh->cur_norm = timblogiw_get_norm(std); fh->cur_norm = timblogiw_get_norm(std);

View File

@ -2586,7 +2586,7 @@ static int vino_acquire_input(struct vino_channel_settings *vcs)
} }
if (data_norm == 3) if (data_norm == 3)
data_norm = VINO_DATA_NORM_PAL; data_norm = VINO_DATA_NORM_PAL;
ret = decoder_call(core, s_std, norm); ret = decoder_call(video, s_std, norm);
} }
spin_lock_irqsave(&vino_drvdata->input_lock, flags); spin_lock_irqsave(&vino_drvdata->input_lock, flags);
@ -2675,7 +2675,7 @@ static int vino_set_input(struct vino_channel_settings *vcs, int input)
} }
if (data_norm == 3) if (data_norm == 3)
data_norm = VINO_DATA_NORM_PAL; data_norm = VINO_DATA_NORM_PAL;
ret = decoder_call(core, s_std, norm); ret = decoder_call(video, s_std, norm);
} }
spin_lock_irqsave(&vino_drvdata->input_lock, flags); spin_lock_irqsave(&vino_drvdata->input_lock, flags);
@ -2809,7 +2809,7 @@ static int vino_set_data_norm(struct vino_channel_settings *vcs,
* as it may take a while... */ * as it may take a while... */
norm = vino_data_norms[data_norm].std; norm = vino_data_norms[data_norm].std;
err = decoder_call(core, s_std, norm); err = decoder_call(video, s_std, norm);
spin_lock_irqsave(&vino_drvdata->input_lock, *flags); spin_lock_irqsave(&vino_drvdata->input_lock, *flags);

View File

@ -1109,7 +1109,7 @@ static void au0828_init_tuner(struct au0828_dev *dev)
/* If we've never sent the standard in tuner core, do so now. /* If we've never sent the standard in tuner core, do so now.
We don't do this at device probe because we don't want to We don't do this at device probe because we don't want to
incur the cost of a firmware load */ incur the cost of a firmware load */
v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, dev->std); v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_std, dev->std);
v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_frequency, &f); v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_frequency, &f);
i2c_gate_ctrl(dev, 0); i2c_gate_ctrl(dev, 0);
} }
@ -1368,7 +1368,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm)
have to make the au0828 bridge adjust the size of its capture have to make the au0828 bridge adjust the size of its capture
buffer, which is currently hardcoded at 720x480 */ buffer, which is currently hardcoded at 720x480 */
v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, norm); v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_std, norm);
i2c_gate_ctrl(dev, 0); i2c_gate_ctrl(dev, 0);

View File

@ -1516,7 +1516,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id)
dev->ts1.height = 576; dev->ts1.height = 576;
cx2341x_handler_set_50hz(&dev->mpeg_ctrl_handler, true); cx2341x_handler_set_50hz(&dev->mpeg_ctrl_handler, true);
} }
call_all(dev, core, s_std, dev->norm); call_all(dev, video, s_std, dev->norm);
/* do mode control overrides */ /* do mode control overrides */
cx231xx_do_mode_ctrl_overrides(dev); cx231xx_do_mode_ctrl_overrides(dev);

View File

@ -1009,7 +1009,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm)
dev->width = 720; dev->width = 720;
dev->height = (dev->norm & V4L2_STD_625_50) ? 576 : 480; dev->height = (dev->norm & V4L2_STD_625_50) ? 576 : 480;
call_all(dev, core, s_std, dev->norm); call_all(dev, video, s_std, dev->norm);
/* We need to reset basic properties in the decoder related to /* We need to reset basic properties in the decoder related to
resolution (since a standard change effects things like the number 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)
/* There's a tuner, so reset the standard and put it on the /* There's a tuner, so reset the standard and put it on the
last known frequency (since it was probably powered down last known frequency (since it was probably powered down
until now */ until now */
call_all(dev, core, s_std, dev->norm); call_all(dev, video, s_std, dev->norm);
} }
return 0; return 0;
@ -2099,7 +2099,7 @@ int cx231xx_register_analog_devices(struct cx231xx *dev)
/* Set the initial input */ /* Set the initial input */
video_mux(dev, dev->video_input); video_mux(dev, dev->video_input);
call_all(dev, core, s_std, dev->norm); call_all(dev, video, s_std, dev->norm);
v4l2_ctrl_handler_init(&dev->ctrl_handler, 10); v4l2_ctrl_handler_init(&dev->ctrl_handler, 10);
v4l2_ctrl_handler_init(&dev->radio_ctrl_handler, 5); v4l2_ctrl_handler_init(&dev->radio_ctrl_handler, 5);

View File

@ -1400,7 +1400,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm)
&v4l2->hscale, &v4l2->vscale); &v4l2->hscale, &v4l2->vscale);
em28xx_resolution_set(dev); em28xx_resolution_set(dev);
v4l2_device_call_all(&v4l2->v4l2_dev, 0, core, s_std, v4l2->norm); v4l2_device_call_all(&v4l2->v4l2_dev, 0, video, s_std, v4l2->norm);
return 0; return 0;
} }
@ -2440,7 +2440,7 @@ static int em28xx_v4l2_init(struct em28xx *dev)
/* set default norm */ /* set default norm */
v4l2->norm = V4L2_STD_PAL; v4l2->norm = V4L2_STD_PAL;
v4l2_device_call_all(&v4l2->v4l2_dev, 0, core, s_std, v4l2->norm); v4l2_device_call_all(&v4l2->v4l2_dev, 0, video, s_std, v4l2->norm);
v4l2->interlaced_fieldmode = EM28XX_INTERLACED_DEFAULT; v4l2->interlaced_fieldmode = EM28XX_INTERLACED_DEFAULT;
/* Analog specific initialization */ /* Analog specific initialization */

View File

@ -2910,7 +2910,7 @@ static void pvr2_subdev_update(struct pvr2_hdw *hdw)
v4l2_std_id vs; v4l2_std_id vs;
vs = hdw->std_mask_cur; vs = hdw->std_mask_cur;
v4l2_device_call_all(&hdw->v4l2_dev, 0, v4l2_device_call_all(&hdw->v4l2_dev, 0,
core, s_std, vs); video, s_std, vs);
pvr2_hdw_cx25840_vbi_hack(hdw); pvr2_hdw_cx25840_vbi_hack(hdw);
} }
hdw->tuner_signal_stale = !0; hdw->tuner_signal_stale = !0;

View File

@ -406,7 +406,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm)
stk1160_set_std(dev); stk1160_set_std(dev);
v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_std,
dev->norm); dev->norm);
return 0; return 0;
@ -682,7 +682,7 @@ int stk1160_video_register(struct stk1160 *dev)
dev->fmt = &format[0]; dev->fmt = &format[0];
stk1160_set_std(dev); stk1160_set_std(dev);
v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_std,
dev->norm); dev->norm);
video_set_drvdata(&dev->vdev, dev); video_set_drvdata(&dev->vdev, dev);

View File

@ -1120,7 +1120,7 @@ static int tm6000_init_dev(struct tm6000_core *dev)
tm6000_config_tuner(dev); tm6000_config_tuner(dev);
/* Set video standard */ /* Set video standard */
v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, dev->norm); v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_std, dev->norm);
/* Set tuner frequency - also loads firmware on xc2028/xc3028 */ /* Set tuner frequency - also loads firmware on xc2028/xc3028 */
f.tuner = 0; f.tuner = 0;

View File

@ -1071,7 +1071,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm)
if (rc < 0) if (rc < 0)
return rc; return rc;
v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, dev->norm); v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_std, dev->norm);
return 0; return 0;
} }

View File

@ -597,7 +597,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id)
usbvision->tvnorm_id = id; usbvision->tvnorm_id = id;
call_all(usbvision, core, s_std, usbvision->tvnorm_id); call_all(usbvision, video, s_std, usbvision->tvnorm_id);
/* propagate the change to the decoder */ /* propagate the change to the decoder */
usbvision_muxsel(usbvision, usbvision->ctl_input); usbvision_muxsel(usbvision, usbvision->ctl_input);

View File

@ -1301,7 +1301,6 @@ static int tuner_command(struct i2c_client *client, unsigned cmd, void *arg)
static const struct v4l2_subdev_core_ops tuner_core_ops = { static const struct v4l2_subdev_core_ops tuner_core_ops = {
.log_status = tuner_log_status, .log_status = tuner_log_status,
.s_std = tuner_s_std,
.s_power = tuner_s_power, .s_power = tuner_s_power,
}; };
@ -1315,9 +1314,14 @@ static const struct v4l2_subdev_tuner_ops tuner_tuner_ops = {
.s_config = tuner_s_config, .s_config = tuner_s_config,
}; };
static const struct v4l2_subdev_video_ops tuner_video_ops = {
.s_std = tuner_s_std,
};
static const struct v4l2_subdev_ops tuner_ops = { static const struct v4l2_subdev_ops tuner_ops = {
.core = &tuner_core_ops, .core = &tuner_core_ops,
.tuner = &tuner_tuner_ops, .tuner = &tuner_tuner_ops,
.video = &tuner_video_ops,
}; };
/* /*

View File

@ -944,7 +944,7 @@ static int vpfe_s_std(struct file *file, void *priv, v4l2_std_id std_id)
goto unlock_out; goto unlock_out;
} }
ret = v4l2_device_call_until_err(&vpfe_dev->v4l2_dev, sdinfo->grp_id, ret = v4l2_device_call_until_err(&vpfe_dev->v4l2_dev, sdinfo->grp_id,
core, s_std, std_id); video, s_std, std_id);
if (ret < 0) { if (ret < 0) {
v4l2_err(&vpfe_dev->v4l2_dev, "Failed to set standard\n"); v4l2_err(&vpfe_dev->v4l2_dev, "Failed to set standard\n");
video->stdid = V4L2_STD_UNKNOWN; video->stdid = V4L2_STD_UNKNOWN;

View File

@ -665,7 +665,7 @@ static int go7007_s_std(struct go7007 *go)
go->sensor_framerate = 30000; go->sensor_framerate = 30000;
} }
call_all(&go->v4l2_dev, core, s_std, go->std); call_all(&go->v4l2_dev, video, s_std, go->std);
set_capture_size(go, NULL, 0); set_capture_size(go, NULL, 0);
return 0; return 0;
} }

View File

@ -474,7 +474,6 @@ static const struct v4l2_ctrl_ops s2250_ctrl_ops = {
static const struct v4l2_subdev_core_ops s2250_core_ops = { static const struct v4l2_subdev_core_ops s2250_core_ops = {
.log_status = s2250_log_status, .log_status = s2250_log_status,
.s_std = s2250_s_std,
}; };
static const struct v4l2_subdev_audio_ops s2250_audio_ops = { static const struct v4l2_subdev_audio_ops s2250_audio_ops = {
@ -482,6 +481,7 @@ static const struct v4l2_subdev_audio_ops s2250_audio_ops = {
}; };
static const struct v4l2_subdev_video_ops s2250_video_ops = { static const struct v4l2_subdev_video_ops s2250_video_ops = {
.s_std = s2250_s_std,
.s_routing = s2250_s_video_routing, .s_routing = s2250_s_video_routing,
.s_mbus_fmt = s2250_s_mbus_fmt, .s_mbus_fmt = s2250_s_mbus_fmt,
}; };

View File

@ -434,11 +434,15 @@ static const struct v4l2_subdev_core_ops saa7134_go7007_core_ops = {
.g_ctrl = saa7134_go7007_g_ctrl, .g_ctrl = saa7134_go7007_g_ctrl,
.s_ctrl = saa7134_go7007_s_ctrl, .s_ctrl = saa7134_go7007_s_ctrl,
.queryctrl = saa7134_go7007_queryctrl, .queryctrl = saa7134_go7007_queryctrl,
};
static const struct v4l2_subdev_video_ops saa7134_go7007_video_ops = {
.s_std = saa7134_go7007_s_std, .s_std = saa7134_go7007_s_std,
}; };
static const struct v4l2_subdev_ops saa7134_go7007_sd_ops = { static const struct v4l2_subdev_ops saa7134_go7007_sd_ops = {
.core = &saa7134_go7007_core_ops, .core = &saa7134_go7007_core_ops,
.video = &saa7134_go7007_video_ops,
}; };
/* --------------------------------------------------------------------------*/ /* --------------------------------------------------------------------------*/

View File

@ -159,8 +159,6 @@ struct v4l2_subdev_core_ops {
int (*s_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls); int (*s_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls);
int (*try_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls); int (*try_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls);
int (*querymenu)(struct v4l2_subdev *sd, struct v4l2_querymenu *qm); int (*querymenu)(struct v4l2_subdev *sd, struct v4l2_querymenu *qm);
int (*g_std)(struct v4l2_subdev *sd, v4l2_std_id *norm);
int (*s_std)(struct v4l2_subdev *sd, v4l2_std_id norm);
long (*ioctl)(struct v4l2_subdev *sd, unsigned int cmd, void *arg); long (*ioctl)(struct v4l2_subdev *sd, unsigned int cmd, void *arg);
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
long (*compat_ioctl32)(struct v4l2_subdev *sd, unsigned int cmd, long (*compat_ioctl32)(struct v4l2_subdev *sd, unsigned int cmd,
@ -316,6 +314,8 @@ struct v4l2_mbus_frame_desc {
struct v4l2_subdev_video_ops { struct v4l2_subdev_video_ops {
int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config); int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config);
int (*s_crystal_freq)(struct v4l2_subdev *sd, u32 freq, u32 flags); int (*s_crystal_freq)(struct v4l2_subdev *sd, u32 freq, u32 flags);
int (*g_std)(struct v4l2_subdev *sd, v4l2_std_id *norm);
int (*s_std)(struct v4l2_subdev *sd, v4l2_std_id norm);
int (*s_std_output)(struct v4l2_subdev *sd, v4l2_std_id std); int (*s_std_output)(struct v4l2_subdev *sd, v4l2_std_id std);
int (*g_std_output)(struct v4l2_subdev *sd, v4l2_std_id *std); int (*g_std_output)(struct v4l2_subdev *sd, v4l2_std_id *std);
int (*querystd)(struct v4l2_subdev *sd, v4l2_std_id *std); int (*querystd)(struct v4l2_subdev *sd, v4l2_std_id *std);
@ -693,7 +693,7 @@ void v4l2_subdev_init(struct v4l2_subdev *sd,
/* Call an ops of a v4l2_subdev, doing the right checks against /* Call an ops of a v4l2_subdev, doing the right checks against
NULL pointers. NULL pointers.
Example: err = v4l2_subdev_call(sd, core, s_std, norm); Example: err = v4l2_subdev_call(sd, video, s_std, norm);
*/ */
#define v4l2_subdev_call(sd, o, f, args...) \ #define v4l2_subdev_call(sd, o, f, args...) \
(!(sd) ? -ENODEV : (((sd)->ops->o && (sd)->ops->o->f) ? \ (!(sd) ? -ENODEV : (((sd)->ops->o && (sd)->ops->o->f) ? \