From: Hans Verkuil Date: Thu, 10 May 2012 06:16:14 +0000 (-0300) Subject: [media] tea575x-tuner: mark VIDIOC_S_HW_FREQ_SEEK as an invalid ioctl X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=6539799599f50e9ce36da784ee0f545540a9732c;p=deliverable%2Flinux.git [media] tea575x-tuner: mark VIDIOC_S_HW_FREQ_SEEK as an invalid ioctl The tea575x-tuner framework can support the VIDIOC_S_HW_FREQ_SEEK for only some of the tea575x-based boards. Mark this ioctl as invalid if the board doesn't support it. This fixes an issue with S_HW_FREQ_SEEK in combination with priority handling: since the priority check is done first it could return -EBUSY, even though calling the S_HW_FREQ_SEEK ioctl would return -ENOTTY. It should always return ENOTTY in such a case. Signed-off-by: Hans Verkuil Acked-by: Hans de Goede Signed-off-by: Mauro Carvalho Chehab --- diff --git a/sound/i2c/other/tea575x-tuner.c b/sound/i2c/other/tea575x-tuner.c index a63faec5e7fd..6e9ca7bd0f11 100644 --- a/sound/i2c/other/tea575x-tuner.c +++ b/sound/i2c/other/tea575x-tuner.c @@ -375,6 +375,9 @@ int snd_tea575x_init(struct snd_tea575x *tea) tea->vd.v4l2_dev = tea->v4l2_dev; tea->vd.ctrl_handler = &tea->ctrl_handler; set_bit(V4L2_FL_USE_FH_PRIO, &tea->vd.flags); + /* disable hw_freq_seek if we can't use it */ + if (tea->cannot_read_data) + v4l2_dont_use_cmd(&tea->vd, VIDIOC_S_HW_FREQ_SEEK); v4l2_ctrl_handler_init(&tea->ctrl_handler, 1); v4l2_ctrl_new_std(&tea->ctrl_handler, &tea575x_ctrl_ops, V4L2_CID_AUDIO_MUTE, 0, 1, 1, 1);