linux/drivers/media/common/tuners
Ingo Molnar 6637dea60e V4L/DVB (7974): fix MEDIA_TUNER && FW_LOADER build error
-tip testing found the following build failure:

  LD      .tmp_vmlinux1
  drivers/built-in.o: In function `generic_set_freq':
  tuner-xc2028.c:(.text+0xbd896): undefined reference to `request_firmware'
  tuner-xc2028.c:(.text+0xbdd7a): undefined reference to `release_firmware'
  drivers/built-in.o: In function `xc_load_fw_and_init_tuner':
  xc5000.c:(.text+0xc68e6): undefined reference to `request_firmware'
  xc5000.c:(.text+0xc6abe): undefined reference to `release_firmware'

with this config:

  http://redhat.com/~mingo/misc/config-Tue_May_20_18_11_34_CEST_2008.bad

the reason is another kconfig tool bug that has to be worked around in
the driver's Kconfig file: if FW_LOADER is selected in a second
dependency, that is not properly propagated up the dependencies.

in this case, FW_LOADER is selected from MEDIA_TUNER_XC2028:

  config MEDIA_TUNER_XC2028
        tristate "XCeive xc2028/xc3028 tuners"
        depends on VIDEO_MEDIA && I2C
        depends on HOTPLUG
        select FW_LOADER

which got selected by MEDIA_TUNER:

  config MEDIA_TUNER
        tristate
        default VIDEO_MEDIA && I2C
        depends on VIDEO_MEDIA && I2C
        select FW_LOADER if !MEDIA_TUNER_CUSTOMIZE && HOTPLUG

but the kconfig tool did not pick up this second-order dependency and
allowed CONFIG_FW_LOADER=m to be selected - in which case the build
fails.

the workaround i found was to move the select of FW_LOADER one level up,
so that the buggy kconfig tool can notice it and can act appropriately.
This problem can probably be worked around in other ways as well, i went
for the minimal fix.

Obviously, the kconfig tool should be fixed, it is not reasonable to
expect driver authors to do manual dependency resolution (that kconfig
itself already does) and uglify the Kconfig files. The kconfig tool did
nothing to warn about this situation and did not prevent this faulty
.config from being constructed.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-06-05 06:35:53 -03:00
..
Kconfig V4L/DVB (7974): fix MEDIA_TUNER && FW_LOADER build error 2008-06-05 06:35:53 -03:00
Makefile V4L/DVB(7878): mxl55005s: Makefile and Kconfig additions 2008-05-14 02:56:42 -03:00
mt20xx.c
mt20xx.h Rename common tuner Kconfig names to use the same 2008-04-29 18:41:38 -03:00
mt2060.c
mt2060.h Rename common tuner Kconfig names to use the same 2008-04-29 18:41:38 -03:00
mt2060_priv.h
mt2131.c
mt2131.h Rename common tuner Kconfig names to use the same 2008-04-29 18:41:38 -03:00
mt2131_priv.h
mt2266.c
mt2266.h Rename common tuner Kconfig names to use the same 2008-04-29 18:41:38 -03:00
mxl5005s.c V4L/DVB (7906): tuners/mxl5005s.c: don't define variables for enums 2008-06-05 06:35:42 -03:00
mxl5005s.h V4L/DVB(7873): mxl5005s: Fix header includes. 2008-05-14 02:56:40 -03:00
qt1010.c
qt1010.h Rename common tuner Kconfig names to use the same 2008-04-29 18:41:38 -03:00
qt1010_priv.h
tda827x.c
tda827x.h Rename common tuner Kconfig names to use the same 2008-04-29 18:41:38 -03:00
tda8290.c V4L/DVB (7789): tuner: remove static dependencies on analog tuner sub-modules 2008-04-29 18:41:42 -03:00
tda8290.h Rename common tuner Kconfig names to use the same 2008-04-29 18:41:38 -03:00
tda9887.c
tda9887.h Rename common tuner Kconfig names to use the same 2008-04-29 18:41:38 -03:00
tda18271-common.c V4L/DVB (7844): tda18271: add tda_fail macro to log error cases 2008-05-14 02:54:06 -03:00
tda18271-fe.c V4L/DVB (7844): tda18271: add tda_fail macro to log error cases 2008-05-14 02:54:06 -03:00
tda18271-maps.c
tda18271-priv.h V4L/DVB (7844): tda18271: add tda_fail macro to log error cases 2008-05-14 02:54:06 -03:00
tda18271.h Rename common tuner Kconfig names to use the same 2008-04-29 18:41:38 -03:00
tea5761.c V4L/DVB (7902): fix handling of tea5761_autodetection return value 2008-06-05 06:35:40 -03:00
tea5761.h Rename common tuner Kconfig names to use the same 2008-04-29 18:41:38 -03:00
tea5767.c V4L/DVB (7804): tea5767: Fix error logic 2008-05-14 02:53:58 -03:00
tea5767.h Rename common tuner Kconfig names to use the same 2008-04-29 18:41:38 -03:00
tuner-i2c.h V4L/DVB (7943): tuner: add macro, hybrid_tuner_report_instance_count 2008-06-05 06:35:46 -03:00
tuner-simple.c V4L/DVB (7922): tuner-simple: fix tuner_warn() induced kernel oops in simple_tuner_attach() 2008-06-05 06:35:44 -03:00
tuner-simple.h Rename common tuner Kconfig names to use the same 2008-04-29 18:41:38 -03:00
tuner-types.c
tuner-xc2028-types.h
tuner-xc2028.c V4L/DVB (7944): tuner-xc2028: use hybrid_tuner_request_state 2008-06-05 06:35:46 -03:00
tuner-xc2028.h Rename common tuner Kconfig names to use the same 2008-04-29 18:41:38 -03:00
xc5000.c V4L/DVB (7893): xc5000: bug-fix: allow multiple devices in a single system 2008-05-14 02:56:46 -03:00
xc5000.h V4L/DVB (7893): xc5000: bug-fix: allow multiple devices in a single system 2008-05-14 02:56:46 -03:00
xc5000_priv.h V4L/DVB (7893): xc5000: bug-fix: allow multiple devices in a single system 2008-05-14 02:56:46 -03:00