media: usbtv: Keep norm parameter specific
authorHugo Grostabussiat <bonstra@bonstra.fr.eu.org>
Sun, 8 Apr 2018 21:11:59 +0000 (17:11 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Fri, 4 May 2018 10:50:49 +0000 (06:50 -0400)
The user-supplied norm value gets overwritten by the generic .norm
member from the norm_params. That way, we lose the specific norm the
user may want to set.

For instance, if the user specifies V4L2_STD_PAL_60, the value actually
used will be V4L2_STD_525_60, which in the end will be as if the user
had specified V4L2_STD_NTSC, since this is always the first bitfield we
match the norm value against before configuring the hardware.

The norm_params array is only there to match a norm with an output
resolution. The norm value itself should not be changed.

Signed-off-by: Hugo Grostabussiat <bonstra@bonstra.fr.eu.org>
Signed-off-by: Hans Verkuil <hansverk@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/usb/usbtv/usbtv-video.c

index 29e2450..6cad50d 100644 (file)
@@ -77,7 +77,7 @@ static int usbtv_configure_for_norm(struct usbtv *usbtv, v4l2_std_id norm)
                usbtv->height = params->cap_height;
                usbtv->n_chunks = usbtv->width * usbtv->height
                                                / 4 / USBTV_CHUNK;
-               usbtv->norm = params->norm;
+               usbtv->norm = norm;
        } else
                ret = -EINVAL;