mirror of https://gitee.com/openkylin/linux.git
V4L/DVB (8783): v4l: add all missing video_device release callbacks
All drivers that call video_device_register where checked to see if they set the release callback of struct video_device. Where that callback was missing it was added. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
f9e86b5e9d
commit
aa5e90af7d
|
@ -420,6 +420,7 @@ static struct video_device rtrack_radio = {
|
|||
.name = "RadioTrack radio",
|
||||
.fops = &rtrack_fops,
|
||||
.ioctl_ops = &rtrack_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
static int __init rtrack_init(void)
|
||||
|
|
|
@ -384,6 +384,7 @@ static struct video_device aztech_radio = {
|
|||
.name = "Aztech radio",
|
||||
.fops = &aztech_fops,
|
||||
.ioctl_ops = &aztech_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
module_param_named(debug,aztech_radio.debug, int, 0644);
|
||||
|
|
|
@ -589,6 +589,7 @@ static struct video_device cadet_radio = {
|
|||
.name = "Cadet radio",
|
||||
.fops = &cadet_fops,
|
||||
.ioctl_ops = &cadet_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_PNP
|
||||
|
|
|
@ -404,6 +404,7 @@ static struct video_device vdev_template = {
|
|||
.name = "Gemtek PCI Radio",
|
||||
.fops = &gemtek_pci_fops,
|
||||
.ioctl_ops = &gemtek_pci_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
static int __devinit gemtek_pci_probe( struct pci_dev *pci_dev, const struct pci_device_id *pci_id )
|
||||
|
|
|
@ -584,6 +584,7 @@ static struct video_device gemtek_radio = {
|
|||
.name = "GemTek Radio card",
|
||||
.fops = &gemtek_fops,
|
||||
.ioctl_ops = &gemtek_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -388,6 +388,7 @@ static struct video_device maestro_radio = {
|
|||
.name = "Maestro radio",
|
||||
.fops = &maestro_fops,
|
||||
.ioctl_ops = &maestro_ioctl_ops,
|
||||
.release = video_device_release,
|
||||
};
|
||||
|
||||
static int __devinit maestro_probe(struct pci_dev *pdev,
|
||||
|
|
|
@ -405,6 +405,7 @@ static struct video_device maxiradio_radio = {
|
|||
.name = "Maxi Radio FM2000 radio",
|
||||
.fops = &maxiradio_fops,
|
||||
.ioctl_ops = &maxiradio_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
static int __devinit maxiradio_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
|
|
|
@ -326,6 +326,7 @@ static struct video_device rtrack2_radio = {
|
|||
.name = "RadioTrack II radio",
|
||||
.fops = &rtrack2_fops,
|
||||
.ioctl_ops = &rtrack2_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
static int __init rtrack2_init(void)
|
||||
|
|
|
@ -326,6 +326,7 @@ static struct video_device fmi_radio = {
|
|||
.name = "SF16FMx radio",
|
||||
.fops = &fmi_fops,
|
||||
.ioctl_ops = &fmi_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
/* ladis: this is my card. does any other types exist? */
|
||||
|
|
|
@ -442,6 +442,7 @@ static struct video_device fmr2_radio = {
|
|||
.name = "SF16FMR2 radio",
|
||||
.fops = &fmr2_fops,
|
||||
.ioctl_ops = &fmr2_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
static int __init fmr2_init(void)
|
||||
|
|
|
@ -398,6 +398,7 @@ static struct video_device terratec_radio = {
|
|||
.name = "TerraTec ActiveRadio",
|
||||
.fops = &terratec_fops,
|
||||
.ioctl_ops = &terratec_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
static int __init terratec_init(void)
|
||||
|
|
|
@ -378,6 +378,7 @@ static struct video_device trust_radio = {
|
|||
.name = "Trust FM Radio",
|
||||
.fops = &trust_fops,
|
||||
.ioctl_ops = &trust_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
static int __init trust_init(void)
|
||||
|
|
|
@ -375,6 +375,7 @@ static struct video_device typhoon_radio = {
|
|||
.name = "Typhoon Radio",
|
||||
.fops = &typhoon_fops,
|
||||
.ioctl_ops = &typhoon_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_RADIO_TYPHOON_PROC_FS
|
||||
|
|
|
@ -439,6 +439,7 @@ static struct video_device zoltrix_radio = {
|
|||
.name = "Zoltrix Radio Plus",
|
||||
.fops = &zoltrix_fops,
|
||||
.ioctl_ops = &zoltrix_ioctl_ops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
static int __init zoltrix_init(void)
|
||||
|
|
|
@ -926,6 +926,7 @@ static struct video_device qcam_template=
|
|||
{
|
||||
.name = "Connectix Quickcam",
|
||||
.fops = &qcam_fops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
#define MAX_CAMS 4
|
||||
|
|
|
@ -722,6 +722,7 @@ static struct video_device qcam_template=
|
|||
{
|
||||
.name = "Colour QuickCam",
|
||||
.fops = &qcam_fops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
/* Initialize the QuickCam driver control structure. */
|
||||
|
|
|
@ -3801,6 +3801,7 @@ static const struct file_operations cpia_fops = {
|
|||
static struct video_device cpia_template = {
|
||||
.name = "CPiA Camera",
|
||||
.fops = &cpia_fops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
/* initialise cam_data structure */
|
||||
|
|
|
@ -915,6 +915,7 @@ static struct video_device pms_template=
|
|||
{
|
||||
.name = "Mediavision PMS",
|
||||
.fops = &pms_fops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
static struct pms_device pms_device;
|
||||
|
|
|
@ -708,6 +708,7 @@ static struct video_device saa_template =
|
|||
{
|
||||
.name = IF_NAME,
|
||||
.fops = &saa_fops,
|
||||
.release = video_device_release,
|
||||
};
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
|
|
|
@ -1236,6 +1236,7 @@ static const struct file_operations se401_fops = {
|
|||
static struct video_device se401_template = {
|
||||
.name = "se401 USB camera",
|
||||
.fops = &se401_fops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -1925,6 +1925,7 @@ static struct video_device saa_template = {
|
|||
.name = "SAA7146A",
|
||||
.fops = &saa_fops,
|
||||
.minor = -1,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
static int __devinit configure_saa7146(struct pci_dev *pdev, int num)
|
||||
|
|
|
@ -1006,10 +1006,6 @@ struct uvd *usbvideo_AllocateDevice(struct usbvideo *cams)
|
|||
|
||||
EXPORT_SYMBOL(usbvideo_AllocateDevice);
|
||||
|
||||
static void usbvideo_dummy_release(struct video_device *vfd)
|
||||
{
|
||||
}
|
||||
|
||||
int usbvideo_RegisterVideoDevice(struct uvd *uvd)
|
||||
{
|
||||
char tmp1[20], tmp2[20]; /* Buffers for printing */
|
||||
|
@ -1043,7 +1039,7 @@ int usbvideo_RegisterVideoDevice(struct uvd *uvd)
|
|||
return -EINVAL;
|
||||
}
|
||||
uvd->vdev.parent = &uvd->dev->dev;
|
||||
uvd->vdev.release = usbvideo_dummy_release;
|
||||
uvd->vdev.release = video_device_release_empty;
|
||||
if (video_register_device(&uvd->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
|
||||
err("%s: video_register_device failed", __func__);
|
||||
return -EPIPE;
|
||||
|
|
|
@ -801,6 +801,7 @@ static struct video_device vicam_template = {
|
|||
.name = "ViCam-based USB Camera",
|
||||
.fops = &vicam_fops,
|
||||
.minor = -1,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
/* table of devices that work with this driver */
|
||||
|
|
|
@ -216,6 +216,7 @@ static const struct file_operations w9966_fops = {
|
|||
static struct video_device w9966_template = {
|
||||
.name = W9966_DRIVERNAME,
|
||||
.fops = &w9966_fops,
|
||||
.release = video_device_release_empty,
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue