add support for new cine and change 24 MHz osciallator handling

This commit is contained in:
Ralph Metzler 2016-12-14 19:11:57 +01:00
parent b6d5976e14
commit fc4a807b4e
3 changed files with 17 additions and 7 deletions

View File

@ -352,7 +352,7 @@ static struct ddb_info ddb_c2t2i_v0_8 = {
.i2c_mask = 0x0f, .i2c_mask = 0x0f,
.board_control = 0x0ff, .board_control = 0x0ff,
.board_control_2 = 0xf00, .board_control_2 = 0xf00,
.ts_quirks = TS_QUIRK_SERIAL, .ts_quirks = TS_QUIRK_SERIAL | TS_QUIRK_ALT_OSC,
.tempmon_irq = 24, .tempmon_irq = 24,
}; };
@ -2212,7 +2212,7 @@ static int dvb_input_attach(struct ddb_input *input)
struct ddb_port *port = input->port; struct ddb_port *port = input->port;
struct dvb_adapter *adap = dvb->adap; struct dvb_adapter *adap = dvb->adap;
struct dvb_demux *dvbdemux = &dvb->demux; struct dvb_demux *dvbdemux = &dvb->demux;
int par = 0; int par = 0, osc24 = 0;
dvb->attached = 0x01; dvb->attached = 0x01;
@ -2292,6 +2292,12 @@ static int dvb_input_attach(struct ddb_input *input)
if (tuner_attach_tda18212dd(input) < 0) if (tuner_attach_tda18212dd(input) < 0)
return -ENODEV; return -ENODEV;
break; break;
case DDB_TUNER_DVBC2T2I_SONY_P:
if (input->port->dev->link[input->port->lnr].info->ts_quirks &
TS_QUIRK_ALT_OSC)
osc24 = 0;
else
osc24 = 1;
case DDB_TUNER_DVBCT2_SONY_P: case DDB_TUNER_DVBCT2_SONY_P:
case DDB_TUNER_DVBC2T2_SONY_P: case DDB_TUNER_DVBC2T2_SONY_P:
case DDB_TUNER_ISDBT_SONY_P: case DDB_TUNER_ISDBT_SONY_P:
@ -2300,16 +2306,17 @@ static int dvb_input_attach(struct ddb_input *input)
par = 0; par = 0;
else else
par = 1; par = 1;
case DDB_TUNER_DVBCT2_SONY: if (demod_attach_cxd2843(input, par, osc24) < 0)
case DDB_TUNER_DVBC2T2_SONY:
case DDB_TUNER_ISDBT_SONY:
if (demod_attach_cxd2843(input, par, 0) < 0)
return -ENODEV; return -ENODEV;
if (tuner_attach_tda18212dd(input) < 0) if (tuner_attach_tda18212dd(input) < 0)
return -ENODEV; return -ENODEV;
break; break;
case DDB_TUNER_DVBC2T2I_SONY: case DDB_TUNER_DVBC2T2I_SONY:
if (demod_attach_cxd2843(input, par, 1) < 0) osc24 = 1;
case DDB_TUNER_DVBCT2_SONY:
case DDB_TUNER_DVBC2T2_SONY:
case DDB_TUNER_ISDBT_SONY:
if (demod_attach_cxd2843(input, 0, osc24) < 0)
return -ENODEV; return -ENODEV;
if (tuner_attach_tda18212dd(input) < 0) if (tuner_attach_tda18212dd(input) < 0)
return -ENODEV; return -ENODEV;

View File

@ -549,6 +549,7 @@ static const struct pci_device_id ddb_id_tbl[] __devinitconst = {
DDB_ID(DDVID, 0x0008, DDVID, 0x0036, ddb_isdbt_8), DDB_ID(DDVID, 0x0008, DDVID, 0x0036, ddb_isdbt_8),
DDB_ID(DDVID, 0x0008, DDVID, 0x0037, ddb_c2t2i_v0_8), DDB_ID(DDVID, 0x0008, DDVID, 0x0037, ddb_c2t2i_v0_8),
DDB_ID(DDVID, 0x0008, DDVID, 0x0038, ddb_c2t2i_8), DDB_ID(DDVID, 0x0008, DDVID, 0x0038, ddb_c2t2i_8),
DDB_ID(DDVID, 0x0006, DDVID, 0x0039, ddb_ctv7),
DDB_ID(DDVID, 0x0011, DDVID, 0x0040, ddb_ci), DDB_ID(DDVID, 0x0011, DDVID, 0x0040, ddb_ci),
DDB_ID(DDVID, 0x0011, DDVID, 0x0041, ddb_cis), DDB_ID(DDVID, 0x0011, DDVID, 0x0041, ddb_cis),
DDB_ID(DDVID, 0x0012, DDVID, 0x0042, ddb_ci), DDB_ID(DDVID, 0x0012, DDVID, 0x0042, ddb_ci),

View File

@ -172,6 +172,7 @@ struct ddb_info {
#define TS_QUIRK_SERIAL 1 #define TS_QUIRK_SERIAL 1
#define TS_QUIRK_REVERSED 2 #define TS_QUIRK_REVERSED 2
#define TS_QUIRK_NO_OUTPUT 4 #define TS_QUIRK_NO_OUTPUT 4
#define TS_QUIRK_ALT_OSC 8
u32 tempmon_irq; u32 tempmon_irq;
struct ddb_regmap *regmap; struct ddb_regmap *regmap;
}; };
@ -317,6 +318,7 @@ struct ddb_port {
#define DDB_CI_EXTERNAL_XO2 12 #define DDB_CI_EXTERNAL_XO2 12
#define DDB_CI_EXTERNAL_XO2_B 13 #define DDB_CI_EXTERNAL_XO2_B 13
#define DDB_TUNER_DVBS_STV0910_PR 14 #define DDB_TUNER_DVBS_STV0910_PR 14
#define DDB_TUNER_DVBC2T2I_SONY_P 15
#define DDB_TUNER_XO2 32 #define DDB_TUNER_XO2 32
#define DDB_TUNER_DVBS_STV0910 (DDB_TUNER_XO2 + 0) #define DDB_TUNER_DVBS_STV0910 (DDB_TUNER_XO2 + 0)