Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 199977
b: refs/heads/master
c: 7e2d982
h: refs/heads/master
i:
  199975: 311a97a
v: v3
  • Loading branch information
Stefan Ringel authored and Mauro Carvalho Chehab committed Jun 1, 2010
1 parent b6d6e33 commit ea44d37
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 21 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: dcf5d3aa081617a4a8aa56b7e24988d600148f50
refs/heads/master: 7e2d9820c37525da2469147eec897488ec141bcf
69 changes: 49 additions & 20 deletions trunk/drivers/staging/tm6000/tm6000-dvb.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include <media/tuner.h>

#include "tuner-xc2028.h"
#include "xc5000.h"

static void inline print_err_status (struct tm6000_core *dev,
int packet, int status)
Expand Down Expand Up @@ -257,27 +258,55 @@ int tm6000_dvb_register(struct tm6000_core *dev)
dvb->adapter.priv = dev;

if (dvb->frontend) {
struct xc2028_config cfg = {
.i2c_adap = &dev->i2c_adap,
.i2c_addr = dev->tuner_addr,
};

dvb->frontend->callback = tm6000_tuner_callback;
ret = dvb_register_frontend(&dvb->adapter, dvb->frontend);
if (ret < 0) {
printk(KERN_ERR
"tm6000: couldn't register frontend\n");
goto adapter_err;
switch (dev->tuner_type) {
case TUNER_XC2028: {
struct xc2028_config cfg = {
.i2c_adap = &dev->i2c_adap,
.i2c_addr = dev->tuner_addr,
};

dvb->frontend->callback = tm6000_tuner_callback;
ret = dvb_register_frontend(&dvb->adapter, dvb->frontend);
if (ret < 0) {
printk(KERN_ERR
"tm6000: couldn't register frontend\n");
goto adapter_err;
}

if (!dvb_attach(xc2028_attach, dvb->frontend, &cfg)) {
printk(KERN_ERR "tm6000: couldn't register "
"frontend (xc3028)\n");
ret = -EINVAL;
goto frontend_err;
}
printk(KERN_INFO "tm6000: XC2028/3028 asked to be "
"attached to frontend!\n");
break;
}
case TUNER_XC5000: {
struct xc5000_config cfg = {
.i2c_address = dev->tuner_addr,
};

dvb->frontend->callback = tm6000_xc5000_callback;
ret = dvb_register_frontend(&dvb->adapter, dvb->frontend);
if (ret < 0) {
printk(KERN_ERR
"tm6000: couldn't register frontend\n");
goto adapter_err;
}

if (!dvb_attach(xc5000_attach, dvb->frontend, &dev->i2c_adap, &cfg)) {
printk(KERN_ERR "tm6000: couldn't register "
"frontend (xc5000)\n");
ret = -EINVAL;
goto frontend_err;
}
printk(KERN_INFO "tm6000: XC5000 asked to be "
"attached to frontend!\n");
break;
}
}

if (!dvb_attach(xc2028_attach, dvb->frontend, &cfg)) {
printk(KERN_ERR "tm6000: couldn't register "
"frontend (xc3028)\n");
ret = -EINVAL;
goto frontend_err;
}
printk(KERN_INFO "tm6000: XC2028/3028 asked to be "
"attached to frontend!\n");
} else {
printk(KERN_ERR "tm6000: no frontend found\n");
}
Expand Down

0 comments on commit ea44d37

Please sign in to comment.