linux/drivers/media/usb/dvb-usb
Arnd Bergmann e91455a149 [media] dvb-usb: split out common parts of dibusb
Tha ARM randconfig builds came up with another rare build failure
for the dib3000mc driver, when dvb-usb-dibusb-mb is built-in and
dib3000mc is a loadable module:

ERROR: "dibusb_dib3000mc_frontend_attach" [drivers/media/usb/dvb-usb/dvb-usb-nova-t-usb2.ko] undefined!
ERROR: "dibusb_dib3000mc_tuner_attach" [drivers/media/usb/dvb-usb/dvb-usb-nova-t-usb2.ko] undefined!

Apparently this used to be a valid configuration (build-time, not
run-time), but broke as part of a cleanup.

I tried reverting the cleanup, but saw that the code was still wrong
then. This tries to fix the code properly, by moving the problematic
functions into a new file that now is built as a loadable module or
built-in, whichever is correct for a particular configuration. It fixes
the regression as well as the runtime problem that already existed.

The new module dependency chain is now:

   dvb-usb-{dibusb_mc,a800,dib0700,umt-010,gp8psk}   dvb-usb-dibusb-mb
         |                        |                   |          |
   dvb-usb-dibusb-mc-common       |        ___________|          |
         |               |        |        |                     |
   dib3000mc (frontend)  |        |        |         dib3000mb (frontend)
                         |        |        |
                         |        |        |
                        dvb-usb-dibusb-common

I have also checked the two other files that were changed in the original
cleanup, and found them to be correct in either version, so I do not
touch that part.

As this is a rather obscure bug, there is no need for backports.

Fixes: 028c70ff42 ("[media] dvb-usb/dvb-usb-v2: use IS_ENABLED")

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2016-09-22 12:37:43 -03:00
..
a800.c [media] media: change email address 2016-01-25 12:01:08 -02:00
af9005-fe.c [media] dvb_frontend: pass the props cache to get_frontend() as arg 2016-02-04 16:27:30 -02:00
af9005-remote.c
af9005-script.h
af9005.c [media] af9005: fix kernel panic on init if compiled without IR 2014-10-30 16:57:19 -02:00
af9005.h
az6027.c [media] az6027: Add support for Elgato EyeTV Sat v3 2016-05-06 15:53:23 -03:00
az6027.h
cinergyT2-core.c
cinergyT2-fe.c [media] dvb: Get rid of typedev usage for enums 2015-06-09 17:47:35 -03:00
cinergyT2.h
cxusb.c [media] media: change email address 2016-01-25 12:01:08 -02:00
cxusb.h [media] cxusb: remove TechnoTrend CT2-4400 and CT2-4650 devices 2014-12-04 13:30:29 -02:00
dib07x0.h
dib0700_core.c [media] rc: split nec protocol into its three variants 2016-09-22 11:46:49 -03:00
dib0700_devices.c [media] dib0700: add USB ID for another STK8096-PVR ref design based card 2016-05-09 14:57:31 -03:00
dib0700.h [media] dvb: Get rid of typedev usage for enums 2015-06-09 17:47:35 -03:00
dibusb-common.c [media] dvb-usb: split out common parts of dibusb 2016-09-22 12:37:43 -03:00
dibusb-mb.c [media] media: change email address 2016-01-25 12:01:08 -02:00
dibusb-mc-common.c [media] dvb-usb: split out common parts of dibusb 2016-09-22 12:37:43 -03:00
dibusb-mc.c [media] media: change email address 2016-01-25 12:01:08 -02:00
dibusb.h [media] media: change email address 2016-01-25 12:01:08 -02:00
digitv.c [media] media: change email address 2016-01-25 12:01:08 -02:00
digitv.h
dtt200u-fe.c [media] dvb_frontend: pass the props cache to get_frontend() as arg 2016-02-04 16:27:30 -02:00
dtt200u.c [media] rc: split nec protocol into its three variants 2016-09-22 11:46:49 -03:00
dtt200u.h [media] media: change email address 2016-01-25 12:01:08 -02:00
dtv5100.c
dtv5100.h
dvb-usb-common.h [media] media: change email address 2016-01-25 12:01:08 -02:00
dvb-usb-dvb.c [media] dvb-usb: silence an uninitialized variable warning 2016-07-13 13:13:22 -03:00
dvb-usb-firmware.c [media] media: change email address 2016-01-25 12:01:08 -02:00
dvb-usb-i2c.c [media] media: change email address 2016-01-25 12:01:08 -02:00
dvb-usb-init.c [media] media: change email address 2016-01-25 12:01:08 -02:00
dvb-usb-remote.c [media] media: change email address 2016-01-25 12:01:08 -02:00
dvb-usb-urb.c [media] media: change email address 2016-01-25 12:01:08 -02:00
dvb-usb.h [media] media: change email address 2016-01-25 12:01:08 -02:00
dw2102.c [media] dw2102: add USB ID for Terratec Cinergy S2 Rev.3 2016-07-13 12:24:48 -03:00
dw2102.h
friio-fe.c [media] friio-fe: remove get_frontend() callback 2016-02-04 16:27:28 -02:00
friio.c
friio.h
gp8psk-fe.c [media] dvb: Get rid of typedev usage for enums 2015-06-09 17:47:35 -03:00
gp8psk.c
gp8psk.h
Kconfig [media] dvb-usb: split out common parts of dibusb 2016-09-22 12:37:43 -03:00
m920x.c [media] media: remove emacs editor variables 2014-12-22 17:52:20 -02:00
m920x.h
Makefile [media] dvb-usb: split out common parts of dibusb 2016-09-22 12:37:43 -03:00
nova-t-usb2.c [media] media: change email address 2016-01-25 12:01:08 -02:00
opera1.c [media] dvb: Get rid of typedev usage for enums 2015-06-09 17:47:35 -03:00
pctv452e.c [media] pctv452e: correct parameters for TechnoTrend TT S2-3600 2016-05-07 10:27:19 -03:00
technisat-usb2.c [media] technisat-usb2: don't do DMA on the stack 2016-03-01 12:00:34 -03:00
ttusb2.c [media] media: change email address 2016-01-25 12:01:08 -02:00
ttusb2.h
umt-010.c [media] media: change email address 2016-01-25 12:01:08 -02:00
usb-urb.c [media] media: change email address 2016-01-25 12:01:08 -02:00
vp702x-fe.c [media] media: change email address 2016-01-25 12:01:08 -02:00
vp702x.c [media] media: change email address 2016-01-25 12:01:08 -02:00
vp702x.h
vp7045-fe.c [media] media: change email address 2016-01-25 12:01:08 -02:00
vp7045.c [media] media: change email address 2016-01-25 12:01:08 -02:00
vp7045.h [media] media: change email address 2016-01-25 12:01:08 -02:00