This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/v4l-dvb.git tree:

Subject: V4L/DVB: V4L2: Replace loops for finding max buffers in VIDIOC_REQBUFS 
callbacks
Author:  Andreas Bombe <[email protected]>
Date:    Sun Mar 21 16:02:45 2010 -0300

Due to obvious copy and paste coding a number of video capture drivers
which implement a limit on the buffer memory decremented the user
supplied buffer count in a while loop until it reaches an acceptable
value.

This is a silly thing to do when the maximum value can be directly
computed.

Signed-off-by: Andreas Bombe <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 drivers/media/video/bt8xx/bttv-driver.c     |    4 ++--
 drivers/media/video/cx23885/cx23885-video.c |    4 ++--
 drivers/media/video/cx88/cx88-video.c       |    4 ++--
 drivers/media/video/mx1_camera.c            |    4 ++--
 drivers/media/video/omap24xxcam.c           |    4 ++--
 drivers/media/video/pxa_camera.c            |    4 ++--
 drivers/media/video/s2255drv.c              |    4 ++--
 drivers/media/video/sh_mobile_ceu_camera.c  |    4 ++--
 drivers/media/video/vivi.c                  |    4 ++--
 drivers/media/video/zr364xx.c               |    4 ++--
 drivers/staging/cx25821/cx25821-video.c     |    4 ++--
 11 files changed, 22 insertions(+), 22 deletions(-)

---

http://git.linuxtv.org/v4l-dvb.git?a=commitdiff;h=f7a6936428c11b8bd33e7c438236142fd20cbf8b

diff --git a/drivers/media/video/bt8xx/bttv-driver.c 
b/drivers/media/video/bt8xx/bttv-driver.c
index cb46e8f..79af895 100644
--- a/drivers/media/video/bt8xx/bttv-driver.c
+++ b/drivers/media/video/bt8xx/bttv-driver.c
@@ -1805,8 +1805,8 @@ buffer_setup(struct videobuf_queue *q, unsigned int 
*count, unsigned int *size)
        *size = fh->fmt->depth*fh->width*fh->height >> 3;
        if (0 == *count)
                *count = gbuffers;
-       while (*size * *count > gbuffers * gbufsize)
-               (*count)--;
+       if (*size * *count > gbuffers * gbufsize)
+               *count = (gbuffers * gbufsize) / *size;
        return 0;
 }
 
diff --git a/drivers/media/video/cx23885/cx23885-video.c 
b/drivers/media/video/cx23885/cx23885-video.c
index 2d3ac8b..543b854 100644
--- a/drivers/media/video/cx23885/cx23885-video.c
+++ b/drivers/media/video/cx23885/cx23885-video.c
@@ -514,8 +514,8 @@ static int buffer_setup(struct videobuf_queue *q, unsigned 
int *count,
        *size = fh->fmt->depth*fh->width*fh->height >> 3;
        if (0 == *count)
                *count = 32;
-       while (*size * *count > vid_limit * 1024 * 1024)
-               (*count)--;
+       if (*size * *count > vid_limit * 1024 * 1024)
+               *count = (vid_limit * 1024 * 1024) / *size;
        return 0;
 }
 
diff --git a/drivers/media/video/cx88/cx88-video.c 
b/drivers/media/video/cx88/cx88-video.c
index 8e414f7..0a3849c 100644
--- a/drivers/media/video/cx88/cx88-video.c
+++ b/drivers/media/video/cx88/cx88-video.c
@@ -561,8 +561,8 @@ buffer_setup(struct videobuf_queue *q, unsigned int *count, 
unsigned int *size)
        *size = fh->fmt->depth*fh->width*fh->height >> 3;
        if (0 == *count)
                *count = 32;
-       while (*size * *count > vid_limit * 1024 * 1024)
-               (*count)--;
+       if (*size * *count > vid_limit * 1024 * 1024)
+               *count = (vid_limit * 1024 * 1024) / *size;
        return 0;
 }
 
diff --git a/drivers/media/video/mx1_camera.c b/drivers/media/video/mx1_camera.c
index c167cc3..d07af13 100644
--- a/drivers/media/video/mx1_camera.c
+++ b/drivers/media/video/mx1_camera.c
@@ -140,8 +140,8 @@ static int mx1_videobuf_setup(struct videobuf_queue *vq, 
unsigned int *count,
        if (!*count)
                *count = 32;
 
-       while (*size * *count > MAX_VIDEO_MEM * 1024 * 1024)
-               (*count)--;
+       if (*size * *count > MAX_VIDEO_MEM * 1024 * 1024)
+               *count = (MAX_VIDEO_MEM * 1024 * 1024) / *size;
 
        dev_dbg(icd->dev.parent, "count=%d, size=%d\n", *count, *size);
 
diff --git a/drivers/media/video/omap24xxcam.c 
b/drivers/media/video/omap24xxcam.c
index 7400eac..50df8ca 100644
--- a/drivers/media/video/omap24xxcam.c
+++ b/drivers/media/video/omap24xxcam.c
@@ -451,8 +451,8 @@ static int omap24xxcam_vbq_setup(struct videobuf_queue 
*vbq, unsigned int *cnt,
        *size = fh->pix.sizeimage;
 
        /* accessing fh->cam->capture_mem is ok, it's constant */
-       while (*size * *cnt > fh->cam->capture_mem)
-               (*cnt)--;
+       if (*size * *cnt > fh->cam->capture_mem)
+               *cnt = fh->cam->capture_mem / *size;
 
        return 0;
 }
diff --git a/drivers/media/video/pxa_camera.c b/drivers/media/video/pxa_camera.c
index 322ac4e..520a35b 100644
--- a/drivers/media/video/pxa_camera.c
+++ b/drivers/media/video/pxa_camera.c
@@ -252,8 +252,8 @@ static int pxa_videobuf_setup(struct videobuf_queue *vq, 
unsigned int *count,
 
        if (0 == *count)
                *count = 32;
-       while (*size * *count > vid_limit * 1024 * 1024)
-               (*count)--;
+       if (*size * *count > vid_limit * 1024 * 1024)
+               *count = (vid_limit * 1024 * 1024) / *size;
 
        return 0;
 }
diff --git a/drivers/media/video/s2255drv.c b/drivers/media/video/s2255drv.c
index cd5b9c4..b4c545c 100644
--- a/drivers/media/video/s2255drv.c
+++ b/drivers/media/video/s2255drv.c
@@ -701,8 +701,8 @@ static int buffer_setup(struct videobuf_queue *vq, unsigned 
int *count,
        if (0 == *count)
                *count = S2255_DEF_BUFS;
 
-       while (*size * (*count) > vid_limit * 1024 * 1024)
-               (*count)--;
+       if (*size * *count > vid_limit * 1024 * 1024)
+               *count = (vid_limit * 1024 * 1024) / *size;
 
        return 0;
 }
diff --git a/drivers/media/video/sh_mobile_ceu_camera.c 
b/drivers/media/video/sh_mobile_ceu_camera.c
index a504fa6..e8bab6e 100644
--- a/drivers/media/video/sh_mobile_ceu_camera.c
+++ b/drivers/media/video/sh_mobile_ceu_camera.c
@@ -212,8 +212,8 @@ static int sh_mobile_ceu_videobuf_setup(struct 
videobuf_queue *vq,
                *count = 2;
 
        if (pcdev->video_limit) {
-               while (PAGE_ALIGN(*size) * *count > pcdev->video_limit)
-                       (*count)--;
+               if (PAGE_ALIGN(*size) * *count > pcdev->video_limit)
+                       *count = pcdev->video_limit / PAGE_ALIGN(*size);
        }
 
        dev_dbg(icd->dev.parent, "count=%d, size=%d\n", *count, *size);
diff --git a/drivers/media/video/vivi.c b/drivers/media/video/vivi.c
index cdbe703..5a736b8 100644
--- a/drivers/media/video/vivi.c
+++ b/drivers/media/video/vivi.c
@@ -749,8 +749,8 @@ buffer_setup(struct videobuf_queue *vq, unsigned int 
*count, unsigned int *size)
        if (0 == *count)
                *count = 32;
 
-       while (*size * *count > vid_limit * 1024 * 1024)
-               (*count)--;
+       if (*size * *count > vid_limit * 1024 * 1024)
+               *count = (vid_limit * 1024 * 1024) / *size;
 
        dprintk(dev, 1, "%s, count=%d, size=%d\n", __func__,
                *count, *size);
diff --git a/drivers/media/video/zr364xx.c b/drivers/media/video/zr364xx.c
index 3d4bac2..a82b5bd 100644
--- a/drivers/media/video/zr364xx.c
+++ b/drivers/media/video/zr364xx.c
@@ -376,8 +376,8 @@ static int buffer_setup(struct videobuf_queue *vq, unsigned 
int *count,
        if (*count == 0)
                *count = ZR364XX_DEF_BUFS;
 
-       while (*size * (*count) > ZR364XX_DEF_BUFS * 1024 * 1024)
-               (*count)--;
+       if (*size * *count > ZR364XX_DEF_BUFS * 1024 * 1024)
+               *count = (ZR364XX_DEF_BUFS * 1024 * 1024) / *size;
 
        return 0;
 }
diff --git a/drivers/staging/cx25821/cx25821-video.c 
b/drivers/staging/cx25821/cx25821-video.c
index 4efd660..9cfb93d 100644
--- a/drivers/staging/cx25821/cx25821-video.c
+++ b/drivers/staging/cx25821/cx25821-video.c
@@ -516,8 +516,8 @@ int cx25821_buffer_setup(struct videobuf_queue *q, unsigned 
int *count,
        if (0 == *count)
                *count = 32;
 
-       while (*size * *count > vid_limit * 1024 * 1024)
-               (*count)--;
+       if (*size * *count > vid_limit * 1024 * 1024)
+               *count = (vid_limit * 1024 * 1024) / *size;
 
        return 0;
 }

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to