Browse Source

USB: serial: remove usb_serial_disconnect call in all drivers

This is now set by the usb-serial core, no need for the driver to
individually set it.

Thanks to Alan Stern for the idea to get rid of it.

Cc: William Greathouse <wgreathouse@smva.com>
Cc: Matthias Bruestle and Harald Welte <support@reiner-sct.com>
Cc: Lonnie Mendez <dignome@gmail.com>
Cc: Peter Berger <pberger@brimson.com>
Cc: Al Borchers <alborchers@steinerpoint.com>
Cc: Gary Brubaker <xavyer@ix.netcom.com>
Cc: Oliver Neukum <oliver@neukum.name>
Cc: Matthias Urlichs <smurf@smurf.noris.de>
Cc: Support Department <support@connecttech.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
Cc: Kautuk Consul <consul.kautuk@gmail.com>
Cc: Bill Pemberton <wfp5p@virginia.edu>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Bart Hartgers <bart.hartgers@gmail.com>
Cc: Johan Hovold <jhovold@gmail.com>
Cc: Preston Fick <preston.fick@silabs.com>
Cc: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Cc: Simon Arlott <simon@fire.lp0.eu>
Cc: Andrew Worsley <amworsley@gmail.com>
Cc: "Michał Wróbel" <michal.wrobel@flytronic.pl>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Felipe Balbi <balbi@ti.com>
Cc: Aleksey Babahin <tamerlan311@gmail.com>
Cc: Dan Carpenter <error27@gmail.com>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Donald Lee <donald@asix.com.tw>
Cc: Julia Lawall <julia@diku.dk>
Cc: Michal Sroczynski <msroczyn@gmail.com>
Cc: Wang YanQing <Udknight@gmail.com>
Cc: Dan Williams <dcbw@redhat.com>
Cc: Thomas Tuttle <ttuttle@chromium.org>
Cc: Rigbert Hamisch <rigbert@gmx.de>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Jesper Juhl <jj@chaosbits.net>
Cc: Adhir Ramjiawan <adhirramjiawan0@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Greg Kroah-Hartman 13 years ago
parent
commit
32078f915d
54 changed files with 13 additions and 66 deletions
  1. 0 1
      drivers/staging/quatech_usb2/quatech_usb2.c
  2. 0 1
      drivers/staging/serqt_usb2/serqt_usb2.c
  3. 0 1
      drivers/usb/serial/aircable.c
  4. 0 1
      drivers/usb/serial/ark3116.c
  5. 0 1
      drivers/usb/serial/belkin_sa.c
  6. 0 1
      drivers/usb/serial/ch341.c
  7. 0 1
      drivers/usb/serial/cp210x.c
  8. 0 1
      drivers/usb/serial/cyberjack.c
  9. 0 1
      drivers/usb/serial/cypress_m8.c
  10. 0 1
      drivers/usb/serial/digi_acceleport.c
  11. 0 1
      drivers/usb/serial/empeg.c
  12. 0 1
      drivers/usb/serial/f81232.c
  13. 0 1
      drivers/usb/serial/ftdi_sio.c
  14. 0 1
      drivers/usb/serial/funsoft.c
  15. 0 1
      drivers/usb/serial/garmin_gps.c
  16. 0 1
      drivers/usb/serial/generic.c
  17. 0 1
      drivers/usb/serial/hp4x.c
  18. 0 1
      drivers/usb/serial/io_tables.h
  19. 0 1
      drivers/usb/serial/io_ti.c
  20. 0 1
      drivers/usb/serial/ipaq.c
  21. 0 1
      drivers/usb/serial/ipw.c
  22. 0 1
      drivers/usb/serial/ir-usb.c
  23. 0 1
      drivers/usb/serial/iuu_phoenix.c
  24. 0 1
      drivers/usb/serial/keyspan.h
  25. 0 1
      drivers/usb/serial/keyspan_pda.c
  26. 0 1
      drivers/usb/serial/kl5kusb105.c
  27. 0 1
      drivers/usb/serial/kobil_sct.c
  28. 0 1
      drivers/usb/serial/mct_u232.c
  29. 0 1
      drivers/usb/serial/metro-usb.c
  30. 0 1
      drivers/usb/serial/mos7720.c
  31. 0 1
      drivers/usb/serial/mos7840.c
  32. 0 1
      drivers/usb/serial/moto_modem.c
  33. 0 1
      drivers/usb/serial/navman.c
  34. 0 1
      drivers/usb/serial/omninet.c
  35. 0 1
      drivers/usb/serial/opticon.c
  36. 0 1
      drivers/usb/serial/option.c
  37. 0 1
      drivers/usb/serial/oti6858.c
  38. 0 1
      drivers/usb/serial/pl2303.c
  39. 0 1
      drivers/usb/serial/qcaux.c
  40. 0 1
      drivers/usb/serial/qcserial.c
  41. 0 1
      drivers/usb/serial/safe_serial.c
  42. 0 1
      drivers/usb/serial/siemens_mpi.c
  43. 0 1
      drivers/usb/serial/sierra.c
  44. 0 1
      drivers/usb/serial/spcp8x5.c
  45. 0 1
      drivers/usb/serial/ssu100.c
  46. 0 1
      drivers/usb/serial/symbolserial.c
  47. 0 1
      drivers/usb/serial/ti_usb_3410_5052.c
  48. 13 13
      drivers/usb/serial/usb-serial.c
  49. 0 1
      drivers/usb/serial/usb_debug.c
  50. 0 1
      drivers/usb/serial/visor.c
  51. 0 1
      drivers/usb/serial/vivopay-serial.c
  52. 0 1
      drivers/usb/serial/whiteheat.c
  53. 0 1
      drivers/usb/serial/zio.c
  54. 0 1
      include/linux/usb/serial.h

+ 0 - 1
drivers/staging/quatech_usb2/quatech_usb2.c

@@ -132,7 +132,6 @@ MODULE_DEVICE_TABLE(usb, quausb2_id_table);
 /* custom structures we need go here */
 static struct usb_driver quausb2_usb_driver = {
 	.name = "quatech-usb2-serial",
-	.disconnect = usb_serial_disconnect,
 	.id_table = quausb2_id_table,
 };
 

+ 0 - 1
drivers/staging/serqt_usb2/serqt_usb2.c

@@ -197,7 +197,6 @@ struct quatech_port {
 
 static struct usb_driver serqt_usb_driver = {
 	.name = "quatech-usb-serial",
-	.disconnect = usb_serial_disconnect,
 	.id_table = serqt_id_table,
 };
 

+ 0 - 1
drivers/usb/serial/aircable.c

@@ -172,7 +172,6 @@ static void aircable_process_read_urb(struct urb *urb)
 
 static struct usb_driver aircable_driver = {
 	.name =		"aircable",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/ark3116.c

@@ -716,7 +716,6 @@ static void ark3116_process_read_urb(struct urb *urb)
 
 static struct usb_driver ark3116_driver = {
 	.name =		"ark3116",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/belkin_sa.c

@@ -75,7 +75,6 @@ MODULE_DEVICE_TABLE(usb, id_table_combined);
 
 static struct usb_driver belkin_driver = {
 	.name =		"belkin",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table_combined,
 };
 

+ 0 - 1
drivers/usb/serial/ch341.c

@@ -597,7 +597,6 @@ static int ch341_reset_resume(struct usb_interface *intf)
 
 static struct usb_driver ch341_driver = {
 	.name		= "ch341",
-	.disconnect	= usb_serial_disconnect,
 	.reset_resume	= ch341_reset_resume,
 	.id_table	= id_table,
 };

+ 0 - 1
drivers/usb/serial/cp210x.c

@@ -158,7 +158,6 @@ struct cp210x_port_private {
 
 static struct usb_driver cp210x_driver = {
 	.name		= "cp210x",
-	.disconnect	= usb_serial_disconnect,
 	.id_table	= id_table,
 };
 

+ 0 - 1
drivers/usb/serial/cyberjack.c

@@ -79,7 +79,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver cyberjack_driver = {
 	.name =		"cyberjack",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/cypress_m8.c

@@ -91,7 +91,6 @@ MODULE_DEVICE_TABLE(usb, id_table_combined);
 
 static struct usb_driver cypress_driver = {
 	.name =		"cypress",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table_combined,
 };
 

+ 0 - 1
drivers/usb/serial/digi_acceleport.c

@@ -273,7 +273,6 @@ MODULE_DEVICE_TABLE(usb, id_table_combined);
 
 static struct usb_driver digi_driver = {
 	.name =		"digi_acceleport",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table_combined,
 };
 

+ 0 - 1
drivers/usb/serial/empeg.c

@@ -53,7 +53,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver empeg_driver = {
 	.name =		"empeg",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/f81232.c

@@ -352,7 +352,6 @@ static void f81232_release(struct usb_serial *serial)
 
 static struct usb_driver f81232_driver = {
 	.name =		"f81232",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/ftdi_sio.c

@@ -863,7 +863,6 @@ MODULE_DEVICE_TABLE(usb, id_table_combined);
 
 static struct usb_driver ftdi_driver = {
 	.name =		"ftdi_sio",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table_combined,
 };
 

+ 0 - 1
drivers/usb/serial/funsoft.c

@@ -26,7 +26,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver funsoft_driver = {
 	.name =		"funsoft",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/garmin_gps.c

@@ -221,7 +221,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver garmin_driver = {
 	.name =		"garmin_gps",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/generic.c

@@ -52,7 +52,6 @@ static const struct usb_device_id generic_serial_ids[] = {
 static struct usb_driver generic_driver = {
 	.name =		"usbserial_generic",
 	.probe =	generic_probe,
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	generic_serial_ids,
 };
 

+ 0 - 1
drivers/usb/serial/hp4x.c

@@ -38,7 +38,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver hp49gp_driver = {
 	.name =		"hp4X",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/io_tables.h

@@ -97,7 +97,6 @@ MODULE_DEVICE_TABLE(usb, id_table_combined);
 
 static struct usb_driver io_driver = {
 	.name =		"io_edgeport",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table_combined,
 };
 

+ 0 - 1
drivers/usb/serial/io_ti.c

@@ -199,7 +199,6 @@ MODULE_DEVICE_TABLE(usb, id_table_combined);
 
 static struct usb_driver io_driver = {
 	.name =		"io_ti",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table_combined,
 };
 

+ 0 - 1
drivers/usb/serial/ipaq.c

@@ -504,7 +504,6 @@ MODULE_DEVICE_TABLE(usb, ipaq_id_table);
 
 static struct usb_driver ipaq_driver = {
 	.name =		"ipaq",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	ipaq_id_table,
 };
 

+ 0 - 1
drivers/usb/serial/ipw.c

@@ -141,7 +141,6 @@ MODULE_DEVICE_TABLE(usb, usb_ipw_ids);
 
 static struct usb_driver usb_ipw_driver = {
 	.name =		"ipwtty",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	usb_ipw_ids,
 };
 

+ 0 - 1
drivers/usb/serial/ir-usb.c

@@ -79,7 +79,6 @@ MODULE_DEVICE_TABLE(usb, ir_id_table);
 
 static struct usb_driver ir_driver = {
 	.name		= "ir-usb",
-	.disconnect	= usb_serial_disconnect,
 	.id_table	= ir_id_table,
 };
 

+ 0 - 1
drivers/usb/serial/iuu_phoenix.c

@@ -53,7 +53,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver iuu_driver = {
 	.name = "iuu_phoenix",
-	.disconnect = usb_serial_disconnect,
 	.id_table = id_table,
 };
 

+ 0 - 1
drivers/usb/serial/keyspan.h

@@ -489,7 +489,6 @@ MODULE_DEVICE_TABLE(usb, keyspan_ids_combined);
 
 static struct usb_driver keyspan_driver = {
 	.name =		"keyspan",                
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	keyspan_ids_combined,
 };
 

+ 0 - 1
drivers/usb/serial/keyspan_pda.c

@@ -88,7 +88,6 @@ MODULE_DEVICE_TABLE(usb, id_table_combined);
 
 static struct usb_driver keyspan_pda_driver = {
 	.name =		"keyspan_pda",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table_combined,
 };
 

+ 0 - 1
drivers/usb/serial/kl5kusb105.c

@@ -88,7 +88,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver kl5kusb105d_driver = {
 	.name =		"kl5kusb105d",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/kobil_sct.c

@@ -87,7 +87,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver kobil_driver = {
 	.name =		"kobil",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/mct_u232.c

@@ -85,7 +85,6 @@ MODULE_DEVICE_TABLE(usb, id_table_combined);
 
 static struct usb_driver mct_u232_driver = {
 	.name =		"mct_u232",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table_combined,
 };
 

+ 0 - 1
drivers/usb/serial/metro-usb.c

@@ -421,7 +421,6 @@ static void metrousb_unthrottle(struct tty_struct *tty)
 
 static struct usb_driver metrousb_driver = {
 	.name =		"metro-usb",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table
 };
 

+ 0 - 1
drivers/usb/serial/mos7720.c

@@ -2160,7 +2160,6 @@ static void mos7720_release(struct usb_serial *serial)
 
 static struct usb_driver usb_driver = {
 	.name =		"moschip7720",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	moschip_port_id_table,
 };
 

+ 0 - 1
drivers/usb/serial/mos7840.c

@@ -2785,7 +2785,6 @@ static void mos7840_release(struct usb_serial *serial)
 
 static struct usb_driver io_driver = {
 	.name = "mos7840",
-	.disconnect = usb_serial_disconnect,
 	.id_table = moschip_id_table_combined,
 };
 

+ 0 - 1
drivers/usb/serial/moto_modem.c

@@ -33,7 +33,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver moto_driver = {
 	.name =		"moto-modem",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/navman.c

@@ -32,7 +32,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver navman_driver = {
 	.name =		"navman",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/omninet.c

@@ -59,7 +59,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver omninet_driver = {
 	.name =		"omninet",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/opticon.c

@@ -585,7 +585,6 @@ static int opticon_resume(struct usb_interface *intf)
 
 static struct usb_driver opticon_driver = {
 	.name =		"opticon",
-	.disconnect =	usb_serial_disconnect,
 	.suspend =	opticon_suspend,
 	.resume =	opticon_resume,
 	.id_table =	id_table,

+ 0 - 1
drivers/usb/serial/option.c

@@ -1222,7 +1222,6 @@ MODULE_DEVICE_TABLE(usb, option_ids);
 
 static struct usb_driver option_driver = {
 	.name       = "option",
-	.disconnect = usb_serial_disconnect,
 	.id_table   = option_ids,
 };
 

+ 0 - 1
drivers/usb/serial/oti6858.c

@@ -68,7 +68,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver oti6858_driver = {
 	.name =		"oti6858",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/pl2303.c

@@ -97,7 +97,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver pl2303_driver = {
 	.name =		"pl2303",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/qcaux.c

@@ -79,7 +79,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver qcaux_driver = {
 	.name =		"qcaux",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/qcserial.c

@@ -114,7 +114,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver qcdriver = {
 	.name			= "qcserial",
-	.disconnect		= usb_serial_disconnect,
 	.id_table		= id_table,
 };
 

+ 0 - 1
drivers/usb/serial/safe_serial.c

@@ -153,7 +153,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver safe_driver = {
 	.name =		"safe_serial",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/siemens_mpi.c

@@ -31,7 +31,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver siemens_usb_mpi_driver = {
 	.name =		"siemens_mpi",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/sierra.c

@@ -1053,7 +1053,6 @@ static int sierra_reset_resume(struct usb_interface *intf)
 
 static struct usb_driver sierra_driver = {
 	.name       = "sierra",
-	.disconnect = usb_serial_disconnect,
 	.reset_resume = sierra_reset_resume,
 	.id_table   = id_table,
 };

+ 0 - 1
drivers/usb/serial/spcp8x5.c

@@ -153,7 +153,6 @@ enum spcp8x5_type {
 
 static struct usb_driver spcp8x5_driver = {
 	.name =			"spcp8x5",
-	.disconnect =		usb_serial_disconnect,
 	.id_table =		id_table,
 };
 

+ 0 - 1
drivers/usb/serial/ssu100.c

@@ -65,7 +65,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver ssu100_driver = {
 	.name			       = "ssu100",
-	.disconnect		       = usb_serial_disconnect,
 	.id_table		       = id_table,
 };
 

+ 0 - 1
drivers/usb/serial/symbolserial.c

@@ -271,7 +271,6 @@ static void symbol_release(struct usb_serial *serial)
 
 static struct usb_driver symbol_driver = {
 	.name =			"symbol",
-	.disconnect =		usb_serial_disconnect,
 	.id_table =		id_table,
 };
 

+ 0 - 1
drivers/usb/serial/ti_usb_3410_5052.c

@@ -213,7 +213,6 @@ static struct usb_device_id ti_id_table_combined[18+2*TI_EXTRA_VID_PID_COUNT+1]
 
 static struct usb_driver ti_usb_driver = {
 	.name			= "ti_usb_3410_5052",
-	.disconnect		= usb_serial_disconnect,
 	.id_table		= ti_id_table_combined,
 };
 

+ 13 - 13
drivers/usb/serial/usb-serial.c

@@ -43,17 +43,6 @@
 #define DRIVER_AUTHOR "Greg Kroah-Hartman, greg@kroah.com, http://www.kroah.com/linux/"
 #define DRIVER_DESC "USB Serial Driver core"
 
-/* Driver structure we register with the USB core */
-static struct usb_driver usb_serial_driver = {
-	.name =		"usbserial",
-	.probe =	usb_serial_probe,
-	.disconnect =	usb_serial_disconnect,
-	.suspend =	usb_serial_suspend,
-	.resume =	usb_serial_resume,
-	.no_dynamic_id =	1,
-	.supports_autosuspend =	1,
-};
-
 /* There is no MODULE_DEVICE_TABLE for usbserial.c.  Instead
    the MODULE_DEVICE_TABLE declarations in each serial driver
    cause the "hotplug" program to pull in whatever module is necessary
@@ -1099,7 +1088,7 @@ probe_error:
 	return -EIO;
 }
 
-void usb_serial_disconnect(struct usb_interface *interface)
+static void usb_serial_disconnect(struct usb_interface *interface)
 {
 	int i;
 	struct usb_serial *serial = usb_get_intfdata(interface);
@@ -1134,7 +1123,6 @@ void usb_serial_disconnect(struct usb_interface *interface)
 	usb_serial_put(serial);
 	dev_info(dev, "device disconnected\n");
 }
-EXPORT_SYMBOL_GPL(usb_serial_disconnect);
 
 int usb_serial_suspend(struct usb_interface *intf, pm_message_t message)
 {
@@ -1201,6 +1189,17 @@ static const struct tty_operations serial_ops = {
 
 struct tty_driver *usb_serial_tty_driver;
 
+/* Driver structure we register with the USB core */
+static struct usb_driver usb_serial_driver = {
+	.name =		"usbserial",
+	.probe =	usb_serial_probe,
+	.disconnect =	usb_serial_disconnect,
+	.suspend =	usb_serial_suspend,
+	.resume =	usb_serial_resume,
+	.no_dynamic_id =	1,
+	.supports_autosuspend =	1,
+};
+
 static int __init usb_serial_init(void)
 {
 	int i;
@@ -1400,6 +1399,7 @@ int usb_serial_register_drivers(struct usb_driver *udriver,
 	udriver->suspend = usb_serial_suspend;
 	udriver->resume = usb_serial_resume;
 	udriver->probe = usb_serial_probe;
+	udriver->disconnect = usb_serial_disconnect;
 	rc = usb_register(udriver);
 	if (rc)
 		return rc;

+ 0 - 1
drivers/usb/serial/usb_debug.c

@@ -37,7 +37,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver debug_driver = {
 	.name =		"debug",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
drivers/usb/serial/visor.c

@@ -165,7 +165,6 @@ MODULE_DEVICE_TABLE(usb, id_table_combined);
 
 static struct usb_driver visor_driver = {
 	.name =		"visor",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table_combined,
 };
 

+ 0 - 1
drivers/usb/serial/vivopay-serial.c

@@ -27,7 +27,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver vivopay_serial_driver = {
 	.name =			"vivopay-serial",
-	.disconnect =		usb_serial_disconnect,
 	.id_table =		id_table,
 };
 

+ 0 - 1
drivers/usb/serial/whiteheat.c

@@ -79,7 +79,6 @@ MODULE_DEVICE_TABLE(usb, id_table_combined);
 
 static struct usb_driver whiteheat_driver = {
 	.name =		"whiteheat",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table_combined,
 };
 

+ 0 - 1
drivers/usb/serial/zio.c

@@ -24,7 +24,6 @@ MODULE_DEVICE_TABLE(usb, id_table);
 
 static struct usb_driver zio_driver = {
 	.name =		"zio",
-	.disconnect =	usb_serial_disconnect,
 	.id_table =	id_table,
 };
 

+ 0 - 1
include/linux/usb/serial.h

@@ -300,7 +300,6 @@ extern void usb_serial_port_softint(struct usb_serial_port *port);
 
 extern int usb_serial_probe(struct usb_interface *iface,
 			    const struct usb_device_id *id);
-extern void usb_serial_disconnect(struct usb_interface *iface);
 
 extern int usb_serial_suspend(struct usb_interface *intf, pm_message_t message);
 extern int usb_serial_resume(struct usb_interface *intf);