diff options
author | Patrick Boettcher <pb@linuxtv.org> | 2006-08-08 14:48:10 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-09-26 10:53:46 -0400 |
commit | b7571f8d7e12cd70048331e6a0199a42dc995d99 (patch) | |
tree | 5a536abb2530f3bec89666ddebc457b35a1aba37 /drivers/media/dvb/dvb-usb/dvb-usb-dvb.c | |
parent | 74340b0a8bc60b400c7e5fe4950303aa6f914d16 (diff) |
V4L/DVB: Complete rewrite of the DiB3000mc-driver
A complete rewrite of the DiB3000MC/P driver has been done. It is now much more
easy to maintain and to get improvements inside.
Additionally the tuning time has been reduced and the usage of the driver is
much more understandable now.
Signed-off-by: Patrick Boettcher <pboettcher@dibcom.fr>
Signed-off-by: Francois KANOUNNIKOFF <fkanounnikoff@dibcom.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb/dvb-usb/dvb-usb-dvb.c')
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb-dvb.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c b/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c index 9f8d3f0ca5a1..71a754e2287e 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c +++ b/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c | |||
@@ -179,16 +179,15 @@ int dvb_usb_fe_init(struct dvb_usb_device* d) | |||
179 | return 0; | 179 | return 0; |
180 | } | 180 | } |
181 | 181 | ||
182 | d->props.frontend_attach(d); | ||
183 | |||
184 | /* re-assign sleep and wakeup functions */ | 182 | /* re-assign sleep and wakeup functions */ |
185 | if (d->fe != NULL) { | 183 | if (d->props.frontend_attach(d) == 0 && d->fe != NULL) { |
186 | d->fe_init = d->fe->ops.init; d->fe->ops.init = dvb_usb_fe_wakeup; | 184 | d->fe_init = d->fe->ops.init; d->fe->ops.init = dvb_usb_fe_wakeup; |
187 | d->fe_sleep = d->fe->ops.sleep; d->fe->ops.sleep = dvb_usb_fe_sleep; | 185 | d->fe_sleep = d->fe->ops.sleep; d->fe->ops.sleep = dvb_usb_fe_sleep; |
188 | 186 | ||
189 | if (dvb_register_frontend(&d->dvb_adap, d->fe)) { | 187 | if (dvb_register_frontend(&d->dvb_adap, d->fe)) { |
190 | err("Frontend registration failed."); | 188 | err("Frontend registration failed."); |
191 | dvb_frontend_detach(d->fe); | 189 | if (d->fe->ops.release) |
190 | d->fe->ops.release(d->fe); | ||
192 | d->fe = NULL; | 191 | d->fe = NULL; |
193 | return -ENODEV; | 192 | return -ENODEV; |
194 | } | 193 | } |
@@ -203,9 +202,7 @@ int dvb_usb_fe_init(struct dvb_usb_device* d) | |||
203 | 202 | ||
204 | int dvb_usb_fe_exit(struct dvb_usb_device *d) | 203 | int dvb_usb_fe_exit(struct dvb_usb_device *d) |
205 | { | 204 | { |
206 | if (d->fe != NULL) { | 205 | if (d->fe != NULL) |
207 | dvb_unregister_frontend(d->fe); | 206 | dvb_unregister_frontend(d->fe); |
208 | dvb_frontend_detach(d->fe); | ||
209 | } | ||
210 | return 0; | 207 | return 0; |
211 | } | 208 | } |