• Daniel Scheller's avatar
    media: ngene: support STV0367 DVB-C/T DuoFlex addons · 1c2ad82e
    Daniel Scheller authored
    Add support for STV0367+TDA18212 based DuoFlex CT addon modules. For this,
    add a demod probe function and all necessary demod/tuner attach functions
    which use existing auxiliary drivers (stv0367 and tda18212) to support
    this hardware. As tda18212 is an I2C client driver, proper cleanup code
    is added to the deregistration sequence in ngene-core. To not cause use-
    after-free situations when there's a CXD2099 I2C client connected, which
    is rather freed in ngene-core.c:cxd_detach(), add i2c_client_fe to struct
    ngene_channel to keep track if the i2c_client was allocated by a frontend
    driver, rather than the CI code paths. Also move the I2C access functions
    to the top of the file and add the required read_regs() function for the
    tda18212 ping to work.
    
    This adds autoselection (if MEDIA_SUBDRV_AUTOSELECT) of the STV0367 demod
    driver and TDA18212 tuner driver to Kconfig aswell.
    Signed-off-by: default avatarDaniel Scheller <d.scheller@gmx.net>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
    1c2ad82e
ngene-core.c 43.8 KB