• Trent Piepho's avatar
    V4L/DVB (5886): zr36067: Fix problem setting norms · c812b67c
    Trent Piepho authored
    The zr36067 driver doesn't make a distinction between the different sub-types
    of NTSC, PAL, or SECAM norms.  For example, when the enum std ioctl returns
    the PAL standard it returns PAL_BG|PAL_DK|PAL_H|PAL_I.
    
    When setting the norm, it required the bitmask to match exactly the set of
    norms used during the enumeration.  If just one norm was specified, for
    example PAL_BG or NTSC_M, it would fail.  This violates the V4L2 spec,
    "VIDIOC_S_STD accepts *one* or more flags..."
    
    The key thing to realize is that V4L2_STD_PAL is not one bit, it is multiple
    bits.  It's ok to call S_STD with any *one* of those bits, but the driver was
    requiring *all* of them.
    
    This fixes the S_STD function so that it will accept any set of one or more
    PAL norms as PAL, and the same for NTSC and SECAM.
    Signed-off-by: default avatarTrent Piepho <xyzzy@speakeasy.org>
    Acked-by: default avatarRonald S. Bultje <rbultje@ronald.bitfreak.net>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
    c812b67c
zoran_driver.c 113 KB