linux/drivers/media/tuners
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
..
e4000_priv.h [media] e4000: rename some variables 2014-03-14 05:38:39 -03:00
e4000.c [media] e4000: logging changes 2014-09-21 16:42:35 -03:00
e4000.h [media] e4000: convert DVB tuner to I2C driver model 2014-03-14 05:21:27 -03:00
fc001x-common.h
fc0011.c Revert "[media] fc0011: Return early, if the frequency is already tuned" 2013-02-11 19:38:59 -02:00
fc0011.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
fc0012-priv.h [media] fc0012: use Kernel dev_foo() logging 2013-01-06 09:08:23 -02:00
fc0012.c [media] fc001[23]: Change variable type to bool 2013-10-02 06:48:14 -03:00
fc0012.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
fc0013-priv.h
fc0013.c [media] fc001[23]: Change variable type to bool 2013-10-02 06:48:14 -03:00
fc0013.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
fc2580_priv.h [media] fc2580: fix tuning failure on 32-bit arch 2014-04-16 18:13:11 -03:00
fc2580.c [media] fc2580: fix tuning failure on 32-bit arch 2014-04-16 18:13:11 -03:00
fc2580.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
it913x.c [media] it913x: replace udelay polling with jiffies 2014-09-21 18:29:34 -03:00
it913x.h [media] it913x: re-implement sleep 2014-09-21 18:24:32 -03:00
Kconfig [media] m88ts2022: remove obsolete driver 2015-04-02 22:26:49 -03:00
m88rs6000t.c [media] m88rs6000t: add new dvb-s/s2 tuner for integrated chip M88RS6000 2014-11-03 18:23:43 -02:00
m88rs6000t.h [media] m88rs6000t: add new dvb-s/s2 tuner for integrated chip M88RS6000 2014-11-03 18:23:43 -02:00
Makefile [media] m88ts2022: remove from Makefile 2015-04-07 08:12:06 -03:00
max2165_priv.h
max2165.c [media] max2165: get rid of warning: no previous prototype 2012-10-27 18:10:38 -02:00
max2165.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
mc44s803_priv.h
mc44s803.c [media] mc44s803: implement get_if_frequency() 2012-09-18 12:54:44 -03:00
mc44s803.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
msi001.c [media] msi001: logging changes 2014-09-21 16:42:34 -03:00
mt20xx.c [media] media: remove emacs editor variables 2014-12-22 17:52:20 -02:00
mt20xx.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
mt2060_priv.h
mt2060.c [media] mt2060: just return 0 instead of using a var 2014-09-03 17:59:56 -03:00
mt2060.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
mt2063.c [media] mt2063: fix sparse warnings 2014-09-03 10:38:57 -03:00
mt2063.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
mt2131_priv.h [media] media: remove emacs editor variables 2014-12-22 17:52:20 -02:00
mt2131.c [media] media: remove emacs editor variables 2014-12-22 17:52:20 -02:00
mt2131.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
mt2266.c
mt2266.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
mxl301rf.c [media] mxl301rf: add driver for MaxLinear MxL301RF OFDM tuner 2014-09-23 17:03:59 -03:00
mxl301rf.h [media] mxl301rf: add driver for MaxLinear MxL301RF OFDM tuner 2014-09-23 17:03:59 -03:00
mxl5005s.c [media] mxl5005s: just return 0 instead of using a var 2014-09-03 17:59:56 -03:00
mxl5005s.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
mxl5007t.c [media] media: remove emacs editor variables 2014-12-22 17:52:20 -02:00
mxl5007t.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
qm1d1c0042.c [media] qm1d1c0042: fix compilation on 32 bits 2014-09-26 06:47:42 -03:00
qm1d1c0042.h [media] qm1d1c0042: add driver for Sharp QM1D1C0042 ISDB-S tuner 2014-09-23 17:04:00 -03:00
qt1010_priv.h
qt1010.c
qt1010.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
r820t.c [media] r820t: enable flt_ext_wide for SYS_DVBC_ANNEX_A standard 2015-04-08 07:14:50 -03:00
r820t.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
si2157_priv.h [media] si2157: IF frequency for ATSC and QAM 2015-03-03 10:35:08 -03:00
si2157.c [media] si2157: extend frequency range for ATSC 2015-04-01 06:22:26 -03:00
si2157.h [media] si2157: Si2148 support 2014-11-25 09:14:14 -02:00
tda827x.c [media] media: remove emacs editor variables 2014-12-22 17:52:20 -02:00
tda827x.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
tda8290.c [media] media: remove emacs editor variables 2014-12-22 17:52:20 -02:00
tda8290.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
tda9887.c [media] media: remove emacs editor variables 2014-12-22 17:52:20 -02:00
tda9887.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
tda18212.c [media] tda18212: convert to RegMap API 2014-09-21 20:06:23 -03:00
tda18212.h [media] tda18212: convert driver to I2C binding 2014-09-21 20:04:55 -03:00
tda18218_priv.h [media] tda18218: switch to Kernel logging 2012-09-15 09:23:16 -03:00
tda18218.c [media] tuners: Don't use dynamic static allocation 2013-11-08 09:45:41 -02:00
tda18218.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
tda18271-common.c [media] tda18271: Fix identation 2014-12-04 13:55:05 -02:00
tda18271-fe.c [media] media: remove emacs editor variables 2014-12-22 17:52:20 -02:00
tda18271-maps.c [media] media: remove emacs editor variables 2014-12-22 17:52:20 -02:00
tda18271-priv.h [media] media: remove emacs editor variables 2014-12-22 17:52:20 -02:00
tda18271.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
tea5761.c
tea5761.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
tea5767.c
tea5767.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
tua9001_priv.h
tua9001.c [media] tua9001: fix a warning 2012-10-28 07:38:54 -02:00
tua9001.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
tuner-i2c.h
tuner-simple.c [media] media: remove emacs editor variables 2014-12-22 17:52:20 -02:00
tuner-simple.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
tuner-types.c [media] tuner: add Sony BTF tuners 2013-03-24 12:11:35 -03:00
tuner-xc2028-types.h [media] media_tree: Fix spelling errors 2013-11-29 14:43:50 -02:00
tuner-xc2028.c [media] tuner-xc2028: fix bad alignments 2014-09-03 18:44:34 -03:00
tuner-xc2028.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
xc4000.c [media] xc4000: Fix bad alignments 2014-09-03 18:42:09 -03:00
xc4000.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00
xc5000.c [media] xc5000: fix memory corruption when unplugging device 2015-04-08 14:49:59 -03:00
xc5000.h [media] Add and use IS_REACHABLE macro 2015-04-08 15:02:07 -03:00