* [patch] radio-mr800 - autosuspend for radio-mr800 driver
@ 2009-11-09 22:09 Alexey Klimov
0 siblings, 0 replies; only message in thread
From: Alexey Klimov @ 2009-11-09 22:09 UTC (permalink / raw)
To: linux-media; +Cc: oliver, dougsland
From: Oliver Neukum <oliver@neukum.org>
Patch adds autosuspend support for mr800 radio driver.
Priority: normal
Signed-off-by: Oliver Neukum <oliver@neukum.org>
Acked-by: Alexey Klimov <klimov.linux@gmail.com>
--
diff -r 19c0469c02c3 linux/drivers/media/radio/radio-mr800.c
--- a/linux/drivers/media/radio/radio-mr800.c Sat Nov 07 15:51:01 2009 -0200
+++ b/linux/drivers/media/radio/radio-mr800.c Tue Nov 10 00:38:19 2009 +0300
@@ -133,6 +133,7 @@
struct amradio_device {
/* reference to USB and video device */
struct usb_device *usbdev;
+ struct usb_interface *intf;
struct video_device videodev;
struct v4l2_device v4l2_dev;
@@ -166,7 +167,7 @@
.reset_resume = usb_amradio_resume,
#endif
.id_table = usb_amradio_device_table,
- .supports_autosuspend = 0,
+ .supports_autosuspend = 1,
};
/* switch on/off the radio. Send 8 bytes to device */
@@ -509,9 +510,15 @@
}
file->private_data = radio;
+ retval = usb_autopm_get_interface(radio->intf);
+ if (retval)
+ goto unlock;
- if (unlikely(!radio->initialized))
+ if (unlikely(!radio->initialized)) {
retval = usb_amradio_init(radio);
+ if (retval)
+ usb_autopm_put_interface(radio->intf);
+ }
unlock:
mutex_unlock(&radio->lock);
@@ -528,6 +535,8 @@
if (!radio->usbdev)
retval = -EIO;
+ else
+ usb_autopm_put_interface(radio->intf);
mutex_unlock(&radio->lock);
return retval;
@@ -669,6 +678,7 @@
radio->videodev.release = usb_amradio_video_device_release;
radio->usbdev = interface_to_usbdev(intf);
+ radio->intf = intf;
radio->curfreq = 95.16 * FREQ_MUL;
mutex_init(&radio->lock);
--
Alexey Klimov
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-11-09 22:09 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-09 22:09 [patch] radio-mr800 - autosuspend for radio-mr800 driver Alexey Klimov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.