diff options
Diffstat (limited to 'drivers/media/radio/radio-mr800.c')
-rw-r--r-- | drivers/media/radio/radio-mr800.c | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/drivers/media/radio/radio-mr800.c b/drivers/media/radio/radio-mr800.c index 56f1fac6d28d..23c3c539157b 100644 --- a/drivers/media/radio/radio-mr800.c +++ b/drivers/media/radio/radio-mr800.c | |||
@@ -22,7 +22,7 @@ | |||
22 | */ | 22 | */ |
23 | 23 | ||
24 | /* | 24 | /* |
25 | * Big thanks to authors of dsbr100.c and radio-si470x.c | 25 | * Big thanks to authors and contributors of dsbr100.c and radio-si470x.c |
26 | * | 26 | * |
27 | * When work was looked pretty good, i discover this: | 27 | * When work was looked pretty good, i discover this: |
28 | * http://av-usbradio.sourceforge.net/index.php | 28 | * http://av-usbradio.sourceforge.net/index.php |
@@ -30,18 +30,23 @@ | |||
30 | * Latest release of theirs project was in 2005. | 30 | * Latest release of theirs project was in 2005. |
31 | * Probably, this driver could be improved trough using their | 31 | * Probably, this driver could be improved trough using their |
32 | * achievements (specifications given). | 32 | * achievements (specifications given). |
33 | * So, we have smth to begin with. | 33 | * Also, Faidon Liambotis <paravoid@debian.org> wrote nice driver for this radio |
34 | * in 2007. He allowed to use his driver to improve current mr800 radio driver. | ||
35 | * http://kerneltrap.org/mailarchive/linux-usb-devel/2007/10/11/342492 | ||
34 | * | 36 | * |
35 | * History: | ||
36 | * Version 0.01: First working version. | 37 | * Version 0.01: First working version. |
37 | * It's required to blacklist AverMedia USB Radio | 38 | * It's required to blacklist AverMedia USB Radio |
38 | * in usbhid/hid-quirks.c | 39 | * in usbhid/hid-quirks.c |
40 | * Version 0.10: A lot of cleanups and fixes: unpluging the device, | ||
41 | * few mutex locks were added, codinstyle issues, etc. | ||
42 | * Added stereo support. Thanks to | ||
43 | * Douglas Schilling Landgraf <dougsland@gmail.com> and | ||
44 | * David Ellingsworth <david@identd.dyndns.org> | ||
45 | * for discussion, help and support. | ||
39 | * | 46 | * |
40 | * Many things to do: | 47 | * Many things to do: |
41 | * - Correct power managment of device (suspend & resume) | 48 | * - Correct power managment of device (suspend & resume) |
42 | * - Make x86 independance (little-endian and big-endian stuff) | ||
43 | * - Add code for scanning and smooth tuning | 49 | * - Add code for scanning and smooth tuning |
44 | * - Checked and add stereo&mono stuff | ||
45 | * - Add code for sensitivity value | 50 | * - Add code for sensitivity value |
46 | * - Correct mistakes | 51 | * - Correct mistakes |
47 | * - In Japan another FREQ_MIN and FREQ_MAX | 52 | * - In Japan another FREQ_MIN and FREQ_MAX |
@@ -62,8 +67,8 @@ | |||
62 | /* driver and module definitions */ | 67 | /* driver and module definitions */ |
63 | #define DRIVER_AUTHOR "Alexey Klimov <klimov.linux@gmail.com>" | 68 | #define DRIVER_AUTHOR "Alexey Klimov <klimov.linux@gmail.com>" |
64 | #define DRIVER_DESC "AverMedia MR 800 USB FM radio driver" | 69 | #define DRIVER_DESC "AverMedia MR 800 USB FM radio driver" |
65 | #define DRIVER_VERSION "0.01" | 70 | #define DRIVER_VERSION "0.10" |
66 | #define RADIO_VERSION KERNEL_VERSION(0, 0, 1) | 71 | #define RADIO_VERSION KERNEL_VERSION(0, 1, 0) |
67 | 72 | ||
68 | MODULE_AUTHOR(DRIVER_AUTHOR); | 73 | MODULE_AUTHOR(DRIVER_AUTHOR); |
69 | MODULE_DESCRIPTION(DRIVER_DESC); | 74 | MODULE_DESCRIPTION(DRIVER_DESC); |
@@ -309,14 +314,11 @@ static int amradio_set_stereo(struct amradio_device *radio, char argument) | |||
309 | return retval; | 314 | return retval; |
310 | } | 315 | } |
311 | 316 | ||
312 | 317 | /* Handle unplugging the device. | |
313 | 318 | * We call video_unregister_device in any case. | |
314 | /* USB subsystem interface begins here */ | 319 | * The last function called in this procedure is |
315 | 320 | * usb_amradio_device_release. | |
316 | /* handle unplugging of the device, release data structures | 321 | */ |
317 | if nothing keeps us from doing it. If something is still | ||
318 | keeping us busy, the release callback of v4l will take care | ||
319 | of releasing it. */ | ||
320 | static void usb_amradio_disconnect(struct usb_interface *intf) | 322 | static void usb_amradio_disconnect(struct usb_interface *intf) |
321 | { | 323 | { |
322 | struct amradio_device *radio = usb_get_intfdata(intf); | 324 | struct amradio_device *radio = usb_get_intfdata(intf); |