Commit aa5e90af authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

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: default avatarHans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent f9e86b5e
...@@ -420,6 +420,7 @@ static struct video_device rtrack_radio = { ...@@ -420,6 +420,7 @@ static struct video_device rtrack_radio = {
.name = "RadioTrack radio", .name = "RadioTrack radio",
.fops = &rtrack_fops, .fops = &rtrack_fops,
.ioctl_ops = &rtrack_ioctl_ops, .ioctl_ops = &rtrack_ioctl_ops,
.release = video_device_release_empty,
}; };
static int __init rtrack_init(void) static int __init rtrack_init(void)
......
...@@ -381,9 +381,10 @@ static const struct v4l2_ioctl_ops aztech_ioctl_ops = { ...@@ -381,9 +381,10 @@ static const struct v4l2_ioctl_ops aztech_ioctl_ops = {
}; };
static struct video_device aztech_radio = { static struct video_device aztech_radio = {
.name = "Aztech radio", .name = "Aztech radio",
.fops = &aztech_fops, .fops = &aztech_fops,
.ioctl_ops = &aztech_ioctl_ops, .ioctl_ops = &aztech_ioctl_ops,
.release = video_device_release_empty,
}; };
module_param_named(debug,aztech_radio.debug, int, 0644); module_param_named(debug,aztech_radio.debug, int, 0644);
......
...@@ -589,6 +589,7 @@ static struct video_device cadet_radio = { ...@@ -589,6 +589,7 @@ static struct video_device cadet_radio = {
.name = "Cadet radio", .name = "Cadet radio",
.fops = &cadet_fops, .fops = &cadet_fops,
.ioctl_ops = &cadet_ioctl_ops, .ioctl_ops = &cadet_ioctl_ops,
.release = video_device_release_empty,
}; };
#ifdef CONFIG_PNP #ifdef CONFIG_PNP
......
...@@ -401,9 +401,10 @@ static const struct v4l2_ioctl_ops gemtek_pci_ioctl_ops = { ...@@ -401,9 +401,10 @@ static const struct v4l2_ioctl_ops gemtek_pci_ioctl_ops = {
}; };
static struct video_device vdev_template = { static struct video_device vdev_template = {
.name = "Gemtek PCI Radio", .name = "Gemtek PCI Radio",
.fops = &gemtek_pci_fops, .fops = &gemtek_pci_fops,
.ioctl_ops = &gemtek_pci_ioctl_ops, .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 ) static int __devinit gemtek_pci_probe( struct pci_dev *pci_dev, const struct pci_device_id *pci_id )
......
...@@ -581,9 +581,10 @@ static const struct v4l2_ioctl_ops gemtek_ioctl_ops = { ...@@ -581,9 +581,10 @@ static const struct v4l2_ioctl_ops gemtek_ioctl_ops = {
}; };
static struct video_device gemtek_radio = { static struct video_device gemtek_radio = {
.name = "GemTek Radio card", .name = "GemTek Radio card",
.fops = &gemtek_fops, .fops = &gemtek_fops,
.ioctl_ops = &gemtek_ioctl_ops, .ioctl_ops = &gemtek_ioctl_ops,
.release = video_device_release_empty,
}; };
/* /*
......
...@@ -388,6 +388,7 @@ static struct video_device maestro_radio = { ...@@ -388,6 +388,7 @@ static struct video_device maestro_radio = {
.name = "Maestro radio", .name = "Maestro radio",
.fops = &maestro_fops, .fops = &maestro_fops,
.ioctl_ops = &maestro_ioctl_ops, .ioctl_ops = &maestro_ioctl_ops,
.release = video_device_release,
}; };
static int __devinit maestro_probe(struct pci_dev *pdev, static int __devinit maestro_probe(struct pci_dev *pdev,
......
...@@ -402,9 +402,10 @@ static const struct v4l2_ioctl_ops maxiradio_ioctl_ops = { ...@@ -402,9 +402,10 @@ static const struct v4l2_ioctl_ops maxiradio_ioctl_ops = {
}; };
static struct video_device maxiradio_radio = { static struct video_device maxiradio_radio = {
.name = "Maxi Radio FM2000 radio", .name = "Maxi Radio FM2000 radio",
.fops = &maxiradio_fops, .fops = &maxiradio_fops,
.ioctl_ops = &maxiradio_ioctl_ops, .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) 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 = { ...@@ -326,6 +326,7 @@ static struct video_device rtrack2_radio = {
.name = "RadioTrack II radio", .name = "RadioTrack II radio",
.fops = &rtrack2_fops, .fops = &rtrack2_fops,
.ioctl_ops = &rtrack2_ioctl_ops, .ioctl_ops = &rtrack2_ioctl_ops,
.release = video_device_release_empty,
}; };
static int __init rtrack2_init(void) static int __init rtrack2_init(void)
......
...@@ -326,6 +326,7 @@ static struct video_device fmi_radio = { ...@@ -326,6 +326,7 @@ static struct video_device fmi_radio = {
.name = "SF16FMx radio", .name = "SF16FMx radio",
.fops = &fmi_fops, .fops = &fmi_fops,
.ioctl_ops = &fmi_ioctl_ops, .ioctl_ops = &fmi_ioctl_ops,
.release = video_device_release_empty,
}; };
/* ladis: this is my card. does any other types exist? */ /* ladis: this is my card. does any other types exist? */
......
...@@ -442,6 +442,7 @@ static struct video_device fmr2_radio = { ...@@ -442,6 +442,7 @@ static struct video_device fmr2_radio = {
.name = "SF16FMR2 radio", .name = "SF16FMR2 radio",
.fops = &fmr2_fops, .fops = &fmr2_fops,
.ioctl_ops = &fmr2_ioctl_ops, .ioctl_ops = &fmr2_ioctl_ops,
.release = video_device_release_empty,
}; };
static int __init fmr2_init(void) static int __init fmr2_init(void)
......
...@@ -398,6 +398,7 @@ static struct video_device terratec_radio = { ...@@ -398,6 +398,7 @@ static struct video_device terratec_radio = {
.name = "TerraTec ActiveRadio", .name = "TerraTec ActiveRadio",
.fops = &terratec_fops, .fops = &terratec_fops,
.ioctl_ops = &terratec_ioctl_ops, .ioctl_ops = &terratec_ioctl_ops,
.release = video_device_release_empty,
}; };
static int __init terratec_init(void) static int __init terratec_init(void)
......
...@@ -378,6 +378,7 @@ static struct video_device trust_radio = { ...@@ -378,6 +378,7 @@ static struct video_device trust_radio = {
.name = "Trust FM Radio", .name = "Trust FM Radio",
.fops = &trust_fops, .fops = &trust_fops,
.ioctl_ops = &trust_ioctl_ops, .ioctl_ops = &trust_ioctl_ops,
.release = video_device_release_empty,
}; };
static int __init trust_init(void) static int __init trust_init(void)
......
...@@ -375,6 +375,7 @@ static struct video_device typhoon_radio = { ...@@ -375,6 +375,7 @@ static struct video_device typhoon_radio = {
.name = "Typhoon Radio", .name = "Typhoon Radio",
.fops = &typhoon_fops, .fops = &typhoon_fops,
.ioctl_ops = &typhoon_ioctl_ops, .ioctl_ops = &typhoon_ioctl_ops,
.release = video_device_release_empty,
}; };
#ifdef CONFIG_RADIO_TYPHOON_PROC_FS #ifdef CONFIG_RADIO_TYPHOON_PROC_FS
......
...@@ -439,6 +439,7 @@ static struct video_device zoltrix_radio = { ...@@ -439,6 +439,7 @@ static struct video_device zoltrix_radio = {
.name = "Zoltrix Radio Plus", .name = "Zoltrix Radio Plus",
.fops = &zoltrix_fops, .fops = &zoltrix_fops,
.ioctl_ops = &zoltrix_ioctl_ops, .ioctl_ops = &zoltrix_ioctl_ops,
.release = video_device_release_empty,
}; };
static int __init zoltrix_init(void) static int __init zoltrix_init(void)
......
...@@ -926,6 +926,7 @@ static struct video_device qcam_template= ...@@ -926,6 +926,7 @@ static struct video_device qcam_template=
{ {
.name = "Connectix Quickcam", .name = "Connectix Quickcam",
.fops = &qcam_fops, .fops = &qcam_fops,
.release = video_device_release_empty,
}; };
#define MAX_CAMS 4 #define MAX_CAMS 4
......
...@@ -722,6 +722,7 @@ static struct video_device qcam_template= ...@@ -722,6 +722,7 @@ static struct video_device qcam_template=
{ {
.name = "Colour QuickCam", .name = "Colour QuickCam",
.fops = &qcam_fops, .fops = &qcam_fops,
.release = video_device_release_empty,
}; };
/* Initialize the QuickCam driver control structure. */ /* Initialize the QuickCam driver control structure. */
......
...@@ -3801,6 +3801,7 @@ static const struct file_operations cpia_fops = { ...@@ -3801,6 +3801,7 @@ static const struct file_operations cpia_fops = {
static struct video_device cpia_template = { static struct video_device cpia_template = {
.name = "CPiA Camera", .name = "CPiA Camera",
.fops = &cpia_fops, .fops = &cpia_fops,
.release = video_device_release_empty,
}; };
/* initialise cam_data structure */ /* initialise cam_data structure */
......
...@@ -915,6 +915,7 @@ static struct video_device pms_template= ...@@ -915,6 +915,7 @@ static struct video_device pms_template=
{ {
.name = "Mediavision PMS", .name = "Mediavision PMS",
.fops = &pms_fops, .fops = &pms_fops,
.release = video_device_release_empty,
}; };
static struct pms_device pms_device; static struct pms_device pms_device;
......
...@@ -708,6 +708,7 @@ static struct video_device saa_template = ...@@ -708,6 +708,7 @@ static struct video_device saa_template =
{ {
.name = IF_NAME, .name = IF_NAME,
.fops = &saa_fops, .fops = &saa_fops,
.release = video_device_release,
}; };
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
...@@ -1236,6 +1236,7 @@ static const struct file_operations se401_fops = { ...@@ -1236,6 +1236,7 @@ static const struct file_operations se401_fops = {
static struct video_device se401_template = { static struct video_device se401_template = {
.name = "se401 USB camera", .name = "se401 USB camera",
.fops = &se401_fops, .fops = &se401_fops,
.release = video_device_release_empty,
}; };
......
...@@ -1925,6 +1925,7 @@ static struct video_device saa_template = { ...@@ -1925,6 +1925,7 @@ static struct video_device saa_template = {
.name = "SAA7146A", .name = "SAA7146A",
.fops = &saa_fops, .fops = &saa_fops,
.minor = -1, .minor = -1,
.release = video_device_release_empty,
}; };
static int __devinit configure_saa7146(struct pci_dev *pdev, int num) static int __devinit configure_saa7146(struct pci_dev *pdev, int num)
......
...@@ -1006,10 +1006,6 @@ struct uvd *usbvideo_AllocateDevice(struct usbvideo *cams) ...@@ -1006,10 +1006,6 @@ struct uvd *usbvideo_AllocateDevice(struct usbvideo *cams)
EXPORT_SYMBOL(usbvideo_AllocateDevice); EXPORT_SYMBOL(usbvideo_AllocateDevice);
static void usbvideo_dummy_release(struct video_device *vfd)
{
}
int usbvideo_RegisterVideoDevice(struct uvd *uvd) int usbvideo_RegisterVideoDevice(struct uvd *uvd)
{ {
char tmp1[20], tmp2[20]; /* Buffers for printing */ char tmp1[20], tmp2[20]; /* Buffers for printing */
...@@ -1043,7 +1039,7 @@ int usbvideo_RegisterVideoDevice(struct uvd *uvd) ...@@ -1043,7 +1039,7 @@ int usbvideo_RegisterVideoDevice(struct uvd *uvd)
return -EINVAL; return -EINVAL;
} }
uvd->vdev.parent = &uvd->dev->dev; 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) { if (video_register_device(&uvd->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
err("%s: video_register_device failed", __func__); err("%s: video_register_device failed", __func__);
return -EPIPE; return -EPIPE;
......
...@@ -801,6 +801,7 @@ static struct video_device vicam_template = { ...@@ -801,6 +801,7 @@ static struct video_device vicam_template = {
.name = "ViCam-based USB Camera", .name = "ViCam-based USB Camera",
.fops = &vicam_fops, .fops = &vicam_fops,
.minor = -1, .minor = -1,
.release = video_device_release_empty,
}; };
/* table of devices that work with this driver */ /* table of devices that work with this driver */
......
...@@ -216,6 +216,7 @@ static const struct file_operations w9966_fops = { ...@@ -216,6 +216,7 @@ static const struct file_operations w9966_fops = {
static struct video_device w9966_template = { static struct video_device w9966_template = {
.name = W9966_DRIVERNAME, .name = W9966_DRIVERNAME,
.fops = &w9966_fops, .fops = &w9966_fops,
.release = video_device_release_empty,
}; };
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment