diff -Naur cx23885-leadtek/linux/Documentation/video4linux/CARDLIST.cx23885 cx23885-leadtek_dev/linux/Documentation/video4linux/CARDLIST.cx23885 --- cx23885-leadtek/linux/Documentation/video4linux/CARDLIST.cx23885 2008-08-27 16:40:14.000000000 +1000 +++ cx23885-leadtek_dev/linux/Documentation/video4linux/CARDLIST.cx23885 2008-08-27 16:52:56.000000000 +1000 @@ -11,3 +11,4 @@ 10 -> DViCO FusionHDTV7 Dual Express [18ac:d618] 11 -> DViCO FusionHDTV DVB-T Dual Express [18ac:db78] 12 -> Leadtek Winfast PxDVR3200 H [107d:6681] + 13 -> Compro VideoMate E650 [185b:e800] diff -Naur cx23885-leadtek/linux/drivers/media/video/cx23885/cx23885-cards.c cx23885-leadtek_dev/linux/drivers/media/video/cx23885/cx23885-cards.c --- cx23885-leadtek/linux/drivers/media/video/cx23885/cx23885-cards.c 2008-08-27 16:40:15.000000000 +1000 +++ cx23885-leadtek_dev/linux/drivers/media/video/cx23885/cx23885-cards.c 2008-08-27 16:52:54.000000000 +1000 @@ -159,6 +159,10 @@ .name = "Leadtek Winfast PxDVR3200 H", .portc = CX23885_MPEG_DVB, }, + [CX23885_BOARD_COMPRO_VIDEOMATE_E650] = { + .name = "Compro VideoMate E650", + .portc = CX23885_MPEG_DVB, + }, }; const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); @@ -238,6 +242,10 @@ .subvendor = 0x107d, .subdevice = 0x6681, .card = CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H, + }, { + .subvendor = 0x185b, + .subdevice = 0xe800, + .card = CX23885_BOARD_COMPRO_VIDEOMATE_E650, }, }; const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); @@ -358,6 +366,7 @@ case CX23885_BOARD_HAUPPAUGE_HVR1500: case CX23885_BOARD_HAUPPAUGE_HVR1500Q: case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: + case CX23885_BOARD_COMPRO_VIDEOMATE_E650: /* Tuner Reset Command */ bitmask = 0x04; break; @@ -510,6 +519,16 @@ mdelay(20); cx_set(GP0_IO, 0x00040004); break; + case CX23885_BOARD_COMPRO_VIDEOMATE_E650: + /* GPIO-2 xc3008 tuner reset */ + + /* Put the parts into reset and back */ + cx_set(GP0_IO, 0x00040000); + mdelay(20); + cx_clear(GP0_IO, 0x00000004); + mdelay(20); + cx_set(GP0_IO, 0x00040004); + break; } } @@ -598,6 +617,7 @@ case CX23885_BOARD_HAUPPAUGE_HVR1700: case CX23885_BOARD_HAUPPAUGE_HVR1400: case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: + case CX23885_BOARD_COMPRO_VIDEOMATE_E650: default: ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ diff -Naur cx23885-leadtek/linux/drivers/media/video/cx23885/cx23885-dvb.c cx23885-leadtek_dev/linux/drivers/media/video/cx23885/cx23885-dvb.c --- cx23885-leadtek/linux/drivers/media/video/cx23885/cx23885-dvb.c 2008-08-27 16:40:15.000000000 +1000 +++ cx23885-leadtek_dev/linux/drivers/media/video/cx23885/cx23885-dvb.c 2008-08-27 16:51:39.000000000 +1000 @@ -503,6 +503,7 @@ break; } case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: + case CX23885_BOARD_COMPRO_VIDEOMATE_E650: i2c_bus = &dev->i2c_bus[0]; port->dvb.frontend = dvb_attach(zl10353_attach, diff -Naur cx23885-leadtek/linux/drivers/media/video/cx23885/cx23885.h cx23885-leadtek_dev/linux/drivers/media/video/cx23885/cx23885.h --- cx23885-leadtek/linux/drivers/media/video/cx23885/cx23885.h 2008-08-27 16:40:15.000000000 +1000 +++ cx23885-leadtek_dev/linux/drivers/media/video/cx23885/cx23885.h 2008-08-27 16:42:06.000000000 +1000 @@ -67,6 +67,7 @@ #define CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP 10 #define CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP 11 #define CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H 12 +#define CX23885_BOARD_COMPRO_VIDEOMATE_E650 13 /* Currently unsupported by the driver: PAL/H, NTSC/Kr, SECAM B/G/H/LC */ #define CX23885_NORMS (\