LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   TV tuner card and Xceive2028 (https://www.linuxquestions.org/questions/linux-hardware-18/tv-tuner-card-and-xceive2028-638670/)

janas03 04-29-2008 10:16 AM

TV tuner card and Xceive2028
 
Hi
Some time ago (when I didn't even think of using linux as a primary OS) I bought a TV tuner card Compro VideoMate X500. It is based on the Conexant CX23883/23880 chipset and Xceive2028 tuner. I was disappointed when I found that tv tuner is not working in linux, but some time ago support for Xceive family was added and since then several modifications were made to the code (v4l) so now xc family is working. But still in documentation and cardlist for cx88 there is no sign of my card :( . I tried to do it myself so I downloaded current package from http://www.linuxtv.org/hg/v4l-dvb and edited files in order to get my card working. I ended up with something like this:
In \linux\drivers\media\video\cx88\cx88.h I added definition of my device
Code:

/* ----------------------------------------------------------- */
/* card configuration                                          */
#define CX88_BOARD_COMPRO_X500            68

and then I edited \linux\drivers\media\video\cx88\cx88-cards.c
Code:

/* ------------------------------------------------------------------ */
/* board config info                                                  */
        [CX88_BOARD_COMPRO_X500] = {
              .name          = "Compro VideoMate X500",
              .tuner_type    = TUNER_XC2028,
              .tuner_addr    = 0x61,
              .input          = { {
                      .type  = CX88_VMUX_TELEVISION,
                      .vmux  = 0,
                      .gpio0  = 0x01000000,
                      .gpio1  = 0x00000000,
                      .gpio2  = 0x03000000,

              }, {
                      .type  = CX88_VMUX_COMPOSITE1,
                      .vmux  = 1,
                      .gpio0  = 0x02000000,
                      .gpio1  = 0x01000000,
                      .gpio2  = 0x04000000,

              }, {
                      .type  = CX88_VMUX_SVIDEO,
                      .vmux  = 2,
                      .gpio0  = 0x00000000,
                      .gpio1  = 0x02000000,
                      .gpio2  = 0x04000000,

              } },
              .radio = {
                      .type  = CX88_RADIO,
                      .gpio0  = 0x04000000,
                      .gpio1  = 0x00000000,
              }},
};
/* ------------------------------------------------------------------ */
/* PCI subsystem IDs                                                  */

static const struct cx88_subid cx88_subids[] = {
{
                .subvendor = 0x185b,
                .subdevice = 0xe000,
                .card      = CX88_BOARD_COMPRO_X500,
        },
};
void cx88_setup_xc3028(struct cx88_core *core, struct xc2028_ctrl *ctl)
{
        memset(ctl, 0, sizeof(*ctl));

        ctl->fname  = XC2028_DEFAULT_FIRMWARE;
        ctl->max_len = 64;

        switch (core->boardnr) {
        case CX88_BOARD_COMPRO_X500:
                ctl->fname = "xc3028-v27.fw";
                break;
        default:
                ctl->demod = XC3028_FE_OREN538;
                ctl->mts = 1;
        }
}

GPIO values I took from windows inf file (but I have no idea if I did it correctly). This is what I managed to do, but there is another problem. I'm using 2.6.21-5 kernel and when I attempt to make modules cx88 doesn't compile. I don't know how to resolve it. Is anybody that can help me or should I buy another tv card?

I tried to write to Mauro Carvalho Chehab, but he always says me to do it the way the community does (make a commit etc.) and I just can't. It's too hard for me. I would like to get rid of M$ but not working tv card stops me.


All times are GMT -5. The time now is 01:37 AM.