Re: cx88 invalid video opcodes when VBI enabled

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

 



Hi,

On Tue, Apr 17, 2018 at 09:49:22PM -0400, Devin Heitmueller wrote:
> [   68.750809] cx88[0]: video y / packed - dma channel status dump
> [   68.750811] cx88[0]:   cmds: initial risc: 0x8aa98000
> [   68.750813] cx88[0]:   cmds: cdt base    : 0x00180440
> [   68.750815] cx88[0]:   cmds: cdt size    : 0x0000000c
> [   68.750816] cx88[0]:   cmds: iq base     : 0x00180400
[...]
> [   68.750887] cx88[0]: vbi - dma channel status dump
[...]
> [   68.750899] cx88[0]:   cmds: iq wr ptr   : 0x0000017f
> [   68.750901] cx88[0]:   cmds: iq rd ptr   : 0x00000011
> [   68.750902] cx88[0]:   cmds: cdt current : 0x00000638
[...]
> [   68.750910] cx88[0]:   risc0: 0x8aa98000 [ sync sol irq2 23 21 19 cnt0 resync count=0 ]
> [   68.750913] cx88[0]:   risc1: 0x00180440 [ INVALID 20 19 count=1088 ]
> [   68.750915] cx88[0]:   risc2: 0x0000000c [ INVALID count=12 ]
> [   68.750918] cx88[0]:   risc3: 0x00180400 [ INVALID 20 19 count=1024 ]

The VBI instruction queue read pointer points outside the VBI instruction
queue and into the video y/packed CMDS (to 0x180000+0x11*4). The values
next to the iq rd ptr look ok.

We only initialize the iq rd ptr to zero in cx88_sram_channel_setup and
then never touch it again. The hardware takes care of updating it.
Maybe cx88_sram_channel_setup is sometimes called for channel 24 while the
VBI risc engine is still running? One could try adding a WARN_ONCE at the
top of the function to catch that case.

Best regards,

  Daniel



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux