kmod-usb-net-cdc-mbim: fix module loading
[openwrt/svn-archive/archive.git] / package / kernel / modules / usb.mk
index 5acc23a572b00c3d16f34a5bd374cc9d392507e1..03fb3d4abd66d4e5ed90cd5d0db7208a628c50dc 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2006-2012 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -14,10 +14,13 @@ USBINPUT_DIR?=input/misc
 define KernelPackage/usb-core
   SUBMENU:=$(USB_MENU)
   TITLE:=Support for USB
-  DEPENDS:=@USB_SUPPORT +kmod-nls-base
-  KCONFIG:=CONFIG_USB
-  FILES:=$(LINUX_DIR)/drivers/usb/core/usbcore.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call AutoLoad,20,usbcore,1)
+  DEPENDS:=@USB_SUPPORT
+  KCONFIG:=CONFIG_USB CONFIG_XPS_USB_HCD_XILINX=n CONFIG_USB_FHCI_HCD=n
+  FILES:= \
+       $(LINUX_DIR)/drivers/usb/core/usbcore.ko \
+       $(LINUX_DIR)/drivers/usb/usb-common.ko
+  AUTOLOAD:=$(call AutoLoad,20,usb-common usbcore,1)
+  $(call AddDepends/nls)
 endef
 
 define KernelPackage/usb-core/description
@@ -29,9 +32,44 @@ $(eval $(call KernelPackage,usb-core))
 
 define AddDepends/usb
   SUBMENU:=$(USB_MENU)
-  DEPENDS+=kmod-usb-core $(1)
+  DEPENDS+=+kmod-usb-core $(1)
+endef
+
+
+define KernelPackage/usb-gadget
+  TITLE:=USB Gadget support
+  KCONFIG:=CONFIG_USB_GADGET
+  FILES:=
+  AUTOLOAD:=
+  DEPENDS:=@USB_GADGET_SUPPORT
+  $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-gadget/description
+  Kernel support for USB Gadget mode.
+endef
+
+$(eval $(call KernelPackage,usb-gadget))
+
+
+define KernelPackage/usb-eth-gadget
+  TITLE:=USB Ethernet Gadget support
+  KCONFIG:= \
+       CONFIG_USB_ETH \
+       CONFIG_USB_ETH_RNDIS=y \
+       CONFIG_USB_ETH_EEM=y
+  DEPENDS:=+kmod-usb-gadget
+  FILES:=$(LINUX_DIR)/drivers/usb/gadget/g_ether.ko
+  AUTOLOAD:=$(call AutoLoad,52,g_ether)
+  $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-eth-gadget/description
+  Kernel support for USB Ethernet Gadget.
 endef
 
+$(eval $(call KernelPackage,usb-eth-gadget))
+
 
 define KernelPackage/usb-uhci
   TITLE:=Support for UHCI controllers
@@ -52,10 +90,14 @@ $(eval $(call KernelPackage,usb-uhci,1))
 
 define KernelPackage/usb-ohci
   TITLE:=Support for OHCI controllers
+  DEPENDS:=+TARGET_brcm47xx:kmod-usb-brcm47xx
   KCONFIG:= \
        CONFIG_USB_OHCI \
        CONFIG_USB_OHCI_HCD \
-       CONFIG_USB_OHCI_AR71XX=y
+       CONFIG_USB_OHCI_ATH79=y \
+       CONFIG_USB_OHCI_BCM63XX=y \
+       CONFIG_USB_OCTEON_OHCI=y \
+       CONFIG_USB_OHCI_HCD_PLATFORM=y
   FILES:=$(LINUX_DIR)/drivers/usb/host/ohci-hcd.ko
   AUTOLOAD:=$(call AutoLoad,50,ohci-hcd,1)
   $(call AddDepends/usb)
@@ -68,31 +110,42 @@ endef
 $(eval $(call KernelPackage,usb-ohci,1))
 
 
-define KernelPackage/usb-isp116x-hcd
-  TITLE:=Support for the ISP116x USB Host Controller
-  DEPENDS:=@TARGET_ppc40x
-  KCONFIG:= \
-       CONFIG_USB_ISP116X_HCD \
-       CONFIG_USB_ISP116X_HCD_OF=y \
-       CONFIG_USB_ISP116X_HCD_PLATFORM=n
-  FILES:=$(LINUX_DIR)/drivers/usb/host/isp116x-hcd.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call AutoLoad,50,isp116x-hcd)
+define KernelPackage/usb2-fsl
+  TITLE:=Support for Freescale USB2 controllers
+  DEPENDS:=TARGET_mpc85xx
+  KCONFIG:=\
+       CONFIG_USB_FSL_MPH_DR_OF \
+       CONFIG_USB_EHCI_FSL=y
+  FILES:=$(LINUX_DIR)/drivers/usb/host/fsl-mph-dr-of.ko
+  AUTOLOAD:=$(call AutoLoad,39,fsl-mph-dr-of,1)
   $(call AddDepends/usb)
 endef
 
-define KernelPackage/usb-isp116x-hcd/description
-  Kernel support for the ISP116X USB Host Controller
+define KernelPackage/usb2-fsl/description
+ Kernel support for Freescale USB2 (EHCI) controllers
 endef
 
-$(eval $(call KernelPackage,usb-isp116x-hcd))
+$(eval $(call KernelPackage,usb2-fsl))
 
 
 define KernelPackage/usb2
   TITLE:=Support for USB2 controllers
+  DEPENDS:=+TARGET_brcm47xx:kmod-usb-brcm47xx +TARGET_mpc85xx:kmod-usb2-fsl
   KCONFIG:=CONFIG_USB_EHCI_HCD \
-    CONFIG_USB_EHCI_AR71XX=y
-  FILES:=$(LINUX_DIR)/drivers/usb/host/ehci-hcd.$(LINUX_KMOD_SUFFIX)
+       CONFIG_USB_EHCI_ATH79=y \
+       CONFIG_USB_EHCI_BCM63XX=y \
+       CONFIG_USB_OCTEON_EHCI=y \
+       CONFIG_USB_EHCI_HCD_ORION=y \
+       CONFIG_USB_EHCI_HCD_PLATFORM=y
+ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.8.0)),1)
+  FILES:= \
+       $(LINUX_DIR)/drivers/usb/host/ehci-hcd.ko \
+       $(LINUX_DIR)/drivers/usb/host/ehci-platform.ko
+  AUTOLOAD:=$(call AutoLoad,40,ehci-hcd ehci-platform,1)
+else
+  FILES:=$(LINUX_DIR)/drivers/usb/host/ehci-hcd.ko
   AUTOLOAD:=$(call AutoLoad,40,ehci-hcd,1)
+endif
   $(call AddDepends/usb)
 endef
 
@@ -103,6 +156,22 @@ endef
 $(eval $(call KernelPackage,usb2))
 
 
+define KernelPackage/usb2-pci
+  TITLE:=Support for PCI USB2 controllers
+  DEPENDS:=@PCI_SUPPORT @(LINUX_3_8||LINUX_3_9) +kmod-usb2
+  KCONFIG:=CONFIG_USB_EHCI_PCI
+  FILES:=$(LINUX_DIR)/drivers/usb/host/ehci-pci.ko
+  AUTOLOAD:=$(call AutoLoad,42,ehci-pci,1)
+  $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb2-pci/description
+ Kernel support for PCI USB2 (EHCI) controllers
+endef
+
+$(eval $(call KernelPackage,usb2-pci))
+
+
 define KernelPackage/usb-acm
   TITLE:=Support for modems/isdn controllers
   KCONFIG:=CONFIG_USB_ACM
@@ -118,6 +187,22 @@ endef
 $(eval $(call KernelPackage,usb-acm))
 
 
+define KernelPackage/usb-wdm
+  TITLE:=USB Wireless Device Management
+  KCONFIG:=CONFIG_USB_WDM
+  FILES:=$(LINUX_DIR)/drivers/usb/class/cdc-wdm.ko
+  AUTOLOAD:=$(call AutoLoad,60,cdc-wdm)
+$(call AddDepends/usb)
+$(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-wdm/description
+ USB Wireless Device Management support
+endef
+
+$(eval $(call KernelPackage,usb-wdm))
+
+
 define KernelPackage/usb-audio
   TITLE:=Support for USB audio devices
   KCONFIG:= \
@@ -125,10 +210,18 @@ define KernelPackage/usb-audio
        CONFIG_SND_USB_AUDIO
   $(call AddDepends/usb)
   $(call AddDepends/sound)
+# For Linux 2.6.35+
+ifneq ($(wildcard $(LINUX_DIR)/sound/usb/snd-usbmidi-lib.ko),)
+  FILES:= \
+       $(LINUX_DIR)/sound/usb/snd-usbmidi-lib.ko \
+       $(LINUX_DIR)/sound/usb/snd-usb-audio.ko
+  AUTOLOAD:=$(call AutoLoad,60,snd-usbmidi-lib snd-usb-audio)
+else
   FILES:= \
        $(LINUX_DIR)/sound/usb/snd-usb-lib.ko \
        $(LINUX_DIR)/sound/usb/snd-usb-audio.ko
   AUTOLOAD:=$(call AutoLoad,60,snd-usb-lib snd-usb-audio)
+endif
 endef
 
 define KernelPackage/usb-audio/description
@@ -156,7 +249,7 @@ $(eval $(call KernelPackage,usb-printer))
 define KernelPackage/usb-serial
   TITLE:=Support for USB-to-Serial converters
   KCONFIG:=CONFIG_USB_SERIAL
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/usbserial.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/usbserial.ko
   AUTOLOAD:=$(call AutoLoad,60,usbserial)
   $(call AddDepends/usb)
 endef
@@ -174,25 +267,10 @@ define AddDepends/usb-serial
 endef
 
 
-define KernelPackage/usb-serial-airprime
-  TITLE:=Support for Airprime (EVDO)
-  KCONFIG:=CONFIG_USB_SERIAL_AIRPRIME
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/airprime.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call AutoLoad,65,airprime)
-  $(call AddDepends/usb-serial)
-endef
-
-define KernelPackage/usb-serial-airprime/description
- Kernel support for Airprime (EVDO)
-endef
-
-$(eval $(call KernelPackage,usb-serial-airprime))
-
-
 define KernelPackage/usb-serial-belkin
   TITLE:=Support for Belkin devices
   KCONFIG:=CONFIG_USB_SERIAL_BELKIN
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/belkin_sa.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/belkin_sa.ko
   AUTOLOAD:=$(call AutoLoad,65,belkin_sa)
   $(call AddDepends/usb-serial)
 endef
@@ -207,12 +285,12 @@ $(eval $(call KernelPackage,usb-serial-belkin))
 define KernelPackage/usb-serial-ch341
   TITLE:=Support for CH341 devices
   KCONFIG:=CONFIG_USB_SERIAL_CH341
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/ch341.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/ch341.ko
   AUTOLOAD:=$(call AutoLoad,65,ch341)
   $(call AddDepends/usb-serial)
 endef
 
-define KernelPackage/usb-serial-belkin/description
+define KernelPackage/usb-serial-ch341/description
  Kernel support for Winchiphead CH341 USB-to-Serial converters
 endef
 
@@ -222,7 +300,7 @@ $(eval $(call KernelPackage,usb-serial-ch341))
 define KernelPackage/usb-serial-ftdi
   TITLE:=Support for FTDI devices
   KCONFIG:=CONFIG_USB_SERIAL_FTDI_SIO
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/ftdi_sio.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/ftdi_sio.ko
   AUTOLOAD:=$(call AutoLoad,65,ftdi_sio)
   $(call AddDepends/usb-serial)
 endef
@@ -234,10 +312,36 @@ endef
 $(eval $(call KernelPackage,usb-serial-ftdi))
 
 
+define KernelPackage/usb-serial-ti-usb
+  TITLE:=Support for TI USB 3410/5052
+  KCONFIG:=CONFIG_USB_SERIAL_TI
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/ti_usb_3410_5052.ko
+  AUTOLOAD:=$(call AutoLoad,65,ti_usb_3410_5052)
+  $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-ti-usb/description
+ Kernel support for TI USB 3410/5052 devices
+endef
+
+$(eval $(call KernelPackage,usb-serial-ti-usb))
+
+
+define KernelPackage/usb-serial-ipw
+  TITLE:=Support for IPWireless 3G devices
+  KCONFIG:=CONFIG_USB_SERIAL_IPW
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/ipw.ko
+  AUTOLOAD:=$(call AutoLoad,65,ipw)
+  $(call AddDepends/usb-serial)
+endef
+
+$(eval $(call KernelPackage,usb-serial-ipw))
+
+
 define KernelPackage/usb-serial-mct
   TITLE:=Support for Magic Control Tech. devices
   KCONFIG:=CONFIG_USB_SERIAL_MCT_U232
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/mct_u232.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/mct_u232.ko
   AUTOLOAD:=$(call AutoLoad,65,mct_u232)
   $(call AddDepends/usb-serial)
 endef
@@ -249,10 +353,25 @@ endef
 $(eval $(call KernelPackage,usb-serial-mct))
 
 
+define KernelPackage/usb-serial-mos7720
+  TITLE:=Support for Moschip MOS7720 devices
+  KCONFIG:=CONFIG_USB_SERIAL_MOS7720
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/mos7720.ko
+  AUTOLOAD:=$(call AutoLoad,65,mos7720)
+  $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-mos7720/description
+ Kernel support for Moschip MOS7720 USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-mos7720))
+
+
 define KernelPackage/usb-serial-pl2303
   TITLE:=Support for Prolific PL2303 devices
   KCONFIG:=CONFIG_USB_SERIAL_PL2303
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/pl2303.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/pl2303.ko
   AUTOLOAD:=$(call AutoLoad,65,pl2303)
   $(call AddDepends/usb-serial)
 endef
@@ -267,7 +386,7 @@ $(eval $(call KernelPackage,usb-serial-pl2303))
 define KernelPackage/usb-serial-cp210x
   TITLE:=Support for Silicon Labs cp210x devices
   KCONFIG:=CONFIG_USB_SERIAL_CP210X
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/cp210x.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/cp210x.ko
   AUTOLOAD:=$(call AutoLoad,65,cp210x)
   $(call AddDepends/usb-serial)
 endef
@@ -282,7 +401,7 @@ $(eval $(call KernelPackage,usb-serial-cp210x))
 define KernelPackage/usb-serial-ark3116
   TITLE:=Support for ArkMicroChips ARK3116 devices
   KCONFIG:=CONFIG_USB_SERIAL_ARK3116
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/ark3116.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/ark3116.ko
   AUTOLOAD:=$(call AutoLoad,65,ark3116)
   $(call AddDepends/usb-serial)
 endef
@@ -297,7 +416,7 @@ $(eval $(call KernelPackage,usb-serial-ark3116))
 define KernelPackage/usb-serial-oti6858
   TITLE:=Support for Ours Technology OTI6858 devices
   KCONFIG:=CONFIG_USB_SERIAL_OTI6858
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/oti6858.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/oti6858.ko
   AUTOLOAD:=$(call AutoLoad,65,oti6858)
   $(call AddDepends/usb-serial)
 endef
@@ -312,7 +431,7 @@ $(eval $(call KernelPackage,usb-serial-oti6858))
 define KernelPackage/usb-serial-sierrawireless
   TITLE:=Support for Sierra Wireless devices
   KCONFIG:=CONFIG_USB_SERIAL_SIERRAWIRELESS
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/sierra.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/sierra.ko
   AUTOLOAD:=$(call AutoLoad,65,sierra)
   $(call AddDepends/usb-serial)
 endef
@@ -327,7 +446,7 @@ $(eval $(call KernelPackage,usb-serial-sierrawireless))
 define KernelPackage/usb-serial-motorola-phone
   TITLE:=Support for Motorola usb phone
   KCONFIG:=CONFIG_USB_SERIAL_MOTOROLA
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/moto_modem.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/moto_modem.ko
   AUTOLOAD:=$(call AutoLoad,65,moto_modem)
   $(call AddDepends/usb-serial)
 endef
@@ -342,7 +461,7 @@ $(eval $(call KernelPackage,usb-serial-motorola-phone))
 define KernelPackage/usb-serial-visor
   TITLE:=Support for Handspring Visor devices
   KCONFIG:=CONFIG_USB_SERIAL_VISOR
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/visor.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/visor.ko
   AUTOLOAD:=$(call AutoLoad,65,visor)
   $(call AddDepends/usb-serial)
 endef
@@ -357,7 +476,7 @@ $(eval $(call KernelPackage,usb-serial-visor))
 define KernelPackage/usb-serial-cypress-m8
   TITLE:=Support for CypressM8 USB-Serial
   KCONFIG:=CONFIG_USB_SERIAL_CYPRESS_M8
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/cypress_m8.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/cypress_m8.ko
   AUTOLOAD:=$(call AutoLoad,65,cypress_m8)
   $(call AddDepends/usb-serial)
 endef
@@ -388,7 +507,7 @@ define KernelPackage/usb-serial-keyspan
        CONFIG_USB_SERIAL_KEYSPAN_MPR \
        CONFIG_USB_SERIAL_KEYSPAN_USA49W \
        CONFIG_USB_SERIAL_KEYSPAN_USA49WLC
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/keyspan.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/keyspan.ko
   AUTOLOAD:=$(call AutoLoad,65,keyspan)
   $(call AddDepends/usb-serial)
 endef
@@ -400,10 +519,26 @@ endef
 $(eval $(call KernelPackage,usb-serial-keyspan))
 
 
+define KernelPackage/usb-serial-wwan
+  TITLE:=Support for GSM and CDMA modems
+  KCONFIG:=CONFIG_USB_SERIAL_WWAN
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/usb_wwan.ko
+  AUTOLOAD:=$(call AutoLoad,61,usb_wwan)
+  $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-wwan/description
+ Kernel support for USB GSM and CDMA modems
+endef
+
+$(eval $(call KernelPackage,usb-serial-wwan))
+
+
 define KernelPackage/usb-serial-option
   TITLE:=Support for Option HSDPA modems
+  DEPENDS:=+kmod-usb-serial-wwan
   KCONFIG:=CONFIG_USB_SERIAL_OPTION
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/option.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/option.ko
   AUTOLOAD:=$(call AutoLoad,65,option)
   $(call AddDepends/usb-serial)
 endef
@@ -415,11 +550,26 @@ endef
 $(eval $(call KernelPackage,usb-serial-option))
 
 
+define KernelPackage/usb-serial-qualcomm
+  TITLE:=Support for Qualcomm USB serial
+  KCONFIG:=CONFIG_USB_SERIAL_QUALCOMM
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/qcserial.ko
+  AUTOLOAD:=$(call AutoLoad,65,qcserial)
+  $(call AddDepends/usb-serial)
+endef
+
+define KernelPackage/usb-serial-qualcomm/description
+ Kernel support for Qualcomm USB Serial devices (Gobi)
+endef
+
+$(eval $(call KernelPackage,usb-serial-qualcomm))
+
+
 define KernelPackage/usb-storage
   TITLE:=USB Storage support
-  DEPENDS:= +!TARGET_x86:kmod-scsi-core
+  DEPENDS:= +kmod-scsi-core
   KCONFIG:=CONFIG_USB_STORAGE
-  FILES:=$(LINUX_DIR)/drivers/usb/storage/usb-storage.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/storage/usb-storage.ko
   AUTOLOAD:=$(call AutoLoad,60,usb-storage,1)
   $(call AddDepends/usb)
 endef
@@ -447,16 +597,16 @@ define KernelPackage/usb-storage-extras
        CONFIG_USB_STORAGE_SDDR55 \
        CONFIG_USB_STORAGE_USBAT
   FILES:= \
-       $(LINUX_DIR)/drivers/usb/storage/ums-alauda.$(LINUX_KMOD_SUFFIX) \
-       $(LINUX_DIR)/drivers/usb/storage/ums-cypress.$(LINUX_KMOD_SUFFIX) \
-       $(LINUX_DIR)/drivers/usb/storage/ums-datafab.$(LINUX_KMOD_SUFFIX) \
-       $(LINUX_DIR)/drivers/usb/storage/ums-freecom.$(LINUX_KMOD_SUFFIX) \
-       $(LINUX_DIR)/drivers/usb/storage/ums-isd200.$(LINUX_KMOD_SUFFIX) \
-       $(LINUX_DIR)/drivers/usb/storage/ums-jumpshot.$(LINUX_KMOD_SUFFIX) \
-       $(LINUX_DIR)/drivers/usb/storage/ums-karma.$(LINUX_KMOD_SUFFIX) \
-       $(LINUX_DIR)/drivers/usb/storage/ums-sddr09.$(LINUX_KMOD_SUFFIX) \
-       $(LINUX_DIR)/drivers/usb/storage/ums-sddr55.$(LINUX_KMOD_SUFFIX) \
-       $(LINUX_DIR)/drivers/usb/storage/ums-usbat.$(LINUX_KMOD_SUFFIX)
+       $(LINUX_DIR)/drivers/usb/storage/ums-alauda.ko \
+       $(LINUX_DIR)/drivers/usb/storage/ums-cypress.ko \
+       $(LINUX_DIR)/drivers/usb/storage/ums-datafab.ko \
+       $(LINUX_DIR)/drivers/usb/storage/ums-freecom.ko \
+       $(LINUX_DIR)/drivers/usb/storage/ums-isd200.ko \
+       $(LINUX_DIR)/drivers/usb/storage/ums-jumpshot.ko \
+       $(LINUX_DIR)/drivers/usb/storage/ums-karma.ko \
+       $(LINUX_DIR)/drivers/usb/storage/ums-sddr09.ko \
+       $(LINUX_DIR)/drivers/usb/storage/ums-sddr55.ko \
+       $(LINUX_DIR)/drivers/usb/storage/ums-usbat.ko
   AUTOLOAD:=$(call AutoLoad,60,ums-alauda ums-cypress ums-datafab \
                                ums-freecom ums-isd200 ums-jumpshot \
                                ums-karma ums-sddr09 ums-sddr55 ums-usbat)
@@ -470,26 +620,11 @@ endef
 $(eval $(call KernelPackage,usb-storage-extras))
 
 
-define KernelPackage/usb-video
-  TITLE:=Support for USB video devices
-  KCONFIG:=CONFIG_VIDEO_USBVIDEO
-  FILES:=$(LINUX_DIR)/drivers/media/video/usbvideo/usbvideo.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call AutoLoad,61,usbvideo)
-  $(call AddDepends/usb)
-endef
-
-define KernelPackage/usb-video/description
- Kernel support for USB video devices
-endef
-
-$(eval $(call KernelPackage,usb-video))
-
-
 define KernelPackage/usb-atm
   TITLE:=Support for ATM on USB bus
   DEPENDS:=+kmod-atm
   KCONFIG:=CONFIG_USB_ATM
-  FILES:=$(LINUX_DIR)/drivers/usb/atm/usbatm.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/atm/usbatm.ko
   AUTOLOAD:=$(call AutoLoad,60,usbatm)
   $(call AddDepends/usb)
 endef
@@ -510,7 +645,7 @@ endef
 define KernelPackage/usb-atm-speedtouch
   TITLE:=SpeedTouch USB ADSL modems support
   KCONFIG:=CONFIG_USB_SPEEDTOUCH
-  FILES:=$(LINUX_DIR)/drivers/usb/atm/speedtch.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/atm/speedtch.ko
   AUTOLOAD:=$(call AutoLoad,70,speedtch)
   $(call AddDepends/usb-atm)
 endef
@@ -524,7 +659,7 @@ $(eval $(call KernelPackage,usb-atm-speedtouch))
 
 define KernelPackage/usb-atm-ueagle
   TITLE:=Eagle 8051 based USB ADSL modems support
-  FILES:=$(LINUX_DIR)/drivers/usb/atm/ueagle-atm.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/atm/ueagle-atm.ko
   KCONFIG:=CONFIG_USB_UEAGLEATM
   AUTOLOAD:=$(call AutoLoad,70,ueagle-atm)
   $(call AddDepends/usb-atm)
@@ -539,7 +674,7 @@ $(eval $(call KernelPackage,usb-atm-ueagle))
 
 define KernelPackage/usb-atm-cxacru
   TITLE:=cxacru
-  FILES:=$(LINUX_DIR)/drivers/usb/atm/cxacru.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/usb/atm/cxacru.ko
   KCONFIG:=CONFIG_USB_CXACRU
   AUTOLOAD:=$(call AutoLoad,70,cxacru)
   $(call AddDepends/usb-atm)
@@ -554,9 +689,9 @@ $(eval $(call KernelPackage,usb-atm-cxacru))
 
 define KernelPackage/usb-net
   TITLE:=Kernel modules for USB-to-Ethernet convertors
-  KCONFIG:=CONFIG_USB_USBNET
+  KCONFIG:=CONFIG_USB_USBNET CONFIG_MII=y
   AUTOLOAD:=$(call AutoLoad,60,usbnet)
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/usbnet.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/usbnet.ko
   $(call AddDepends/usb)
 endef
 
@@ -576,7 +711,7 @@ endef
 define KernelPackage/usb-net-asix
   TITLE:=Kernel module for USB-to-Ethernet Asix convertors
   KCONFIG:=CONFIG_USB_NET_AX8817X
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/asix.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/asix.ko
   AUTOLOAD:=$(call AutoLoad,61,asix)
   $(call AddDepends/usb-net)
 endef
@@ -592,7 +727,7 @@ define KernelPackage/usb-net-hso
   TITLE:=Kernel module for Option USB High Speed Mobile Devices
   KCONFIG:=CONFIG_USB_HSO
   FILES:= \
-       $(LINUX_DIR)/drivers/$(USBNET_DIR)/hso.$(LINUX_KMOD_SUFFIX)
+       $(LINUX_DIR)/drivers/$(USBNET_DIR)/hso.ko
   AUTOLOAD:=$(call AutoLoad,61,hso)
   $(call AddDepends/usb-net)
   $(call AddDepends/rfkill)
@@ -608,7 +743,7 @@ $(eval $(call KernelPackage,usb-net-hso))
 define KernelPackage/usb-net-kaweth
   TITLE:=Kernel module for USB-to-Ethernet Kaweth convertors
   KCONFIG:=CONFIG_USB_KAWETH
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/kaweth.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/kaweth.ko
   AUTOLOAD:=$(call AutoLoad,61,kaweth)
   $(call AddDepends/usb-net)
 endef
@@ -623,7 +758,7 @@ $(eval $(call KernelPackage,usb-net-kaweth))
 define KernelPackage/usb-net-pegasus
   TITLE:=Kernel module for USB-to-Ethernet Pegasus convertors
   KCONFIG:=CONFIG_USB_PEGASUS
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/pegasus.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/pegasus.ko
   AUTOLOAD:=$(call AutoLoad,61,pegasus)
   $(call AddDepends/usb-net)
 endef
@@ -638,7 +773,7 @@ $(eval $(call KernelPackage,usb-net-pegasus))
 define KernelPackage/usb-net-mcs7830
   TITLE:=Kernel module for USB-to-Ethernet MCS7830 convertors
   KCONFIG:=CONFIG_USB_NET_MCS7830
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/mcs7830.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/mcs7830.ko
   AUTOLOAD:=$(call AutoLoad,61,mcs7830)
   $(call AddDepends/usb-net)
 endef
@@ -653,7 +788,7 @@ $(eval $(call KernelPackage,usb-net-mcs7830))
 define KernelPackage/usb-net-dm9601-ether
   TITLE:=Support for DM9601 ethernet connections
   KCONFIG:=CONFIG_USB_NET_DM9601
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/dm9601.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/dm9601.ko
   AUTOLOAD:=$(call AutoLoad,61,dm9601)
   $(call AddDepends/usb-net)
 endef
@@ -667,7 +802,7 @@ $(eval $(call KernelPackage,usb-net-dm9601-ether))
 define KernelPackage/usb-net-cdc-ether
   TITLE:=Support for cdc ethernet connections
   KCONFIG:=CONFIG_USB_NET_CDCETHER
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_ether.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_ether.ko
   AUTOLOAD:=$(call AutoLoad,61,cdc_ether)
   $(call AddDepends/usb-net)
 endef
@@ -679,10 +814,25 @@ endef
 $(eval $(call KernelPackage,usb-net-cdc-ether))
 
 
+define KernelPackage/usb-net-qmi-wwan
+  TITLE:=QMI WWAN driver
+  KCONFIG:=CONFIG_USB_NET_QMI_WWAN
+  FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/qmi_wwan.ko
+  AUTOLOAD:=$(call AutoLoad,61,qmi_wwan)
+  $(call AddDepends/usb-net,+kmod-usb-wdm)
+endef
+
+define KernelPackage/usb-net-qmi-wwan/description
+ QMI WWAN driver for Qualcomm MSM based 3G and LTE modems
+endef
+
+$(eval $(call KernelPackage,usb-net-qmi-wwan))
+
+
 define KernelPackage/usb-net-rndis
   TITLE:=Support for RNDIS connections
   KCONFIG:=CONFIG_USB_NET_RNDIS_HOST
-  FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/rndis_host.$(LINUX_KMOD_SUFFIX)
+  FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/rndis_host.ko
   AUTOLOAD:=$(call AutoLoad,62,rndis_host)
   $(call AddDepends/usb-net,+kmod-usb-net-cdc-ether)
 endef
@@ -693,10 +843,70 @@ endef
 
 $(eval $(call KernelPackage,usb-net-rndis))
 
+define KernelPackage/usb-net-cdc-mbim
+  SUBMENU:=$(USB_MENU)
+  TITLE:=Kernel module for MBIM Devices
+  KCONFIG:=CONFIG_USB_NET_CDC_MBIM
+  FILES:= \
+   $(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_mbim.ko
+  AUTOLOAD:=$(call AutoLoad,62,cdc_mbim)
+  $(call AddDepends/usb-net,+kmod-usb-wdm,+kmod-usb-net-cdc-ncm)
+endef
+
+define KernelPackage/usb-net-cdc-mbim/description
+ Kernel module for Option USB High Speed Mobile Devices
+endef
+
+$(eval $(call KernelPackage,usb-net-cdc-mbim))
+
+define KernelPackage/usb-net-cdc-ncm
+  TITLE:=Support for CDC NCM connections
+  KCONFIG:=CONFIG_USB_NET_CDC_NCM
+  FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_ncm.ko
+  AUTOLOAD:=$(call AutoLoad,61,cdc_ncm)
+  $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-cdc-ncm/description
+ Kernel support for CDC NCM connections
+endef
+
+$(eval $(call KernelPackage,usb-net-cdc-ncm))
+
+
+define KernelPackage/usb-net-sierrawireless
+  TITLE:=Support for Sierra Wireless devices
+  KCONFIG:=CONFIG_USB_SIERRA_NET
+  FILES:=$(LINUX_DIR)/drivers/net/usb/sierra_net.ko
+  AUTOLOAD:=$(call AutoLoad,65,sierra_net)
+  $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-sierrawireless/description
+ Kernel support for Sierra Wireless devices
+endef
+
+$(eval $(call KernelPackage,usb-net-sierrawireless))
+
+
+define KernelPackage/usb-net-ipheth
+  TITLE:=Apple iPhone USB Ethernet driver
+  KCONFIG:=CONFIG_USB_IPHETH
+  FILES:=$(LINUX_DIR)/drivers/net/usb/ipheth.ko
+  AUTOLOAD:=$(call AutoLoad,64,ipheth)
+  $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-ipheth/description
+ Kernel support for Apple iPhone USB Ethernet driver
+endef
+
+$(eval $(call KernelPackage,usb-net-ipheth))
+
 
 define KernelPackage/usb-hid
   TITLE:=Support for USB Human Input Devices
-  KCONFIG:=CONFIG_HID_SUPPORT=y CONFIG_USB_HID
+  KCONFIG:=CONFIG_HID_SUPPORT=y CONFIG_USB_HID CONFIG_USB_HIDDEV=y
   FILES:=$(LINUX_DIR)/drivers/$(USBHID_DIR)/usbhid.ko
   AUTOLOAD:=$(call AutoLoad,70,usbhid)
   $(call AddDepends/usb)
@@ -759,16 +969,34 @@ endef
 $(eval $(call KernelPackage,usb-test))
 
 
-define KernelPackage/usb-phidget
-  TITLE:=USB Phidget Driver
-  KCONFIG:=CONFIG_USB_PHIDGET CONFIG_USB_PHIDGETKIT CONFIG_USB_PHIDGETMOTORCONTROL CONFIG_USB_PHIDGETSERVO
-  FILES:=$(LINUX_DIR)/drivers/usb/misc/phidget*.ko
-$(call AddDepends/usb)
+define KernelPackage/usbip
+  TITLE := USB-over-IP kernel support
+  KCONFIG:= \
+       CONFIG_USBIP_CORE \
+       CONFIG_USBIP_DEBUG=n
+  FILES:=$(LINUX_DIR)/drivers/staging/usbip/usbip-core.ko
+  AUTOLOAD:=$(call AutoLoad,90,usbip-core)
+  $(call AddDepends/usb)
 endef
+$(eval $(call KernelPackage,usbip))
 
-define KernelPackage/usb-phidget/description
- Kernel support for USB Phidget devices.
+define KernelPackage/usbip-client
+  TITLE := USB-over-IP client driver
+  DEPENDS := +kmod-usbip
+  KCONFIG := CONFIG_USBIP_VHCI_HCD
+  FILES := $(LINUX_DIR)/drivers/staging/usbip/vhci-hcd.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD := $(call AutoLoad,95,vhci-hcd)
+  $(call AddDepends/usb)
 endef
+$(eval $(call KernelPackage,usbip-client))
 
-$(eval $(call KernelPackage,usb-phidget))
-
+define KernelPackage/usbip-server
+$(call KernelPackage/usbip/Default)
+  TITLE := USB-over-IP host driver
+  DEPENDS := +kmod-usbip
+  KCONFIG := CONFIG_USBIP_HOST
+  FILES := $(LINUX_DIR)/drivers/staging/usbip/usbip-host.ko
+  AUTOLOAD := $(call AutoLoad,95,usbip-host)
+  $(call AddDepends/usb)
+endef
+$(eval $(call KernelPackage,usbip-server))