Any chance of help with v4l-dvb-experimental / Avermedia A16D please?
A message that is not in the archive (sent off-list or not yet received): 1206635698.5965.5.camel@ubuntu
Quoted 5 lines · On Fri, 28 Mar 2008 01:34:58 +0900 timf <[email protected]> wrote:
[ 53.141643] xc2028 2-0061: seek_firmware called, want type=F8MHZ SCODE (20000002), id 0000000100000007. [ 53.141649] xc2028 2-0061: Selecting best matching firmware (3 bits) for type=SCODE (20000000), id 0000000100000007: [ 53.141654] xc2028 2-0061: Found firmware for type=SCODE (20000000), id 0000000200000007. [ 53.141658] xc2028 2-0061: Loading SCODE for type=SCODE HAS_IF_5640 (60000000), id 0000000200000007. [ 53.233496] xc2028 2-0061: Device is Xceive 3028 version 1.0, firmware version 2.7
Unfortunately, you've suppressed the previous firmware loading lines. Up to here, everything is OK.
Quoted 1 line
[ 53.445170] xc2028 2-0061: Device is Xceive 3028 version 1.0, firmware version 2.7
Still OK here.
Quoted 1 line
Mar 28 00:25:41 ubuntu kernel: [ 352.902182] xc2028 2-0061: checking firmware, user requested type=F8MHZ (2), id 00000000000000ff, scode_tbl (0), scode_nr 0
Now, tvtime asked a different firmware from the previous one. tuner-xc2028 will try to load a new firmware set to match your video standard.
Quoted 3 lines
Mar 28 00:25:41 ubuntu kernel: [ 352.902196] xc2028 2-0061: load_firmware called Mar 28 00:25:41 ubuntu kernel: [ 352.902199] xc2028 2-0061: seek_firmware called, want type=BASE F8MHZ (3), id 0000000000000000. Mar 28 00:25:41 ubuntu kernel: [ 352.902203] xc2028 2-0061: Found firmware for type=BASE F8MHZ (3), id 0000000000000000.
It is trying to load F8MHz base firmware. This firmware seemed to be already loaded, but, since you've asked for a different standard, it will discard and reload the firmwares.
Quoted 5 lines
Mar 28 00:25:41 ubuntu kernel: [ 352.902207] xc2028 2-0061: Loading firmware for type=BASE F8MHZ (3), id 0000000000000000. Mar 28 00:25:41 ubuntu kernel: [ 352.903020] xc2028 2-0061: i2c output error: rc = -5 (should be 64) Mar 28 00:25:41 ubuntu kernel: [ 352.903022] xc2028 2-0061: -5 returned from send Mar 28 00:25:41 ubuntu kernel: [ 352.903026] xc2028 2-0061: Error -22 while loading base firmware Mar 28 00:25:42 ubuntu kernel: [ 352.955955] xc2028 2-0061: Retrying firmware load
The driver didn't like the idea of changing the firmware. Probably, the RESET command is wrong or incomplete (i suspect the latter).
If you look on other drivers, like cx88, a reset do something like:
cx_write(MO_GP1_IO, 0x101010);
mdelay(250);
cx_write(MO_GP1_IO, 0x101000);
mdelay(250);
cx_write(MO_GP1_IO, 0x101010);
mdelay(250);The first command is probably not needed, but the basic idea is to do something like ON-OFF-ON. However, on saa7134 code is something like:
saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0x06e20000);
saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0x06a20000);I suspect that this should be something like:
saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0x06e20000);
saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0x06a20000);
mdelay(250);
saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0);
saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0);
mdelay(250);
saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0x06e20000);
saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0x06a20000);
mdelay(250);OR:
saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0);
saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0);
mdelay(250);
saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0x06e20000);
saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0x06a20000);
mdelay(250);
saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0);
saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0);To be sure, I would need to have the regspy.exe (from Dscaler) results when a reset occurs on your board.
Could you please try to play with those things on your board and post the results?
Another interesting test would be to not let tvtime to select a different standard, but, instead, the same std loaded initially. This may help to see if your tuner is ok (if you see some kind of white noise or a bad tuned channel - this means that tuner is working - of course you'll need to disable signal detection).
Cheers,
Mauro
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
A message that is not in the archive (sent off-list or not yet received): 1206683274.5986.6.camel@ubuntu
Quoted 5 lines · On Fri, 28 Mar 2008 14:47:54 +0900 timf <[email protected]> wrote:
Hi Mauro,
I just had to quickly tell you that I built it with this, rebooted, clicked on tvtime, and waited anxiously watching a black screen - then WAHOO! A TV program I am viewing!!
Great!
I've committed the patch with what we currently have. Please test if analog keeps working with the patch.
Now, it is time to work with the demod side.
Please, change the #if 0 to #if 1:
#if 0
/* Not working yet */
.mpeg = SAA7134_MPEG_DVB,#endif
And test to see if analog still works fine. If ok, please test the digital side.
You may need to figure out the proper parameters for mt352, on this part of the code(at saa7134-dvb):
static int mt352_aver_a16d_init(struct dvb_frontend *fe)
{
static u8 clock_config [] = { CLOCK_CTL, 0x38, 0x2d };
static u8 reset [] = { RESET, 0x80 };
static u8 adc_ctl_1_cfg [] = { ADC_CTL_1, 0x40 };
static u8 agc_cfg [] = { AGC_TARGET, 0x28, 0xa0 };
static u8 capt_range_cfg[] = { CAPT_RANGE, 0x33 };
mt352_write(fe, clock_config, sizeof(clock_config));
udelay(200);
mt352_write(fe, reset, sizeof(reset));
mt352_write(fe, adc_ctl_1_cfg, sizeof(adc_ctl_1_cfg));
mt352_write(fe, agc_cfg, sizeof(agc_cfg));
mt352_write(fe, capt_range_cfg, sizeof(capt_range_cfg));
return 0;
}You may need to try to change the above code, trying other existing mt352 code, or using some tool to get the initialization code done by your windows driver.
Cheers,
Mauro
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb