Since the kconfig symbol of DRM_PANEL_BRIDGE is only adding bridge/panel.o to drm_kms_helper object, we need to select DRM_KMS_HELPER to make sure the file is actually getting built. Otherwise with certain defconfigs e.g. devm_drm_of_get_bridge will not be properly available: aarch64-linux-gnu-ld: drivers/phy/qualcomm/phy-qcom-qmp-combo.o: in function `qmp_combo_bridge_attach': drivers/phy/qualcomm/phy-qcom-qmp-combo.c:3204:(.text+0x8f4): undefined reference to `devm_drm_of_get_bridge' Signed-off-by: Luca Weiss <luca.weiss@xxxxxxxxxxxxx> --- I can see "depends on DRM_KMS_HELPER" was removed with commit 3c3384050d68 ("drm: Don't make DRM_PANEL_BRIDGE dependent on DRM_KMS_HELPERS") I'm not too familiar with Kconfig but it feels more correct if PHY_QCOM_QMP_COMBO selects DRM_PANEL_BRIDGE that that's enough; and it doesn't also has to explicitly select DRM_KMS_HELPER because of how the objects are built in the Makefile. Alternatively solution to this patch could be adjusting this line in include/drm/drm_bridge.h: -#if defined(CONFIG_OF) && defined(CONFIG_DRM_PANEL_BRIDGE) +#if defined(CONFIG_OF) && defined(CONFIG_DRM_PANEL_BRIDGE) && defined(CONFIG_DRM_KMS_HELPER) struct drm_bridge *devm_drm_of_get_bridge(struct device *dev, struct device_node *node, u32 port, u32 endpoint); .. and then selecting DRM_KMS_HELPER for PHY_QCOM_QMP_COMBO. But I think the solution in this patch is better. Let me know what you think. --- drivers/gpu/drm/bridge/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig index ac9ec5073619..ae782b427829 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig @@ -8,6 +8,7 @@ config DRM_BRIDGE config DRM_PANEL_BRIDGE def_bool y depends on DRM_BRIDGE + select DRM_KMS_HELPER select DRM_PANEL help DRM bridge wrapper of DRM panels --- base-commit: b9c3a1fa6fb324e691a03cf124b79f4842e65d76 change-id: 20240111-drm-panel-bridge-fixup-5c2977fb969f Best regards, -- Luca Weiss <luca.weiss@xxxxxxxxxxxxx>