• Devin Heitmueller's avatar
    V4L/DVB (13330): s5h1409: properly handle QAM optimization after lock achieved · f0cd44b4
    Devin Heitmueller authored
    The sh51409 driver was only doing the QAM optimization a single time, and it
    would only occur if you received a lock instantaneously after the tuning
    request.  Restructure the code so that the optimization occurs once you reach
    a signal lock.
    
    Note that this depends on the caller polling for status, but we don't have
    much choice at this point without an independent thread monitoring the lock
    status.  Also, at this point pretty much every application polls for status
    lock after doing the tune, so the likelihood of the optimization not occurring
    in the real world is pretty low.
    
    The state machine has also been reworked such that setting the interleave mode
    is now a dependency of doing the QAM optimization.  Before both were mutually
    exclusive, which was not consistent with the Windows driver.  We now have a
    single state machine that controls both.
    
    The changes as-is are only enabled for the HVR-1600.  Once the changes are
    tested with some of the other boards, this change should be made generic and
    the "_legacy" functions should be removed.
    
    This work was sponsored by ONELAN Limited.
    Signed-off-by: default avatarDevin Heitmueller <dheitmueller@kernellabs.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    f0cd44b4
s5h1409.c 23.1 KB