diff options
Diffstat (limited to 'linux/drivers/media/dvb/bt8xx/dst.c')
-rw-r--r-- | linux/drivers/media/dvb/bt8xx/dst.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/linux/drivers/media/dvb/bt8xx/dst.c b/linux/drivers/media/dvb/bt8xx/dst.c index 8b3390def..35278d64b 100644 --- a/linux/drivers/media/dvb/bt8xx/dst.c +++ b/linux/drivers/media/dvb/bt8xx/dst.c @@ -1719,12 +1719,6 @@ 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; - -#ifdef CONFIG_DVB_CORE_ATTACH - if (state->dst_hw_cap & DST_TYPE_HAS_CA) - symbol_put(dst_ca_attach); -#endif - kfree(state); } @@ -1762,6 +1756,11 @@ 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) */ } |