diff options
author | Tom Rix <trix@redhat.com> | 2021-08-18 21:41:05 +0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+huawei@kernel.org> | 2021-09-30 10:07:55 +0200 |
commit | 749d896551df2ae6996aab51c25bbb3ecd589774 (patch) | |
tree | c775c90aca263d56b6191f0651b54726118c9750 | |
parent | a9be3931188f240aa2dbdb7c9af65ecfb8c073c1 (diff) |
media: camss: vfe: simplify vfe_get_wm_sizes()
Static analysis reports this representative problem
camss-vfe-4-1.c:333: The result of the left shift is undefined because
the left operand is negative
reg |= (height - 1) << 4;
~~~~~~~~~ ^
The is a false positive. height is set in vfe_get_wm_sizes() which
has a switch statement without a default.
Reviewing the switch, the cases contain redundant assignments.
So simplify to assignments.
Signed-off-by: Tom Rix <trix@redhat.com>
Reviewed-by: Robert Foss <robert.foss@linaro.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-rw-r--r-- | drivers/media/platform/qcom/camss/camss-vfe-4-1.c | 20 | ||||
-rw-r--r-- | drivers/media/platform/qcom/camss/camss-vfe-4-7.c | 10 | ||||
-rw-r--r-- | drivers/media/platform/qcom/camss/camss-vfe-4-8.c | 9 |
3 files changed, 12 insertions, 27 deletions
diff --git a/drivers/media/platform/qcom/camss/camss-vfe-4-1.c b/drivers/media/platform/qcom/camss/camss-vfe-4-1.c index 7b7c9a0aaab2..42047b11ba52 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe-4-1.c +++ b/drivers/media/platform/qcom/camss/camss-vfe-4-1.c @@ -290,22 +290,14 @@ static void vfe_wm_frame_based(struct vfe_device *vfe, u8 wm, u8 enable) static void vfe_get_wm_sizes(struct v4l2_pix_format_mplane *pix, u8 plane, u16 *width, u16 *height, u16 *bytesperline) { - switch (pix->pixelformat) { - case V4L2_PIX_FMT_NV12: - case V4L2_PIX_FMT_NV21: - *width = pix->width; - *height = pix->height; - *bytesperline = pix->plane_fmt[0].bytesperline; + *width = pix->width; + *height = pix->height; + *bytesperline = pix->plane_fmt[0].bytesperline; + + if (pix->pixelformat == V4L2_PIX_FMT_NV12 || + pix->pixelformat == V4L2_PIX_FMT_NV21) if (plane == 1) *height /= 2; - break; - case V4L2_PIX_FMT_NV16: - case V4L2_PIX_FMT_NV61: - *width = pix->width; - *height = pix->height; - *bytesperline = pix->plane_fmt[0].bytesperline; - break; - } } static void vfe_wm_line_based(struct vfe_device *vfe, u32 wm, diff --git a/drivers/media/platform/qcom/camss/camss-vfe-4-7.c b/drivers/media/platform/qcom/camss/camss-vfe-4-7.c index 2836b12ec989..ab2d57bdf5e7 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe-4-7.c +++ b/drivers/media/platform/qcom/camss/camss-vfe-4-7.c @@ -370,30 +370,26 @@ static int vfe_word_per_line_by_bytes(u32 bytes_per_line) static void vfe_get_wm_sizes(struct v4l2_pix_format_mplane *pix, u8 plane, u16 *width, u16 *height, u16 *bytesperline) { + *width = pix->width; + *height = pix->height; + switch (pix->pixelformat) { case V4L2_PIX_FMT_NV12: case V4L2_PIX_FMT_NV21: - *width = pix->width; - *height = pix->height; *bytesperline = pix->plane_fmt[0].bytesperline; if (plane == 1) *height /= 2; break; case V4L2_PIX_FMT_NV16: case V4L2_PIX_FMT_NV61: - *width = pix->width; - *height = pix->height; *bytesperline = pix->plane_fmt[0].bytesperline; break; case V4L2_PIX_FMT_YUYV: case V4L2_PIX_FMT_YVYU: case V4L2_PIX_FMT_VYUY: case V4L2_PIX_FMT_UYVY: - *width = pix->width; - *height = pix->height; *bytesperline = pix->plane_fmt[plane].bytesperline; break; - } } diff --git a/drivers/media/platform/qcom/camss/camss-vfe-4-8.c b/drivers/media/platform/qcom/camss/camss-vfe-4-8.c index 19519234f727..7e6b62c930ac 100644 --- a/drivers/media/platform/qcom/camss/camss-vfe-4-8.c +++ b/drivers/media/platform/qcom/camss/camss-vfe-4-8.c @@ -343,27 +343,24 @@ static int vfe_word_per_line_by_bytes(u32 bytes_per_line) static void vfe_get_wm_sizes(struct v4l2_pix_format_mplane *pix, u8 plane, u16 *width, u16 *height, u16 *bytesperline) { + *width = pix->width; + *height = pix->height; + switch (pix->pixelformat) { case V4L2_PIX_FMT_NV12: case V4L2_PIX_FMT_NV21: - *width = pix->width; - *height = pix->height; *bytesperline = pix->plane_fmt[0].bytesperline; if (plane == 1) *height /= 2; break; case V4L2_PIX_FMT_NV16: case V4L2_PIX_FMT_NV61: - *width = pix->width; - *height = pix->height; *bytesperline = pix->plane_fmt[0].bytesperline; break; case V4L2_PIX_FMT_YUYV: case V4L2_PIX_FMT_YVYU: case V4L2_PIX_FMT_VYUY: case V4L2_PIX_FMT_UYVY: - *width = pix->width; - *height = pix->height; *bytesperline = pix->plane_fmt[plane].bytesperline; break; } |