aboutsummaryrefslogtreecommitdiff
path: root/drivers/media/video/tuner-core.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2007-10-23 15:24:06 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-01-25 19:01:05 -0200
commit215b95baf969c6f895969f0a4ae0479954fba7cd (patch)
tree67e02c71a7d306cb82221e674325a27221ce5e06 /drivers/media/video/tuner-core.c
parent3b20532c791399182bd04f0fcc70b60a95637fa5 (diff)
V4L/DVB (6430): Convert tuner-xc2028 driver to the newer hybrid approach
This changeset converts tuner-xc2028 to the newer hybrid approach. It also prevents creating twice the xc3028 private struct by both DVB and V4L parts. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/tuner-core.c')
-rw-r--r--drivers/media/video/tuner-core.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c
index ce817a17ccf..13112732ed2 100644
--- a/drivers/media/video/tuner-core.c
+++ b/drivers/media/video/tuner-core.c
@@ -24,6 +24,7 @@
#include "tda8290.h"
#include "tea5761.h"
#include "tea5767.h"
+#include "tuner-xc2028.h"
#include "tuner-simple.h"
#define UNSET (-1U)
@@ -323,8 +324,17 @@ static void set_type(struct i2c_client *c, unsigned int type,
attach_simple_tuner(t);
break;
case TUNER_XC2028:
- xc2028_tuner_init(c);
+ {
+ int rc=xc2028_attach(&t->fe, t->i2c.adapter, t->i2c.addr,
+ &c->dev, c->adapter->algo_data,
+ t->tuner_callback);
+ if (rc<0) {
+ t->type = TUNER_ABSENT;
+ t->mode_mask = T_UNINITIALIZED;
+ return;
+ }
break;
+ }
case TUNER_TDA9887:
tda9887_tuner_init(t);
break;