diff -r -u drivers/media/dvb/frontends/ds3000.c drivers.NEW/media/dvb/frontends/ds3000.c --- drivers/media/dvb/frontends/ds3000.c 2011-03-03 04:45:11.000000000 +0000 +++ drivers.NEW/media/dvb/frontends/ds3000.c 2012-12-09 21:14:50.000000000 +0000 @@ -1129,7 +1129,10 @@ ds3000_writereg(state, ds3000_dvbs2_init_tab[i], 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; default: return 1; diff -r -u drivers/media/video/cx23885/cx23885-cards.c drivers.NEW/media/video/cx23885/cx23885-cards.c --- drivers/media/video/cx23885/cx23885-cards.c 2012-10-22 03:20:34.000000000 +0100 +++ drivers.NEW/media/video/cx23885/cx23885-cards.c 2012-12-09 21:17:44.000000000 +0000 @@ -240,6 +240,10 @@ .name = "TeVii S470", .portb = CX23885_MPEG_DVB, }, + [CX23885_BOARD_TEVII_S471] = { + .name = "TeVii S471", + .portb = CX23885_MPEG_DVB, + }, [CX23885_BOARD_DVBWORLD_2005] = { .name = "DVBWorld DVB-S2 2005", .portb = CX23885_MPEG_DVB, @@ -514,6 +518,10 @@ .subdevice = 0x9022, .card = CX23885_BOARD_TEVII_S470, }, { + .subvendor = 0xd471, + .subdevice = 0x9022, + .card = CX23885_BOARD_TEVII_S471, + }, { .subvendor = 0x0001, .subdevice = 0x2005, .card = CX23885_BOARD_DVBWORLD_2005, @@ -1404,6 +1412,7 @@ ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; break; case CX23885_BOARD_TEVII_S470: + case CX23885_BOARD_TEVII_S471: case CX23885_BOARD_DVBWORLD_2005: ts1->gen_ctrl_val = 0x5; /* Parallel */ ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ diff -r -u drivers/media/video/cx23885/cx23885-core.c drivers.NEW/media/video/cx23885/cx23885-core.c --- drivers/media/video/cx23885/cx23885-core.c 2011-10-09 16:00:14.000000000 +0100 +++ drivers.NEW/media/video/cx23885/cx23885-core.c 2012-12-09 21:36:17.000000000 +0000 @@ -1046,6 +1046,13 @@ if (cx23885_boards[dev->board].ci_type > 0) 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; } Only in drivers.NEW/media/video/cx23885: cx23885-core.c~ diff -r -u drivers/media/video/cx23885/cx23885-dvb.c drivers.NEW/media/video/cx23885/cx23885-dvb.c --- drivers/media/video/cx23885/cx23885-dvb.c 2011-10-16 15:40:47.000000000 +0100 +++ drivers.NEW/media/video/cx23885/cx23885-dvb.c 2012-12-09 21:25:04.000000000 +0000 @@ -1044,6 +1044,13 @@ fe0->dvb.frontend->ops.set_voltage = f300_set_voltage; 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; case CX23885_BOARD_DVBWORLD_2005: i2c_bus = &dev->i2c_bus[1]; diff -r -u drivers/media/video/cx23885/cx23885.h drivers.NEW/media/video/cx23885/cx23885.h --- drivers/media/video/cx23885/cx23885.h 2011-10-09 21:16:02.000000000 +0100 +++ drivers.NEW/media/video/cx23885/cx23885.h 2012-12-09 21:25:37.000000000 +0000 @@ -92,6 +92,7 @@ #define CX23885_BOARD_TBS_6980 32 #define CX23885_BOARD_TBS_6981 33 #define CX23885_BOARD_TBS_6921 34 +#define CX23885_BOARD_TEVII_S471 35 #define GPIO_0 0x00000001 #define GPIO_1 0x00000002