Compro VideoMate E600F analog - someone please take pity on me and help me.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have Compro VideoMate E600F analog PCIe TV/FM capture card with MPEG II A/V Encoder. I use Gentoo 2008.0 with 2.6.25-gentoo-r7 x86_64 kernel. There's no any support for this card on the V4L/DVB repository yet, so anybody help me?

Conexant CX23885-13Z PCIe A/V Decoder
Conexant CX23417-11Z MPEG II A/V Encoder
XCeive XC2028ACQ Video Tuner

lsmod:
Module                  Size  Used by
tuner_xc2028           18992  1
tuner                  24972  0
cx25840                26096  0
cx23885               100348  0
cx2341x                11268  1 cx23885
videobuf_dma_sg        11844  1 cx23885
fglrx                2278056  27
btcx_risc               4232  1 cx23885
tveeprom               13508  1 cx23885
videobuf_dvb            5060  1 cx23885
dvb_core               74996  1 videobuf_dvb
snd_hda_intel         331316  5
videobuf_core          16516  3 cx23885,videobuf_dma_sg,videobuf_dvb

dmesg:
v4l1_compat: module is already loaded
videodev: exports duplicate symbol video_unregister_device (owned by kernel)
compat_ioctl32: exports duplicate symbol v4l_compat_ioctl32 (owned by kernel)
cx23885 driver version 0.0.1 loaded
ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 16 (level, low) -> IRQ 16
CORE cx23885[0]: subsystem: 185b:e800, board: Compro Videomate E600F [card=12,autodetected]
cx23885[0]: i2c bus 0 registered
cx23885[0]: i2c bus 1 registered
cx23885[0]: i2c bus 2 registered
tveeprom 1-0050: Encountered bad packet header [ff]. Corrupt or not a Hauppauge eeprom.
cx23885[0]: warning: unknown hauppauge model #0
cx23885[0]: hauppauge eeprom: model=0
v4l2_common: exports duplicate symbol v4l2_i2c_attach (owned by kernel)
cx25840' 3-0044: cx25  0-21 found @ 0x88 (cx23885[0])
v4l2_common: exports duplicate symbol v4l2_i2c_attach (owned by kernel)
v4l1_compat: module is already loaded
videodev: exports duplicate symbol video_unregister_device (owned by kernel)
tuner' 1-0068: chip found @ 0xd0 (cx23885[0])
tuner' 2-0061: chip found @ 0xc2 (cx23885[0])
xc2028 2-0061: creating new instance
xc2028 2-0061: type set to XCeive xc2028/xc3028 tuner
xc2028 2-0061: destroying instance
xc2028 2-0061: creating new instance
xc2028 2-0061: type set to XCeive xc2028/xc3028 tuner
cx23885[0]/0: registered device video31 [v4l2]
cx23885[0]/1: registered ALSA audio device
xc2028 2-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
xc2028 2-0061: Loading firmware for type=BASE (1), id 0000000000000000.
xc2028 2-0061: Loading firmware for type=(0), id 000000000000b700.
SCODE (20000000), id 000000000000b700:
xc2028 2-0061: Loading SCODE for type=MONO SCODE HAS_IF_4320 (60008000), id 0000000000008000.
cx25840' 3-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382 bytes)
cx23885[0]: registered device video31 [mpeg]
cx23885_dev_checkrevision() Hardware revision = 0xb0
cx23885[0]/0: found at 0000:02:00.0, rev: 2, irq: 16, latency: 0, mmio: 0xfd600000
PCI: Setting latency timer of device 0000:02:00.0 to 64

patch:
diff -Naur czysty/cx23885-audio/linux/drivers/media/video/cx23885/cx23885-cards.c cx23885-audio/linux/drivers/media/video/cx23885/cx23885-cards.c
--- czysty/cx23885-audio/linux/drivers/media/video/cx23885/cx23885-cards.c      2009-03-15 21:25:47.000000000 +0100
+++ cx23885-audio/linux/drivers/media/video/cx23885/cx23885-cards.c     2009-03-15 21:39:56.000000000 +0100
@@ -178,6 +178,33 @@
                .portb          = CX23885_MPEG_DVB,
                .portc          = CX23885_MPEG_DVB,
        },
+       [CX23885_BOARD_COMPRO_VIDEOMATE_E600F] = {
+               .name           = "Compro Videomate E600F",
+               .porta          = CX23885_ANALOG_VIDEO,
+               .portb          = CX23885_MPEG_ENCODER,
+               .tuner_type     = TUNER_XC2028,
+               .tuner_addr     = 0x61,
+               .input          = {{
+                       .type   = CX23885_VMUX_TELEVISION,
+                       .vmux   =       CX25840_VIN7_CH3 |
+                                       CX25840_VIN5_CH2 |
+                                       CX25840_VIN2_CH1,
+                       .gpio0  = 0,
+               }, {
+                       .type   = CX23885_VMUX_COMPOSITE1,
+                       .vmux   =       CX25840_VIN7_CH3 |
+                                       CX25840_VIN4_CH2 |
+                                       CX25840_VIN6_CH1,
+                       .gpio0  = 0,
+               }, {
+                       .type   = CX23885_VMUX_SVIDEO,
+                       .vmux   =       CX25840_VIN7_CH3 |
+                                       CX25840_VIN4_CH2 |
+                                       CX25840_VIN8_CH1 |
+                                       CX25840_SVIDEO_ON,
+                       .gpio0  = 0,
+               } },
+       },
 };
 const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);

@@ -253,6 +280,10 @@
                .subvendor = 0x18ac,
                .subdevice = 0xdb78,
                .card      = CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP,
+       },{
+               .subvendor = 0x185b,
+               .subdevice = 0xe800,
+               .card      = CX23885_BOARD_COMPRO_VIDEOMATE_E600F,
        },
 };
 const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
@@ -372,6 +403,7 @@
        case CX23885_BOARD_HAUPPAUGE_HVR1400:
        case CX23885_BOARD_HAUPPAUGE_HVR1500:
        case CX23885_BOARD_HAUPPAUGE_HVR1500Q:
+       case CX23885_BOARD_COMPRO_VIDEOMATE_E600F:
                /* Tuner Reset Command */
                if (command == 0)
                        bitmask = 0x04;
@@ -515,6 +547,15 @@
                mdelay(20);
                cx_set(GP0_IO, 0x000f000f);
                break;
+        case CX23885_BOARD_COMPRO_VIDEOMATE_E600F:
+               /* 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;
        }
 }

@@ -555,6 +596,7 @@
        case CX23885_BOARD_HAUPPAUGE_HVR1500:
        case CX23885_BOARD_HAUPPAUGE_HVR1500Q:
        case CX23885_BOARD_HAUPPAUGE_HVR1400:
+       case CX23885_BOARD_COMPRO_VIDEOMATE_E600F:
                if (dev->i2c_bus[0].i2c_rc == 0)
                        hauppauge_eeprom(dev, eeprom+0x80);
                break;
@@ -602,6 +644,7 @@
        case CX23885_BOARD_HAUPPAUGE_HVR1200:
        case CX23885_BOARD_HAUPPAUGE_HVR1700:
        case CX23885_BOARD_HAUPPAUGE_HVR1400:
+       case CX23885_BOARD_COMPRO_VIDEOMATE_E600F:
        default:
                ts2->gen_ctrl_val  = 0xc; /* Serial bus + punctured clock */
                ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
@@ -616,6 +659,7 @@
        case CX23885_BOARD_HAUPPAUGE_HVR1800lp:
        case CX23885_BOARD_HAUPPAUGE_HVR1700:
        case CX23885_BOARD_HAUPPAUGE_HVR1500:
+       case CX23885_BOARD_COMPRO_VIDEOMATE_E600F:
                request_module("cx25840");
                break;
        }
diff -Naur czysty/cx23885-audio/linux/drivers/media/video/cx23885/cx23885.h cx23885-audio/linux/drivers/media/video/cx23885/cx23885.h
--- czysty/cx23885-audio/linux/drivers/media/video/cx23885/cx23885.h    2009-03-15 21:25:47.000000000 +0100
+++ cx23885-audio/linux/drivers/media/video/cx23885/cx23885.h   2009-03-15 21:39:50.000000000 +0100
@@ -66,6 +66,7 @@
 #define CX23885_BOARD_HAUPPAUGE_HVR1400        9
 #define CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP 10
 #define CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP 11
+#define CX23885_BOARD_COMPRO_VIDEOMATE_E600F   12

 /* Currently unsupported by the driver: PAL/H, NTSC/Kr, SECAM B/G/H/LC */
 #define CX23885_NORMS (\

lspci -vvnn:
02:00.0 Multimedia video controller [0400]: Conexant Systems, Inc. CX23885 PCI Video and Audio Decoder [14f1:8852] (rev 02)
        Subsystem: Compro Technology, Inc. Device [185b:e800]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 4 bytes
        Interrupt: pin A routed to IRQ 16
        Region 0: Memory at fd600000 (64-bit, non-prefetchable) [size=2M]
        Capabilities: [40] Express (v1) Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr- TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <2us, L1 <4us
                        ClockPM- Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        Capabilities: [80] Power Management version 2
                Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [90] Vital Product Data
                Not readable
        Capabilities: [a0] MSI: Mask- 64bit+ Count=1/1 Enable-
                Address: 0000000000000000  Data: 0000
        Capabilities: [100] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                AERCap: First Error Pointer: 14, GenCap- CGenEn- ChkCap- ChkEn-
        Capabilities: [200] Virtual Channel <?>
        Kernel driver in use: cx23885
        Kernel modules: cx23885

i2cdetect -l:
i2c-0   smbus           SMBus PIIX4 adapter at 0b00             SMBus adapter
i2c-1   i2c             cx23885[0]                              I2C adapter
i2c-2   i2c             cx23885[0]                              I2C adapter
i2c-3   i2c             cx23885[0]                              I2C adapter

cat /dev/v4l/video*:
cat: /dev/v4l/video0: No such device
cat: /dev/v4l/video1: No such device

Detailed info:
http://linuxtv.org/wiki/index.php/Compro_VideoMate_E600F

Someone help me please?
Thanks for any help.

Marek Wasilow

PS: Sorry for my poor english...



      


_______________________________________________
linux-dvb users mailing list
For V4L/DVB development, please use instead linux-media@xxxxxxxxxxxxxxx
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux