|
@@ -501,64 +501,6 @@ fail:
|
|
|
return -ERANGE;
|
|
|
}
|
|
|
|
|
|
-static int mxr_enum_dv_presets(struct file *file, void *fh,
|
|
|
- struct v4l2_dv_enum_preset *preset)
|
|
|
-{
|
|
|
- struct mxr_layer *layer = video_drvdata(file);
|
|
|
- struct mxr_device *mdev = layer->mdev;
|
|
|
- int ret;
|
|
|
-
|
|
|
- /* lock protects from changing sd_out */
|
|
|
- mutex_lock(&mdev->mutex);
|
|
|
- ret = v4l2_subdev_call(to_outsd(mdev), video, enum_dv_presets, preset);
|
|
|
- mutex_unlock(&mdev->mutex);
|
|
|
-
|
|
|
- return ret ? -EINVAL : 0;
|
|
|
-}
|
|
|
-
|
|
|
-static int mxr_s_dv_preset(struct file *file, void *fh,
|
|
|
- struct v4l2_dv_preset *preset)
|
|
|
-{
|
|
|
- struct mxr_layer *layer = video_drvdata(file);
|
|
|
- struct mxr_device *mdev = layer->mdev;
|
|
|
- int ret;
|
|
|
-
|
|
|
- /* lock protects from changing sd_out */
|
|
|
- mutex_lock(&mdev->mutex);
|
|
|
-
|
|
|
- /* preset change cannot be done while there is an entity
|
|
|
- * dependant on output configuration
|
|
|
- */
|
|
|
- if (mdev->n_output > 0) {
|
|
|
- mutex_unlock(&mdev->mutex);
|
|
|
- return -EBUSY;
|
|
|
- }
|
|
|
-
|
|
|
- ret = v4l2_subdev_call(to_outsd(mdev), video, s_dv_preset, preset);
|
|
|
-
|
|
|
- mutex_unlock(&mdev->mutex);
|
|
|
-
|
|
|
- mxr_layer_update_output(layer);
|
|
|
-
|
|
|
- /* any failure should return EINVAL according to V4L2 doc */
|
|
|
- return ret ? -EINVAL : 0;
|
|
|
-}
|
|
|
-
|
|
|
-static int mxr_g_dv_preset(struct file *file, void *fh,
|
|
|
- struct v4l2_dv_preset *preset)
|
|
|
-{
|
|
|
- struct mxr_layer *layer = video_drvdata(file);
|
|
|
- struct mxr_device *mdev = layer->mdev;
|
|
|
- int ret;
|
|
|
-
|
|
|
- /* lock protects from changing sd_out */
|
|
|
- mutex_lock(&mdev->mutex);
|
|
|
- ret = v4l2_subdev_call(to_outsd(mdev), video, g_dv_preset, preset);
|
|
|
- mutex_unlock(&mdev->mutex);
|
|
|
-
|
|
|
- return ret ? -EINVAL : 0;
|
|
|
-}
|
|
|
-
|
|
|
static int mxr_enum_dv_timings(struct file *file, void *fh,
|
|
|
struct v4l2_enum_dv_timings *timings)
|
|
|
{
|
|
@@ -689,8 +631,6 @@ static int mxr_enum_output(struct file *file, void *fh, struct v4l2_output *a)
|
|
|
/* try to obtain supported tv norms */
|
|
|
v4l2_subdev_call(sd, video, g_tvnorms_output, &a->std);
|
|
|
a->capabilities = 0;
|
|
|
- if (sd->ops->video && sd->ops->video->s_dv_preset)
|
|
|
- a->capabilities |= V4L2_OUT_CAP_PRESETS;
|
|
|
if (sd->ops->video && sd->ops->video->s_dv_timings)
|
|
|
a->capabilities |= V4L2_OUT_CAP_DV_TIMINGS;
|
|
|
if (sd->ops->video && sd->ops->video->s_std_output)
|
|
@@ -813,10 +753,6 @@ static const struct v4l2_ioctl_ops mxr_ioctl_ops = {
|
|
|
/* Streaming control */
|
|
|
.vidioc_streamon = mxr_streamon,
|
|
|
.vidioc_streamoff = mxr_streamoff,
|
|
|
- /* Preset functions */
|
|
|
- .vidioc_enum_dv_presets = mxr_enum_dv_presets,
|
|
|
- .vidioc_s_dv_preset = mxr_s_dv_preset,
|
|
|
- .vidioc_g_dv_preset = mxr_g_dv_preset,
|
|
|
/* DV Timings functions */
|
|
|
.vidioc_enum_dv_timings = mxr_enum_dv_timings,
|
|
|
.vidioc_s_dv_timings = mxr_s_dv_timings,
|