lkml.org 
[lkml]   [2017]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: [PATCH] [media] cec: improve MEDIA_CEC_RC dependencies
From
Date
On 05/12/17 11:49, Arnd Bergmann wrote:
> On Fri, Apr 21, 2017 at 12:52 PM, Arnd Bergmann <arnd@arndb.de> 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@arndb.de>
>> ---
>
> 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.

It's in a pull request for 4.12 that Mauro hasn't picked up yet. I
pinged him, but he seems to be very busy lately.

>
> 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.

Try this patch:

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
---
diff --git a/include/media/cec-notifier.h b/include/media/cec-notifier.h
index eb50ce54b759..da3528c8edb9 100644
--- a/include/media/cec-notifier.h
+++ b/include/media/cec-notifier.h
@@ -29,7 +29,7 @@ struct edid;
struct cec_adapter;
struct cec_notifier;

-#ifdef CONFIG_MEDIA_CEC_NOTIFIER
+#if IS_REACHABLE(CONFIG_MEDIA_CEC_NOTIFIER)

/**
* cec_notifier_get - find or create a new cec_notifier for the given device.

\
 
 \ /
  Last update: 2017-05-12 12:01    [W:0.069 / U:0.520 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site