diff options
author | Manu Abraham <abraham.manu@gmail.com> | 2006-08-08 22:48:08 +0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-09-26 18:53:37 +0400 |
commit | bbdd11fa957913d6648cabbca59be1da479180ed (patch) | |
tree | 48d00e950c54a6cb1d04c3eba4e742a0c829ad9e /drivers/media/dvb/bt8xx/dst.c | |
parent | e4a49d76ca4e2c0b2b4c89d59d43486d781ffe95 (diff) | |
download | linux-bbdd11fa957913d6648cabbca59be1da479180ed.tar.xz |
V4L/DVB (4432): Fix Circular dependencies
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb/bt8xx/dst.c')
-rw-r--r-- | drivers/media/dvb/bt8xx/dst.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c index 52b6fb2455f9..9f72b7000c08 100644 --- a/drivers/media/dvb/bt8xx/dst.c +++ b/drivers/media/dvb/bt8xx/dst.c @@ -1715,6 +1715,15 @@ static int dst_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_paramet static void dst_release(struct dvb_frontend *fe) { struct dst_state *state = fe->demodulator_priv; + if (state->dst_ca) { + dvb_unregister_device(state->dst_ca); +#ifdef CONFIG_DVB_CORE_ATTACH + symbol_put(dst_ca_attach); +#endif + } +#ifdef CONFIG_DVB_CORE_ATTACH + symbol_put(dst_attach); +#endif kfree(state); } @@ -1752,11 +1761,6 @@ struct dst_state *dst_attach(struct dst_state *state, struct dvb_adapter *dvb_ad } state->frontend.demodulator_priv = state; - /* Attach other DST peripherals if any */ - /* Conditional Access device */ - if (state->dst_hw_cap & DST_TYPE_HAS_CA) - dst_ca_attach(state, dvb_adapter); - return state; /* Manu (DST is a card not a frontend) */ } |