aboutsummaryrefslogtreecommitdiff
path: root/drivers/media/dvb/bt8xx/dst.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/dvb/bt8xx/dst.c')
-rw-r--r--drivers/media/dvb/bt8xx/dst.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c
index a853c14c61d..52b6fb2455f 100644
--- a/drivers/media/dvb/bt8xx/dst.c
+++ b/drivers/media/dvb/bt8xx/dst.c
@@ -1715,12 +1715,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);
}
@@ -1758,6 +1752,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) */
}