Message ID | 20170419165936.2836426-1-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Arnd, On 19/04/17 18:59, Arnd Bergmann wrote: > When the media subsystem is built as a loadable module, a built-in > DRM driver cannot use the cec notifiers: > > drivers/gpu/drm/sti/sti_hdmi.o: In function `sti_hdmi_remove': > sti_hdmi.c:(.text.sti_hdmi_remove+0x28): undefined reference to `cec_notifier_set_phys_addr' > sti_hdmi.c:(.text.sti_hdmi_remove+0x50): undefined reference to `cec_notifier_put' > drivers/gpu/drm/sti/sti_hdmi.o: In function `sti_hdmi_connector_get_modes': > sti_hdmi.c:(.text.sti_hdmi_connector_get_modes+0x84): undefined reference to `cec_notifier_set_phys_addr_from_edid' > drivers/gpu/drm/sti/sti_hdmi.o: In function `sti_hdmi_probe': > sti_hdmi.c:(.text.sti_hdmi_probe+0x1a8): undefined reference to `cec_notifier_get' > drivers/gpu/drm/sti/sti_hdmi.o: In function `sti_hdmi_connector_detect': > sti_hdmi.c:(.text.sti_hdmi_connector_detect+0x68): undefined reference to `cec_notifier_set_phys_addr' > drivers/gpu/drm/sti/sti_hdmi.o: In function `sti_hdmi_disable': > sti_hdmi.c:(.text.sti_hdmi_disable+0xec): undefined reference to `cec_notifier_set_phys_addr' > > This adds a Kconfig dependency to enforce the HDMI driver to also > be a loadable module in this case. I've marked this patch and the exynos_hdmi patch as 'Obsoleted' in patchwork: today several CEC Kconfig cleanup patches were merged that invalidate these two patches. I expect they'll turn up soon in -next. Regards, Hans > > Fixes: bca55958ea87 ("[media] sti: hdmi: add CEC notifier support") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > drivers/gpu/drm/sti/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/sti/Kconfig b/drivers/gpu/drm/sti/Kconfig > index acd72865feac..adac4c3e142e 100644 > --- a/drivers/gpu/drm/sti/Kconfig > +++ b/drivers/gpu/drm/sti/Kconfig > @@ -1,6 +1,7 @@ > config DRM_STI > tristate "DRM Support for STMicroelectronics SoC stiH4xx Series" > depends on DRM && (ARCH_STI || ARCH_MULTIPLATFORM) > + depends on (MEDIA_SUPPORT && MEDIA_CEC_NOTIFIER) || !MEDIA_CEC_NOTIFIER > select RESET_CONTROLLER > select DRM_KMS_HELPER > select DRM_GEM_CMA_HELPER >
On Wed, Apr 19, 2017 at 11:06 PM, Hans Verkuil <hverkuil@xs4all.nl> wrote: > On 19/04/17 18:59, Arnd Bergmann wrote: >> When the media subsystem is built as a loadable module, a built-in >> This adds a Kconfig dependency to enforce the HDMI driver to also >> be a loadable module in this case. > > I've marked this patch and the exynos_hdmi patch as 'Obsoleted' in patchwork: > today several CEC Kconfig cleanup patches were merged that invalidate these > two patches. I expect they'll turn up soon in -next. I can confirm that the previous problems are fixed with today's linux-next, but I have now run into another problem, with CONFIG_INPUT=m forcing CONFIG_RC_CORE=m: drivers/media/cec/cec-core.o: In function `cec_unregister_adapter': cec-core.c:(.text.cec_unregister_adapter+0x18): undefined reference to `rc_unregister_device' drivers/media/cec/cec-core.o: In function `cec_delete_adapter': cec-core.c:(.text.cec_delete_adapter+0x54): undefined reference to `rc_free_device' drivers/media/cec/cec-core.o: In function `cec_register_adapter': cec-core.c:(.text.cec_register_adapter+0x94): undefined reference to `rc_register_device' cec-core.c:(.text.cec_register_adapter+0xa4): undefined reference to `rc_free_device' cec-core.c:(.text.cec_register_adapter+0x110): undefined reference to `rc_unregister_device' drivers/media/cec/cec-core.o: In function `cec_allocate_adapter': cec-core.c:(.text.cec_allocate_adapter+0x234): undefined reference to `rc_allocate_device' drivers/media/cec/cec-adap.o: In function `cec_received_msg': cec-adap.c:(.text.cec_received_msg+0x734): undefined reference to `rc_keydown' cec-adap.c:(.text.cec_received_msg+0x768): undefined reference to `rc_keyup' /git/arm-soc/Makefile:1033: recipe for target 'vmlinux' failed I don't see an obvious fix for this, and as you seem to have a good grip on the problem already, I'll let you figure out how to best address it. Arnd
diff --git a/drivers/gpu/drm/sti/Kconfig b/drivers/gpu/drm/sti/Kconfig index acd72865feac..adac4c3e142e 100644 --- a/drivers/gpu/drm/sti/Kconfig +++ b/drivers/gpu/drm/sti/Kconfig @@ -1,6 +1,7 @@ config DRM_STI tristate "DRM Support for STMicroelectronics SoC stiH4xx Series" depends on DRM && (ARCH_STI || ARCH_MULTIPLATFORM) + depends on (MEDIA_SUPPORT && MEDIA_CEC_NOTIFIER) || !MEDIA_CEC_NOTIFIER select RESET_CONTROLLER select DRM_KMS_HELPER select DRM_GEM_CMA_HELPER
When the media subsystem is built as a loadable module, a built-in DRM driver cannot use the cec notifiers: drivers/gpu/drm/sti/sti_hdmi.o: In function `sti_hdmi_remove': sti_hdmi.c:(.text.sti_hdmi_remove+0x28): undefined reference to `cec_notifier_set_phys_addr' sti_hdmi.c:(.text.sti_hdmi_remove+0x50): undefined reference to `cec_notifier_put' drivers/gpu/drm/sti/sti_hdmi.o: In function `sti_hdmi_connector_get_modes': sti_hdmi.c:(.text.sti_hdmi_connector_get_modes+0x84): undefined reference to `cec_notifier_set_phys_addr_from_edid' drivers/gpu/drm/sti/sti_hdmi.o: In function `sti_hdmi_probe': sti_hdmi.c:(.text.sti_hdmi_probe+0x1a8): undefined reference to `cec_notifier_get' drivers/gpu/drm/sti/sti_hdmi.o: In function `sti_hdmi_connector_detect': sti_hdmi.c:(.text.sti_hdmi_connector_detect+0x68): undefined reference to `cec_notifier_set_phys_addr' drivers/gpu/drm/sti/sti_hdmi.o: In function `sti_hdmi_disable': sti_hdmi.c:(.text.sti_hdmi_disable+0xec): undefined reference to `cec_notifier_set_phys_addr' This adds a Kconfig dependency to enforce the HDMI driver to also be a loadable module in this case. Fixes: bca55958ea87 ("[media] sti: hdmi: add CEC notifier support") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/gpu/drm/sti/Kconfig | 1 + 1 file changed, 1 insertion(+)