diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2008-12-30 04:58:20 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-01-02 14:11:12 -0500 |
commit | bec43661b1dc0075b7445223ba775674133b164d (patch) | |
tree | 2a09ad5cc78799985e5cfb789f0a23db58e70499 /drivers/media/radio | |
parent | dfa9a5ae679ff2d23caa995d0f55a19abaf0596e (diff) |
V4L/DVB (10135): v4l2: introduce v4l2_file_operations.
Introduce a struct v4l2_file_operations for v4l2 drivers.
Remove the unnecessary inode argument.
Move compat32 handling (and llseek) into the v4l2-dev core: this is now
handled in the v4l2 core and no longer in the drivers themselves.
Note that this changeset reverts an earlier patch that changed the return
type of__video_ioctl2 from int to long. This change will be reinstated
later in a much improved version.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/radio')
-rw-r--r-- | drivers/media/radio/dsbr100.c | 14 | ||||
-rw-r--r-- | drivers/media/radio/radio-aimslab.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-aztech.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-cadet.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-gemtek-pci.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-gemtek.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-maestro.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-maxiradio.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-mr800.c | 14 | ||||
-rw-r--r-- | drivers/media/radio/radio-rtrack2.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-sf16fmi.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-sf16fmr2.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-si470x.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-terratec.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-trust.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-typhoon.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-zoltrix.c | 10 |
17 files changed, 55 insertions, 123 deletions
diff --git a/drivers/media/radio/dsbr100.c b/drivers/media/radio/dsbr100.c index 5474a22c1b22..2014ebc4e984 100644 --- a/drivers/media/radio/dsbr100.c +++ b/drivers/media/radio/dsbr100.c | |||
@@ -154,8 +154,8 @@ devices, that would be 76 and 91. */ | |||
154 | static int usb_dsbr100_probe(struct usb_interface *intf, | 154 | static int usb_dsbr100_probe(struct usb_interface *intf, |
155 | const struct usb_device_id *id); | 155 | const struct usb_device_id *id); |
156 | static void usb_dsbr100_disconnect(struct usb_interface *intf); | 156 | static void usb_dsbr100_disconnect(struct usb_interface *intf); |
157 | static int usb_dsbr100_open(struct inode *inode, struct file *file); | 157 | static int usb_dsbr100_open(struct file *file); |
158 | static int usb_dsbr100_close(struct inode *inode, struct file *file); | 158 | static int usb_dsbr100_close(struct file *file); |
159 | static int usb_dsbr100_suspend(struct usb_interface *intf, | 159 | static int usb_dsbr100_suspend(struct usb_interface *intf, |
160 | pm_message_t message); | 160 | pm_message_t message); |
161 | static int usb_dsbr100_resume(struct usb_interface *intf); | 161 | static int usb_dsbr100_resume(struct usb_interface *intf); |
@@ -566,7 +566,7 @@ static int vidioc_s_audio(struct file *file, void *priv, | |||
566 | return 0; | 566 | return 0; |
567 | } | 567 | } |
568 | 568 | ||
569 | static int usb_dsbr100_open(struct inode *inode, struct file *file) | 569 | static int usb_dsbr100_open(struct file *file) |
570 | { | 570 | { |
571 | struct dsbr100_device *radio = video_drvdata(file); | 571 | struct dsbr100_device *radio = video_drvdata(file); |
572 | int retval; | 572 | int retval; |
@@ -593,7 +593,7 @@ static int usb_dsbr100_open(struct inode *inode, struct file *file) | |||
593 | return 0; | 593 | return 0; |
594 | } | 594 | } |
595 | 595 | ||
596 | static int usb_dsbr100_close(struct inode *inode, struct file *file) | 596 | static int usb_dsbr100_close(struct file *file) |
597 | { | 597 | { |
598 | struct dsbr100_device *radio = video_drvdata(file); | 598 | struct dsbr100_device *radio = video_drvdata(file); |
599 | int retval; | 599 | int retval; |
@@ -653,15 +653,11 @@ static void usb_dsbr100_video_device_release(struct video_device *videodev) | |||
653 | } | 653 | } |
654 | 654 | ||
655 | /* File system interface */ | 655 | /* File system interface */ |
656 | static const struct file_operations usb_dsbr100_fops = { | 656 | static const struct v4l2_file_operations usb_dsbr100_fops = { |
657 | .owner = THIS_MODULE, | 657 | .owner = THIS_MODULE, |
658 | .open = usb_dsbr100_open, | 658 | .open = usb_dsbr100_open, |
659 | .release = usb_dsbr100_close, | 659 | .release = usb_dsbr100_close, |
660 | .ioctl = video_ioctl2, | 660 | .ioctl = video_ioctl2, |
661 | #ifdef CONFIG_COMPAT | ||
662 | .compat_ioctl = v4l_compat_ioctl32, | ||
663 | #endif | ||
664 | .llseek = no_llseek, | ||
665 | }; | 661 | }; |
666 | 662 | ||
667 | static const struct v4l2_ioctl_ops usb_dsbr100_ioctl_ops = { | 663 | static const struct v4l2_ioctl_ops usb_dsbr100_ioctl_ops = { |
diff --git a/drivers/media/radio/radio-aimslab.c b/drivers/media/radio/radio-aimslab.c index dd6d3dfcd7d2..bfa13b8b3043 100644 --- a/drivers/media/radio/radio-aimslab.c +++ b/drivers/media/radio/radio-aimslab.c | |||
@@ -374,26 +374,22 @@ static int vidioc_s_audio(struct file *file, void *priv, | |||
374 | 374 | ||
375 | static struct rt_device rtrack_unit; | 375 | static struct rt_device rtrack_unit; |
376 | 376 | ||
377 | static int rtrack_exclusive_open(struct inode *inode, struct file *file) | 377 | static int rtrack_exclusive_open(struct file *file) |
378 | { | 378 | { |
379 | return test_and_set_bit(0, &rtrack_unit.in_use) ? -EBUSY : 0; | 379 | return test_and_set_bit(0, &rtrack_unit.in_use) ? -EBUSY : 0; |
380 | } | 380 | } |
381 | 381 | ||
382 | static int rtrack_exclusive_release(struct inode *inode, struct file *file) | 382 | static int rtrack_exclusive_release(struct file *file) |
383 | { | 383 | { |
384 | clear_bit(0, &rtrack_unit.in_use); | 384 | clear_bit(0, &rtrack_unit.in_use); |
385 | return 0; | 385 | return 0; |
386 | } | 386 | } |
387 | 387 | ||
388 | static const struct file_operations rtrack_fops = { | 388 | static const struct v4l2_file_operations rtrack_fops = { |
389 | .owner = THIS_MODULE, | 389 | .owner = THIS_MODULE, |
390 | .open = rtrack_exclusive_open, | 390 | .open = rtrack_exclusive_open, |
391 | .release = rtrack_exclusive_release, | 391 | .release = rtrack_exclusive_release, |
392 | .ioctl = video_ioctl2, | 392 | .ioctl = video_ioctl2, |
393 | #ifdef CONFIG_COMPAT | ||
394 | .compat_ioctl = v4l_compat_ioctl32, | ||
395 | #endif | ||
396 | .llseek = no_llseek, | ||
397 | }; | 393 | }; |
398 | 394 | ||
399 | static const struct v4l2_ioctl_ops rtrack_ioctl_ops = { | 395 | static const struct v4l2_ioctl_ops rtrack_ioctl_ops = { |
diff --git a/drivers/media/radio/radio-aztech.c b/drivers/media/radio/radio-aztech.c index d78489573230..5604e881e96c 100644 --- a/drivers/media/radio/radio-aztech.c +++ b/drivers/media/radio/radio-aztech.c | |||
@@ -338,26 +338,22 @@ static int vidioc_s_ctrl (struct file *file, void *priv, | |||
338 | 338 | ||
339 | static struct az_device aztech_unit; | 339 | static struct az_device aztech_unit; |
340 | 340 | ||
341 | static int aztech_exclusive_open(struct inode *inode, struct file *file) | 341 | static int aztech_exclusive_open(struct file *file) |
342 | { | 342 | { |
343 | return test_and_set_bit(0, &aztech_unit.in_use) ? -EBUSY : 0; | 343 | return test_and_set_bit(0, &aztech_unit.in_use) ? -EBUSY : 0; |
344 | } | 344 | } |
345 | 345 | ||
346 | static int aztech_exclusive_release(struct inode *inode, struct file *file) | 346 | static int aztech_exclusive_release(struct file *file) |
347 | { | 347 | { |
348 | clear_bit(0, &aztech_unit.in_use); | 348 | clear_bit(0, &aztech_unit.in_use); |
349 | return 0; | 349 | return 0; |
350 | } | 350 | } |
351 | 351 | ||
352 | static const struct file_operations aztech_fops = { | 352 | static const struct v4l2_file_operations aztech_fops = { |
353 | .owner = THIS_MODULE, | 353 | .owner = THIS_MODULE, |
354 | .open = aztech_exclusive_open, | 354 | .open = aztech_exclusive_open, |
355 | .release = aztech_exclusive_release, | 355 | .release = aztech_exclusive_release, |
356 | .ioctl = video_ioctl2, | 356 | .ioctl = video_ioctl2, |
357 | #ifdef CONFIG_COMPAT | ||
358 | .compat_ioctl = v4l_compat_ioctl32, | ||
359 | #endif | ||
360 | .llseek = no_llseek, | ||
361 | }; | 357 | }; |
362 | 358 | ||
363 | static const struct v4l2_ioctl_ops aztech_ioctl_ops = { | 359 | static const struct v4l2_ioctl_ops aztech_ioctl_ops = { |
diff --git a/drivers/media/radio/radio-cadet.c b/drivers/media/radio/radio-cadet.c index bfd37f38b9ab..cb3075ac104c 100644 --- a/drivers/media/radio/radio-cadet.c +++ b/drivers/media/radio/radio-cadet.c | |||
@@ -529,7 +529,7 @@ static int vidioc_s_audio(struct file *file, void *priv, | |||
529 | } | 529 | } |
530 | 530 | ||
531 | static int | 531 | static int |
532 | cadet_open(struct inode *inode, struct file *file) | 532 | cadet_open(struct file *file) |
533 | { | 533 | { |
534 | users++; | 534 | users++; |
535 | if (1 == users) init_waitqueue_head(&read_queue); | 535 | if (1 == users) init_waitqueue_head(&read_queue); |
@@ -537,7 +537,7 @@ cadet_open(struct inode *inode, struct file *file) | |||
537 | } | 537 | } |
538 | 538 | ||
539 | static int | 539 | static int |
540 | cadet_release(struct inode *inode, struct file *file) | 540 | cadet_release(struct file *file) |
541 | { | 541 | { |
542 | users--; | 542 | users--; |
543 | if (0 == users){ | 543 | if (0 == users){ |
@@ -557,17 +557,13 @@ cadet_poll(struct file *file, struct poll_table_struct *wait) | |||
557 | } | 557 | } |
558 | 558 | ||
559 | 559 | ||
560 | static const struct file_operations cadet_fops = { | 560 | static const struct v4l2_file_operations cadet_fops = { |
561 | .owner = THIS_MODULE, | 561 | .owner = THIS_MODULE, |
562 | .open = cadet_open, | 562 | .open = cadet_open, |
563 | .release = cadet_release, | 563 | .release = cadet_release, |
564 | .read = cadet_read, | 564 | .read = cadet_read, |
565 | .ioctl = video_ioctl2, | 565 | .ioctl = video_ioctl2, |
566 | .poll = cadet_poll, | 566 | .poll = cadet_poll, |
567 | #ifdef CONFIG_COMPAT | ||
568 | .compat_ioctl = v4l_compat_ioctl32, | ||
569 | #endif | ||
570 | .llseek = no_llseek, | ||
571 | }; | 567 | }; |
572 | 568 | ||
573 | static const struct v4l2_ioctl_ops cadet_ioctl_ops = { | 569 | static const struct v4l2_ioctl_ops cadet_ioctl_ops = { |
diff --git a/drivers/media/radio/radio-gemtek-pci.c b/drivers/media/radio/radio-gemtek-pci.c index e15bee6d7cfc..0c96bf8525b0 100644 --- a/drivers/media/radio/radio-gemtek-pci.c +++ b/drivers/media/radio/radio-gemtek-pci.c | |||
@@ -358,26 +358,22 @@ MODULE_DEVICE_TABLE( pci, gemtek_pci_id ); | |||
358 | 358 | ||
359 | static int mx = 1; | 359 | static int mx = 1; |
360 | 360 | ||
361 | static int gemtek_pci_exclusive_open(struct inode *inode, struct file *file) | 361 | static int gemtek_pci_exclusive_open(struct file *file) |
362 | { | 362 | { |
363 | return test_and_set_bit(0, &in_use) ? -EBUSY : 0; | 363 | return test_and_set_bit(0, &in_use) ? -EBUSY : 0; |
364 | } | 364 | } |
365 | 365 | ||
366 | static int gemtek_pci_exclusive_release(struct inode *inode, struct file *file) | 366 | static int gemtek_pci_exclusive_release(struct file *file) |
367 | { | 367 | { |
368 | clear_bit(0, &in_use); | 368 | clear_bit(0, &in_use); |
369 | return 0; | 369 | return 0; |
370 | } | 370 | } |
371 | 371 | ||
372 | static const struct file_operations gemtek_pci_fops = { | 372 | static const struct v4l2_file_operations gemtek_pci_fops = { |
373 | .owner = THIS_MODULE, | 373 | .owner = THIS_MODULE, |
374 | .open = gemtek_pci_exclusive_open, | 374 | .open = gemtek_pci_exclusive_open, |
375 | .release = gemtek_pci_exclusive_release, | 375 | .release = gemtek_pci_exclusive_release, |
376 | .ioctl = video_ioctl2, | 376 | .ioctl = video_ioctl2, |
377 | #ifdef CONFIG_COMPAT | ||
378 | .compat_ioctl = v4l_compat_ioctl32, | ||
379 | #endif | ||
380 | .llseek = no_llseek, | ||
381 | }; | 377 | }; |
382 | 378 | ||
383 | static const struct v4l2_ioctl_ops gemtek_pci_ioctl_ops = { | 379 | static const struct v4l2_ioctl_ops gemtek_pci_ioctl_ops = { |
diff --git a/drivers/media/radio/radio-gemtek.c b/drivers/media/radio/radio-gemtek.c index e13118da307b..2b68be773f13 100644 --- a/drivers/media/radio/radio-gemtek.c +++ b/drivers/media/radio/radio-gemtek.c | |||
@@ -394,26 +394,22 @@ static struct v4l2_queryctrl radio_qctrl[] = { | |||
394 | } | 394 | } |
395 | }; | 395 | }; |
396 | 396 | ||
397 | static int gemtek_exclusive_open(struct inode *inode, struct file *file) | 397 | static int gemtek_exclusive_open(struct file *file) |
398 | { | 398 | { |
399 | return test_and_set_bit(0, &in_use) ? -EBUSY : 0; | 399 | return test_and_set_bit(0, &in_use) ? -EBUSY : 0; |
400 | } | 400 | } |
401 | 401 | ||
402 | static int gemtek_exclusive_release(struct inode *inode, struct file *file) | 402 | static int gemtek_exclusive_release(struct file *file) |
403 | { | 403 | { |
404 | clear_bit(0, &in_use); | 404 | clear_bit(0, &in_use); |
405 | return 0; | 405 | return 0; |
406 | } | 406 | } |
407 | 407 | ||
408 | static const struct file_operations gemtek_fops = { | 408 | static const struct v4l2_file_operations gemtek_fops = { |
409 | .owner = THIS_MODULE, | 409 | .owner = THIS_MODULE, |
410 | .open = gemtek_exclusive_open, | 410 | .open = gemtek_exclusive_open, |
411 | .release = gemtek_exclusive_release, | 411 | .release = gemtek_exclusive_release, |
412 | .ioctl = video_ioctl2, | 412 | .ioctl = video_ioctl2, |
413 | #ifdef CONFIG_COMPAT | ||
414 | .compat_ioctl = v4l_compat_ioctl32, | ||
415 | #endif | ||
416 | .llseek = no_llseek | ||
417 | }; | 413 | }; |
418 | 414 | ||
419 | static int vidioc_querycap(struct file *file, void *priv, | 415 | static int vidioc_querycap(struct file *file, void *priv, |
diff --git a/drivers/media/radio/radio-maestro.c b/drivers/media/radio/radio-maestro.c index 4bf4d007bcfa..ba3a13a90013 100644 --- a/drivers/media/radio/radio-maestro.c +++ b/drivers/media/radio/radio-maestro.c | |||
@@ -79,12 +79,12 @@ static unsigned long in_use; | |||
79 | 79 | ||
80 | static int maestro_probe(struct pci_dev *pdev, const struct pci_device_id *ent); | 80 | static int maestro_probe(struct pci_dev *pdev, const struct pci_device_id *ent); |
81 | 81 | ||
82 | static int maestro_exclusive_open(struct inode *inode, struct file *file) | 82 | static int maestro_exclusive_open(struct file *file) |
83 | { | 83 | { |
84 | return test_and_set_bit(0, &in_use) ? -EBUSY : 0; | 84 | return test_and_set_bit(0, &in_use) ? -EBUSY : 0; |
85 | } | 85 | } |
86 | 86 | ||
87 | static int maestro_exclusive_release(struct inode *inode, struct file *file) | 87 | static int maestro_exclusive_release(struct file *file) |
88 | { | 88 | { |
89 | clear_bit(0, &in_use); | 89 | clear_bit(0, &in_use); |
90 | return 0; | 90 | return 0; |
@@ -110,15 +110,11 @@ static struct pci_driver maestro_r_driver = { | |||
110 | .remove = __devexit_p(maestro_remove), | 110 | .remove = __devexit_p(maestro_remove), |
111 | }; | 111 | }; |
112 | 112 | ||
113 | static const struct file_operations maestro_fops = { | 113 | static const struct v4l2_file_operations maestro_fops = { |
114 | .owner = THIS_MODULE, | 114 | .owner = THIS_MODULE, |
115 | .open = maestro_exclusive_open, | 115 | .open = maestro_exclusive_open, |
116 | .release = maestro_exclusive_release, | 116 | .release = maestro_exclusive_release, |
117 | .ioctl = video_ioctl2, | 117 | .ioctl = video_ioctl2, |
118 | #ifdef CONFIG_COMPAT | ||
119 | .compat_ioctl = v4l_compat_ioctl32, | ||
120 | #endif | ||
121 | .llseek = no_llseek, | ||
122 | }; | 118 | }; |
123 | 119 | ||
124 | struct radio_device { | 120 | struct radio_device { |
diff --git a/drivers/media/radio/radio-maxiradio.c b/drivers/media/radio/radio-maxiradio.c index c777a17b00bc..c5dc00aa9c9f 100644 --- a/drivers/media/radio/radio-maxiradio.c +++ b/drivers/media/radio/radio-maxiradio.c | |||
@@ -100,26 +100,22 @@ static unsigned long in_use; | |||
100 | #define BITS2FREQ(x) ((x) * FREQ_STEP - FREQ_IF) | 100 | #define BITS2FREQ(x) ((x) * FREQ_STEP - FREQ_IF) |
101 | 101 | ||
102 | 102 | ||
103 | static int maxiradio_exclusive_open(struct inode *inode, struct file *file) | 103 | static int maxiradio_exclusive_open(struct file *file) |
104 | { | 104 | { |
105 | return test_and_set_bit(0, &in_use) ? -EBUSY : 0; | 105 | return test_and_set_bit(0, &in_use) ? -EBUSY : 0; |
106 | } | 106 | } |
107 | 107 | ||
108 | static int maxiradio_exclusive_release(struct inode *inode, struct file *file) | 108 | static int maxiradio_exclusive_release(struct file *file) |
109 | { | 109 | { |
110 | clear_bit(0, &in_use); | 110 | clear_bit(0, &in_use); |
111 | return 0; | 111 | return 0; |
112 | } | 112 | } |
113 | 113 | ||
114 | static const struct file_operations maxiradio_fops = { | 114 | static const struct v4l2_file_operations maxiradio_fops = { |
115 | .owner = THIS_MODULE, | 115 | .owner = THIS_MODULE, |
116 | .open = maxiradio_exclusive_open, | 116 | .open = maxiradio_exclusive_open, |
117 | .release = maxiradio_exclusive_release, | 117 | .release = maxiradio_exclusive_release, |
118 | .ioctl = video_ioctl2, | 118 | .ioctl = video_ioctl2, |
119 | #ifdef CONFIG_COMPAT | ||
120 | .compat_ioctl = v4l_compat_ioctl32, | ||
121 | #endif | ||
122 | .llseek = no_llseek, | ||
123 | }; | 119 | }; |
124 | 120 | ||
125 | static struct radio_device | 121 | static struct radio_device |
diff --git a/drivers/media/radio/radio-mr800.c b/drivers/media/radio/radio-mr800.c index e730eddb2bb5..0747dc8862b0 100644 --- a/drivers/media/radio/radio-mr800.c +++ b/drivers/media/radio/radio-mr800.c | |||
@@ -127,8 +127,8 @@ static struct v4l2_queryctrl radio_qctrl[] = { | |||
127 | static int usb_amradio_probe(struct usb_interface *intf, | 127 | static int usb_amradio_probe(struct usb_interface *intf, |
128 | const struct usb_device_id *id); | 128 | const struct usb_device_id *id); |
129 | static void usb_amradio_disconnect(struct usb_interface *intf); | 129 | static void usb_amradio_disconnect(struct usb_interface *intf); |
130 | static int usb_amradio_open(struct inode *inode, struct file *file); | 130 | static int usb_amradio_open(struct file *file); |
131 | static int usb_amradio_close(struct inode *inode, struct file *file); | 131 | static int usb_amradio_close(struct file *file); |
132 | static int usb_amradio_suspend(struct usb_interface *intf, | 132 | static int usb_amradio_suspend(struct usb_interface *intf, |
133 | pm_message_t message); | 133 | pm_message_t message); |
134 | static int usb_amradio_resume(struct usb_interface *intf); | 134 | static int usb_amradio_resume(struct usb_interface *intf); |
@@ -500,7 +500,7 @@ static int vidioc_s_input(struct file *filp, void *priv, unsigned int i) | |||
500 | } | 500 | } |
501 | 501 | ||
502 | /* open device - amradio_start() and amradio_setfreq() */ | 502 | /* open device - amradio_start() and amradio_setfreq() */ |
503 | static int usb_amradio_open(struct inode *inode, struct file *file) | 503 | static int usb_amradio_open(struct file *file) |
504 | { | 504 | { |
505 | struct amradio_device *radio = video_get_drvdata(video_devdata(file)); | 505 | struct amradio_device *radio = video_get_drvdata(video_devdata(file)); |
506 | 506 | ||
@@ -525,7 +525,7 @@ static int usb_amradio_open(struct inode *inode, struct file *file) | |||
525 | } | 525 | } |
526 | 526 | ||
527 | /*close device */ | 527 | /*close device */ |
528 | static int usb_amradio_close(struct inode *inode, struct file *file) | 528 | static int usb_amradio_close(struct file *file) |
529 | { | 529 | { |
530 | struct amradio_device *radio = video_get_drvdata(video_devdata(file)); | 530 | struct amradio_device *radio = video_get_drvdata(video_devdata(file)); |
531 | int retval; | 531 | int retval; |
@@ -572,15 +572,11 @@ static int usb_amradio_resume(struct usb_interface *intf) | |||
572 | } | 572 | } |
573 | 573 | ||
574 | /* File system interface */ | 574 | /* File system interface */ |
575 | static const struct file_operations usb_amradio_fops = { | 575 | static const struct v4l2_file_operations usb_amradio_fops = { |
576 | .owner = THIS_MODULE, | 576 | .owner = THIS_MODULE, |
577 | .open = usb_amradio_open, | 577 | .open = usb_amradio_open, |
578 | .release = usb_amradio_close, | 578 | .release = usb_amradio_close, |
579 | .ioctl = video_ioctl2, | 579 | .ioctl = video_ioctl2, |
580 | #ifdef CONFIG_COMPAT | ||
581 | .compat_ioctl = v4l_compat_ioctl32, | ||
582 | #endif | ||
583 | .llseek = no_llseek, | ||
584 | }; | 580 | }; |
585 | 581 | ||
586 | static const struct v4l2_ioctl_ops usb_amradio_ioctl_ops = { | 582 | static const struct v4l2_ioctl_ops usb_amradio_ioctl_ops = { |
diff --git a/drivers/media/radio/radio-rtrack2.c b/drivers/media/radio/radio-rtrack2.c index 7704f243b6f0..2587227214bf 100644 --- a/drivers/media/radio/radio-rtrack2.c +++ b/drivers/media/radio/radio-rtrack2.c | |||
@@ -280,26 +280,22 @@ static int vidioc_s_audio(struct file *file, void *priv, | |||
280 | 280 | ||
281 | static struct rt_device rtrack2_unit; | 281 | static struct rt_device rtrack2_unit; |
282 | 282 | ||
283 | static int rtrack2_exclusive_open(struct inode *inode, struct file *file) | 283 | static int rtrack2_exclusive_open(struct file *file) |
284 | { | 284 | { |
285 | return test_and_set_bit(0, &rtrack2_unit.in_use) ? -EBUSY : 0; | 285 | return test_and_set_bit(0, &rtrack2_unit.in_use) ? -EBUSY : 0; |
286 | } | 286 | } |
287 | 287 | ||
288 | static int rtrack2_exclusive_release(struct inode *inode, struct file *file) | 288 | static int rtrack2_exclusive_release(struct file *file) |
289 | { | 289 | { |
290 | clear_bit(0, &rtrack2_unit.in_use); | 290 | clear_bit(0, &rtrack2_unit.in_use); |
291 | return 0; | 291 | return 0; |
292 | } | 292 | } |
293 | 293 | ||
294 | static const struct file_operations rtrack2_fops = { | 294 | static const struct v4l2_file_operations rtrack2_fops = { |
295 | .owner = THIS_MODULE, | 295 | .owner = THIS_MODULE, |
296 | .open = rtrack2_exclusive_open, | 296 | .open = rtrack2_exclusive_open, |
297 | .release = rtrack2_exclusive_release, | 297 | .release = rtrack2_exclusive_release, |
298 | .ioctl = video_ioctl2, | 298 | .ioctl = video_ioctl2, |
299 | #ifdef CONFIG_COMPAT | ||
300 | .compat_ioctl = v4l_compat_ioctl32, | ||
301 | #endif | ||
302 | .llseek = no_llseek, | ||
303 | }; | 299 | }; |
304 | 300 | ||
305 | static const struct v4l2_ioctl_ops rtrack2_ioctl_ops = { | 301 | static const struct v4l2_ioctl_ops rtrack2_ioctl_ops = { |
diff --git a/drivers/media/radio/radio-sf16fmi.c b/drivers/media/radio/radio-sf16fmi.c index 834d43651c70..d358e48c2422 100644 --- a/drivers/media/radio/radio-sf16fmi.c +++ b/drivers/media/radio/radio-sf16fmi.c | |||
@@ -280,26 +280,22 @@ static int vidioc_s_audio(struct file *file, void *priv, | |||
280 | 280 | ||
281 | static struct fmi_device fmi_unit; | 281 | static struct fmi_device fmi_unit; |
282 | 282 | ||
283 | static int fmi_exclusive_open(struct inode *inode, struct file *file) | 283 | static int fmi_exclusive_open(struct file *file) |
284 | { | 284 | { |
285 | return test_and_set_bit(0, &fmi_unit.in_use) ? -EBUSY : 0; | 285 | return test_and_set_bit(0, &fmi_unit.in_use) ? -EBUSY : 0; |
286 | } | 286 | } |
287 | 287 | ||
288 | static int fmi_exclusive_release(struct inode *inode, struct file *file) | 288 | static int fmi_exclusive_release(struct file *file) |
289 | { | 289 | { |
290 | clear_bit(0, &fmi_unit.in_use); | 290 | clear_bit(0, &fmi_unit.in_use); |
291 | return 0; | 291 | return 0; |
292 | } | 292 | } |
293 | 293 | ||
294 | static const struct file_operations fmi_fops = { | 294 | static const struct v4l2_file_operations fmi_fops = { |
295 | .owner = THIS_MODULE, | 295 | .owner = THIS_MODULE, |
296 | .open = fmi_exclusive_open, | 296 | .open = fmi_exclusive_open, |
297 | .release = fmi_exclusive_release, | 297 | .release = fmi_exclusive_release, |
298 | .ioctl = video_ioctl2, | 298 | .ioctl = video_ioctl2, |
299 | #ifdef CONFIG_COMPAT | ||
300 | .compat_ioctl = v4l_compat_ioctl32, | ||
301 | #endif | ||
302 | .llseek = no_llseek, | ||
303 | }; | 299 | }; |
304 | 300 | ||
305 | static const struct v4l2_ioctl_ops fmi_ioctl_ops = { | 301 | static const struct v4l2_ioctl_ops fmi_ioctl_ops = { |
diff --git a/drivers/media/radio/radio-sf16fmr2.c b/drivers/media/radio/radio-sf16fmr2.c index b1f47c322e02..92f17a347fa7 100644 --- a/drivers/media/radio/radio-sf16fmr2.c +++ b/drivers/media/radio/radio-sf16fmr2.c | |||
@@ -396,26 +396,22 @@ static int vidioc_s_audio(struct file *file, void *priv, | |||
396 | 396 | ||
397 | static struct fmr2_device fmr2_unit; | 397 | static struct fmr2_device fmr2_unit; |
398 | 398 | ||
399 | static int fmr2_exclusive_open(struct inode *inode, struct file *file) | 399 | static int fmr2_exclusive_open(struct file *file) |
400 | { | 400 | { |
401 | return test_and_set_bit(0, &fmr2_unit.in_use) ? -EBUSY : 0; | 401 | return test_and_set_bit(0, &fmr2_unit.in_use) ? -EBUSY : 0; |
402 | } | 402 | } |
403 | 403 | ||
404 | static int fmr2_exclusive_release(struct inode *inode, struct file *file) | 404 | static int fmr2_exclusive_release(struct file *file) |
405 | { | 405 | { |
406 | clear_bit(0, &fmr2_unit.in_use); | 406 | clear_bit(0, &fmr2_unit.in_use); |
407 | return 0; | 407 | return 0; |
408 | } | 408 | } |
409 | 409 | ||
410 | static const struct file_operations fmr2_fops = { | 410 | static const struct v4l2_file_operations fmr2_fops = { |
411 | .owner = THIS_MODULE, | 411 | .owner = THIS_MODULE, |
412 | .open = fmr2_exclusive_open, | 412 | .open = fmr2_exclusive_open, |
413 | .release = fmr2_exclusive_release, | 413 | .release = fmr2_exclusive_release, |
414 | .ioctl = video_ioctl2, | 414 | .ioctl = video_ioctl2, |
415 | #ifdef CONFIG_COMPAT | ||
416 | .compat_ioctl = v4l_compat_ioctl32, | ||
417 | #endif | ||
418 | .llseek = no_llseek, | ||
419 | }; | 415 | }; |
420 | 416 | ||
421 | static const struct v4l2_ioctl_ops fmr2_ioctl_ops = { | 417 | static const struct v4l2_ioctl_ops fmr2_ioctl_ops = { |
diff --git a/drivers/media/radio/radio-si470x.c b/drivers/media/radio/radio-si470x.c index 3e1830293de5..457445ec7b52 100644 --- a/drivers/media/radio/radio-si470x.c +++ b/drivers/media/radio/radio-si470x.c | |||
@@ -1075,7 +1075,7 @@ static unsigned int si470x_fops_poll(struct file *file, | |||
1075 | /* | 1075 | /* |
1076 | * si470x_fops_open - file open | 1076 | * si470x_fops_open - file open |
1077 | */ | 1077 | */ |
1078 | static int si470x_fops_open(struct inode *inode, struct file *file) | 1078 | static int si470x_fops_open(struct file *file) |
1079 | { | 1079 | { |
1080 | struct si470x_device *radio = video_drvdata(file); | 1080 | struct si470x_device *radio = video_drvdata(file); |
1081 | int retval; | 1081 | int retval; |
@@ -1105,7 +1105,7 @@ done: | |||
1105 | /* | 1105 | /* |
1106 | * si470x_fops_release - file release | 1106 | * si470x_fops_release - file release |
1107 | */ | 1107 | */ |
1108 | static int si470x_fops_release(struct inode *inode, struct file *file) | 1108 | static int si470x_fops_release(struct file *file) |
1109 | { | 1109 | { |
1110 | struct si470x_device *radio = video_drvdata(file); | 1110 | struct si470x_device *radio = video_drvdata(file); |
1111 | int retval = 0; | 1111 | int retval = 0; |
@@ -1147,15 +1147,11 @@ done: | |||
1147 | /* | 1147 | /* |
1148 | * si470x_fops - file operations interface | 1148 | * si470x_fops - file operations interface |
1149 | */ | 1149 | */ |
1150 | static const struct file_operations si470x_fops = { | 1150 | static const struct v4l2_file_operations si470x_fops = { |
1151 | .owner = THIS_MODULE, | 1151 | .owner = THIS_MODULE, |
1152 | .llseek = no_llseek, | ||
1153 | .read = si470x_fops_read, | 1152 | .read = si470x_fops_read, |
1154 | .poll = si470x_fops_poll, | 1153 | .poll = si470x_fops_poll, |
1155 | .ioctl = video_ioctl2, | 1154 | .ioctl = video_ioctl2, |
1156 | #ifdef CONFIG_COMPAT | ||
1157 | .compat_ioctl = v4l_compat_ioctl32, | ||
1158 | #endif | ||
1159 | .open = si470x_fops_open, | 1155 | .open = si470x_fops_open, |
1160 | .release = si470x_fops_release, | 1156 | .release = si470x_fops_release, |
1161 | }; | 1157 | }; |
diff --git a/drivers/media/radio/radio-terratec.c b/drivers/media/radio/radio-terratec.c index 0abb186a9473..0798d71abd00 100644 --- a/drivers/media/radio/radio-terratec.c +++ b/drivers/media/radio/radio-terratec.c | |||
@@ -352,26 +352,22 @@ static int vidioc_s_audio(struct file *file, void *priv, | |||
352 | 352 | ||
353 | static struct tt_device terratec_unit; | 353 | static struct tt_device terratec_unit; |
354 | 354 | ||
355 | static int terratec_exclusive_open(struct inode *inode, struct file *file) | 355 | static int terratec_exclusive_open(struct file *file) |
356 | { | 356 | { |
357 | return test_and_set_bit(0, &terratec_unit.in_use) ? -EBUSY : 0; | 357 | return test_and_set_bit(0, &terratec_unit.in_use) ? -EBUSY : 0; |
358 | } | 358 | } |
359 | 359 | ||
360 | static int terratec_exclusive_release(struct inode *inode, struct file *file) | 360 | static int terratec_exclusive_release(struct file *file) |
361 | { | 361 | { |
362 | clear_bit(0, &terratec_unit.in_use); | 362 | clear_bit(0, &terratec_unit.in_use); |
363 | return 0; | 363 | return 0; |
364 | } | 364 | } |
365 | 365 | ||
366 | static const struct file_operations terratec_fops = { | 366 | static const struct v4l2_file_operations terratec_fops = { |
367 | .owner = THIS_MODULE, | 367 | .owner = THIS_MODULE, |
368 | .open = terratec_exclusive_open, | 368 | .open = terratec_exclusive_open, |
369 | .release = terratec_exclusive_release, | 369 | .release = terratec_exclusive_release, |
370 | .ioctl = video_ioctl2, | 370 | .ioctl = video_ioctl2, |
371 | #ifdef CONFIG_COMPAT | ||
372 | .compat_ioctl = v4l_compat_ioctl32, | ||
373 | #endif | ||
374 | .llseek = no_llseek, | ||
375 | }; | 371 | }; |
376 | 372 | ||
377 | static const struct v4l2_ioctl_ops terratec_ioctl_ops = { | 373 | static const struct v4l2_ioctl_ops terratec_ioctl_ops = { |
diff --git a/drivers/media/radio/radio-trust.c b/drivers/media/radio/radio-trust.c index e7b111fcd105..bdf9cb6a75f4 100644 --- a/drivers/media/radio/radio-trust.c +++ b/drivers/media/radio/radio-trust.c | |||
@@ -337,26 +337,22 @@ static int vidioc_s_audio(struct file *file, void *priv, | |||
337 | return 0; | 337 | return 0; |
338 | } | 338 | } |
339 | 339 | ||
340 | static int trust_exclusive_open(struct inode *inode, struct file *file) | 340 | static int trust_exclusive_open(struct file *file) |
341 | { | 341 | { |
342 | return test_and_set_bit(0, &in_use) ? -EBUSY : 0; | 342 | return test_and_set_bit(0, &in_use) ? -EBUSY : 0; |
343 | } | 343 | } |
344 | 344 | ||
345 | static int trust_exclusive_release(struct inode *inode, struct file *file) | 345 | static int trust_exclusive_release(struct file *file) |
346 | { | 346 | { |
347 | clear_bit(0, &in_use); | 347 | clear_bit(0, &in_use); |
348 | return 0; | 348 | return 0; |
349 | } | 349 | } |
350 | 350 | ||
351 | static const struct file_operations trust_fops = { | 351 | static const struct v4l2_file_operations trust_fops = { |
352 | .owner = THIS_MODULE, | 352 | .owner = THIS_MODULE, |
353 | .open = trust_exclusive_open, | 353 | .open = trust_exclusive_open, |
354 | .release = trust_exclusive_release, | 354 | .release = trust_exclusive_release, |
355 | .ioctl = video_ioctl2, | 355 | .ioctl = video_ioctl2, |
356 | #ifdef CONFIG_COMPAT | ||
357 | .compat_ioctl = v4l_compat_ioctl32, | ||
358 | #endif | ||
359 | .llseek = no_llseek, | ||
360 | }; | 356 | }; |
361 | 357 | ||
362 | static const struct v4l2_ioctl_ops trust_ioctl_ops = { | 358 | static const struct v4l2_ioctl_ops trust_ioctl_ops = { |
diff --git a/drivers/media/radio/radio-typhoon.c b/drivers/media/radio/radio-typhoon.c index 952ec35a8415..5c3b319dab37 100644 --- a/drivers/media/radio/radio-typhoon.c +++ b/drivers/media/radio/radio-typhoon.c | |||
@@ -330,26 +330,22 @@ static struct typhoon_device typhoon_unit = | |||
330 | .mutefreq = CONFIG_RADIO_TYPHOON_MUTEFREQ, | 330 | .mutefreq = CONFIG_RADIO_TYPHOON_MUTEFREQ, |
331 | }; | 331 | }; |
332 | 332 | ||
333 | static int typhoon_exclusive_open(struct inode *inode, struct file *file) | 333 | static int typhoon_exclusive_open(struct file *file) |
334 | { | 334 | { |
335 | return test_and_set_bit(0, &typhoon_unit.in_use) ? -EBUSY : 0; | 335 | return test_and_set_bit(0, &typhoon_unit.in_use) ? -EBUSY : 0; |
336 | } | 336 | } |
337 | 337 | ||
338 | static int typhoon_exclusive_release(struct inode *inode, struct file *file) | 338 | static int typhoon_exclusive_release(struct file *file) |
339 | { | 339 | { |
340 | clear_bit(0, &typhoon_unit.in_use); | 340 | clear_bit(0, &typhoon_unit.in_use); |
341 | return 0; | 341 | return 0; |
342 | } | 342 | } |
343 | 343 | ||
344 | static const struct file_operations typhoon_fops = { | 344 | static const struct v4l2_file_operations typhoon_fops = { |
345 | .owner = THIS_MODULE, | 345 | .owner = THIS_MODULE, |
346 | .open = typhoon_exclusive_open, | 346 | .open = typhoon_exclusive_open, |
347 | .release = typhoon_exclusive_release, | 347 | .release = typhoon_exclusive_release, |
348 | .ioctl = video_ioctl2, | 348 | .ioctl = video_ioctl2, |
349 | #ifdef CONFIG_COMPAT | ||
350 | .compat_ioctl = v4l_compat_ioctl32, | ||
351 | #endif | ||
352 | .llseek = no_llseek, | ||
353 | }; | 349 | }; |
354 | 350 | ||
355 | static const struct v4l2_ioctl_ops typhoon_ioctl_ops = { | 351 | static const struct v4l2_ioctl_ops typhoon_ioctl_ops = { |
diff --git a/drivers/media/radio/radio-zoltrix.c b/drivers/media/radio/radio-zoltrix.c index 15b10bad6796..d2ac17eeec5f 100644 --- a/drivers/media/radio/radio-zoltrix.c +++ b/drivers/media/radio/radio-zoltrix.c | |||
@@ -401,27 +401,23 @@ static int vidioc_s_audio(struct file *file, void *priv, | |||
401 | 401 | ||
402 | static struct zol_device zoltrix_unit; | 402 | static struct zol_device zoltrix_unit; |
403 | 403 | ||
404 | static int zoltrix_exclusive_open(struct inode *inode, struct file *file) | 404 | static int zoltrix_exclusive_open(struct file *file) |
405 | { | 405 | { |
406 | return test_and_set_bit(0, &zoltrix_unit.in_use) ? -EBUSY : 0; | 406 | return test_and_set_bit(0, &zoltrix_unit.in_use) ? -EBUSY : 0; |
407 | } | 407 | } |
408 | 408 | ||
409 | static int zoltrix_exclusive_release(struct inode *inode, struct file *file) | 409 | static int zoltrix_exclusive_release(struct file *file) |
410 | { | 410 | { |
411 | clear_bit(0, &zoltrix_unit.in_use); | 411 | clear_bit(0, &zoltrix_unit.in_use); |
412 | return 0; | 412 | return 0; |
413 | } | 413 | } |
414 | 414 | ||
415 | static const struct file_operations zoltrix_fops = | 415 | static const struct v4l2_file_operations zoltrix_fops = |
416 | { | 416 | { |
417 | .owner = THIS_MODULE, | 417 | .owner = THIS_MODULE, |
418 | .open = zoltrix_exclusive_open, | 418 | .open = zoltrix_exclusive_open, |
419 | .release = zoltrix_exclusive_release, | 419 | .release = zoltrix_exclusive_release, |
420 | .ioctl = video_ioctl2, | 420 | .ioctl = video_ioctl2, |
421 | #ifdef CONFIG_COMPAT | ||
422 | .compat_ioctl = v4l_compat_ioctl32, | ||
423 | #endif | ||
424 | .llseek = no_llseek, | ||
425 | }; | 421 | }; |
426 | 422 | ||
427 | static const struct v4l2_ioctl_ops zoltrix_ioctl_ops = { | 423 | static const struct v4l2_ioctl_ops zoltrix_ioctl_ops = { |