Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 303948
b: refs/heads/master
c: 7186364
h: refs/heads/master
v: v3
  • Loading branch information
Greg Kroah-Hartman committed May 15, 2012
1 parent 33be15e commit f3d7a1b
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 09c94e628ac3f871f06eaa7a5be266ca1aaa75a1
refs/heads/master: 7186364e46c3800635c283924bf25433d0a556a2
24 changes: 23 additions & 1 deletion trunk/drivers/usb/serial/usb-serial.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* USB Serial Converter driver
*
* Copyright (C) 1999 - 2005 Greg Kroah-Hartman (greg@kroah.com)
* Copyright (C) 1999 - 2012 Greg Kroah-Hartman (greg@kroah.com)
* Copyright (C) 2000 Peter Berger (pberger@brimson.com)
* Copyright (C) 2000 Al Borchers (borchers@steinerpoint.com)
*
Expand Down Expand Up @@ -1166,6 +1166,20 @@ int usb_serial_resume(struct usb_interface *intf)
}
EXPORT_SYMBOL(usb_serial_resume);

static int usb_serial_reset_resume(struct usb_interface *intf)
{
struct usb_serial *serial = usb_get_intfdata(intf);
int rv;

serial->suspending = 0;
if (serial->type->reset_resume)
rv = serial->type->reset_resume(serial);
else
rv = usb_serial_generic_resume(serial);

return rv;
}

static const struct tty_operations serial_ops = {
.open = serial_open,
.close = serial_close,
Expand Down Expand Up @@ -1403,6 +1417,14 @@ int usb_serial_register_drivers(struct usb_serial_driver *const serial_drivers[]
udriver->resume = usb_serial_resume;
udriver->probe = usb_serial_probe;
udriver->disconnect = usb_serial_disconnect;

/* we only set the reset_resume field if the serial_driver has one */
for (sd = serial_drivers; *sd; ++sd) {
if ((*sd)->reset_resume)
udriver->reset_resume = usb_serial_reset_resume;
break;
}

rc = usb_register(udriver);
if (rc)
return rc;
Expand Down
3 changes: 2 additions & 1 deletion trunk/include/linux/usb/serial.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* USB Serial Converter stuff
*
* Copyright (C) 1999 - 2005
* Copyright (C) 1999 - 2012
* Greg Kroah-Hartman (greg@kroah.com)
*
* This program is free software; you can redistribute it and/or modify
Expand Down Expand Up @@ -249,6 +249,7 @@ struct usb_serial_driver {

int (*suspend)(struct usb_serial *serial, pm_message_t message);
int (*resume)(struct usb_serial *serial);
int (*reset_resume)(struct usb_serial *serial);

/* serial function calls */
/* Called by console and by the tty layer */
Expand Down

0 comments on commit f3d7a1b

Please sign in to comment.