Skip to contentSkip to conversation

usb: typec: intel_pmc_mux: select CONFIG_USB_COMMON

PATCH In review Arnd Bergmann 3 participants 3 messages Aug 5, 2023

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 usb: typec: intel_pmc_mux: select CONFIG_USB_COMMON

From: Arnd Bergmann <[email protected]>

It is possible to configure the typec drivers to be built-in while the actual USB host and device support is in loadable modules, but that now causes a link failure because the usb debugfs support is then not available to built-in code.

x86_64-linux-ld: drivers/usb/typec/mux/intel_pmc_mux.o: in function `pmc_usb_init':
intel_pmc_mux.c:(.init.text+0x3): undefined reference to `usb_debug_root'

Select CONFIG_USB_COMMON to get it to build again, as we do for other drivers that require the core usb functionality.

Fixes 0a453dc9f2602 ("usb: typec: intel_pmc_mux: Expose IOM port status to debugfs")
---
 drivers/usb/typec/mux/Kconfig | 1 +
 1 file changed, 1 insertion(+)
drivers/usb/typec/mux/Kconfig +1 -0
index 784b9d8107e9b..65da61150ba78 100644
@@ -29,6 +29,7 @@ config TYPEC_MUX_INTEL_PMC
 	tristate "Intel PMC mux control"
 	depends on ACPI
 	depends on INTEL_SCU_IPC
+	select USB_COMMON
 	select USB_ROLE_SWITCH
 	help
 	  Driver for USB muxes controlled by Intel PMC FW. Intel PMC FW can
Signature · 1 line
2.39.2
#1 lore raw
Quoted 34 lines · Arnd Bergmann

From: Arnd Bergmann <[email protected]>

It is possible to configure the typec drivers to be built-in while the actual USB host and device support is in loadable modules, but that now causes a link failure because the usb debugfs support is then not available to built-in code.

x86_64-linux-ld: drivers/usb/typec/mux/intel_pmc_mux.o: in function `pmc_usb_init':
intel_pmc_mux.c:(.init.text+0x3): undefined reference to `usb_debug_root'

Select CONFIG_USB_COMMON to get it to build again, as we do for other drivers that require the core usb functionality.

Fixes 0a453dc9f2602 ("usb: typec: intel_pmc_mux: Expose IOM port status to debugfs")
---
 drivers/usb/typec/mux/Kconfig | 1 +
 1 file changed, 1 insertion(+)
drivers/usb/typec/mux/Kconfig +1 -0
index 784b9d8107e9b..65da61150ba78 100644
@@ -29,6 +29,7 @@ config TYPEC_MUX_INTEL_PMC
 	tristate "Intel PMC mux control"
 	depends on ACPI
 	depends on INTEL_SCU_IPC
+	select USB_COMMON
 	select USB_ROLE_SWITCH
 	help
 	  Driver for USB muxes controlled by Intel PMC FW. Intel PMC FW can
Signature · 1 line
2.39.2

I think this is already fixed by commit ef7c4d8a90c6 ("usb: typec: mux:
intel: Add dependency on USB_COMMON") in my tree and will be in the next linux-next release on Monday.

thanks,

greg k-h

#2 lore raw
Quoted 31 lines · Greg Kroah-Hartman
Quoted 30 lines · Arnd Bergmann

From: Arnd Bergmann <[email protected]>

It is possible to configure the typec drivers to be built-in while the actual USB host and device support is in loadable modules, but that now causes a link failure because the usb debugfs support is then not available to built-in code.

x86_64-linux-ld: drivers/usb/typec/mux/intel_pmc_mux.o: in function `pmc_usb_init':
intel_pmc_mux.c:(.init.text+0x3): undefined reference to `usb_debug_root'

Select CONFIG_USB_COMMON to get it to build again, as we do for other drivers that require the core usb functionality.

Fixes 0a453dc9f2602 ("usb: typec: intel_pmc_mux: Expose IOM port status to debugfs")
---
 drivers/usb/typec/mux/Kconfig | 1 +
 1 file changed, 1 insertion(+)
drivers/usb/typec/mux/Kconfig +1 -0
index 784b9d8107e9b..65da61150ba78 100644
@@ -29,6 +29,7 @@ config TYPEC_MUX_INTEL_PMC
 	tristate "Intel PMC mux control"
 	depends on ACPI
 	depends on INTEL_SCU_IPC
+	select USB_COMMON
 	select USB_ROLE_SWITCH
 	help
Quoted 8 lines
Quoted 4 lines
drivers/usb/typec/mux/Kconfig +0 -0
 	  Driver for USB muxes controlled by Intel PMC FW. Intel PMC FW can
Signature · 1 line
2.39.2

I think this is already fixed by commit ef7c4d8a90c6 ("usb: typec: mux:
intel: Add dependency on USB_COMMON") in my tree and will be in the next linux-next release on Monday.

Right, adding a dependency also works.

I tried to avoid mixing 'depends on' with 'select' here, and (almost) all the other users of USB_COMMON use select since this is a hidden symbol, but practically speaking there is very little difference since you wouldn't actually want to have the typec support builtin without also having USB builtin.

Arnd