android_kernel_asus_sm8350/drivers/media
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
..
common [media] v4l2-tpg-core: drop SYCC, use higher precision 601 conversion matrix 2016-08-24 08:36:11 -03:00
dvb-core [media] get rid of a number of problems at the cross references 2016-09-22 10:00:23 -03:00
dvb-frontends [media] cxd2841er: freeze/unfreeze registers when reading stats 2016-09-22 12:31:30 -03:00
firewire [media] dvb: modify core to implement interfaces/entities at MC new gen 2016-01-11 12:18:52 -02:00
i2c [media] rc: Hauppauge z8f0811 can decode RC6 2016-09-22 11:44:52 -03:00
mmc [media] siano: register media controller earlier 2015-02-26 09:10:39 -03:00
pci [media] rc: split nec protocol into its three variants 2016-09-22 11:46:49 -03:00
platform [media] exynos4-is: add of_platform_populate() call for FIMC-IS child devices 2016-09-22 10:20:06 -03:00
radio [media] constify i2c_algorithm structures 2016-09-19 16:27:02 -03:00
rc [media] rc: split nec protocol into its three variants 2016-09-22 11:46:49 -03:00
spi [media] gs1662: make checkpatch happy 2016-09-19 14:39:49 -03:00
tuners [media] tuners: constify dvb_tuner_ops structures 2016-09-19 16:23:21 -03:00
usb [media] dvb-usb: split out common parts of dibusb 2016-09-22 12:37:43 -03:00
v4l2-core [media] SDI: add flag for SDI formats and SMPTE 125M definition 2016-09-19 14:34:41 -03:00
cec-edid.c [media] cec-edid: add module for EDID CEC helper functions 2016-06-28 09:45:51 -03:00
Kconfig [media] media Kconfig: improve the spi integration 2016-09-19 14:37:05 -03:00
Makefile [media] Add GS1662 driver, a video serializer 2016-09-19 14:36:24 -03:00
media-device.c [media] media: Add flags to tell whether to take graph mutex for an IOCTL 2016-09-22 10:28:40 -03:00
media-devnode.c [media] media: fix media devnode ioctl/syscall and unregister race 2016-06-15 17:59:28 -03:00
media-entity.c [media] media: Move media_device link_notify operation to an ops structure 2016-09-09 11:20:09 -03:00