linux-4.9: Fix building of DWC3 module
authorAlexey Brodkin <[email protected]>
Tue, 2 May 2017 10:36:19 +0000 (13:36 +0300)
committerFelix Fietkau <[email protected]>
Tue, 2 May 2017 13:17:30 +0000 (15:17 +0200)
DWC3 driver uses of_usb_get_phy_mode() which is
implemented in drivers/usb/phy/of.c and in bare minimal
configuration it might not be pulled in kernel binary.

In case of ARC or ARM this could be easily reproduced with
"allnodefconfig" +CONFIG_USB=m +CONFIG_USB_DWC3=m.

On building all ends-up with:
---------------------->8------------------
  Kernel: arch/arm/boot/Image is ready
  Kernel: arch/arm/boot/zImage is ready
  Building modules, stage 2.
  MODPOST 5 modules
ERROR: "of_usb_get_phy_mode" [drivers/usb/dwc3/dwc3.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2
---------------------->8------------------

This was affecting Lede in case of CONFIG_ALL_KMODS=y.

The patch is already scheduled for v4.12 and once it is backported to
4.9.y it must be removed from here.

Note this patch makes sense not only for ARC instead it fixes
a generic issue which may affect more arches and platforms thus
putting it in "generic/" folder.

Signed-off-by: Alexey Brodkin <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]> [patch rename]
target/linux/generic/patches-4.9/012-usb-Make-sure-usb-phy-of-gets-built-in.patch [new file with mode: 0644]

diff --git a/target/linux/generic/patches-4.9/012-usb-Make-sure-usb-phy-of-gets-built-in.patch b/target/linux/generic/patches-4.9/012-usb-Make-sure-usb-phy-of-gets-built-in.patch
new file mode 100644 (file)
index 0000000..1bc498b
--- /dev/null
@@ -0,0 +1,54 @@
+From 3d6159640da9c9175d1ca42f151fc1a14caded59 Mon Sep 17 00:00:00 2001
+From: Alexey Brodkin <[email protected]>
+Date: Thu, 13 Apr 2017 15:33:34 +0300
+Subject: [PATCH] usb: Make sure usb/phy/of gets built-in
+
+DWC3 driver uses of_usb_get_phy_mode() which is
+implemented in drivers/usb/phy/of.c and in bare minimal
+configuration it might not be pulled in kernel binary.
+
+In case of ARC or ARM this could be easily reproduced with
+"allnodefconfig" +CONFIG_USB=m +CONFIG_USB_DWC3=m.
+
+On building all ends-up with:
+---------------------->8------------------
+  Kernel: arch/arm/boot/Image is ready
+  Kernel: arch/arm/boot/zImage is ready
+  Building modules, stage 2.
+  MODPOST 5 modules
+ERROR: "of_usb_get_phy_mode" [drivers/usb/dwc3/dwc3.ko] undefined!
+make[1]: *** [__modpost] Error 1
+make: *** [modules] Error 2
+---------------------->8------------------
+
+Signed-off-by: Alexey Brodkin <[email protected]>
+Cc: Greg Kroah-Hartman <[email protected]>
+Cc: Masahiro Yamada <[email protected]>
+Cc: Geert Uytterhoeven <[email protected]>
+Cc: Nicolas Pitre <[email protected]>
+Cc: Thomas Gleixner <[email protected]>
+Cc: Felipe Balbi <[email protected]>
+Cc: Felix Fietkau <[email protected]>
+Cc: Jeremy Kerr <[email protected]>
+Signed-off-by: Greg Kroah-Hartman <[email protected]>
+---
+ drivers/Makefile | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/Makefile b/drivers/Makefile
+index 2eced9afba53..8f8bdc9e3d29 100644
+--- a/drivers/Makefile
++++ b/drivers/Makefile
+@@ -104,6 +104,7 @@ obj-$(CONFIG_USB_PHY)              += usb/
+ obj-$(CONFIG_USB)             += usb/
+ obj-$(CONFIG_PCI)             += usb/
+ obj-$(CONFIG_USB_GADGET)      += usb/
++obj-$(CONFIG_OF)              += usb/
+ obj-$(CONFIG_SERIO)           += input/serio/
+ obj-$(CONFIG_GAMEPORT)                += input/gameport/
+ obj-$(CONFIG_INPUT)           += input/
+-- 
+2.11.0
+