2023-06-22 16:18:35

by Neil Armstrong

[permalink] [raw]
Subject: [PATCH] usb: typec: nb7vpq904m: fix CONFIG_DRM dependency

With the following config set:
CONFIG_DRM=m
CONFIG_DRM_PANEL=y
CONFIG_DRM_BRIDGE=y
CONFIG_DRM_PANEL_BRIDGE=y
CONFIG_TYPEC_MUX_NB7VPQ904M=y

vmlinux fails on the following symbols:
ld.lld: error: undefined symbol: devm_drm_bridge_add
ld.lld: error: undefined symbol: devm_drm_of_get_bridge

Add dependendy on DRM || DRM=no since CONFIG_DRM dependency is optional
and guarded by:
IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_DRM_PANEL_BRIDGE)
in the drive.

Also add "select DRM_PANEL_BRIDGE if DRM" to clarify DRM_PANEL_BRIDGE
is required if CONFIG_DRM is enabled.

Fixes: 88d8f3ac9c67 ("usb: typec: add support for the nb7vpq904m Type-C Linear Redriver")
Reported-by: Arnd Bergmann <[email protected]>
Suggested-by: Arnd Bergmann <[email protected]>
Signed-off-by: Neil Armstrong <[email protected]>
---
This is re-spin of [1]

[1] https://lore.kernel.org/all/[email protected]/
---
drivers/usb/typec/mux/Kconfig | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/usb/typec/mux/Kconfig b/drivers/usb/typec/mux/Kconfig
index 8c4d6b8fb75c..784b9d8107e9 100644
--- a/drivers/usb/typec/mux/Kconfig
+++ b/drivers/usb/typec/mux/Kconfig
@@ -38,6 +38,8 @@ config TYPEC_MUX_INTEL_PMC
config TYPEC_MUX_NB7VPQ904M
tristate "On Semiconductor NB7VPQ904M Type-C redriver driver"
depends on I2C
+ depends on DRM || DRM=n
+ select DRM_PANEL_BRIDGE if DRM
select REGMAP_I2C
help
Say Y or M if your system has a On Semiconductor NB7VPQ904M Type-C

---
base-commit: c87d46a9e8ebd2f2c3960927b1d21687096d1109
change-id: 20230622-topic-sm8x50-upstream-redriver-config-fix-8f0aef3e2129

Best regards,
--
Neil Armstrong <[email protected]>



2023-06-26 08:29:47

by Heikki Krogerus

[permalink] [raw]
Subject: Re: [PATCH] usb: typec: nb7vpq904m: fix CONFIG_DRM dependency

On Thu, Jun 22, 2023 at 06:16:26PM +0200, Neil Armstrong wrote:
> With the following config set:
> CONFIG_DRM=m
> CONFIG_DRM_PANEL=y
> CONFIG_DRM_BRIDGE=y
> CONFIG_DRM_PANEL_BRIDGE=y
> CONFIG_TYPEC_MUX_NB7VPQ904M=y
>
> vmlinux fails on the following symbols:
> ld.lld: error: undefined symbol: devm_drm_bridge_add
> ld.lld: error: undefined symbol: devm_drm_of_get_bridge
>
> Add dependendy on DRM || DRM=no since CONFIG_DRM dependency is optional
> and guarded by:
> IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_DRM_PANEL_BRIDGE)
> in the drive.
>
> Also add "select DRM_PANEL_BRIDGE if DRM" to clarify DRM_PANEL_BRIDGE
> is required if CONFIG_DRM is enabled.
>
> Fixes: 88d8f3ac9c67 ("usb: typec: add support for the nb7vpq904m Type-C Linear Redriver")
> Reported-by: Arnd Bergmann <[email protected]>
> Suggested-by: Arnd Bergmann <[email protected]>
> Signed-off-by: Neil Armstrong <[email protected]>

Acked-by: Heikki Krogerus <[email protected]>

> ---
> This is re-spin of [1]
>
> [1] https://lore.kernel.org/all/[email protected]/
> ---
> drivers/usb/typec/mux/Kconfig | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/usb/typec/mux/Kconfig b/drivers/usb/typec/mux/Kconfig
> index 8c4d6b8fb75c..784b9d8107e9 100644
> --- a/drivers/usb/typec/mux/Kconfig
> +++ b/drivers/usb/typec/mux/Kconfig
> @@ -38,6 +38,8 @@ config TYPEC_MUX_INTEL_PMC
> config TYPEC_MUX_NB7VPQ904M
> tristate "On Semiconductor NB7VPQ904M Type-C redriver driver"
> depends on I2C
> + depends on DRM || DRM=n
> + select DRM_PANEL_BRIDGE if DRM
> select REGMAP_I2C
> help
> Say Y or M if your system has a On Semiconductor NB7VPQ904M Type-C
>
> ---
> base-commit: c87d46a9e8ebd2f2c3960927b1d21687096d1109
> change-id: 20230622-topic-sm8x50-upstream-redriver-config-fix-8f0aef3e2129
>
> Best regards,
> --
> Neil Armstrong <[email protected]>

--
heikki