The only change I made to the frame reader was the interrupt patch I posted. I installed 9.1 SP1 today and was a bit surprised to see they did not fix the interrupt issue.
Are you still trying to do interlaced video?
If yes, then the interlaced value you specify for the control packet would have to alternate every field. One tricky thing I ran into with the interrupt is that immediately after the interrupt fires, the frame reader will start the next frame, if it is still enabled, even before you service the interrupt and clear the flag. This makes it impossible to switch frames cleanly.
The solution is to clear the enable bit immediately after you set it. The frame read will finish the current frame even when you clear the enable bit. Then, when the interrupt fires, you can switch the frame setup cleanly. Reset the interrupt flag before momentarily re-enabling the frame reader.
To clear the interrupt:
IOWR(ALT_VIP_VFR_0_BASE, 2, 2);
To kick off the next (or first) frame:
IOWR(ALT_VIP_VFR_0_BASE, 0, 3);
IOWR(ALT_VIP_VFR_0_BASE, 0, 2);