From: Hans Verkuil Date: Wed, 18 Apr 2012 09:47:02 +0000 (-0300) Subject: [media] radio-keene: support suspend/resume X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=ff27cda340450b4d5267a79109204e853f95cb4c;p=openwrt%2Fstaging%2Fblogic.git [media] radio-keene: support suspend/resume Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/radio/radio-keene.c b/drivers/media/radio/radio-keene.c index 5f33047d0d43..62d32c4946f7 100644 --- a/drivers/media/radio/radio-keene.c +++ b/drivers/media/radio/radio-keene.c @@ -156,6 +156,23 @@ static void usb_keene_disconnect(struct usb_interface *intf) v4l2_device_put(&radio->v4l2_dev); } +static int usb_keene_suspend(struct usb_interface *intf, pm_message_t message) +{ + struct keene_device *radio = to_keene_dev(usb_get_intfdata(intf)); + + return keene_cmd_main(radio, 0, false); +} + +static int usb_keene_resume(struct usb_interface *intf) +{ + struct keene_device *radio = to_keene_dev(usb_get_intfdata(intf)); + + mdelay(50); + keene_cmd_set(radio); + keene_cmd_main(radio, radio->curfreq, true); + return 0; +} + static int vidioc_querycap(struct file *file, void *priv, struct v4l2_capability *v) { @@ -402,6 +419,9 @@ static struct usb_driver usb_keene_driver = { .probe = usb_keene_probe, .disconnect = usb_keene_disconnect, .id_table = usb_keene_device_table, + .suspend = usb_keene_suspend, + .resume = usb_keene_resume, + .reset_resume = usb_keene_resume, }; static int __init keene_init(void)