Commit a91b0c50 authored by Francesco Lavra's avatar Francesco Lavra Committed by Greg Kroah-Hartman

cdc_acm: add reset_resume method

Add reset resume logic to the cdc acm driver
Signed-off-by: default avatarFrancesco Lavra <francescolavra@interfree.it>
Acked-by: default avatarOliver Neukum <oliver@neukum.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent af2ac1a0
...@@ -1460,6 +1460,23 @@ static int acm_resume(struct usb_interface *intf) ...@@ -1460,6 +1460,23 @@ static int acm_resume(struct usb_interface *intf)
return rv; return rv;
} }
static int acm_reset_resume(struct usb_interface *intf)
{
struct acm *acm = usb_get_intfdata(intf);
struct tty_struct *tty;
mutex_lock(&acm->mutex);
if (acm->port.count) {
tty = tty_port_tty_get(&acm->port);
if (tty) {
tty_hangup(tty);
tty_kref_put(tty);
}
}
mutex_unlock(&acm->mutex);
return acm_resume(intf);
}
#endif /* CONFIG_PM */ #endif /* CONFIG_PM */
#define NOKIA_PCSUITE_ACM_INFO(x) \ #define NOKIA_PCSUITE_ACM_INFO(x) \
...@@ -1602,6 +1619,7 @@ static struct usb_driver acm_driver = { ...@@ -1602,6 +1619,7 @@ static struct usb_driver acm_driver = {
#ifdef CONFIG_PM #ifdef CONFIG_PM
.suspend = acm_suspend, .suspend = acm_suspend,
.resume = acm_resume, .resume = acm_resume,
.reset_resume = acm_reset_resume,
#endif #endif
.id_table = acm_ids, .id_table = acm_ids,
#ifdef CONFIG_PM #ifdef CONFIG_PM
......
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