From: Dominic Curran <[email protected]>
Subject: [OMAPZOOM] ISP: Fix indexing bug in csi2 module.

This patch fixes an indexing bug in the CSI2 module.
The functions:
 isp_csi2_timings_update(..)
 isp_csi2_timings_get(..)
expect either a 1 or 2 which references the complexio number being referenced.
The bug was that they were being passed a 0 & 1.

The issue was originally found by HP.

Signed-off-by: Dominic Curran <[email protected]>
---
 drivers/media/video/isp/ispcsi2.c |   16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

Index: omapzoom04/drivers/media/video/isp/ispcsi2.c
===================================================================
--- omapzoom04.orig/drivers/media/video/isp/ispcsi2.c
+++ omapzoom04/drivers/media/video/isp/ispcsi2.c
@@ -1526,7 +1526,7 @@ int isp_csi2_timings_config_forcerxmode(
        struct isp_csi2_timings_cfg *currtimings;
        struct isp_csi2_timings_cfg_update *currtimings_u;
 
-       if (io > 2) {
+       if (io < 1 || io > 2) {
                printk(KERN_ERR "CSI2 - Timings config: Invalid IO number\n");
                return -EINVAL;
        }
@@ -1552,7 +1552,7 @@ int isp_csi2_timings_config_stopstate_16
        struct isp_csi2_timings_cfg *currtimings;
        struct isp_csi2_timings_cfg_update *currtimings_u;
 
-       if (io > 2) {
+       if (io < 1 || io > 2) {
                printk(KERN_ERR "CSI2 - Timings config: Invalid IO number\n");
                return -EINVAL;
        }
@@ -1578,7 +1578,7 @@ int isp_csi2_timings_config_stopstate_4x
        struct isp_csi2_timings_cfg *currtimings;
        struct isp_csi2_timings_cfg_update *currtimings_u;
 
-       if (io > 2) {
+       if (io < 1 || io > 2) {
                printk(KERN_ERR "CSI2 - Timings config: Invalid IO number\n");
                return -EINVAL;
        }
@@ -1604,7 +1604,7 @@ int isp_csi2_timings_config_stopstate_cn
        struct isp_csi2_timings_cfg *currtimings;
        struct isp_csi2_timings_cfg_update *currtimings_u;
 
-       if (io > 2) {
+       if (io < 1 || io > 2) {
                printk(KERN_ERR "CSI2 - Timings config: Invalid IO number\n");
                return -EINVAL;
        }
@@ -1636,7 +1636,7 @@ int isp_csi2_timings_update(u8 io, bool 
        struct isp_csi2_timings_cfg_update *currtimings_u;
        u32 reg;
 
-       if (io > 2) {
+       if (io < 1 || io > 2) {
                printk(KERN_ERR "CSI2 - Timings config: Invalid IO number\n");
                return -EINVAL;
        }
@@ -1706,7 +1706,7 @@ int isp_csi2_timings_get(u8 io)
        struct isp_csi2_timings_cfg_update *currtimings_u;
        u32 reg;
 
-       if (io > 2) {
+       if (io < 1 || io > 2) {
                printk(KERN_ERR "CSI2 - Timings config: Invalid IO number\n");
                return -EINVAL;
        }
@@ -1758,7 +1758,7 @@ int isp_csi2_timings_update_all(bool for
 {
        int i;
 
-       for (i = 0; i < 2; i++)
+       for (i = 1; i < 3; i++)
                isp_csi2_timings_update(i, force_update);
        return 0;
 }
@@ -1772,7 +1772,7 @@ int isp_csi2_timings_get_all(void)
 {
        int i;
 
-       for (i = 0; i < 2; i++)
+       for (i = 1; i < 3; i++)
                isp_csi2_timings_get(i);
        return 0;
 }
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to