mirror of
https://github.com/DigitalDevices/dddvb.git
synced 2023-10-10 13:37:43 +02:00
make registration states more fine grained
This commit is contained in:
parent
6001c5baf5
commit
2e1c7b62a9
@ -1477,9 +1477,10 @@ static void dvb_input_detach(struct ddb_input *input)
|
|||||||
struct dvb_demux *dvbdemux = &dvb->demux;
|
struct dvb_demux *dvbdemux = &dvb->demux;
|
||||||
|
|
||||||
switch (dvb->attached) {
|
switch (dvb->attached) {
|
||||||
case 0x31:
|
case 0x41:
|
||||||
if (dvb->fe2)
|
if (dvb->fe2)
|
||||||
dvb_unregister_frontend(dvb->fe2);
|
dvb_unregister_frontend(dvb->fe2);
|
||||||
|
case 0x40:
|
||||||
if (dvb->fe)
|
if (dvb->fe)
|
||||||
dvb_unregister_frontend(dvb->fe);
|
dvb_unregister_frontend(dvb->fe);
|
||||||
/* fallthrough */
|
/* fallthrough */
|
||||||
@ -1673,30 +1674,35 @@ static int dvb_input_attach(struct ddb_input *input)
|
|||||||
case DDB_TUNER_DVBS_ST:
|
case DDB_TUNER_DVBS_ST:
|
||||||
if (demod_attach_stv0900(input, 0) < 0)
|
if (demod_attach_stv0900(input, 0) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
dvb->attached = 0x30;
|
||||||
if (tuner_attach_stv6110(input, 0) < 0)
|
if (tuner_attach_stv6110(input, 0) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
break;
|
break;
|
||||||
case DDB_TUNER_DVBS_ST_AA:
|
case DDB_TUNER_DVBS_ST_AA:
|
||||||
if (demod_attach_stv0900(input, 1) < 0)
|
if (demod_attach_stv0900(input, 1) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
dvb->attached = 0x30;
|
||||||
if (tuner_attach_stv6110(input, 1) < 0)
|
if (tuner_attach_stv6110(input, 1) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
break;
|
break;
|
||||||
case DDB_TUNER_DVBS_STV0910:
|
case DDB_TUNER_DVBS_STV0910:
|
||||||
if (demod_attach_stv0910(input, 0) < 0)
|
if (demod_attach_stv0910(input, 0) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
dvb->attached = 0x30;
|
||||||
if (tuner_attach_stv6111(input, 0) < 0)
|
if (tuner_attach_stv6111(input, 0) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
break;
|
break;
|
||||||
case DDB_TUNER_DVBS_STV0910_PR:
|
case DDB_TUNER_DVBS_STV0910_PR:
|
||||||
if (demod_attach_stv0910(input, 1) < 0)
|
if (demod_attach_stv0910(input, 1) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
dvb->attached = 0x30;
|
||||||
if (tuner_attach_stv6111(input, 1) < 0)
|
if (tuner_attach_stv6111(input, 1) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
break;
|
break;
|
||||||
case DDB_TUNER_DVBS_STV0910_P:
|
case DDB_TUNER_DVBS_STV0910_P:
|
||||||
if (demod_attach_stv0910(input, 0) < 0)
|
if (demod_attach_stv0910(input, 0) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
dvb->attached = 0x30;
|
||||||
if (tuner_attach_stv6111(input, 1) < 0)
|
if (tuner_attach_stv6111(input, 1) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
break;
|
break;
|
||||||
@ -1704,6 +1710,7 @@ static int dvb_input_attach(struct ddb_input *input)
|
|||||||
case DDB_TUNER_DVBCT_TR:
|
case DDB_TUNER_DVBCT_TR:
|
||||||
if (demod_attach_drxk(input) < 0)
|
if (demod_attach_drxk(input) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
dvb->attached = 0x30;
|
||||||
if (tuner_attach_tda18271(input) < 0)
|
if (tuner_attach_tda18271(input) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
break;
|
break;
|
||||||
@ -1711,6 +1718,7 @@ static int dvb_input_attach(struct ddb_input *input)
|
|||||||
case DDB_TUNER_DVBCT_ST:
|
case DDB_TUNER_DVBCT_ST:
|
||||||
if (demod_attach_stv0367dd(input) < 0)
|
if (demod_attach_stv0367dd(input) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
dvb->attached = 0x30;
|
||||||
if (tuner_attach_tda18212dd(input) < 0)
|
if (tuner_attach_tda18212dd(input) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
break;
|
break;
|
||||||
@ -1730,6 +1738,7 @@ static int dvb_input_attach(struct ddb_input *input)
|
|||||||
par = 1;
|
par = 1;
|
||||||
if (demod_attach_cxd2843(input, par, osc24) < 0)
|
if (demod_attach_cxd2843(input, par, osc24) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
dvb->attached = 0x30;
|
||||||
if (tuner_attach_tda18212dd(input) < 0)
|
if (tuner_attach_tda18212dd(input) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
break;
|
break;
|
||||||
@ -1740,6 +1749,7 @@ static int dvb_input_attach(struct ddb_input *input)
|
|||||||
case DDB_TUNER_ISDBT_SONY:
|
case DDB_TUNER_ISDBT_SONY:
|
||||||
if (demod_attach_cxd2843(input, 0, osc24) < 0)
|
if (demod_attach_cxd2843(input, 0, osc24) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
dvb->attached = 0x30;
|
||||||
if (tuner_attach_tda18212dd(input) < 0)
|
if (tuner_attach_tda18212dd(input) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
break;
|
break;
|
||||||
@ -1760,6 +1770,7 @@ static int dvb_input_attach(struct ddb_input *input)
|
|||||||
if (dvb_register_frontend(adap, dvb->fe) < 0)
|
if (dvb_register_frontend(adap, dvb->fe) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
dvb->attached = 0x40;
|
||||||
if (dvb->fe2) {
|
if (dvb->fe2) {
|
||||||
if (dvb_register_frontend(adap, dvb->fe2) < 0)
|
if (dvb_register_frontend(adap, dvb->fe2) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
@ -1768,7 +1779,7 @@ static int dvb_input_attach(struct ddb_input *input)
|
|||||||
&dvb->fe->ops.tuner_ops,
|
&dvb->fe->ops.tuner_ops,
|
||||||
sizeof(struct dvb_tuner_ops));
|
sizeof(struct dvb_tuner_ops));
|
||||||
}
|
}
|
||||||
dvb->attached = 0x31;
|
dvb->attached = 0x41;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user