mirror of
https://github.com/DigitalDevices/dddvb.git
synced 2025-03-01 10:35:23 +00:00
Compare commits
6 Commits
0.9.28
...
0.9.28-v7a
Author | SHA1 | Date | |
---|---|---|---|
|
37de742aad | ||
|
1e99122d52 | ||
|
cd5de95023 | ||
|
c56f593a4c | ||
|
1f77192d62 | ||
|
fc4a807b4e |
@@ -1310,10 +1310,10 @@ int read_id(int dev, int argc, char* argv[], uint32_t Flags)
|
||||
break;
|
||||
default:
|
||||
printf("Unsupported Flash\n");
|
||||
break;
|
||||
return -1;
|
||||
}
|
||||
printf("ID: ");
|
||||
for (i = 0; i < 8; i++)
|
||||
for (i = 0; i < len; i++)
|
||||
printf("%02x ", Id[i]);
|
||||
printf("\n");
|
||||
|
||||
|
@@ -66,6 +66,10 @@ static int no_init;
|
||||
module_param(no_init, int, 0444);
|
||||
MODULE_PARM_DESC(no_init, "do not initialize most devices");
|
||||
|
||||
static int stv0910_single;
|
||||
module_param(stv0910_single, int, 0444);
|
||||
MODULE_PARM_DESC(no_init, "use stv0910 cards as single demods");
|
||||
|
||||
#define DDB_MAX_ADAPTER 64
|
||||
static struct ddb *ddbs[DDB_MAX_ADAPTER];
|
||||
|
||||
@@ -352,7 +356,7 @@ static struct ddb_info ddb_c2t2i_v0_8 = {
|
||||
.i2c_mask = 0x0f,
|
||||
.board_control = 0x0ff,
|
||||
.board_control_2 = 0xf00,
|
||||
.ts_quirks = TS_QUIRK_SERIAL,
|
||||
.ts_quirks = TS_QUIRK_SERIAL | TS_QUIRK_ALT_OSC,
|
||||
.tempmon_irq = 24,
|
||||
};
|
||||
|
||||
@@ -1573,6 +1577,8 @@ static int demod_attach_stv0910(struct ddb_input *input, int type)
|
||||
struct ddb_dvb *dvb = &input->port->dvb[input->nr & 1];
|
||||
struct stv0910_cfg cfg = stv0910_p;
|
||||
|
||||
if (stv0910_single)
|
||||
cfg.single = 1;
|
||||
if (type)
|
||||
cfg.parallel = 2;
|
||||
dvb->fe = dvb_attach(stv0910_attach, i2c, &cfg, (input->nr & 1));
|
||||
@@ -2212,7 +2218,7 @@ static int dvb_input_attach(struct ddb_input *input)
|
||||
struct ddb_port *port = input->port;
|
||||
struct dvb_adapter *adap = dvb->adap;
|
||||
struct dvb_demux *dvbdemux = &dvb->demux;
|
||||
int par = 0;
|
||||
int par = 0, osc24 = 0;
|
||||
|
||||
dvb->attached = 0x01;
|
||||
|
||||
@@ -2292,6 +2298,12 @@ static int dvb_input_attach(struct ddb_input *input)
|
||||
if (tuner_attach_tda18212dd(input) < 0)
|
||||
return -ENODEV;
|
||||
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_DVBC2T2_SONY_P:
|
||||
case DDB_TUNER_ISDBT_SONY_P:
|
||||
@@ -2300,16 +2312,17 @@ static int dvb_input_attach(struct ddb_input *input)
|
||||
par = 0;
|
||||
else
|
||||
par = 1;
|
||||
case DDB_TUNER_DVBCT2_SONY:
|
||||
case DDB_TUNER_DVBC2T2_SONY:
|
||||
case DDB_TUNER_ISDBT_SONY:
|
||||
if (demod_attach_cxd2843(input, par, 0) < 0)
|
||||
if (demod_attach_cxd2843(input, par, osc24) < 0)
|
||||
return -ENODEV;
|
||||
if (tuner_attach_tda18212dd(input) < 0)
|
||||
return -ENODEV;
|
||||
break;
|
||||
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;
|
||||
if (tuner_attach_tda18212dd(input) < 0)
|
||||
return -ENODEV;
|
||||
@@ -4447,13 +4460,13 @@ static ssize_t temp_show(struct device *device,
|
||||
|
||||
if (dev->link[0].info->type == DDB_MOD) {
|
||||
if (dev->link[0].info->version == 2) {
|
||||
temp = ddbreadl(dev, TEMPMON2_BOARD);
|
||||
temp = 0xffff & ddbreadl(dev, TEMPMON2_BOARD);
|
||||
temp = (temp * 1000) >> 8;
|
||||
|
||||
temp2 = ddbreadl(dev, TEMPMON2_FPGACORE);
|
||||
temp2 = 0xffff & ddbreadl(dev, TEMPMON2_FPGACORE);
|
||||
temp2 = (temp2 * 1000) >> 8;
|
||||
|
||||
temp3 = ddbreadl(dev, TEMPMON2_QAMCORE);
|
||||
temp3 = 0xffff & ddbreadl(dev, TEMPMON2_QAMCORE);
|
||||
temp3 = (temp3 * 1000) >> 8;
|
||||
|
||||
return sprintf(buf, "%d %d %d\n", temp, temp2, temp3);
|
||||
|
@@ -395,6 +395,17 @@ static struct ddb_info ddb_v6_5 = {
|
||||
.i2c_mask = 0x0f,
|
||||
};
|
||||
|
||||
static struct ddb_info ddb_v7a = {
|
||||
.type = DDB_OCTOPUS,
|
||||
.name = "Digital Devices Cine S2 V7 Advanced DVB adapter",
|
||||
.regmap = &octopus_map,
|
||||
.port_num = 4,
|
||||
.i2c_mask = 0x0f,
|
||||
.board_control = 2,
|
||||
.board_control_2 = 4,
|
||||
.ts_quirks = TS_QUIRK_REVERSED,
|
||||
};
|
||||
|
||||
static struct ddb_info ddb_v7 = {
|
||||
.type = DDB_OCTOPUS,
|
||||
.name = "Digital Devices Cine S2 V7 DVB adapter",
|
||||
@@ -450,6 +461,16 @@ static struct ddb_info ddb_ci_s2_pro = {
|
||||
.board_control_2 = 4,
|
||||
};
|
||||
|
||||
static struct ddb_info ddb_ci_s2_pro_a = {
|
||||
.type = DDB_OCTOPUS_CI,
|
||||
.name = "Digital Devices Octopus CI S2 Pro Advanced",
|
||||
.regmap = &octopus_map,
|
||||
.port_num = 4,
|
||||
.i2c_mask = 0x01,
|
||||
.board_control = 2,
|
||||
.board_control_2 = 4,
|
||||
};
|
||||
|
||||
static struct ddb_info ddb_dvbct = {
|
||||
.type = DDB_OCTOPUS,
|
||||
.name = "Digital Devices DVBCT V6.1 DVB adapter",
|
||||
@@ -538,6 +559,7 @@ static const struct pci_device_id ddb_id_tbl[] __devinitconst = {
|
||||
DDB_ID(DDVID, 0x0003, DDVID, 0x0020, ddb_v6),
|
||||
DDB_ID(DDVID, 0x0003, DDVID, 0x0021, ddb_v6_5),
|
||||
DDB_ID(DDVID, 0x0006, DDVID, 0x0022, ddb_v7),
|
||||
DDB_ID(DDVID, 0x0006, DDVID, 0x0024, ddb_v7a),
|
||||
DDB_ID(DDVID, 0x0003, DDVID, 0x0030, ddb_dvbct),
|
||||
DDB_ID(DDVID, 0x0003, DDVID, 0xdb03, ddb_satixS2v3),
|
||||
DDB_ID(DDVID, 0x0006, DDVID, 0x0031, ddb_ctv7),
|
||||
@@ -549,10 +571,12 @@ static const struct pci_device_id ddb_id_tbl[] __devinitconst = {
|
||||
DDB_ID(DDVID, 0x0008, DDVID, 0x0036, ddb_isdbt_8),
|
||||
DDB_ID(DDVID, 0x0008, DDVID, 0x0037, ddb_c2t2i_v0_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, 0x0041, ddb_cis),
|
||||
DDB_ID(DDVID, 0x0012, DDVID, 0x0042, ddb_ci),
|
||||
DDB_ID(DDVID, 0x0013, DDVID, 0x0043, ddb_ci_s2_pro),
|
||||
DDB_ID(DDVID, 0x0013, DDVID, 0x0044, ddb_ci_s2_pro_a),
|
||||
DDB_ID(DDVID, 0x0201, DDVID, 0x0001, ddb_mod),
|
||||
DDB_ID(DDVID, 0x0201, DDVID, 0x0002, ddb_mod),
|
||||
DDB_ID(DDVID, 0x0203, DDVID, 0x0001, ddb_mod),
|
||||
|
@@ -172,6 +172,7 @@ struct ddb_info {
|
||||
#define TS_QUIRK_SERIAL 1
|
||||
#define TS_QUIRK_REVERSED 2
|
||||
#define TS_QUIRK_NO_OUTPUT 4
|
||||
#define TS_QUIRK_ALT_OSC 8
|
||||
u32 tempmon_irq;
|
||||
struct ddb_regmap *regmap;
|
||||
};
|
||||
@@ -317,6 +318,7 @@ struct ddb_port {
|
||||
#define DDB_CI_EXTERNAL_XO2 12
|
||||
#define DDB_CI_EXTERNAL_XO2_B 13
|
||||
#define DDB_TUNER_DVBS_STV0910_PR 14
|
||||
#define DDB_TUNER_DVBC2T2I_SONY_P 15
|
||||
|
||||
#define DDB_TUNER_XO2 32
|
||||
#define DDB_TUNER_DVBS_STV0910 (DDB_TUNER_XO2 + 0)
|
||||
|
@@ -105,6 +105,7 @@ struct stv {
|
||||
u8 tscfgh;
|
||||
u8 tsgeneral;
|
||||
u8 tsspeed;
|
||||
u8 single;
|
||||
unsigned long tune_time;
|
||||
|
||||
s32 SearchRange;
|
||||
@@ -1137,7 +1138,10 @@ static int probe(struct stv *state)
|
||||
write_reg(state, RSTV0910_SYNTCTRL, 0x02); /* SYNTCTRL */
|
||||
write_reg(state, RSTV0910_TSGENERAL, state->tsgeneral); /* TSGENERAL */
|
||||
write_reg(state, RSTV0910_CFGEXT, 0x02); /* CFGEXT */
|
||||
write_reg(state, RSTV0910_GENCFG, 0x15); /* GENCFG */
|
||||
if (state->single)
|
||||
write_reg(state, RSTV0910_GENCFG, 0x14); /* GENCFG */
|
||||
else
|
||||
write_reg(state, RSTV0910_GENCFG, 0x15); /* GENCFG */
|
||||
|
||||
write_reg(state, RSTV0910_P1_TNRCFG2, 0x02); /* IQSWAP = 0 */
|
||||
write_reg(state, RSTV0910_P2_TNRCFG2, 0x82); /* IQSWAP = 1 */
|
||||
@@ -1830,7 +1834,8 @@ struct dvb_frontend *stv0910_attach(struct i2c_adapter *i2c,
|
||||
state->DEMOD = 0x10; /* Inversion : Auto with reset to 0 */
|
||||
state->ReceiveMode = Mode_None;
|
||||
state->CurScramblingCode = NO_SCRAMBLING_CODE;
|
||||
|
||||
state->single = cfg->single ? 1 : 0;
|
||||
|
||||
base = match_base(i2c, cfg->adr);
|
||||
if (base) {
|
||||
base->count++;
|
||||
|
@@ -9,6 +9,7 @@ struct stv0910_cfg {
|
||||
u8 adr;
|
||||
u8 parallel;
|
||||
u8 rptlvl;
|
||||
u8 single;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_STV0910) || \
|
||||
|
Reference in New Issue
Block a user