OSDN Git Service

[media] soc_camera: Use soc_camera_device::bytesperline to compute line sizes
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Wed, 21 Mar 2012 11:03:22 +0000 (08:03 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 15 May 2012 19:09:02 +0000 (16:09 -0300)
Instead of computing the line sizes, use the previously negotiated
soc_camera_device::bytesperline value.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/mx3_camera.c
drivers/media/video/sh_mobile_ceu_camera.c

index b3016ad..6c87d96 100644 (file)
@@ -265,13 +265,10 @@ static void mx3_videobuf_queue(struct vb2_buffer *vb)
        struct idmac_channel *ichan = mx3_cam->idmac_channel[0];
        struct idmac_video_param *video = &ichan->params.video;
        const struct soc_mbus_pixelfmt *host_fmt = icd->current_fmt->host_fmt;
-       int bytes_per_line = soc_mbus_bytes_per_line(icd->user_width, host_fmt);
        unsigned long flags;
        dma_cookie_t cookie;
        size_t new_size;
 
-       BUG_ON(bytes_per_line <= 0);
-
        new_size = icd->sizeimage;
 
        if (vb2_plane_size(vb, 0) < new_size) {
@@ -312,9 +309,9 @@ static void mx3_videobuf_queue(struct vb2_buffer *vb)
                 * horizontal parameters in this case are expressed in bytes,
                 * not in pixels.
                 */
-               video->out_width        = bytes_per_line;
+               video->out_width        = icd->bytesperline;
                video->out_height       = icd->user_height;
-               video->out_stride       = bytes_per_line;
+               video->out_stride       = icd->bytesperline;
        } else {
                /*
                 * For IPU known formats the pixel unit will be managed
index 8c6dc24..3d28c9c 100644 (file)
@@ -337,9 +337,7 @@ static int sh_mobile_ceu_capture(struct sh_mobile_ceu_dev *pcdev)
                if (planar)
                        phys_addr_bottom = phys_addr_top + icd->user_width;
                else
-                       phys_addr_bottom = phys_addr_top +
-                               soc_mbus_bytes_per_line(icd->user_width,
-                                                       icd->current_fmt->host_fmt);
+                       phys_addr_bottom = phys_addr_top + icd->bytesperline;
                ceu_write(pcdev, bottom1, phys_addr_bottom);
        }