On Fri, Apr 21, 2017 at 12:52 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote: > Changing the IS_REACHABLE() into a plain #ifdef broke the case of > CONFIG_MEDIA_RC=m && CONFIG_MEDIA_CEC=y: > > 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' > > This adds an additional dependency to explicitly forbid this combination. > > Fixes: 5f2c467c54f5 ("[media] cec: add MEDIA_CEC_RC config option") > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > --- What is the status of this patch? According to https://patchwork.linuxtv.org/patch/40934/ it is marked 'accepted', but the patch that caused the problem has made it into mainline in the merge window, and the fix is still needed on top. On a related note, I've run into another link error now: drivers/gpu/drm/sti/sti_hdmi.o: In function `sti_hdmi_remove': sti_hdmi.c:(.text.sti_hdmi_remove+0x10): undefined reference to `cec_notifier_set_phys_addr' sti_hdmi.c:(.text.sti_hdmi_remove+0x34): 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+0x4a): 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+0x204): 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+0x36): 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+0xc0): undefined reference to `cec_notifier_set_phys_addr' The config options leading to the second failure are: CONFIG_MEDIA_CEC_SUPPORT=y CONFIG_CEC_CORE=m CONFIG_MEDIA_CEC_NOTIFIER=y CONFIG_VIDEO_STI_HDMI_CEC=m CONFIG_DRM_STI=y I can probably come up with a workaround, but haven't completely thought through all the combinations yet. Also, I assume the same fix will be needed for exynos, though that has not come up in randconfig testing so far. Arnd > drivers/media/cec/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/media/cec/Kconfig b/drivers/media/cec/Kconfig > index f944d93e3167..488fb908244d 100644 > --- a/drivers/media/cec/Kconfig > +++ b/drivers/media/cec/Kconfig > @@ -9,6 +9,7 @@ config MEDIA_CEC_NOTIFIER > config MEDIA_CEC_RC > bool "HDMI CEC RC integration" > depends on CEC_CORE && RC_CORE > + depends on CEC_CORE=m || RC_CORE=y > ---help--- > Pass on CEC remote control messages to the RC framework. > > -- > 2.9.0 >