diff options
| author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-12-21 17:46:33 -0200 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-12-21 17:46:33 -0200 |
| commit | 4b7dae6f98287343f5a4943ec5f1466444fe9b98 (patch) | |
| tree | de05d30516f47c695386d50ae07e5a2bd8be68a6 /linux/drivers/media/dvb/dvb-core | |
| parent | 292c0c5ab82d5a731c3469f5f7f00dc4485b0a7f (diff) | |
| parent | b0084bc50abc9f710c70c170096bf2d8b2efe610 (diff) | |
| download | mediapointer-dvb-s2-4b7dae6f98287343f5a4943ec5f1466444fe9b98.tar.gz mediapointer-dvb-s2-4b7dae6f98287343f5a4943ec5f1466444fe9b98.tar.bz2 | |
merge: http://linuxtv.org/hg/~stoth/xc5000
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/drivers/media/dvb/dvb-core')
| -rw-r--r-- | linux/drivers/media/dvb/dvb-core/dvb_frontend.c | 6 | ||||
| -rw-r--r-- | linux/drivers/media/dvb/dvb-core/dvb_frontend.h | 26 |
2 files changed, 29 insertions, 3 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c index ce24996d8..54cc2637b 100644 --- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c @@ -1213,6 +1213,10 @@ void dvb_frontend_detach(struct dvb_frontend* fe) fe->ops.tuner_ops.release(fe); symbol_put_addr(fe->ops.tuner_ops.release); } + if (fe->ops.analog_ops.release) { + fe->ops.analog_ops.release(fe); + symbol_put_addr(fe->ops.analog_ops.release); + } ptr = (void*)fe->ops.release; if (ptr) { fe->ops.release(fe); @@ -1226,6 +1230,8 @@ void dvb_frontend_detach(struct dvb_frontend* fe) fe->ops.release_sec(fe); if (fe->ops.tuner_ops.release) fe->ops.tuner_ops.release(fe); + if (fe->ops.analog_ops.release) + fe->ops.analog_ops.release(fe); if (fe->ops.release) fe->ops.release(fe); } diff --git a/linux/drivers/media/dvb/dvb-core/dvb_frontend.h b/linux/drivers/media/dvb/dvb-core/dvb_frontend.h index d99fe67ae..fc3213fec 100644 --- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.h +++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.h @@ -64,8 +64,6 @@ struct dvb_tuner_info { u32 bandwidth_step; }; -struct analog_tuner_ops; - struct analog_parameters { unsigned int frequency; unsigned int mode; @@ -105,6 +103,28 @@ struct dvb_tuner_ops { int (*set_bandwidth)(struct dvb_frontend *fe, u32 bandwidth); }; +struct analog_demod_info { + char *name; +}; + +struct analog_demod_ops { + + struct analog_demod_info info; + + void (*set_params)(struct dvb_frontend *fe, + struct analog_parameters *params); + int (*has_signal)(struct dvb_frontend *fe); + int (*is_stereo)(struct dvb_frontend *fe); + int (*get_afc)(struct dvb_frontend *fe); + void (*tuner_status)(struct dvb_frontend *fe); + void (*standby)(struct dvb_frontend *fe); + void (*release)(struct dvb_frontend *fe); + int (*i2c_gate_ctrl)(struct dvb_frontend *fe, int enable); + + /** This is to allow setting tuner-specific configuration */ + int (*set_config)(struct dvb_frontend *fe, void *priv_cfg); +}; + struct dvb_frontend_ops { struct dvb_frontend_info info; @@ -150,7 +170,7 @@ struct dvb_frontend_ops { int (*ts_bus_ctrl)(struct dvb_frontend* fe, int acquire); struct dvb_tuner_ops tuner_ops; - struct analog_tuner_ops *analog_demod_ops; + struct analog_demod_ops analog_ops; }; #define MAX_EVENT 8 |
