• Hans Verkuil's avatar
    V4L/DVB (12429): v4l2-ioctl: fix G_STD and G_PARM default handlers · 9bedc7f7
    Hans Verkuil authored
    The v4l core supplies default handlers for G_STD and G_PARM. However, both
    default handlers are buggy.
    
    This patch fixes the following:
    
    1) If no g_std is supplied and current_norm == 0, then this driver does not
       support TV video standards (e.g. a radio or webcam driver). Return
       -EINVAL. This ensures that there is no bogus VIDIOC_G_STD support for
       such drivers.
    
    2) The default VIDIOC_G_PARM handler used current_norm instead of first
       checking if the driver supported g_std and calling that to get the norm.
       It also didn't check if current_norm was 0, since in that case the driver
       does not support TV standards (or no standard was set at all) and the
       default handler should return -EINVAL.
    
    Note that I am very unhappy with these default handlers: I think they
    basically behave like some very strange and unexpected side-effect.
    Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    9bedc7f7
v4l2-ioctl.c 50 KB