On Sun, 2008-09-14 at 13:39 -0400, Rick wrote:
> Andy Walls wrote:
> 
> > This strongly indicates that there is no Z8 chip on the board.  It could
> > also indicate that it is there, but not responding for some reason.
> > You'll need to do a visual inspection or write a small program to
> > stimulate the ivtv driver's private ioctl() for resetting the Z8 IR
> > chip.
> > 


> Since I wouldn't know the first thing about writing a small program to
> stimulate the chip, I opted to dig out the PC and do a visual
> inspection.  Both cards look identical with the exception of a few
> serial numbers.  In the process I physically took out each card in the
> hopes that putting them back in would mysteriously fix it.  It works
> with DVD's, so why wouldn't it work with components? :)  Oh well...
> 
> Good card:
>       NTSC/NTSC-J
>       26032 Rev C199
>       Z8F0811 chip
>       Back of card markings: 3205 8182327
> 
> Other card:
>       NTSC/NTSC-J
>       26032 Rev C199
>       Z8F0811 chip
>       Back: 3205 8162573

Ok.  So we know for sure that one is there.  But it's not responding.
The are two simple corrective actions you can take

1. Force the use of the alternate ivtv i2c implementation using
"newi2c=1" option when modprobing the ivtv driver.  This may not work.


2. Have the ivtv driver force a reset of the chip

a. using ivtvctl, after modprobeing the ivtv module, but before
modprobing the lirc_pvr150 module:

        # ivtvctl -d /dev/videoX --reset 1

Or,
b. Adding a reset to the lirc_pvr150 module code:

In lirc-0.8.3-cvs-pvr150/drivers/lirc_pvr150/lirc_pvr150.c in the
function ir_probe() you want to add a new "if" statement to check
specifcally for an ivtv adapter and then reset the IR chip before a
probe.  Something like:


        int have_rx = 0, have_tx = 0;

        if (strncmp(adap->name, "ivtv", 4) == 0) {
                ivtv_reset_ir_gpio(i2c_get_adapdata(adap));
                set_current_state(TASK_UNINTERRUPTIBLE);
                schedule_timeout((100 * HZ + 999) / 1000);
        }

        /* The external IR receiver is at i2c address 0x71 on the PVR-150
           The IR transmitter is at 0x70.
         */






If none of that works, the only other near impossible option is to
reflash the real firmware into the microcontroller.  Really only
Hauppauge could do that for you (I know how it could be done, but it's a
bit of work, I don't have the real image to flash into the chip anyway,
and the real image likely can't be legally distributed freely).


FYI, the "firmware" the lirc_pvr150 module is not the Z8 microcontroller
firmware, but strings of sequences to send to the Z8.  The lirc_pvr150
module works by performing a "replay attack" using what the Windows
driver is known to send to the chip.


Regards,
Andy



_______________________________________________
ivtv-users mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-users

Reply via email to