linux: add upstream patch to allow building dwc2 as module on 3.18
Also add the required config symbols to usb.mk Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 44181
This commit is contained in:
		@@ -438,6 +438,8 @@ define KernelPackage/usb-dwc2
 | 
				
			|||||||
  DEPENDS:=@!LINUX_3_8 @!LINUX_3_10
 | 
					  DEPENDS:=@!LINUX_3_8 @!LINUX_3_10
 | 
				
			||||||
  KCONFIG:= \
 | 
					  KCONFIG:= \
 | 
				
			||||||
	CONFIG_USB_DWC2 \
 | 
						CONFIG_USB_DWC2 \
 | 
				
			||||||
 | 
						CONFIG_USB_DWC2_PCI \
 | 
				
			||||||
 | 
						CONFIG_USB_DWC2_PLATFORM \
 | 
				
			||||||
	CONFIG_USB_DWC2_DEBUG=n \
 | 
						CONFIG_USB_DWC2_DEBUG=n \
 | 
				
			||||||
	CONFIG_USB_DWC2_VERBOSE=n \
 | 
						CONFIG_USB_DWC2_VERBOSE=n \
 | 
				
			||||||
	CONFIG_USB_DWC2_TRACK_MISSED_SOFS=n
 | 
						CONFIG_USB_DWC2_TRACK_MISSED_SOFS=n
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										146
									
								
								target/linux/generic/patches-3.18/821-usb-dwc2-dualrole.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								target/linux/generic/patches-3.18/821-usb-dwc2-dualrole.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,146 @@
 | 
				
			|||||||
 | 
					--- a/drivers/usb/dwc2/Kconfig
 | 
				
			||||||
 | 
					+++ b/drivers/usb/dwc2/Kconfig
 | 
				
			||||||
 | 
					@@ -1,6 +1,6 @@
 | 
				
			||||||
 | 
					 config USB_DWC2
 | 
				
			||||||
 | 
					-	bool "DesignWare USB2 DRD Core Support"
 | 
				
			||||||
 | 
					-	depends on USB
 | 
				
			||||||
 | 
					+	tristate "DesignWare USB2 DRD Core Support"
 | 
				
			||||||
 | 
					+	depends on USB || USB_GADGET
 | 
				
			||||||
 | 
					 	help
 | 
				
			||||||
 | 
					 	  Say Y here if your system has a Dual Role Hi-Speed USB
 | 
				
			||||||
 | 
					 	  controller based on the DesignWare HSOTG IP Core.
 | 
				
			||||||
 | 
					@@ -10,49 +10,61 @@ config USB_DWC2
 | 
				
			||||||
 | 
					 	  bus interface module (if you have a PCI bus system) will be
 | 
				
			||||||
 | 
					 	  called dwc2_pci.ko, and the platform interface module (for
 | 
				
			||||||
 | 
					 	  controllers directly connected to the CPU) will be called
 | 
				
			||||||
 | 
					-	  dwc2_platform.ko. For gadget mode, there will be a single
 | 
				
			||||||
 | 
					-	  module called dwc2_gadget.ko.
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-	  NOTE: The s3c-hsotg driver is now renamed to dwc2_gadget. The
 | 
				
			||||||
 | 
					-	  host and gadget drivers are still currently separate drivers.
 | 
				
			||||||
 | 
					-	  There are plans to merge the dwc2_gadget driver with the dwc2
 | 
				
			||||||
 | 
					-	  host driver in the near future to create a dual-role driver.
 | 
				
			||||||
 | 
					+	  dwc2_platform.ko. For all modes(host, gadget and dual-role), there
 | 
				
			||||||
 | 
					+	  will be an additional module named dwc2.ko.
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 if USB_DWC2
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					+choice
 | 
				
			||||||
 | 
					+	bool "DWC2 Mode Selection"
 | 
				
			||||||
 | 
					+	default USB_DWC2_DUAL_ROLE if (USB && USB_GADGET)
 | 
				
			||||||
 | 
					+	default USB_DWC2_HOST if (USB && !USB_GADGET)
 | 
				
			||||||
 | 
					+	default USB_DWC2_PERIPHERAL if (!USB && USB_GADGET)
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					 config USB_DWC2_HOST
 | 
				
			||||||
 | 
					-	tristate "Host only mode"
 | 
				
			||||||
 | 
					+	bool "Host only mode"
 | 
				
			||||||
 | 
					 	depends on USB
 | 
				
			||||||
 | 
					 	help
 | 
				
			||||||
 | 
					 	  The Designware USB2.0 high-speed host controller
 | 
				
			||||||
 | 
					-	  integrated into many SoCs.
 | 
				
			||||||
 | 
					+	  integrated into many SoCs. Select this option if you want the
 | 
				
			||||||
 | 
					+	  driver to operate in Host-only mode.
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-config USB_DWC2_PLATFORM
 | 
				
			||||||
 | 
					-	bool "DWC2 Platform"
 | 
				
			||||||
 | 
					-	depends on USB_DWC2_HOST
 | 
				
			||||||
 | 
					-	default USB_DWC2_HOST
 | 
				
			||||||
 | 
					+comment "Gadget/Dual-role mode requires USB Gadget support to be enabled"
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+config USB_DWC2_PERIPHERAL
 | 
				
			||||||
 | 
					+	bool "Gadget only mode"
 | 
				
			||||||
 | 
					+	depends on USB_GADGET=y || USB_GADGET=USB_DWC2
 | 
				
			||||||
 | 
					+	help
 | 
				
			||||||
 | 
					+	  The Designware USB2.0 high-speed gadget controller
 | 
				
			||||||
 | 
					+	  integrated into many SoCs. Select this option if you want the
 | 
				
			||||||
 | 
					+	  driver to operate in Peripheral-only mode. This option requires
 | 
				
			||||||
 | 
					+	  USB_GADGET to be enabled.
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+config USB_DWC2_DUAL_ROLE
 | 
				
			||||||
 | 
					+	bool "Dual Role mode"
 | 
				
			||||||
 | 
					+	depends on (USB=y || USB=USB_DWC2) && (USB_GADGET=y || USB_GADGET=USB_DWC2)
 | 
				
			||||||
 | 
					 	help
 | 
				
			||||||
 | 
					-	  The Designware USB2.0 platform interface module for
 | 
				
			||||||
 | 
					-	  controllers directly connected to the CPU. This is only
 | 
				
			||||||
 | 
					-	  used for host mode.
 | 
				
			||||||
 | 
					+	  Select this option if you want the driver to work in a dual-role
 | 
				
			||||||
 | 
					+	  mode. In this mode both host and gadget features are enabled, and
 | 
				
			||||||
 | 
					+	  the role will be determined by the cable that gets plugged-in. This
 | 
				
			||||||
 | 
					+	  option requires USB_GADGET to be enabled.
 | 
				
			||||||
 | 
					+endchoice
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+config USB_DWC2_PLATFORM
 | 
				
			||||||
 | 
					+	tristate "DWC2 Platform"
 | 
				
			||||||
 | 
					+	default USB_DWC2_HOST || USB_DWC2_PERIPHERAL
 | 
				
			||||||
 | 
					+        help
 | 
				
			||||||
 | 
					+          The Designware USB2.0 platform interface module for
 | 
				
			||||||
 | 
					+          controllers directly connected to the CPU.
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 config USB_DWC2_PCI
 | 
				
			||||||
 | 
					-	bool "DWC2 PCI"
 | 
				
			||||||
 | 
					+	tristate "DWC2 PCI"
 | 
				
			||||||
 | 
					 	depends on USB_DWC2_HOST && PCI
 | 
				
			||||||
 | 
					 	default USB_DWC2_HOST
 | 
				
			||||||
 | 
					 	help
 | 
				
			||||||
 | 
					 	  The Designware USB2.0 PCI interface module for controllers
 | 
				
			||||||
 | 
					 	  connected to a PCI bus. This is only used for host mode.
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-comment "Gadget mode requires USB Gadget support to be enabled"
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-config USB_DWC2_PERIPHERAL
 | 
				
			||||||
 | 
					-	tristate "Gadget only mode"
 | 
				
			||||||
 | 
					-	depends on USB_GADGET
 | 
				
			||||||
 | 
					-	help
 | 
				
			||||||
 | 
					-	  The Designware USB2.0 high-speed gadget controller
 | 
				
			||||||
 | 
					-	  integrated into many SoCs.
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					 config USB_DWC2_DEBUG
 | 
				
			||||||
 | 
					 	bool "Enable Debugging Messages"
 | 
				
			||||||
 | 
					 	help
 | 
				
			||||||
 | 
					--- a/drivers/usb/dwc2/Makefile
 | 
				
			||||||
 | 
					+++ b/drivers/usb/dwc2/Makefile
 | 
				
			||||||
 | 
					@@ -1,28 +1,28 @@
 | 
				
			||||||
 | 
					 ccflags-$(CONFIG_USB_DWC2_DEBUG)	+= -DDEBUG
 | 
				
			||||||
 | 
					 ccflags-$(CONFIG_USB_DWC2_VERBOSE)	+= -DVERBOSE_DEBUG
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-obj-$(CONFIG_USB_DWC2_HOST)		+= dwc2.o
 | 
				
			||||||
 | 
					+obj-$(CONFIG_USB_DWC2)			+= dwc2.o
 | 
				
			||||||
 | 
					 dwc2-y					:= core.o core_intr.o
 | 
				
			||||||
 | 
					-dwc2-y					+= hcd.o hcd_intr.o
 | 
				
			||||||
 | 
					-dwc2-y					+= hcd_queue.o hcd_ddma.o
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+ifneq ($(filter y,$(CONFIG_USB_DWC2_HOST) $(CONFIG_USB_DWC2_DUAL_ROLE)),)
 | 
				
			||||||
 | 
					+	dwc2-y				+= hcd.o hcd_intr.o
 | 
				
			||||||
 | 
					+	dwc2-y				+= hcd_queue.o hcd_ddma.o
 | 
				
			||||||
 | 
					+endif
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+ifneq ($(filter y,$(CONFIG_USB_DWC2_PERIPHERAL) $(CONFIG_USB_DWC2_DUAL_ROLE)),)
 | 
				
			||||||
 | 
					+	dwc2-y       			+= gadget.o
 | 
				
			||||||
 | 
					+endif
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 # NOTE: The previous s3c-hsotg peripheral mode only driver has been moved to
 | 
				
			||||||
 | 
					 # this location and renamed gadget.c. When building for dynamically linked
 | 
				
			||||||
 | 
					-# modules, dwc2_gadget.ko will get built for peripheral mode. For host mode,
 | 
				
			||||||
 | 
					-# the core module will be dwc2.ko, the PCI bus interface module will called
 | 
				
			||||||
 | 
					-# dwc2_pci.ko and the platform interface module will be called dwc2_platform.ko.
 | 
				
			||||||
 | 
					-# At present the host and gadget driver will be separate drivers, but there
 | 
				
			||||||
 | 
					-# are plans in the near future to create a dual-role driver.
 | 
				
			||||||
 | 
					+# modules, dwc2.ko will get built for host mode, peripheral mode, and dual-role
 | 
				
			||||||
 | 
					+# mode. The PCI bus interface module will called dwc2_pci.ko and the platform
 | 
				
			||||||
 | 
					+# interface module will be called dwc2_platform.ko.
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 ifneq ($(CONFIG_USB_DWC2_PCI),)
 | 
				
			||||||
 | 
					-	obj-$(CONFIG_USB_DWC2_HOST)	+= dwc2_pci.o
 | 
				
			||||||
 | 
					+	obj-$(CONFIG_USB_DWC2)		+= dwc2_pci.o
 | 
				
			||||||
 | 
					 	dwc2_pci-y			:= pci.o
 | 
				
			||||||
 | 
					 endif
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-ifneq ($(CONFIG_USB_DWC2_PLATFORM),)
 | 
				
			||||||
 | 
					-	obj-$(CONFIG_USB_DWC2_HOST)	+= dwc2_platform.o
 | 
				
			||||||
 | 
					-	dwc2_platform-y			:= platform.o
 | 
				
			||||||
 | 
					-endif
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-obj-$(CONFIG_USB_DWC2_PERIPHERAL)	+= dwc2_gadget.o
 | 
				
			||||||
 | 
					-dwc2_gadget-y				:= gadget.o
 | 
				
			||||||
 | 
					+obj-$(CONFIG_USB_DWC2_PLATFORM)		+= dwc2_platform.o
 | 
				
			||||||
 | 
					+dwc2_platform-y				:= platform.o
 | 
				
			||||||
		Reference in New Issue
	
	Block a user