[linux-dvb] Artec T1 -> Tuning failed : a suggestion

Alan alan.crevon at wanadoo.fr
Mon Jun 12 09:01:57 CEST 2006


arf... i cannot give up with this... I bought a card, and i want to use it  
;)

Using the search function in HG, i found that Patrick Boettcher's tree was  
the only tree with changes specific to Artec T1 models, so i compiled this  
branch, installed and reboot... and then nothing happened at all. I mean,  
the device was not registered at all, and the firmware was of course not  
loaded.

I read in dvbusb-mb.c from  
http://linuxtv.org/hg/~pb/v4l-dvb.stk3000p?f=f633dd920a72;file=linux/drivers/media/dvb/dvb-usb/dibusb-mb.c;style=gitweb  
:

  * XXX: As Artec just 'forgot' to program the EEPROM on some Artec T1  
devices
  *      we don't catch these faulty IDs (namely 'Cypress FX1 USB  
controller') that
  *      have been left on the device. If you don't have such a device but  
an Artec
  *      device that's supposed to work with this driver but is not  
detected by it,
  *      free to enable CONFIG_DVB_USB_DIBUSB_MB_FAULTY via your kernel  
config.

so i looked at the configuration for my mandriva kernel, and indeed this  
config is not enabled.

Now something is really strange to me : using the default branch, the  
device is registered, and the firmware loads, without having to enable  
anything at kernel compilation. Yet i noticed several differences between  
the way pll is set in stk3000 branch and the master branch :
______________________________________________
stk3000p
______________________________________________
static int dibusb_dib3000mb_frontend_attach(struct dvb_usb_device *d)
{
	struct dib3000_config demod_cfg;
	struct dibusb_state *st = d->priv;

	demod_cfg.demod_address = 0x8;
	demod_cfg.pll_set = dvb_usb_pll_set_i2c;
	demod_cfg.pll_init = dvb_usb_pll_init_i2c;

	if ((d->fe = dib3000mb_attach(&demod_cfg,&d->i2c_adap,&st->ops)) == NULL)
		return -ENODEV;

	d->tuner_pass_ctrl = st->ops.tuner_pass_ctrl;

	return 0;
}
__________________________________________________
master branch
__________________________________________________
static int dibusb_dib3000mb_frontend_attach(struct dvb_usb_device *d)
{
	struct dib3000_config demod_cfg;
	struct dibusb_state *st = d->priv;

	demod_cfg.demod_address = 0x8;

	if ((d->fe = dib3000mb_attach(&demod_cfg,&d->i2c_adap,&st->ops)) == NULL)  
{
		d->fe->ops.tuner_ops.init = dvb_usb_tuner_init_i2c;
		d->fe->ops.tuner_ops.set_params = dvb_usb_tuner_set_params_i2c;
		return -ENODEV;
	}

	d->tuner_pass_ctrl = st->ops.tuner_pass_ctrl;

	return 0;
}

Once again, i am not a developper, so i cannot edit code source without  
getting compilation errors, and there is a huge probability for what i'm  
saying is complete non sense, but i feel like there may be something to  
digg, here. If anyone feels ready to work on this, then feel free.

I will keep on looking at this, but i feel it may be the last idea i will  
have about this.

Good luck everyone, and thanks for your attention.

alan



More information about the linux-dvb mailing list