public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] [media] staging: add MEDIA_SUPPORT dependency
@ 2016-07-19  8:10 Arnd Bergmann
  2016-07-19  8:10 ` [PATCH 2/2] [media] cec: add RC_CORE dependency Arnd Bergmann
  0 siblings, 1 reply; 4+ messages in thread
From: Arnd Bergmann @ 2016-07-19  8:10 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Arnd Bergmann, Greg Kroah-Hartman, Hans Verkuil, linux-media,
	devel, linux-kernel

staging media drivers tend to have a build time dependency on the
media support. In particular, the newly added pulse8 cec driver can
only be a loadable module if MEDIA_SUPPORT=m, but its build dependency
is on a 'bool' symbol (MEDIA_CEC), so a randconfig build can fail
with pulse8_cec built-in:

drivers/staging/built-in.o: In function `pulse8_disconnect':
dgnc_utils.c:(.text+0x114): undefined reference to `cec_unregister_adapter'
drivers/staging/built-in.o: In function `pulse8_irq_work_handler':
dgnc_utils.c:(.text+0x1bc): undefined reference to `cec_transmit_done'
dgnc_utils.c:(.text+0x1d8): undefined reference to `cec_received_msg'
dgnc_utils.c:(.text+0x1f4): undefined reference to `cec_transmit_done'
dgnc_utils.c:(.text+0x218): undefined reference to `cec_transmit_done'
dgnc_utils.c:(.text+0x23c): undefined reference to `cec_transmit_done'
drivers/staging/built-in.o: In function `pulse8_connect':
dgnc_utils.c:(.text+0x844): undefined reference to `cec_allocate_adapter'
dgnc_utils.c:(.text+0x8a4): undefined reference to `cec_delete_adapter'
dgnc_utils.c:(.text+0xa10): undefined reference to `cec_register_adapter'

Originally, MEDIA_CEC itself was a tristate symbol, which would have
prevented this, but since 5bb2399a4fe4 ("[media] cec: fix Kconfig
dependency problems"), it doesn't work like that any more.

This encloses all of the staging media drivers in a CONFIG_MEDIA_SUPPORT
dependency in Kconfig, which solves the problem by enforcing that none
of the drivers can be built-in if the media core is a module.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/staging/media/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/media/Kconfig b/drivers/staging/media/Kconfig
index cae42e56f270..7292f23954df 100644
--- a/drivers/staging/media/Kconfig
+++ b/drivers/staging/media/Kconfig
@@ -16,7 +16,7 @@ menuconfig STAGING_MEDIA
           If in doubt, say N here.
 
 
-if STAGING_MEDIA
+if STAGING_MEDIA && MEDIA_SUPPORT
 
 # Please keep them in alphabetic order
 source "drivers/staging/media/bcm2048/Kconfig"
-- 
2.9.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] [media] cec: add RC_CORE dependency
  2016-07-19  8:10 [PATCH 1/2] [media] staging: add MEDIA_SUPPORT dependency Arnd Bergmann
@ 2016-07-19  8:10 ` Arnd Bergmann
  2016-07-19  8:30   ` Hans Verkuil
  0 siblings, 1 reply; 4+ messages in thread
From: Arnd Bergmann @ 2016-07-19  8:10 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Arnd Bergmann, Hans Verkuil, Greg Kroah-Hartman, Kamil Debski,
	linux-media, devel, linux-kernel

We cannot build the cec driver when the RC core is a module
and cec is built-in:

drivers/staging/built-in.o: In function `cec_allocate_adapter':
:(.text+0x134): undefined reference to `rc_allocate_device'
drivers/staging/built-in.o: In function `cec_register_adapter':
:(.text+0x304): undefined reference to `rc_register_device'

This adds an explicit dependency to avoid this case. We still
allow building when CONFIG_RC_CORE is disabled completely,
as the driver has checks for this case itself.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
I originally submitted this on June 29, but it may have gotten
lost as out of the three patch series, one patch got replaced
and another patch got applied, but nothing happened on this one.
---
 drivers/staging/media/cec/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/staging/media/cec/Kconfig b/drivers/staging/media/cec/Kconfig
index 21457a1f6c9f..c623bd32a5b8 100644
--- a/drivers/staging/media/cec/Kconfig
+++ b/drivers/staging/media/cec/Kconfig
@@ -1,6 +1,7 @@
 config MEDIA_CEC
 	bool "CEC API (EXPERIMENTAL)"
 	depends on MEDIA_SUPPORT
+	depends on RC_CORE || !RC_CORE
 	select MEDIA_CEC_EDID
 	---help---
 	  Enable the CEC API.
-- 
2.9.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] [media] cec: add RC_CORE dependency
  2016-07-19  8:10 ` [PATCH 2/2] [media] cec: add RC_CORE dependency Arnd Bergmann
@ 2016-07-19  8:30   ` Hans Verkuil
  2016-07-19  8:35     ` Arnd Bergmann
  0 siblings, 1 reply; 4+ messages in thread
From: Hans Verkuil @ 2016-07-19  8:30 UTC (permalink / raw)
  To: Arnd Bergmann, Mauro Carvalho Chehab
  Cc: Hans Verkuil, Greg Kroah-Hartman, Kamil Debski, linux-media,
	devel, linux-kernel

On 07/19/16 10:10, Arnd Bergmann wrote:
> We cannot build the cec driver when the RC core is a module
> and cec is built-in:
> 
> drivers/staging/built-in.o: In function `cec_allocate_adapter':
> :(.text+0x134): undefined reference to `rc_allocate_device'
> drivers/staging/built-in.o: In function `cec_register_adapter':
> :(.text+0x304): undefined reference to `rc_register_device'
> 
> This adds an explicit dependency to avoid this case. We still
> allow building when CONFIG_RC_CORE is disabled completely,
> as the driver has checks for this case itself.

This makes no sense: the rc_allocate_device and rc_register_device
are under:

#if IS_REACHABLE(CONFIG_RC_CORE)

So it shouldn't be enabled at all, should it?

Regards,

	Hans

> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> I originally submitted this on June 29, but it may have gotten
> lost as out of the three patch series, one patch got replaced
> and another patch got applied, but nothing happened on this one.
> ---
>  drivers/staging/media/cec/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/staging/media/cec/Kconfig b/drivers/staging/media/cec/Kconfig
> index 21457a1f6c9f..c623bd32a5b8 100644
> --- a/drivers/staging/media/cec/Kconfig
> +++ b/drivers/staging/media/cec/Kconfig
> @@ -1,6 +1,7 @@
>  config MEDIA_CEC
>  	bool "CEC API (EXPERIMENTAL)"
>  	depends on MEDIA_SUPPORT
> +	depends on RC_CORE || !RC_CORE
>  	select MEDIA_CEC_EDID
>  	---help---
>  	  Enable the CEC API.
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] [media] cec: add RC_CORE dependency
  2016-07-19  8:30   ` Hans Verkuil
@ 2016-07-19  8:35     ` Arnd Bergmann
  0 siblings, 0 replies; 4+ messages in thread
From: Arnd Bergmann @ 2016-07-19  8:35 UTC (permalink / raw)
  To: Hans Verkuil
  Cc: Mauro Carvalho Chehab, Hans Verkuil, Greg Kroah-Hartman,
	Kamil Debski, linux-media, devel, linux-kernel

On Tuesday, July 19, 2016 10:30:22 AM CEST Hans Verkuil wrote:
> On 07/19/16 10:10, Arnd Bergmann wrote:
> > We cannot build the cec driver when the RC core is a module
> > and cec is built-in:
> > 
> > drivers/staging/built-in.o: In function `cec_allocate_adapter':
> > :(.text+0x134): undefined reference to `rc_allocate_device'
> > drivers/staging/built-in.o: In function `cec_register_adapter':
> > :(.text+0x304): undefined reference to `rc_register_device'
> > 
> > This adds an explicit dependency to avoid this case. We still
> > allow building when CONFIG_RC_CORE is disabled completely,
> > as the driver has checks for this case itself.
> 
> This makes no sense: the rc_allocate_device and rc_register_device
> are under:
> 
> #if IS_REACHABLE(CONFIG_RC_CORE)
> 
> So it shouldn't be enabled at all, should it?

My mistake, I forgot to remove my patch from the backlog after
you added 5bb2399a4fe4 ("[media] cec: fix Kconfig dependency
problems"), and I saw that it's still marked as "new" in
patchwork with no reply.

I'll drop the patch from my local series and won't submit it again,
sorry for the mixup.

	Arnd

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-07-19  8:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-19  8:10 [PATCH 1/2] [media] staging: add MEDIA_SUPPORT dependency Arnd Bergmann
2016-07-19  8:10 ` [PATCH 2/2] [media] cec: add RC_CORE dependency Arnd Bergmann
2016-07-19  8:30   ` Hans Verkuil
2016-07-19  8:35     ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox