Hi Mauro, On Thu, 2008-03-27 at 14:42 -0300, Mauro Carvalho Chehab wrote: > On Fri, 28 Mar 2008 01:34:58 +0900 > timf <timf@xxxxxxxxxxxx> 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. > > > [ 53.445170] xc2028 2-0061: Device is Xceive 3028 version 1.0, firmware version 2.7 > > Still OK here. > > > 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. > > > 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. > > > 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 I couldn't help myself!!!!! As a try1, I placed this into xc2028-reset, in saa7134-cards.c: 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); 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!! OK, calm down me. I will do some more digging, try some different settings, but good news - the tuner works. I will do some debugs and post the results to you and all. Yaaay! Regards, Tim _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb