From 2b27e62e74fa73086e505f93d6bf037a16c66e55 Mon Sep 17 00:00:00 2001 From: Alexey Brodkin Date: Tue, 2 May 2017 13:36:19 +0300 Subject: [PATCH] linux-4.9: Fix building of DWC3 module 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 Signed-off-by: Felix Fietkau [patch rename] --- ...b-Make-sure-usb-phy-of-gets-built-in.patch | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 target/linux/generic/patches-4.9/012-usb-Make-sure-usb-phy-of-gets-built-in.patch 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 index 0000000000..1bc498be7c --- /dev/null +++ b/target/linux/generic/patches-4.9/012-usb-Make-sure-usb-phy-of-gets-built-in.patch @@ -0,0 +1,54 @@ +From 3d6159640da9c9175d1ca42f151fc1a14caded59 Mon Sep 17 00:00:00 2001 +From: Alexey Brodkin +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 +Cc: Greg Kroah-Hartman +Cc: Masahiro Yamada +Cc: Geert Uytterhoeven +Cc: Nicolas Pitre +Cc: Thomas Gleixner +Cc: Felipe Balbi +Cc: Felix Fietkau +Cc: Jeremy Kerr +Cc: linux-snps-arc@lists.infradead.org +Cc: stable@vger.kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + 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 +