On Wed, 9 Dec 2009, Magnus Damm wrote: > From: Magnus Damm <damm@xxxxxxxxxxxxx> > > This patch updates the SuperH Mobile CEU driver to > not page align the frame size. Useful in the case of > USERPTR with non-page aligned frame sizes and offsets. > > Signed-off-by: Magnus Damm <damm@xxxxxxxxxxxxx> > --- > > drivers/media/video/sh_mobile_ceu_camera.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > --- 0010/drivers/media/video/sh_mobile_ceu_camera.c > +++ work/drivers/media/video/sh_mobile_ceu_camera.c 2009-12-09 17:54:37.000000000 +0900 > @@ -199,14 +199,13 @@ static int sh_mobile_ceu_videobuf_setup( > struct sh_mobile_ceu_dev *pcdev = ici->priv; > int bytes_per_pixel = (icd->current_fmt->depth + 7) >> 3; > > - *size = PAGE_ALIGN(icd->user_width * icd->user_height * > - bytes_per_pixel); > + *size = icd->user_width * icd->user_height * bytes_per_pixel; > > if (0 == *count) > *count = 2; > > if (pcdev->video_limit) { > - while (*size * *count > pcdev->video_limit) > + while (PAGE_ALIGN(*size) * *count > pcdev->video_limit) > (*count)--; > } Please, correct me if I'm wrong. Currently most (all?) sh platforms, using this driver, and wishing to use V4L2_MEMORY_MMAP, reserve contiguous memory in their platform code. In this case pcdev->video_limit is set to the size of that area. videobuf-dma-contig.c::__videobuf_mmap_mapper() will anyway allocate page-aligned buffers for V4L2_MEMORY_MMAP, so, even for the case of a platform, not reserving RAM at boot-time, it should work. Similarly it should work for the V4L2_MEMORY_USERPTR case. So, looks ok to me, queued, thanks. Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html