/* custom structures we need go here */
 static struct usb_driver quausb2_usb_driver = {
        .name = "quatech-usb2-serial",
-       .probe = usb_serial_probe,
        .disconnect = usb_serial_disconnect,
        .id_table = quausb2_id_table,
 };
 
 
 static struct usb_driver serqt_usb_driver = {
        .name = "quatech-usb-serial",
-       .probe = usb_serial_probe,
        .disconnect = usb_serial_disconnect,
        .id_table = serqt_id_table,
 };
 
 
 static struct usb_driver aircable_driver = {
        .name =         "aircable",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver ark3116_driver = {
        .name =         "ark3116",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver belkin_driver = {
        .name =         "belkin",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table_combined,
 };
 
 
 static struct usb_driver ch341_driver = {
        .name           = "ch341",
-       .probe          = usb_serial_probe,
        .disconnect     = usb_serial_disconnect,
        .reset_resume   = ch341_reset_resume,
        .id_table       = id_table,
 
 
 static struct usb_driver cp210x_driver = {
        .name           = "cp210x",
-       .probe          = usb_serial_probe,
        .disconnect     = usb_serial_disconnect,
        .id_table       = id_table,
 };
 
 
 static struct usb_driver cyberjack_driver = {
        .name =         "cyberjack",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver cypress_driver = {
        .name =         "cypress",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table_combined,
 };
 
 
 static struct usb_driver digi_driver = {
        .name =         "digi_acceleport",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table_combined,
 };
 
 
 static struct usb_driver empeg_driver = {
        .name =         "empeg",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver f81232_driver = {
        .name =         "f81232",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver ftdi_driver = {
        .name =         "ftdi_sio",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table_combined,
 };
 
 
 static struct usb_driver funsoft_driver = {
        .name =         "funsoft",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver garmin_driver = {
        .name =         "garmin_gps",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver hp49gp_driver = {
        .name =         "hp4X",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver io_driver = {
        .name =         "io_edgeport",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table_combined,
 };
 
 
 static struct usb_driver io_driver = {
        .name =         "io_ti",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table_combined,
 };
 
 
 static struct usb_driver ipaq_driver = {
        .name =         "ipaq",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     ipaq_id_table,
 };
 
 
 static struct usb_driver usb_ipw_driver = {
        .name =         "ipwtty",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     usb_ipw_ids,
 };
 
 
 static struct usb_driver ir_driver = {
        .name           = "ir-usb",
-       .probe          = usb_serial_probe,
        .disconnect     = usb_serial_disconnect,
        .id_table       = ir_id_table,
 };
 
 
 static struct usb_driver iuu_driver = {
        .name = "iuu_phoenix",
-       .probe = usb_serial_probe,
        .disconnect = usb_serial_disconnect,
        .id_table = id_table,
 };
 
 
 static struct usb_driver keyspan_driver = {
        .name =         "keyspan",                
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     keyspan_ids_combined,
 };
 
 
 static struct usb_driver keyspan_pda_driver = {
        .name =         "keyspan_pda",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table_combined,
 };
 
 
 static struct usb_driver kl5kusb105d_driver = {
        .name =         "kl5kusb105d",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver kobil_driver = {
        .name =         "kobil",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver mct_u232_driver = {
        .name =         "mct_u232",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table_combined,
 };
 
 
 static struct usb_driver metrousb_driver = {
        .name =         "metro-usb",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table
 };
 
 
 static struct usb_driver usb_driver = {
        .name =         "moschip7720",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     moschip_port_id_table,
 };
 
 
 static struct usb_driver io_driver = {
        .name = "mos7840",
-       .probe = usb_serial_probe,
        .disconnect = usb_serial_disconnect,
        .id_table = moschip_id_table_combined,
 };
 
 
 static struct usb_driver moto_driver = {
        .name =         "moto-modem",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver navman_driver = {
        .name =         "navman",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver omninet_driver = {
        .name =         "omninet",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver opticon_driver = {
        .name =         "opticon",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .suspend =      opticon_suspend,
        .resume =       opticon_resume,
 
 
 static struct usb_driver option_driver = {
        .name       = "option",
-       .probe      = usb_serial_probe,
        .disconnect = usb_serial_disconnect,
        .id_table   = option_ids,
 };
 
 
 static struct usb_driver oti6858_driver = {
        .name =         "oti6858",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver pl2303_driver = {
        .name =         "pl2303",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver qcaux_driver = {
        .name =         "qcaux",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver qcdriver = {
        .name                   = "qcserial",
-       .probe                  = usb_serial_probe,
        .disconnect             = usb_serial_disconnect,
        .id_table               = id_table,
 };
 
 
 static struct usb_driver safe_driver = {
        .name =         "safe_serial",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver siemens_usb_mpi_driver = {
        .name =         "siemens_mpi",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver sierra_driver = {
        .name       = "sierra",
-       .probe      = usb_serial_probe,
        .disconnect = usb_serial_disconnect,
        .reset_resume = sierra_reset_resume,
        .id_table   = id_table,
 
 
 static struct usb_driver spcp8x5_driver = {
        .name =                 "spcp8x5",
-       .probe =                usb_serial_probe,
        .disconnect =           usb_serial_disconnect,
        .id_table =             id_table,
 };
 
 
 static struct usb_driver ssu100_driver = {
        .name                          = "ssu100",
-       .probe                         = usb_serial_probe,
        .disconnect                    = usb_serial_disconnect,
        .id_table                      = id_table,
 };
 
 
 static struct usb_driver symbol_driver = {
        .name =                 "symbol",
-       .probe =                usb_serial_probe,
        .disconnect =           usb_serial_disconnect,
        .id_table =             id_table,
 };
 
 
 static struct usb_driver ti_usb_driver = {
        .name                   = "ti_usb_3410_5052",
-       .probe                  = usb_serial_probe,
        .disconnect             = usb_serial_disconnect,
        .id_table               = ti_id_table_combined,
 };
 
        module_put(type->driver.owner);
        return -EIO;
 }
-EXPORT_SYMBOL_GPL(usb_serial_probe);
 
 void usb_serial_disconnect(struct usb_interface *interface)
 {
        udriver->supports_autosuspend = 1;
        udriver->suspend = usb_serial_suspend;
        udriver->resume = usb_serial_resume;
+       udriver->probe = usb_serial_probe;
        rc = usb_register(udriver);
        if (rc)
                return rc;
 
 
 static struct usb_driver debug_driver = {
        .name =         "debug",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };
 
 
 static struct usb_driver visor_driver = {
        .name =         "visor",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table_combined,
 };
 
 
 static struct usb_driver vivopay_serial_driver = {
        .name =                 "vivopay-serial",
-       .probe =                usb_serial_probe,
        .disconnect =           usb_serial_disconnect,
        .id_table =             id_table,
 };
 
 
 static struct usb_driver whiteheat_driver = {
        .name =         "whiteheat",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table_combined,
 };
 
 
 static struct usb_driver zio_driver = {
        .name =         "zio",
-       .probe =        usb_serial_probe,
        .disconnect =   usb_serial_disconnect,
        .id_table =     id_table,
 };