aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-08-05 19:37:56 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-08-05 19:37:56 +0800
commit348b7247cdbca9abadd5cb0bdddba7e2129235d9 (patch)
tree53eb1e5b3dc33d4eea4353cbae6ba94ecf92e875
parente275d064f56be8b9dec6fc2e33d6b075dcc2ac62 (diff)
downloadpatches-348b7247cdbca9abadd5cb0bdddba7e2129235d9.tar.gz
add usb-serial-move-the-simple-drivers-into.patch and refresh
-rw-r--r--series1
-rw-r--r--staging-comedi-convert-class-code-to-use-dev_groups.patch2
-rw-r--r--usb-serial-move-the-simple-drivers-into.patch700
3 files changed, 702 insertions, 1 deletions
diff --git a/series b/series
index c203b65ca5f9e4..04d7fc8073d2d6 100644
--- a/series
+++ b/series
@@ -79,6 +79,7 @@ usb-isp1362-move-debug-files-from-proc-to-debugfs.patch
#gregkh/gkh-version.patch
+usb-serial-move-the-simple-drivers-into.patch
driver-core-bus_type-add-dev_groups.patch
driver-core-bus_type-add-drv_groups.patch
driver-core-bus_type-add-bus_groups.patch
diff --git a/staging-comedi-convert-class-code-to-use-dev_groups.patch b/staging-comedi-convert-class-code-to-use-dev_groups.patch
index bbc4252592b8bf..0f13ccc2469e12 100644
--- a/staging-comedi-convert-class-code-to-use-dev_groups.patch
+++ b/staging-comedi-convert-class-code-to-use-dev_groups.patch
@@ -123,7 +123,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
static void comedi_set_subdevice_runflags(struct comedi_subdevice *s,
unsigned mask, unsigned bits)
-@@ -2554,7 +2555,7 @@ static int __init comedi_init(void)
+@@ -2564,7 +2565,7 @@ static int __init comedi_init(void)
return PTR_ERR(comedi_class);
}
diff --git a/usb-serial-move-the-simple-drivers-into.patch b/usb-serial-move-the-simple-drivers-into.patch
new file mode 100644
index 00000000000000..f77d7f3c3fb818
--- /dev/null
+++ b/usb-serial-move-the-simple-drivers-into.patch
@@ -0,0 +1,700 @@
+From fdd54c99e4b2754a97a4dafe238191e92bc6f148 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Mon, 5 Aug 2013 19:27:19 +0800
+Subject: [PATCH] USB: serial: move the "simple" drivers into usb-serial-simple.c
+
+Instead of having to create a new driver for a "simple" usb to serial
+device, mush them all into one file, with a macro, so as to make it easy
+to add new ones.
+
+Cc: "René Bürgel" <rene.buergel@sohard.de>
+Cc: Wei Shuai <cpuwolf@gmail.com>
+Cc: Josh Triplett <josh@joshtriplett.org>
+Cc: Frans Klaver <frans.klaver@xsens.com>
+Cc: "Wesley W. Terpstra" <w.terpstra@gsi.de>
+Cc: Johan Hovold <jhovold@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/Kconfig | 84 +++++--------------------
+ drivers/usb/serial/Makefile | 9 --
+ drivers/usb/serial/flashloader.c | 39 -----------
+ drivers/usb/serial/funsoft.c | 40 ------------
+ drivers/usb/serial/hp4x.c | 51 ---------------
+ drivers/usb/serial/moto_modem.c | 48 --------------
+ drivers/usb/serial/siemens_mpi.c | 47 --------------
+ drivers/usb/serial/suunto.c | 41 ------------
+ drivers/usb/serial/usb-serial-simple.c | 110 +++++++++++++++++++++++++++++++++
+ drivers/usb/serial/vivopay-serial.c | 43 ------------
+ drivers/usb/serial/zio.c | 39 -----------
+ 11 files changed, 129 insertions(+), 422 deletions(-)
+
+--- a/drivers/usb/serial/Kconfig
++++ b/drivers/usb/serial/Kconfig
+@@ -51,6 +51,24 @@ config USB_SERIAL_GENERIC
+ support" be compiled as a module for this driver to be used
+ properly.
+
++config USB_SERIAL_SIMPLE
++ tristate "USB Serial Simple Driver"
++ help
++ Say Y here to use the USB serial "simple" driver. This driver
++ handles a wide range of very simple devices, all in one
++ driver. Specifically, it supports:
++ - Suunto ANT+ USB device.
++ - Fundamental Software dongle.
++ - HP4x calculators
++ - a number of Motoroloa phones
++ - Siemens USB/MPI adapter.
++ - ViVOtech ViVOpay USB device.
++ - Infineon Modem Flashloader USB interface
++ - ZIO Motherboard USB serial interface
++
++ To compile this driver as a module, choose M here: the module
++ will be called usb-serial-simple.
++
+ config USB_SERIAL_AIRCABLE
+ tristate "USB AIRcable Bluetooth Dongle Driver"
+ help
+@@ -158,14 +176,6 @@ config USB_SERIAL_FTDI_SIO
+ To compile this driver as a module, choose M here: the
+ module will be called ftdi_sio.
+
+-config USB_SERIAL_FUNSOFT
+- tristate "USB Fundamental Software Dongle Driver"
+- ---help---
+- Say Y here if you want to use the Fundamental Software dongle.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called funsoft.
+-
+ config USB_SERIAL_VISOR
+ tristate "USB Handspring Visor / Palm m50x / Sony Clie Driver"
+ help
+@@ -462,15 +472,6 @@ config USB_SERIAL_MOS7840
+ To compile this driver as a module, choose M here: the
+ module will be called mos7840. If unsure, choose N.
+
+-config USB_SERIAL_MOTOROLA
+- tristate "USB Motorola Phone modem driver"
+- ---help---
+- Say Y here if you want to use a Motorola phone with a USB
+- connector as a modem link.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called moto_modem. If unsure, choose N.
+-
+ config USB_SERIAL_NAVMAN
+ tristate "USB Navman GPS device"
+ help
+@@ -525,14 +526,6 @@ config USB_SERIAL_SPCP8X5
+ To compile this driver as a module, choose M here: the
+ module will be called spcp8x5.
+
+-config USB_SERIAL_HP4X
+- tristate "USB HP4x Calculators support"
+- help
+- Say Y here if you want to use an Hewlett-Packard 4x Calculator.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called hp4x.
+-
+ config USB_SERIAL_SAFE
+ tristate "USB Safe Serial (Encapsulated) Driver"
+
+@@ -540,14 +533,6 @@ config USB_SERIAL_SAFE_PADDED
+ bool "USB Secure Encapsulated Driver - Padded"
+ depends on USB_SERIAL_SAFE
+
+-config USB_SERIAL_SIEMENS_MPI
+- tristate "USB Siemens MPI driver"
+- help
+- Say M here if you want to use a Siemens USB/MPI adapter.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called siemens_mpi.
+-
+ config USB_SERIAL_SIERRAWIRELESS
+ tristate "USB Sierra Wireless Driver"
+ help
+@@ -639,14 +624,6 @@ config USB_SERIAL_OPTICON
+ To compile this driver as a module, choose M here: the
+ module will be called opticon.
+
+-config USB_SERIAL_VIVOPAY_SERIAL
+- tristate "USB ViVOpay serial interface driver"
+- help
+- Say Y here if you want to use a ViVOtech ViVOpay USB device.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called vivopay-serial.
+-
+ config USB_SERIAL_XSENS_MT
+ tristate "Xsens motion tracker serial interface driver"
+ help
+@@ -659,14 +636,6 @@ config USB_SERIAL_XSENS_MT
+ To compile this driver as a module, choose M here: the
+ module will be called xsens_mt.
+
+-config USB_SERIAL_ZIO
+- tristate "ZIO Motherboard USB serial interface driver"
+- help
+- Say Y here if you want to use ZIO Motherboard.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called zio.
+-
+ config USB_SERIAL_WISHBONE
+ tristate "USB-Wishbone adapter interface driver"
+ help
+@@ -710,23 +679,6 @@ config USB_SERIAL_QT2
+ To compile this driver as a module, choose M here: the
+ module will be called quatech-serial.
+
+-config USB_SERIAL_FLASHLOADER
+- tristate "Infineon Modem Flashloader USB interface driver"
+- help
+- Say Y here if you want to download Infineon Modem
+- via USB Flashloader serial driver.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called flashloader.
+-
+-config USB_SERIAL_SUUNTO
+- tristate "USB Suunto ANT+ driver"
+- help
+- Say Y here if you want to use the Suunto ANT+ USB device.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called suunto.
+-
+ config USB_SERIAL_DEBUG
+ tristate "USB Debugging Device"
+ help
+--- a/drivers/usb/serial/Makefile
++++ b/drivers/usb/serial/Makefile
+@@ -24,9 +24,7 @@ obj-$(CONFIG_USB_SERIAL_EDGEPORT_TI) +=
+ obj-$(CONFIG_USB_SERIAL_EMPEG) += empeg.o
+ obj-$(CONFIG_USB_SERIAL_F81232) += f81232.o
+ obj-$(CONFIG_USB_SERIAL_FTDI_SIO) += ftdi_sio.o
+-obj-$(CONFIG_USB_SERIAL_FUNSOFT) += funsoft.o
+ obj-$(CONFIG_USB_SERIAL_GARMIN) += garmin_gps.o
+-obj-$(CONFIG_USB_SERIAL_HP4X) += hp4x.o
+ obj-$(CONFIG_USB_SERIAL_IPAQ) += ipaq.o
+ obj-$(CONFIG_USB_SERIAL_IPW) += ipw.o
+ obj-$(CONFIG_USB_SERIAL_IR) += ir-usb.o
+@@ -39,7 +37,6 @@ obj-$(CONFIG_USB_SERIAL_MCT_U232) += mc
+ obj-$(CONFIG_USB_SERIAL_METRO) += metro-usb.o
+ obj-$(CONFIG_USB_SERIAL_MOS7720) += mos7720.o
+ obj-$(CONFIG_USB_SERIAL_MOS7840) += mos7840.o
+-obj-$(CONFIG_USB_SERIAL_MOTOROLA) += moto_modem.o
+ obj-$(CONFIG_USB_SERIAL_NAVMAN) += navman.o
+ obj-$(CONFIG_USB_SERIAL_OMNINET) += omninet.o
+ obj-$(CONFIG_USB_SERIAL_OPTICON) += opticon.o
+@@ -50,11 +47,10 @@ obj-$(CONFIG_USB_SERIAL_QCAUX) += qcau
+ obj-$(CONFIG_USB_SERIAL_QUALCOMM) += qcserial.o
+ obj-$(CONFIG_USB_SERIAL_QT2) += quatech2.o
+ obj-$(CONFIG_USB_SERIAL_SAFE) += safe_serial.o
+-obj-$(CONFIG_USB_SERIAL_SIEMENS_MPI) += siemens_mpi.o
+ obj-$(CONFIG_USB_SERIAL_SIERRAWIRELESS) += sierra.o
++obj-$(CONFIG_USB_SERIAL_SIMPLE) += usb-serial-simple.o
+ obj-$(CONFIG_USB_SERIAL_SPCP8X5) += spcp8x5.o
+ obj-$(CONFIG_USB_SERIAL_SSU100) += ssu100.o
+-obj-$(CONFIG_USB_SERIAL_SUUNTO) += suunto.o
+ obj-$(CONFIG_USB_SERIAL_SYMBOL) += symbolserial.o
+ obj-$(CONFIG_USB_SERIAL_WWAN) += usb_wwan.o
+ obj-$(CONFIG_USB_SERIAL_TI) += ti_usb_3410_5052.o
+@@ -62,8 +58,5 @@ obj-$(CONFIG_USB_SERIAL_VISOR) += viso
+ obj-$(CONFIG_USB_SERIAL_WISHBONE) += wishbone-serial.o
+ obj-$(CONFIG_USB_SERIAL_WHITEHEAT) += whiteheat.o
+ obj-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda.o
+-obj-$(CONFIG_USB_SERIAL_VIVOPAY_SERIAL) += vivopay-serial.o
+ obj-$(CONFIG_USB_SERIAL_XSENS_MT) += xsens_mt.o
+-obj-$(CONFIG_USB_SERIAL_ZIO) += zio.o
+ obj-$(CONFIG_USB_SERIAL_ZTE) += zte_ev.o
+-obj-$(CONFIG_USB_SERIAL_FLASHLOADER) += flashloader.o
+--- a/drivers/usb/serial/flashloader.c
++++ /dev/null
+@@ -1,39 +0,0 @@
+-/*
+- * Infineon Flashloader driver
+- *
+- * Copyright (C) 2013 Wei Shuai <cpuwolf@gmail.com>
+- *
+- * This program is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU General Public License version
+- * 2 as published by the Free Software Foundation.
+- */
+-
+-#include <linux/kernel.h>
+-#include <linux/init.h>
+-#include <linux/tty.h>
+-#include <linux/module.h>
+-#include <linux/usb.h>
+-#include <linux/usb/serial.h>
+-#include <linux/uaccess.h>
+-
+-static const struct usb_device_id id_table[] = {
+- { USB_DEVICE(0x8087, 0x0716) },
+- { },
+-};
+-MODULE_DEVICE_TABLE(usb, id_table);
+-
+-static struct usb_serial_driver flashloader_device = {
+- .driver = {
+- .owner = THIS_MODULE,
+- .name = "flashloader",
+- },
+- .id_table = id_table,
+- .num_ports = 1,
+-};
+-
+-static struct usb_serial_driver * const serial_drivers[] = {
+- &flashloader_device, NULL
+-};
+-
+-module_usb_serial_driver(serial_drivers, id_table);
+-MODULE_LICENSE("GPL");
+--- a/drivers/usb/serial/funsoft.c
++++ /dev/null
+@@ -1,40 +0,0 @@
+-/*
+- * Funsoft Serial USB driver
+- *
+- * Copyright (C) 2006 Greg Kroah-Hartman <gregkh@suse.de>
+- *
+- * This program is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU General Public License version
+- * 2 as published by the Free Software Foundation.
+- */
+-
+-#include <linux/kernel.h>
+-#include <linux/init.h>
+-#include <linux/tty.h>
+-#include <linux/module.h>
+-#include <linux/usb.h>
+-#include <linux/usb/serial.h>
+-#include <linux/uaccess.h>
+-
+-static const struct usb_device_id id_table[] = {
+- { USB_DEVICE(0x1404, 0xcddc) },
+- { },
+-};
+-MODULE_DEVICE_TABLE(usb, id_table);
+-
+-static struct usb_serial_driver funsoft_device = {
+- .driver = {
+- .owner = THIS_MODULE,
+- .name = "funsoft",
+- },
+- .id_table = id_table,
+- .num_ports = 1,
+-};
+-
+-static struct usb_serial_driver * const serial_drivers[] = {
+- &funsoft_device, NULL
+-};
+-
+-module_usb_serial_driver(serial_drivers, id_table);
+-
+-MODULE_LICENSE("GPL");
+--- a/drivers/usb/serial/hp4x.c
++++ /dev/null
+@@ -1,51 +0,0 @@
+-/*
+- * HP4x Calculators Serial USB driver
+- *
+- * Copyright (C) 2005 Arthur Huillet (ahuillet@users.sf.net)
+- * Copyright (C) 2001-2005 Greg Kroah-Hartman (greg@kroah.com)
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2 of the License, or
+- * (at your option) any later version.
+- *
+- * See Documentation/usb/usb-serial.txt for more information on using this
+- * driver
+- */
+-
+-#include <linux/kernel.h>
+-#include <linux/init.h>
+-#include <linux/tty.h>
+-#include <linux/module.h>
+-#include <linux/usb.h>
+-#include <linux/usb/serial.h>
+-
+-#define DRIVER_DESC "HP4x (48/49) Generic Serial driver"
+-
+-#define HP_VENDOR_ID 0x03f0
+-#define HP49GP_PRODUCT_ID 0x0121
+-
+-static const struct usb_device_id id_table[] = {
+- { USB_DEVICE(HP_VENDOR_ID, HP49GP_PRODUCT_ID) },
+- { } /* Terminating entry */
+-};
+-
+-MODULE_DEVICE_TABLE(usb, id_table);
+-
+-static struct usb_serial_driver hp49gp_device = {
+- .driver = {
+- .owner = THIS_MODULE,
+- .name = "hp4X",
+- },
+- .id_table = id_table,
+- .num_ports = 1,
+-};
+-
+-static struct usb_serial_driver * const serial_drivers[] = {
+- &hp49gp_device, NULL
+-};
+-
+-module_usb_serial_driver(serial_drivers, id_table);
+-
+-MODULE_DESCRIPTION(DRIVER_DESC);
+-MODULE_LICENSE("GPL");
+--- a/drivers/usb/serial/moto_modem.c
++++ /dev/null
+@@ -1,48 +0,0 @@
+-/*
+- * Motorola USB Phone driver
+- *
+- * Copyright (C) 2008 Greg Kroah-Hartman <greg@kroah.com>
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License version 2 as
+- * published by the Free Software Foundation.
+- *
+- * {sigh}
+- * Motorola should be using the CDC ACM USB spec, but instead
+- * they try to just "do their own thing"... This driver should handle a
+- * few phones in which a basic "dumb serial connection" is needed to be
+- * able to get a connection through to them.
+- */
+-
+-#include <linux/kernel.h>
+-#include <linux/init.h>
+-#include <linux/tty.h>
+-#include <linux/module.h>
+-#include <linux/usb.h>
+-#include <linux/usb/serial.h>
+-
+-static const struct usb_device_id id_table[] = {
+- { USB_DEVICE(0x05c6, 0x3197) }, /* unknown Motorola phone */
+- { USB_DEVICE(0x0c44, 0x0022) }, /* unknown Mororola phone */
+- { USB_DEVICE(0x22b8, 0x2a64) }, /* Motorola KRZR K1m */
+- { USB_DEVICE(0x22b8, 0x2c84) }, /* Motorola VE240 phone */
+- { USB_DEVICE(0x22b8, 0x2c64) }, /* Motorola V950 phone */
+- { },
+-};
+-MODULE_DEVICE_TABLE(usb, id_table);
+-
+-static struct usb_serial_driver moto_device = {
+- .driver = {
+- .owner = THIS_MODULE,
+- .name = "moto-modem",
+- },
+- .id_table = id_table,
+- .num_ports = 1,
+-};
+-
+-static struct usb_serial_driver * const serial_drivers[] = {
+- &moto_device, NULL
+-};
+-
+-module_usb_serial_driver(serial_drivers, id_table);
+-MODULE_LICENSE("GPL");
+--- a/drivers/usb/serial/siemens_mpi.c
++++ /dev/null
+@@ -1,47 +0,0 @@
+-/*
+- * Siemens USB-MPI Serial USB driver
+- *
+- * Copyright (C) 2005 Thomas Hergenhahn <thomas.hergenhahn@suse.de>
+- * Copyright (C) 2005,2008 Greg Kroah-Hartman <gregkh@suse.de>
+- *
+- * This program is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU General Public License version
+- * 2 as published by the Free Software Foundation.
+- */
+-
+-#include <linux/kernel.h>
+-#include <linux/init.h>
+-#include <linux/tty.h>
+-#include <linux/module.h>
+-#include <linux/usb.h>
+-#include <linux/usb/serial.h>
+-
+-#define DRIVER_AUTHOR "Thomas Hergenhahn@web.de http://libnodave.sf.net"
+-#define DRIVER_DESC "Driver for Siemens USB/MPI adapter"
+-
+-
+-static const struct usb_device_id id_table[] = {
+- /* Vendor and product id for 6ES7-972-0CB20-0XA0 */
+- { USB_DEVICE(0x908, 0x0004) },
+- { },
+-};
+-MODULE_DEVICE_TABLE(usb, id_table);
+-
+-static struct usb_serial_driver siemens_usb_mpi_device = {
+- .driver = {
+- .owner = THIS_MODULE,
+- .name = "siemens_mpi",
+- },
+- .id_table = id_table,
+- .num_ports = 1,
+-};
+-
+-static struct usb_serial_driver * const serial_drivers[] = {
+- &siemens_usb_mpi_device, NULL
+-};
+-
+-module_usb_serial_driver(serial_drivers, id_table);
+-
+-MODULE_AUTHOR(DRIVER_AUTHOR);
+-MODULE_DESCRIPTION(DRIVER_DESC);
+-MODULE_LICENSE("GPL");
+--- a/drivers/usb/serial/suunto.c
++++ /dev/null
+@@ -1,41 +0,0 @@
+-/*
+- * Suunto ANT+ USB Driver
+- *
+- * Copyright (C) 2013 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+- * Copyright (C) 2013 Linux Foundation
+- *
+- * This program is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 2 as published by
+- * the Free Software Foundation only.
+- */
+-
+-#include <linux/kernel.h>
+-#include <linux/init.h>
+-#include <linux/tty.h>
+-#include <linux/module.h>
+-#include <linux/usb.h>
+-#include <linux/usb/serial.h>
+-#include <linux/uaccess.h>
+-
+-static const struct usb_device_id id_table[] = {
+- { USB_DEVICE(0x0fcf, 0x1008) },
+- { },
+-};
+-MODULE_DEVICE_TABLE(usb, id_table);
+-
+-static struct usb_serial_driver suunto_device = {
+- .driver = {
+- .owner = THIS_MODULE,
+- .name = KBUILD_MODNAME,
+- },
+- .id_table = id_table,
+- .num_ports = 1,
+-};
+-
+-static struct usb_serial_driver * const serial_drivers[] = {
+- &suunto_device,
+- NULL,
+-};
+-
+-module_usb_serial_driver(serial_drivers, id_table);
+-MODULE_LICENSE("GPL");
+--- /dev/null
++++ b/drivers/usb/serial/usb-serial-simple.c
+@@ -0,0 +1,110 @@
++/*
++ * USB Serial "Simple" driver
++ *
++ * Copyright (C) 2001-2006,2008,2013 Greg Kroah-Hartman <greg@kroah.com>
++ * Copyright (C) 2005 Arthur Huillet (ahuillet@users.sf.net)
++ * Copyright (C) 2005 Thomas Hergenhahn <thomas.hergenhahn@suse.de>
++ * Copyright (C) 2009 Outpost Embedded, LLC
++ * Copyright (C) 2010 Zilogic Systems <code@zilogic.com>
++ * Copyright (C) 2013 Wei Shuai <cpuwolf@gmail.com>
++ * Copyright (C) 2013 Linux Foundation
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License version
++ * 2 as published by the Free Software Foundation.
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/tty.h>
++#include <linux/module.h>
++#include <linux/usb.h>
++#include <linux/usb/serial.h>
++
++#define DEVICE(vendor, IDS) \
++static const struct usb_device_id vendor##_id_table[] = { \
++ IDS(), \
++ { }, \
++}; \
++static struct usb_serial_driver vendor##_device = { \
++ .driver = { \
++ .owner = THIS_MODULE, \
++ .name = "stringify(vendor)", \
++ }, \
++ .id_table = vendor##_id_table, \
++ .num_ports = 1, \
++};
++
++
++/* ZIO Motherboard USB driver */
++#define ZIO_IDS() \
++ { USB_DEVICE(0x1CBE, 0x0103) }
++DEVICE(zio, ZIO_IDS);
++
++/* Funsoft Serial USB driver */
++#define FUNSOFT_IDS() \
++ { USB_DEVICE(0x1404, 0xcddc) }
++DEVICE(funsoft, FUNSOFT_IDS);
++
++/* Infineon Flashloader driver */
++#define FLASHLOADER_IDS() \
++ { USB_DEVICE(0x8087, 0x0716) }
++DEVICE(flashloader, FLASHLOADER_IDS);
++
++/* ViVOpay USB Serial Driver */
++#define VIVOPAY_IDS() \
++ { USB_DEVICE(0x1d5f, 0x1004) } /* ViVOpay 8800 */
++DEVICE(vivopay, VIVOPAY_IDS);
++
++/* Motorola USB Phone driver */
++#define MOTO_IDS() \
++ { USB_DEVICE(0x05c6, 0x3197) }, /* unknown Motorola phone */ \
++ { USB_DEVICE(0x0c44, 0x0022) }, /* unknown Mororola phone */ \
++ { USB_DEVICE(0x22b8, 0x2a64) }, /* Motorola KRZR K1m */ \
++ { USB_DEVICE(0x22b8, 0x2c84) }, /* Motorola VE240 phone */ \
++ { USB_DEVICE(0x22b8, 0x2c64) } /* Motorola V950 phone */
++DEVICE(moto, MOTO_IDS);
++
++/* HP4x (48/49) Generic Serial driver */
++#define HP4X_IDS() \
++ { USB_DEVICE(0x03f0, 0x0121) }
++DEVICE(hp4x, HP4X_IDS);
++
++/* Suunto ANT+ USB Driver */
++#define SUUNTO_IDS() \
++ { USB_DEVICE(0x0fcf, 0x1008) }
++DEVICE(suunto, SUUNTO_IDS);
++
++/* Siemens USB/MPI adapter */
++#define SIEMENS_IDS() \
++ { USB_DEVICE(0x908, 0x0004) }
++DEVICE(siemens_mpi, SIEMENS_IDS);
++
++/* All of the above structures mushed into two lists */
++static struct usb_serial_driver * const serial_drivers[] = {
++ &zio_device,
++ &funsoft_device,
++ &flashloader_device,
++ &vivopay_device,
++ &moto_device,
++ &hp4x_device,
++ &suunto_device,
++ &siemens_mpi_device,
++ NULL
++};
++
++static const struct usb_device_id id_table[] = {
++ ZIO_IDS(),
++ FUNSOFT_IDS(),
++ FLASHLOADER_IDS(),
++ VIVOPAY_IDS(),
++ MOTO_IDS(),
++ HP4X_IDS(),
++ SUUNTO_IDS(),
++ SIEMENS_IDS(),
++ { },
++};
++MODULE_DEVICE_TABLE(usb, id_table);
++
++module_usb_serial_driver(serial_drivers, id_table);
++MODULE_LICENSE("GPL");
+--- a/drivers/usb/serial/vivopay-serial.c
++++ /dev/null
+@@ -1,43 +0,0 @@
+-/*
+- * Copyright (C) 2001-2005 Greg Kroah-Hartman (greg@kroah.com)
+- * Copyright (C) 2009 Outpost Embedded, LLC
+- */
+-
+-#include <linux/kernel.h>
+-#include <linux/init.h>
+-#include <linux/tty.h>
+-#include <linux/module.h>
+-#include <linux/usb.h>
+-#include <linux/usb/serial.h>
+-
+-#define DRIVER_DESC "ViVOpay USB Serial Driver"
+-
+-#define VIVOPAY_VENDOR_ID 0x1d5f
+-
+-
+-static struct usb_device_id id_table [] = {
+- /* ViVOpay 8800 */
+- { USB_DEVICE(VIVOPAY_VENDOR_ID, 0x1004) },
+- { },
+-};
+-
+-MODULE_DEVICE_TABLE(usb, id_table);
+-
+-static struct usb_serial_driver vivopay_serial_device = {
+- .driver = {
+- .owner = THIS_MODULE,
+- .name = "vivopay-serial",
+- },
+- .id_table = id_table,
+- .num_ports = 1,
+-};
+-
+-static struct usb_serial_driver * const serial_drivers[] = {
+- &vivopay_serial_device, NULL
+-};
+-
+-module_usb_serial_driver(serial_drivers, id_table);
+-
+-MODULE_AUTHOR("Forest Bond <forest.bond@outpostembedded.com>");
+-MODULE_DESCRIPTION(DRIVER_DESC);
+-MODULE_LICENSE("GPL");
+--- a/drivers/usb/serial/zio.c
++++ /dev/null
+@@ -1,39 +0,0 @@
+-/*
+- * ZIO Motherboard USB driver
+- *
+- * Copyright (C) 2010 Zilogic Systems <code@zilogic.com>
+- *
+- * This program is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU General Public License version
+- * 2 as published by the Free Software Foundation.
+- */
+-
+-#include <linux/kernel.h>
+-#include <linux/init.h>
+-#include <linux/tty.h>
+-#include <linux/module.h>
+-#include <linux/usb.h>
+-#include <linux/usb/serial.h>
+-#include <linux/uaccess.h>
+-
+-static const struct usb_device_id id_table[] = {
+- { USB_DEVICE(0x1CBE, 0x0103) },
+- { },
+-};
+-MODULE_DEVICE_TABLE(usb, id_table);
+-
+-static struct usb_serial_driver zio_device = {
+- .driver = {
+- .owner = THIS_MODULE,
+- .name = "zio",
+- },
+- .id_table = id_table,
+- .num_ports = 1,
+-};
+-
+-static struct usb_serial_driver * const serial_drivers[] = {
+- &zio_device, NULL
+-};
+-
+-module_usb_serial_driver(serial_drivers, id_table);
+-MODULE_LICENSE("GPL");