mirror of https://gitee.com/openkylin/linux.git
[media] radio-timb: add device_caps support, remove input/audio ioctls
The audio and input ioctls are not applicable for radio devices, remove them. Also set the device_caps field in v4l2_querycap. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Cc: Richard Röjfors <richard.rojfors@pelagicore.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
b73008920a
commit
d020f83947
|
@ -44,7 +44,8 @@ static int timbradio_vidioc_querycap(struct file *file, void *priv,
|
||||||
strlcpy(v->driver, DRIVER_NAME, sizeof(v->driver));
|
strlcpy(v->driver, DRIVER_NAME, sizeof(v->driver));
|
||||||
strlcpy(v->card, "Timberdale Radio", sizeof(v->card));
|
strlcpy(v->card, "Timberdale Radio", sizeof(v->card));
|
||||||
snprintf(v->bus_info, sizeof(v->bus_info), "platform:"DRIVER_NAME);
|
snprintf(v->bus_info, sizeof(v->bus_info), "platform:"DRIVER_NAME);
|
||||||
v->capabilities = V4L2_CAP_TUNER | V4L2_CAP_RADIO;
|
v->device_caps = V4L2_CAP_TUNER | V4L2_CAP_RADIO;
|
||||||
|
v->capabilities = v->device_caps | V4L2_CAP_DEVICE_CAPS;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,34 +63,6 @@ static int timbradio_vidioc_s_tuner(struct file *file, void *priv,
|
||||||
return v4l2_subdev_call(tr->sd_tuner, tuner, s_tuner, v);
|
return v4l2_subdev_call(tr->sd_tuner, tuner, s_tuner, v);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int timbradio_vidioc_g_input(struct file *filp, void *priv,
|
|
||||||
unsigned int *i)
|
|
||||||
{
|
|
||||||
*i = 0;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int timbradio_vidioc_s_input(struct file *filp, void *priv,
|
|
||||||
unsigned int i)
|
|
||||||
{
|
|
||||||
return i ? -EINVAL : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int timbradio_vidioc_g_audio(struct file *file, void *priv,
|
|
||||||
struct v4l2_audio *a)
|
|
||||||
{
|
|
||||||
a->index = 0;
|
|
||||||
strlcpy(a->name, "Radio", sizeof(a->name));
|
|
||||||
a->capability = V4L2_AUDCAP_STEREO;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int timbradio_vidioc_s_audio(struct file *file, void *priv,
|
|
||||||
const struct v4l2_audio *a)
|
|
||||||
{
|
|
||||||
return a->index ? -EINVAL : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int timbradio_vidioc_s_frequency(struct file *file, void *priv,
|
static int timbradio_vidioc_s_frequency(struct file *file, void *priv,
|
||||||
const struct v4l2_frequency *f)
|
const struct v4l2_frequency *f)
|
||||||
{
|
{
|
||||||
|
@ -131,10 +104,6 @@ static const struct v4l2_ioctl_ops timbradio_ioctl_ops = {
|
||||||
.vidioc_s_tuner = timbradio_vidioc_s_tuner,
|
.vidioc_s_tuner = timbradio_vidioc_s_tuner,
|
||||||
.vidioc_g_frequency = timbradio_vidioc_g_frequency,
|
.vidioc_g_frequency = timbradio_vidioc_g_frequency,
|
||||||
.vidioc_s_frequency = timbradio_vidioc_s_frequency,
|
.vidioc_s_frequency = timbradio_vidioc_s_frequency,
|
||||||
.vidioc_g_input = timbradio_vidioc_g_input,
|
|
||||||
.vidioc_s_input = timbradio_vidioc_s_input,
|
|
||||||
.vidioc_g_audio = timbradio_vidioc_g_audio,
|
|
||||||
.vidioc_s_audio = timbradio_vidioc_s_audio,
|
|
||||||
.vidioc_queryctrl = timbradio_vidioc_queryctrl,
|
.vidioc_queryctrl = timbradio_vidioc_queryctrl,
|
||||||
.vidioc_g_ctrl = timbradio_vidioc_g_ctrl,
|
.vidioc_g_ctrl = timbradio_vidioc_g_ctrl,
|
||||||
.vidioc_s_ctrl = timbradio_vidioc_s_ctrl
|
.vidioc_s_ctrl = timbradio_vidioc_s_ctrl
|
||||||
|
|
Loading…
Reference in New Issue