[linux-dvb] TechnoTrend C-1200 USB DVB-C

Thomas Kaiser linux-dvb at kaiser-linux.li
Sun Apr 2 17:38:06 CEST 2006


Hello All

I thought I will start a new thread (DVB-C USB) does not mean alot.

I am trying to get this device working.

The USB-ID is 0b48:1004 and it is the same as the C-1100 device. Gavin 
Hamill reported that his device (C-1100) is working.

I checked the components. The C-1200 has a STMicroelectronics STV0297D 
demu and a Philips TD1316A/SHIP tuner.
The C-1100 has ves1820/ALPS TDBE2.

The ttpci driver has support for STV0297D/TD1316A. So, I used this code 
to add support for the USB C-1200 but it does not really work :-(

I use 0x1c for .demod_address in stv0297_config which seems to work 
after I changed "stv0297_readreg"[1]

But that's it :-) I am no a bit lost. The drivers load fine and I don't 
get any error messages. scan reports "tuning failed" and xine is just 
busy if I try to connect to DVB.

Log:
Apr  2 17:13:32 localhost kernel: [4296743.064000] usb 2-2: new full 
speed USB device using uhci_hcd and address 3
Apr  2 17:13:34 localhost kernel: [4296745.099000] 
ttusb_init_controller: unknown STC version V 2.5, please report!
Apr  2 17:13:34 localhost kernel: [4296745.102000] 
ttusb_init_controller: dsp-version: 0.0
Apr  2 17:13:34 localhost kernel: [4296745.102000] DVB: registering new 
adapter (Technotrend/Hauppauge Nova-USB).
Apr  2 17:13:34 localhost kernel: [4296745.109000] stv0297 called
Apr  2 17:13:34 localhost kernel: [4296745.111000] stv0297_readreg 
reg=0x80, returned=0x20,
Apr  2 17:13:34 localhost kernel: [4296745.111000] DVB: registering 
frontend 0 (ST STV0297 DVB-C)...

Whats' next? Does a usbsnoop help?

Regards, Thomas



[1]:
static int stv0297_readreg(struct stv0297_state *state, u8 reg)
{
     int ret;
     u8 b0[] = { reg };
     u8 b1[] = { 0 };
     struct i2c_msg msg[] = { {.addr = 
state->config->demod_address,.flags = 0,.buf = b0,.len = 1},
                  {.addr = state->config->demod_address,.flags = 
I2C_M_RD,.buf = b1,.len = 1}
     };
/*TK test
     // this device needs a STOP between the register and data
     if ((ret = i2c_transfer(state->i2c, &msg[0], 1)) != 1) {
         dprintk("%s: readreg error (reg == 0x%02x, ret == %i)\n", 
__FUNCTION__, reg, ret);
         return -1;
     }
     if ((ret = i2c_transfer(state->i2c, &msg[1], 1)) != 1) {
         dprintk("%s: readreg error (reg == 0x%02x, ret == %i)\n", 
__FUNCTION__, reg, ret);
         return -1;
     }
*/

     if ((ret = i2c_transfer(state->i2c, msg, 2)) != 2) {
         dprintk("%s: readreg error (reg == 0x%02x, ret == %i)\n", 
__FUNCTION__, reg, ret);
         return -EREMOTEIO;
     }

     return b1[0];
}


-- 
http://www.kaiser-linux.li



More information about the linux-dvb mailing list