linux-4.9: Fix building of DWC3 module
authorAlexey Brodkin <Alexey.Brodkin@synopsys.com>
Tue, 2 May 2017 10:36:19 +0000 (13:36 +0300)
committerFelix Fietkau <nbd@nbd.name>
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 <Alexey.Brodkin@synopsys.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name> [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 <Alexey.Brodkin@synopsys.com>
+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 <abrodkin@synopsys.com>
+Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
+Cc: Geert Uytterhoeven <geert+renesas@glider.be>
+Cc: Nicolas Pitre <nicolas.pitre@linaro.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: Felipe Balbi <balbi@kernel.org>
+Cc: Felix Fietkau <nbd@nbd.name>
+Cc: Jeremy Kerr <jk@ozlabs.org>
+Cc: linux-snps-arc@lists.infradead.org
+Cc: stable@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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
+