summaryrefslogtreecommitdiffstats
path: root/drivers/media/pci/cx23885/cx23885-dvb.c
diff options
context:
space:
mode:
authorLuis Alves2013-10-02 03:11:35 +0200
committerMauro Carvalho Chehab2013-10-03 12:39:22 +0200
commite6001482d49ffe1554f55c47a4ed903e86fe69a5 (patch)
treebbd74471dabe84cb8bea45bdfbac7f0bf6e82bcd /drivers/media/pci/cx23885/cx23885-dvb.c
parent[media] dvb: add cx24117 frontend (diff)
downloadkernel-qcow2-linux-e6001482d49ffe1554f55c47a4ed903e86fe69a5.tar.gz
kernel-qcow2-linux-e6001482d49ffe1554f55c47a4ed903e86fe69a5.tar.xz
kernel-qcow2-linux-e6001482d49ffe1554f55c47a4ed903e86fe69a5.zip
[media] cx23885: add support for cx24117 with tbs6980 or tbs6981
Signed-off-by: Luis Alves <ljalvs@gmail.com> Reviewed-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/media/pci/cx23885/cx23885-dvb.c')
-rw-r--r--drivers/media/pci/cx23885/cx23885-dvb.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/cx23885-dvb.c
index 971e4ff1b87f..34120db1f51f 100644
--- a/drivers/media/pci/cx23885/cx23885-dvb.c
+++ b/drivers/media/pci/cx23885/cx23885-dvb.c
@@ -51,6 +51,7 @@
#include "stv6110.h"
#include "lnbh24.h"
#include "cx24116.h"
+#include "cx24117.h"
#include "cimax2.h"
#include "lgs8gxx.h"
#include "netup-eeprom.h"
@@ -461,6 +462,10 @@ static struct cx24116_config tbs_cx24116_config = {
.demod_address = 0x55,
};
+static struct cx24117_config tbs_cx24117_config = {
+ .demod_address = 0x55,
+};
+
static struct ds3000_config tevii_ds3000_config = {
.demod_address = 0x68,
};
@@ -1044,6 +1049,32 @@ static int dvb_register(struct cx23885_tsport *port)
fe0->dvb.frontend->ops.set_voltage = f300_set_voltage;
break;
+ case CX23885_BOARD_TBS_6980:
+ case CX23885_BOARD_TBS_6981:
+ i2c_bus = &dev->i2c_bus[1];
+
+ switch (port->nr) {
+ /* PORT B */
+ case 1:
+ fe0->dvb.frontend = dvb_attach(cx24117_attach,
+ &tbs_cx24117_config,
+ &i2c_bus->i2c_adap, NULL);
+ break;
+ /* PORT C */
+ case 2:
+ /* use fe1 pointer as temporary holder */
+ /* for the first frontend */
+ fe1 = videobuf_dvb_get_frontend(
+ &port->dev->ts1.frontends, 1);
+
+ fe0->dvb.frontend = dvb_attach(cx24117_attach,
+ &tbs_cx24117_config,
+ &i2c_bus->i2c_adap, fe1->dvb.frontend);
+ /* we're done, so clear fe1 pointer */
+ fe1 = NULL;
+ break;
+ }
+ break;
case CX23885_BOARD_TEVII_S470:
i2c_bus = &dev->i2c_bus[1];