summaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/qcom/camss/camss-vfe.c
diff options
context:
space:
mode:
authorVladimir Lypak <junak.pub@gmail.com>2021-02-17 23:11:34 +0100
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2021-03-11 11:59:43 +0100
commit2f90857781bb6e73666fdec2293b7f81cd2a0805 (patch)
treec39d407ddc59869c5f57349c3635b6de13c9135d /drivers/media/platform/qcom/camss/camss-vfe.c
parent78c2cc28df4a1f6f971d455da9b70d5540bd3de8 (diff)
downloadlinux-2f90857781bb6e73666fdec2293b7f81cd2a0805.tar.bz2
media: qcom: camss: Fix overflows in clock rate calculations
Because of u32 type being used to store pixel clock rate, expression used to calculate pipeline clocks (pixel_clock * bpp) produces wrong value due to integer overflow. This patch changes data type used to store, pass and retrieve pixel_clock from u32 to u64 to make this mistake less likely to be repeated in the future. Signed-off-by: Vladimir Lypak <junak.pub@gmail.com> Acked-by: Robert Foss <robert.foss@linaro.org> Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'drivers/media/platform/qcom/camss/camss-vfe.c')
-rw-r--r--drivers/media/platform/qcom/camss/camss-vfe.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/media/platform/qcom/camss/camss-vfe.c b/drivers/media/platform/qcom/camss/camss-vfe.c
index fae2b513b2f9..b2c95b46ce66 100644
--- a/drivers/media/platform/qcom/camss/camss-vfe.c
+++ b/drivers/media/platform/qcom/camss/camss-vfe.c
@@ -1112,7 +1112,7 @@ static inline void vfe_isr_halt_ack(struct vfe_device *vfe)
static int vfe_set_clock_rates(struct vfe_device *vfe)
{
struct device *dev = vfe->camss->dev;
- u32 pixel_clock[MSM_VFE_LINE_NUM];
+ u64 pixel_clock[MSM_VFE_LINE_NUM];
int i, j;
int ret;
@@ -1194,7 +1194,7 @@ static int vfe_set_clock_rates(struct vfe_device *vfe)
*/
static int vfe_check_clock_rates(struct vfe_device *vfe)
{
- u32 pixel_clock[MSM_VFE_LINE_NUM];
+ u64 pixel_clock[MSM_VFE_LINE_NUM];
int i, j;
int ret;