[media] s3c-camif: forever loop in camif_hw_set_source_format()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 23 Aug 2013 08:41:47 +0000 (05:41 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Sat, 24 Aug 2013 07:53:58 +0000 (04:53 -0300)
Because "i" is unsigned then "i-- >= 0" is always true.  If we don't
find what we are looking for then we loop forever.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/platform/s3c-camif/camif-regs.c

index a9e3b16460b8a3b55e90ea9327210460d52e45d1..ebf5b184cce427a1b4274328f7683bd5408af03a 100644 (file)
@@ -106,15 +106,15 @@ static const u32 src_pixfmt_map[8][2] = {
 void camif_hw_set_source_format(struct camif_dev *camif)
 {
        struct v4l2_mbus_framefmt *mf = &camif->mbus_fmt;
-       unsigned int i = ARRAY_SIZE(src_pixfmt_map);
+       int i;
        u32 cfg;
 
-       while (i-- >= 0) {
+       for (i = ARRAY_SIZE(src_pixfmt_map) - 1; i >= 0; i--) {
                if (src_pixfmt_map[i][0] == mf->code)
                        break;
        }
-
-       if (i == 0 && src_pixfmt_map[i][0] != mf->code) {
+       if (i < 0) {
+               i = 0;
                dev_err(camif->dev,
                        "Unsupported pixel code, falling back to %#08x\n",
                        src_pixfmt_map[i][0]);