提交 7b134e85 编写于 作者: I Igor M. Liplianin 提交者: Mauro Carvalho Chehab

[media] cx23885: TeVii s471 card support

The card is similar to TeVii s470, but has different LNB power control.
Signed-off-by: NIgor M. Liplianin <liplianin@me.by>
Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
上级 6b363f9f
...@@ -1114,7 +1114,10 @@ static int ds3000_set_frontend(struct dvb_frontend *fe) ...@@ -1114,7 +1114,10 @@ static int ds3000_set_frontend(struct dvb_frontend *fe)
ds3000_writereg(state, ds3000_writereg(state,
ds3000_dvbs2_init_tab[i], ds3000_dvbs2_init_tab[i],
ds3000_dvbs2_init_tab[i + 1]); ds3000_dvbs2_init_tab[i + 1]);
ds3000_writereg(state, 0xfe, 0x98); if (c->symbol_rate >= 30000000)
ds3000_writereg(state, 0xfe, 0x54);
else
ds3000_writereg(state, 0xfe, 0x98);
break; break;
default: default:
return 1; return 1;
......
...@@ -497,6 +497,10 @@ struct cx23885_board cx23885_boards[] = { ...@@ -497,6 +497,10 @@ struct cx23885_board cx23885_boards[] = {
.name = "TerraTec Cinergy T PCIe Dual", .name = "TerraTec Cinergy T PCIe Dual",
.portb = CX23885_MPEG_DVB, .portb = CX23885_MPEG_DVB,
.portc = CX23885_MPEG_DVB, .portc = CX23885_MPEG_DVB,
},
[CX23885_BOARD_TEVII_S471] = {
.name = "TeVii S471",
.portb = CX23885_MPEG_DVB,
} }
}; };
const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
...@@ -705,6 +709,10 @@ struct cx23885_subid cx23885_subids[] = { ...@@ -705,6 +709,10 @@ struct cx23885_subid cx23885_subids[] = {
.subvendor = 0x153b, .subvendor = 0x153b,
.subdevice = 0x117e, .subdevice = 0x117e,
.card = CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL, .card = CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL,
}, {
.subvendor = 0xd471,
.subdevice = 0x9022,
.card = CX23885_BOARD_TEVII_S471,
}, },
}; };
const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
...@@ -1460,6 +1468,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) ...@@ -1460,6 +1468,7 @@ void cx23885_card_setup(struct cx23885_dev *dev)
ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
break; break;
case CX23885_BOARD_TEVII_S470: case CX23885_BOARD_TEVII_S470:
case CX23885_BOARD_TEVII_S471:
case CX23885_BOARD_DVBWORLD_2005: case CX23885_BOARD_DVBWORLD_2005:
ts1->gen_ctrl_val = 0x5; /* Parallel */ ts1->gen_ctrl_val = 0x5; /* Parallel */
ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */
......
...@@ -1046,6 +1046,13 @@ static int cx23885_dev_setup(struct cx23885_dev *dev) ...@@ -1046,6 +1046,13 @@ static int cx23885_dev_setup(struct cx23885_dev *dev)
if (cx23885_boards[dev->board].ci_type > 0) if (cx23885_boards[dev->board].ci_type > 0)
cx_clear(RDR_RDRCTL1, 1 << 8); cx_clear(RDR_RDRCTL1, 1 << 8);
switch (dev->board) {
case CX23885_BOARD_TEVII_S470:
case CX23885_BOARD_TEVII_S471:
cx_clear(RDR_RDRCTL1, 1 << 8);
break;
}
return 0; return 0;
} }
......
...@@ -1173,6 +1173,13 @@ static int dvb_register(struct cx23885_tsport *port) ...@@ -1173,6 +1173,13 @@ static int dvb_register(struct cx23885_tsport *port)
break; break;
} }
break; break;
case CX23885_BOARD_TEVII_S471:
i2c_bus = &dev->i2c_bus[1];
fe0->dvb.frontend = dvb_attach(ds3000_attach,
&tevii_ds3000_config,
&i2c_bus->i2c_adap);
break;
default: default:
printk(KERN_INFO "%s: The frontend of your DVB/ATSC card " printk(KERN_INFO "%s: The frontend of your DVB/ATSC card "
" isn't supported yet\n", " isn't supported yet\n",
......
...@@ -89,6 +89,7 @@ ...@@ -89,6 +89,7 @@
#define CX23885_BOARD_MPX885 32 #define CX23885_BOARD_MPX885 32
#define CX23885_BOARD_MYGICA_X8507 33 #define CX23885_BOARD_MYGICA_X8507 33
#define CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL 34 #define CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL 34
#define CX23885_BOARD_TEVII_S471 35
#define GPIO_0 0x00000001 #define GPIO_0 0x00000001
#define GPIO_1 0x00000002 #define GPIO_1 0x00000002
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册