• Russell King's avatar
    V4L/DVB (5700): Saa7111: fix picture settings cache bug · 624fc7f5
    Russell King authored
    If the SAA7111 device is powered down, and requires re-initialisation when
    the V4L device is opened (as on the NetWinder), the SAA7111 driver gets
    completely confused about the current settings.
    
    The problem is centred around the way the driver keeps _two_ cached copies
    of the current settings - one of the struct video_picture settings, and one
    of the registers.
    
    When the decoder is re-initailised, the cached register settings are
    overwritten, as are the values in the hardware registers.  However, the
    cached video_picture settings are not.
    
    Resolve this by removing the useless and buggy second level of caching for
    video_picture.  Instead, provide a function which updates register values
    if and only if the value we are going to write to the register has changed.
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
    624fc7f5
saa7111.c 13.6 KB