linux/drivers/media/pci
Arnd Bergmann 9b174527e7 [media] Add and use IS_REACHABLE macro
In the media drivers, the v4l2 core knows about all submodules
and calls into them from a common function. However this cannot
work if the modules that get called are loadable and the
core is built-in. In that case we get

drivers/built-in.o: In function `set_type':
drivers/media/v4l2-core/tuner-core.c:301: undefined reference to `tea5767_attach'
drivers/media/v4l2-core/tuner-core.c:307: undefined reference to `tea5761_attach'
drivers/media/v4l2-core/tuner-core.c:349: undefined reference to `tda9887_attach'
drivers/media/v4l2-core/tuner-core.c:405: undefined reference to `xc4000_attach'

This was working previously, until the IS_ENABLED() macro was used
to replace the construct like

 #if defined(CONFIG_DVB_CX24110) || (defined(CONFIG_DVB_CX24110_MODULE) && defined(MODULE))

with the difference that the new code no longer checks whether it is being
built as a loadable module itself.

To fix this, this new patch adds an 'IS_REACHABLE' macro, which evaluates
true in exactly the condition that was used previously. The downside
of this is that this trades an obvious link error for a more subtle
runtime failure, but it is clear that the change that introduced the
link error was unintentional and it seems better to revert it for
now. Also, a similar change was originally created by Trent Piepho
and then reverted by teh change to the IS_ENABLED macro.

Ideally Kconfig would be used to avoid the case of a broken dependency,
or the code restructured in a way to turn around the dependency, but either
way would require much larger changes here.

Fixes: 7b34be71db ("[media] use IS_ENABLED() macro")
See-also: c5dec9fb24 ("V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel")

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-04-08 15:02:07 -03:00
..
b2c2 [media] pci: flexcop: Remove redundant pci_set_drvdata 2013-10-17 05:56:55 -03:00
bt8xx [media] bttv: embed video_device 2015-04-08 06:45:12 -03:00
cx18 [media] cx18: replace cropping ioctls by selection ioctls 2015-04-08 06:42:41 -03:00
cx88 [media] cx88: embed video_device 2015-04-08 06:43:16 -03:00
cx23885 [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
cx25821 [media] cx25821: remove video output support 2014-12-23 10:22:00 -02:00
ddbridge [media] ddbridge: remove unneeded check before dvb_unregister_device() 2014-12-04 15:28:52 -02:00
dm1105 [media] dm1105: fix sparse warning 2014-09-03 10:32:59 -03:00
ivtv [media] ivtv: disable fbuf support if ivtvfb isn't loaded 2015-04-02 23:57:51 -03:00
mantis [media] media: pci: mantis: mantis_core.c: Remove unused function 2015-01-27 10:10:06 -02:00
meye [media] meye: embed video_device 2015-04-02 23:35:01 -03:00
ngene [media] ngene: properly handle __user ptr 2014-09-08 10:00:52 -03:00
pluto2 [media] media_tree: Fix spelling errors 2013-12-09 14:50:50 -02:00
pt1 [media] media: earthsoft: logging neatening 2014-11-03 11:00:41 -02:00
pt3 [media] media: earthsoft: logging neatening 2014-11-03 11:00:41 -02:00
saa7134 [media] media: pci: saa7134: saa7134-video.c: Remove unused function 2015-01-27 10:10:23 -02:00
saa7146 [media] saa7146: embed video_device 2015-04-02 23:29:01 -03:00
saa7164 [media] saa7164: free_irq before pci_disable_device 2015-03-03 11:16:09 -03:00
smipcie [media] smipcie: switch ts2022 to ts2020 driver 2015-04-02 22:25:14 -03:00
solo6x10 [media] solo6x10: s/uint8_t/u8/ 2015-01-27 10:03:19 -02:00
sta2x11 [media] sta2x11: embed video_device 2015-04-02 23:56:44 -03:00
ttpci [media] saa7146: embed video_device 2015-04-02 23:29:01 -03:00
tw68 [media] tw68: remove unnecessary version.h inclusion 2015-01-27 10:08:49 -02:00
zoran media updates for v3.19-rc1 2014-12-11 11:49:23 -08:00
Kconfig [media] smipcie: SMI pcie bridge driver for DVBSky S950 V3 dvb-s/s2 cards 2014-11-03 18:06:45 -02:00
Makefile [media] smipcie: SMI pcie bridge driver for DVBSky S950 V3 dvb-s/s2 cards 2014-11-03 18:06:45 -02:00