• Devin Heitmueller's avatar
    [media] au8522: properly recover from the au8522 delivering misaligned TS streams · 43f2cccf
    Devin Heitmueller authored
    There is an apparent bug in the au8522 TS clocking which can result in
    it delivering a TS payload to the au0828 that is shifted by some number
    of bits. For example, the device will announce a packet containing "FA
    38 FF F8" which if you shift left one bit is "1F 47 1F FF F0..."
    
    This presents itself as no TS stream being delivered from the kernel to
    userland, since the kernel demux will drop every packet.
    
    In the event that this condition occurs, restart the DVB stream.
    
    Also, this patch includes a couple of lines of cleanup to not change the
    FIFO configuration while the FIFO is running (which can screw up the
    state machine), and dequeue the buffers before turning off the FIFO.
    This puts the logic in sync with the Windows driver.
    Signed-off-by: default avatarDevin Heitmueller <dheitmueller@kernellabs.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    43f2cccf
au0828-dvb.c 12.4 KB