Re: [PATCH] usb: typec: nb7vpq904m: add CONFIG_DRM dependency

From: Neil Armstrong
Date: Thu Jun 22 2023 - 11:39:14 EST


Hi,

On 22/06/2023 13:24, Arnd Bergmann wrote:
On Thu, Jun 22, 2023, at 12:39, Neil Armstrong wrote:
Hi,

On 22/06/2023 12:18, Arnd Bergmann wrote:
From: Arnd Bergmann <arnd@xxxxxxxx>

This driver calls directly into DRM functions and fails to link if
that is disabled:

ld.lld: error: undefined symbol: devm_drm_bridge_add
ld.lld: error: undefined symbol: devm_drm_of_get_bridge
referenced by nb7vpq904m.c
drivers/usb/typec/mux/nb7vpq904m.o:(nb7vpq904m_probe) in archive vmlinux.a

Fixes: 88d8f3ac9c67e ("usb: typec: add support for the nb7vpq904m Type-C Linear Redriver")
Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
---
drivers/usb/typec/mux/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/typec/mux/Kconfig b/drivers/usb/typec/mux/Kconfig
index 8c4d6b8fb75c3..f53ae24b6c048 100644
--- a/drivers/usb/typec/mux/Kconfig
+++ b/drivers/usb/typec/mux/Kconfig
@@ -37,7 +37,7 @@ config TYPEC_MUX_INTEL_PMC
config TYPEC_MUX_NB7VPQ904M
tristate "On Semiconductor NB7VPQ904M Type-C redriver driver"
- depends on I2C
+ depends on I2C && DRM
select REGMAP_I2C
help
Say Y or M if your system has a On Semiconductor NB7VPQ904M Type-C

I think it could be :

+ depends on DRM || DRM=n
+ select DRM_PANEL_BRIDGE if DRM

As far as I can tell, this would only avoid the link error
against devm_drm_of_get_bridge(), but not the one against
devm_drm_bridge_add(), which is defined in drm.ko through
drivers/gpu/drm/drm_bridge.c.

I'm trying to reproduce such situation, but so fail I fail.

In the driver there's a guard to avoid calling into DRM functions
when disabled:
#if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_DRM_PANEL_BRIDGE)

so I wonder which kind on config leaded to that since
CONFIG_DRM_PANEL_BRIDGE is only enabled when DRM_PANEL and DRM are.

Neil


Arnd