diff -Naur v4l-dvb/linux/Documentation/video4linux/CARDLIST.cx23885 v4l-dvb_dev/linux/Documentation/video4linux/CARDLIST.cx23885 --- v4l-dvb/linux/Documentation/video4linux/CARDLIST.cx23885 2008-08-31 07:55:32.000000000 +1000 +++ v4l-dvb_dev/linux/Documentation/video4linux/CARDLIST.cx23885 2008-09-05 08:07:19.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 v4l-dvb/linux/drivers/media/video/cx23885/cx23885-cards.c v4l-dvb_dev/linux/drivers/media/video/cx23885/cx23885-cards.c --- v4l-dvb/linux/drivers/media/video/cx23885/cx23885-cards.c 2008-08-31 07:55:32.000000000 +1000 +++ v4l-dvb_dev/linux/drivers/media/video/cx23885/cx23885-cards.c 2008-09-05 08:07:19.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 */ @@ -612,6 +632,7 @@ case CX23885_BOARD_HAUPPAUGE_HVR1800lp: case CX23885_BOARD_HAUPPAUGE_HVR1700: case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: + case CX23885_BOARD_COMPRO_VIDEOMATE_E650: request_module("cx25840"); break; } diff -Naur v4l-dvb/linux/drivers/media/video/cx23885/cx23885-dvb.c v4l-dvb_dev/linux/drivers/media/video/cx23885/cx23885-dvb.c --- v4l-dvb/linux/drivers/media/video/cx23885/cx23885-dvb.c 2008-08-31 07:55:32.000000000 +1000 +++ v4l-dvb_dev/linux/drivers/media/video/cx23885/cx23885-dvb.c 2008-09-05 08:07:19.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 v4l-dvb/linux/drivers/media/video/cx23885/cx23885.h v4l-dvb_dev/linux/drivers/media/video/cx23885/cx23885.h --- v4l-dvb/linux/drivers/media/video/cx23885/cx23885.h 2008-08-31 07:55:32.000000000 +1000 +++ v4l-dvb_dev/linux/drivers/media/video/cx23885/cx23885.h 2008-09-05 08:07:19.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 (\ diff -Naur v4l-dvb/linux/drivers/media/video/cx25840/cx25840-core.c v4l-dvb_dev/linux/drivers/media/video/cx25840/cx25840-core.c --- v4l-dvb/linux/drivers/media/video/cx25840/cx25840-core.c 2008-08-31 07:55:32.000000000 +1000 +++ v4l-dvb_dev/linux/drivers/media/video/cx25840/cx25840-core.c 2008-09-05 08:08:04.000000000 +1000 @@ -1438,11 +1438,11 @@ state->id = id; state->rev = device_id; - if (state->is_cx23885) { +// if (state->is_cx23885) { /* Drive GPIO2 direction and values */ - cx25840_write(client, 0x160, 0x1d); - cx25840_write(client, 0x164, 0x00); - } +// cx25840_write(client, 0x160, 0x1d); +// cx25840_write(client, 0x164, 0x00); +// } return 0; }