Re: Artec T1 -> Tuning failed : a suggestion

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

 



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

_______________________________________________

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