From dc8409168fb90b2b7f5e706117877e40f9177c60 Mon Sep 17 00:00:00 2001 From: Patrick Boettcher Date: Sat, 29 Jul 2006 22:08:29 +0200 Subject: Complete rewrite of the DiB3000mc-driver From: Patrick Boettcher 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 Signed-off-by: Francois KANOUNNIKOFF --- linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c') diff --git a/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c b/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c index ec631708c..71a754e22 100644 --- a/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c +++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c @@ -179,10 +179,8 @@ int dvb_usb_fe_init(struct dvb_usb_device* d) return 0; } - d->props.frontend_attach(d); - /* re-assign sleep and wakeup functions */ - if (d->fe != NULL) { + if (d->props.frontend_attach(d) == 0 && d->fe != NULL) { d->fe_init = d->fe->ops.init; d->fe->ops.init = dvb_usb_fe_wakeup; d->fe_sleep = d->fe->ops.sleep; d->fe->ops.sleep = dvb_usb_fe_sleep; -- cgit v1.2.3 From 975b1fde51670c1fc807e6a31b4d269f1ecfc03a Mon Sep 17 00:00:00 2001 From: Patrick Boettcher Date: Wed, 2 Aug 2006 13:44:31 +0200 Subject: Attach the dib3000mc correctly From: Patrick Boettcher Flynn Marquardt found out that there is problem with the new dib3000mc-driver when using with the real dib3000mc. It resulted in a segfault. Fixed two things: use the correct I2C address and do not attach a tuner, when the demod was previously failing. Signed-off-by: Patrick Boettcher --- linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c') diff --git a/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c b/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c index 48ceba61e..9dfa3e24d 100644 --- a/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c +++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c @@ -190,12 +190,13 @@ int dvb_usb_fe_init(struct dvb_usb_device* d) d->fe = NULL; return -ENODEV; } + + /* only attach the tuner if the demod is there */ + if (d->props.tuner_attach != NULL) + d->props.tuner_attach(d); } else err("no frontend was attached by '%s'",d->desc->name); - if (d->props.tuner_attach != NULL) - d->props.tuner_attach(d); - return 0; } -- cgit v1.2.3 From b5d24e3fdbcb2224e74af148395d4cca2b094384 Mon Sep 17 00:00:00 2001 From: Patrick Boettcher Date: Wed, 2 Aug 2006 14:26:27 +0200 Subject: DiB3000MC: set FE to NULL after being freed From: Patrick Boettcher DiB3000MC: set FE to NULL after being freed Signed-off-by: Patrick Boettcher --- linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c') diff --git a/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c b/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c index 9dfa3e24d..fe6208ada 100644 --- a/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c +++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c @@ -175,7 +175,7 @@ static int dvb_usb_fe_sleep(struct dvb_frontend *fe) int dvb_usb_fe_init(struct dvb_usb_device* d) { if (d->props.frontend_attach == NULL) { - err("strange '%s' doesn't want to attach a frontend.",d->desc->name); + err("strange: '%s' doesn't want to attach a frontend.",d->desc->name); return 0; } -- cgit v1.2.3