Commit aaeac199 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

[media] au0828: don't let the IR polling thread to run at suspend

Trying to make au0828 to suspend can do very bad things, as
the polling Kthread is not handled. We should disable it
during suspend, only re-enabling it at resume.

Still, analog and digital TV won't work, as we don't reinit
the settings at resume, but at least it won't hang.
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent 92143f6f
...@@ -281,13 +281,42 @@ static int au0828_usb_probe(struct usb_interface *interface, ...@@ -281,13 +281,42 @@ static int au0828_usb_probe(struct usb_interface *interface,
return retval; return retval;
} }
static int au0828_suspend(struct usb_interface *interface,
pm_message_t message)
{
struct au0828_dev *dev = usb_get_intfdata(interface);
if (!dev)
return 0;
au0828_rc_suspend(dev);
/* FIXME: should suspend also ATV/DTV */
return 0;
}
static int au0828_resume(struct usb_interface *interface)
{
struct au0828_dev *dev = usb_get_intfdata(interface);
if (!dev)
return 0;
au0828_rc_resume(dev);
/* FIXME: should resume also ATV/DTV */
return 0;
}
static struct usb_driver au0828_usb_driver = { static struct usb_driver au0828_usb_driver = {
.name = DRIVER_NAME, .name = DRIVER_NAME,
.probe = au0828_usb_probe, .probe = au0828_usb_probe,
.disconnect = au0828_usb_disconnect, .disconnect = au0828_usb_disconnect,
.id_table = au0828_usb_id_table, .id_table = au0828_usb_id_table,
.suspend = au0828_suspend,
/* FIXME: Add suspend and resume functions */ .resume = au0828_resume,
.reset_resume = au0828_resume,
}; };
static int __init au0828_init(void) static int __init au0828_init(void)
......
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