Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b402132 authored by Istvan Varga's avatar Istvan Varga Committed by Mauro Carvalho Chehab
Browse files

[media] xc4000: added card_type



This patch adds support for selecting a card type in struct
xc4000_config, to allow for implementing some card specific code
in the driver.

Signed-off-by: default avatarIstvan Varga <istvan_v@mailbox.hu>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 595a83f4
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -90,6 +90,7 @@ struct xc4000_priv {
	u32	bandwidth;
	u8	video_standard;
	u8	rf_mode;
	u8	card_type;
	u8	ignore_i2c_write_errors;
 /*	struct xc2028_ctrl	ctrl; */
	struct firmware_properties cur_fw;
@@ -1433,6 +1434,16 @@ struct dvb_frontend *xc4000_attach(struct dvb_frontend *fe,
	int	instance;
	u16	id = 0;

	if (cfg->card_type != XC4000_CARD_GENERIC) {
		if (cfg->card_type == XC4000_CARD_WINFAST_CX88) {
			cfg->i2c_address = 0x61;
			cfg->if_khz = 4560;
		} else {			/* default to PCTV 340E */
			cfg->i2c_address = 0x61;
			cfg->if_khz = 5400;
		}
	}

	dprintk(1, "%s(%d-%04x)\n", __func__,
		i2c ? i2c_adapter_id(i2c) : -1,
		cfg ? cfg->i2c_address : -1);
@@ -1442,6 +1453,8 @@ struct dvb_frontend *xc4000_attach(struct dvb_frontend *fe,
	instance = hybrid_tuner_request_state(struct xc4000_priv, priv,
					      hybrid_tuner_instance_list,
					      i2c, cfg->i2c_address, "xc4000");
	if (cfg->card_type != XC4000_CARD_GENERIC)
		priv->card_type = cfg->card_type;
	switch (instance) {
	case 0:
		goto fail;
@@ -1458,7 +1471,7 @@ struct dvb_frontend *xc4000_attach(struct dvb_frontend *fe,
		break;
	}

	if (priv->if_khz == 0) {
	if (cfg->if_khz != 0) {
		/* If the IF hasn't been set yet, use the value provided by
		   the caller (occurs in hybrid devices where the analog
		   call to xc4000_attach occurs before the digital side) */
+6 −1
Original line number Diff line number Diff line
@@ -27,8 +27,13 @@
struct dvb_frontend;
struct i2c_adapter;

#define XC4000_CARD_GENERIC		0
#define XC4000_CARD_PCTV_340E		1
#define XC4000_CARD_WINFAST_CX88	2

struct xc4000_config {
	u8	i2c_address;
	u8	card_type;	/* if card type is not generic, all other */
	u8	i2c_address;	/* parameters are automatically set */
	u32	if_khz;
};