linux/drivers/media/pci/cx18/cx18-dvb.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *  cx18 functions for DVB support
 *
 *  Copyright (c) 2008 Steven Toth <[email protected]>
 *  Copyright (C) 2008  Andy Walls <[email protected]>
 */

#include "cx18-version.h"
#include "cx18-dvb.h"
#include "cx18-io.h"
#include "cx18-queue.h"
#include "cx18-streams.h"
#include "cx18-cards.h"
#include "cx18-gpio.h"
#include "s5h1409.h"
#include "mxl5005s.h"
#include "s5h1411.h"
#include "tda18271.h"
#include "zl10353.h"

#include <linux/firmware.h>
#include "mt352.h"
#include "mt352_priv.h"
#include "xc2028.h"

DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);

#define FWFILE

#define CX18_REG_DMUX_NUM_PORT_0_CONTROL
#define CX18_CLOCK_ENABLE2
#define CX18_DMUX_CLK_MASK

/*
 * CX18_CARD_HVR_1600_ESMT
 * CX18_CARD_HVR_1600_SAMSUNG
 */

static struct mxl5005s_config hauppauge_hvr1600_tuner =;

static struct s5h1409_config hauppauge_hvr1600_config =;

/*
 * CX18_CARD_HVR_1600_S5H1411
 */
static struct s5h1411_config hcw_s5h1411_config =;

static struct tda18271_std_map hauppauge_tda18271_std_map =;

static struct tda18271_config hauppauge_tda18271_config =;

/*
 * CX18_CARD_LEADTEK_DVR3100H
 */
/* Information/confirmation of proper config values provided by Terry Wu */
static struct zl10353_config leadtek_dvr3100h_demod =;

/*
 * CX18_CARD_YUAN_MPC718
 */
/*
 * Due to
 *
 * 1. an absence of information on how to program the MT352
 * 2. the Linux mt352 module pushing MT352 initialization off onto us here
 *
 * We have to use an init sequence that *you* must extract from the Windows
 * driver (yuanrap.sys) and which we load as a firmware.
 *
 * If someone can provide me with a Zarlink MT352 (Intel CE6352?) Design Manual
 * with chip programming details, then I can remove this annoyance.
 */
static int yuan_mpc718_mt352_reqfw(struct cx18_stream *stream,
				   const struct firmware **fw)
{}

static int yuan_mpc718_mt352_init(struct dvb_frontend *fe)
{}

static struct mt352_config yuan_mpc718_mt352_demod =;

static struct zl10353_config yuan_mpc718_zl10353_demod =;

static struct zl10353_config gotview_dvd3_zl10353_demod =;

static int dvb_register(struct cx18_stream *stream);

/* Kernel DVB framework calls this when the feed needs to start.
 * The CX18 framework should enable the transport DMA handling
 * and queue processing.
 */
static int cx18_dvb_start_feed(struct dvb_demux_feed *feed)
{}

/* Kernel DVB framework calls this when the feed needs to stop. */
static int cx18_dvb_stop_feed(struct dvb_demux_feed *feed)
{}

int cx18_dvb_register(struct cx18_stream *stream)
{}

void cx18_dvb_unregister(struct cx18_stream *stream)
{}

/* All the DVB attach calls go here, this function gets modified
 * for each new card. cx18_dvb_start_feed() will also need changes.
 */
static int dvb_register(struct cx18_stream *stream)
{}

MODULE_FIRMWARE();