From: Al Viro <[email protected]> Keep ->smsshado_virt_addrp[] and ->buf_virt_addr[] as pointers. Note that this stuff is 32bit-only, so both unsigned int and unsigned long are pointer-sized...
Signed-off-by: Al Viro <[email protected]> --- drivers/media/platform/omap/omap_vout.c | 26 ++++++++++++++------------ drivers/media/platform/omap/omap_vout_vrfb.c | 6 +++--- drivers/media/platform/omap/omap_voutdef.h | 4 ++-- drivers/media/platform/omap/omap_voutlib.c | 15 +++++++-------- drivers/media/platform/omap/omap_voutlib.h | 4 ++-- 5 files changed, 28 insertions(+), 27 deletions(-) diff --git a/drivers/media/platform/omap/omap_vout.c b/drivers/media/platform/omap/omap_vout.c index 70c28d1..3e298d8 100644 --- a/drivers/media/platform/omap/omap_vout.c +++ b/drivers/media/platform/omap/omap_vout.c @@ -240,7 +240,7 @@ void omap_vout_free_buffers(struct omap_vout_device *vout) omap_vout_free_buffer(vout->buf_virt_addr[i], vout->buffer_size); vout->buf_phy_addr[i] = 0; - vout->buf_virt_addr[i] = 0; + vout->buf_virt_addr[i] = NULL; } } @@ -656,7 +656,8 @@ static int omap_vout_buffer_setup(struct videobuf_queue *q, unsigned int *count, unsigned int *size) { int startindex = 0, i, j; - u32 phy_addr = 0, virt_addr = 0; + u32 phy_addr = 0; + void *virt_addr = NULL; struct omap_vout_device *vout = q->priv_data; struct omapvideo_info *ovid = &vout->vid_info; int vid_max_buf_size; @@ -712,7 +713,7 @@ static int omap_vout_buffer_setup(struct videobuf_queue *q, unsigned int *count, omap_vout_free_buffer( vout->smsshado_virt_addr[j], vout->smsshado_size); - vout->smsshado_virt_addr[j] = 0; + vout->smsshado_virt_addr[j] = NULL; vout->smsshado_phy_addr[j] = 0; } } @@ -741,7 +742,7 @@ static void omap_vout_free_extra_buffers(struct omap_vout_device *vout) omap_vout_free_buffer(vout->buf_virt_addr[i], vout->buffer_size); - vout->buf_virt_addr[i] = 0; + vout->buf_virt_addr[i] = NULL; vout->buf_phy_addr[i] = 0; } vout->buffer_allocated = num_buffers; @@ -782,13 +783,14 @@ static int omap_vout_buffer_prepare(struct videobuf_queue *q, if (ret < 0) return ret; } else { - unsigned long addr, dma_addr; + void *addr; + unsigned long dma_addr; unsigned long size; - addr = (unsigned long) vout->buf_virt_addr[vb->i]; + addr = vout->buf_virt_addr[vb->i]; size = (unsigned long) vb->size; - dma_addr = dma_map_single(vout->vid_dev->v4l2_dev.dev, (void *) addr, + dma_addr = dma_map_single(vout->vid_dev->v4l2_dev.dev, addr, size, DMA_TO_DEVICE); if (dma_mapping_error(vout->vid_dev->v4l2_dev.dev, dma_addr)) v4l2_err(&vout->vid_dev->v4l2_dev, "dma_map_single failed\n"); @@ -913,11 +915,11 @@ static int omap_vout_mmap(struct file *file, struct vm_area_struct *vma) vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); vma->vm_ops = &omap_vout_vm_ops; vma->vm_private_data = (void *) vout; - pos = (void *)vout->buf_virt_addr[i]; - vma->vm_pgoff = virt_to_phys((void *)pos) >> PAGE_SHIFT; + pos = vout->buf_virt_addr[i]; + vma->vm_pgoff = virt_to_phys(pos) >> PAGE_SHIFT; while (size > 0) { unsigned long pfn; - pfn = virt_to_phys((void *) pos) >> PAGE_SHIFT; + pfn = virt_to_phys(pos) >> PAGE_SHIFT; if (remap_pfn_range(vma, start, pfn, PAGE_SIZE, PAGE_SHARED)) return -EAGAIN; start += PAGE_SIZE; @@ -1501,7 +1503,7 @@ static int vidioc_reqbufs(struct file *file, void *fh, for (i = num_buffers; i < vout->buffer_allocated; i++) { omap_vout_free_buffer(vout->buf_virt_addr[i], vout->buffer_size); - vout->buf_virt_addr[i] = 0; + vout->buf_virt_addr[i] = NULL; vout->buf_phy_addr[i] = 0; } vout->buffer_allocated = num_buffers; @@ -1979,7 +1981,7 @@ free_buffers: for (i = 0; i < numbuffers; i++) { omap_vout_free_buffer(vout->buf_virt_addr[i], vout->buffer_size); - vout->buf_virt_addr[i] = 0; + vout->buf_virt_addr[i] = NULL; vout->buf_phy_addr[i] = 0; } return ret; diff --git a/drivers/media/platform/omap/omap_vout_vrfb.c b/drivers/media/platform/omap/omap_vout_vrfb.c index c6e2527..1c89189 100644 --- a/drivers/media/platform/omap/omap_vout_vrfb.c +++ b/drivers/media/platform/omap/omap_vout_vrfb.c @@ -48,13 +48,13 @@ static int omap_vout_allocate_vrfb_buffers(struct omap_vout_device *vout, omap_vout_free_buffer( vout->smsshado_virt_addr[j], vout->smsshado_size); - vout->smsshado_virt_addr[j] = 0; + vout->smsshado_virt_addr[j] = NULL; vout->smsshado_phy_addr[j] = 0; } *count = 0; return -ENOMEM; } - memset((void *) vout->smsshado_virt_addr[i], 0, + memset(vout->smsshado_virt_addr[i], 0, vout->smsshado_size); } return 0; @@ -81,7 +81,7 @@ void omap_vout_free_vrfb_buffers(struct omap_vout_device *vout) for (j = 0; j < VRFB_NUM_BUFS; j++) { omap_vout_free_buffer(vout->smsshado_virt_addr[j], vout->smsshado_size); - vout->smsshado_virt_addr[j] = 0; + vout->smsshado_virt_addr[j] = NULL; vout->smsshado_phy_addr[j] = 0; } } diff --git a/drivers/media/platform/omap/omap_voutdef.h b/drivers/media/platform/omap/omap_voutdef.h index 9ccfe1f..d298d1a 100644 --- a/drivers/media/platform/omap/omap_voutdef.h +++ b/drivers/media/platform/omap/omap_voutdef.h @@ -126,7 +126,7 @@ struct omap_vout_device { /* allow to reuse previously allocated buffer which is big enough */ int buffer_size; /* keep buffer info across opens */ - unsigned long buf_virt_addr[VIDEO_MAX_FRAME]; + void *buf_virt_addr[VIDEO_MAX_FRAME]; unsigned long buf_phy_addr[VIDEO_MAX_FRAME]; enum omap_color_mode dss_mode; @@ -161,7 +161,7 @@ struct omap_vout_device { struct vid_vrfb_dma vrfb_dma_tx; unsigned int smsshado_phy_addr[MAC_VRFB_CTXS]; - unsigned int smsshado_virt_addr[MAC_VRFB_CTXS]; + void *smsshado_virt_addr[MAC_VRFB_CTXS]; struct vrfb vrfb_context[MAC_VRFB_CTXS]; bool vrfb_static_allocation; unsigned int smsshado_size; diff --git a/drivers/media/platform/omap/omap_voutlib.c b/drivers/media/platform/omap/omap_voutlib.c index f8cf63a..afce476 100644 --- a/drivers/media/platform/omap/omap_voutlib.c +++ b/drivers/media/platform/omap/omap_voutlib.c @@ -298,15 +298,14 @@ EXPORT_SYMBOL_GPL(omap_vout_new_format); /* * Allocate buffers */ -unsigned long omap_vout_alloc_buffer(u32 buf_size, u32 *phys_addr) +void *omap_vout_alloc_buffer(u32 buf_size, u32 *phys_addr) { u32 order, size; - unsigned long virt_addr, addr; + void *virt_addr, *addr; size = PAGE_ALIGN(buf_size); order = get_order(size); - virt_addr = __get_free_pages(GFP_KERNEL, order); - addr = virt_addr; + addr = virt_addr = get_free_pages(GFP_KERNEL, order); if (virt_addr) { while (size > 0) { @@ -315,17 +314,17 @@ unsigned long omap_vout_alloc_buffer(u32 buf_size, u32 *phys_addr) size -= PAGE_SIZE; } } - *phys_addr = (u32) virt_to_phys((void *) virt_addr); + *phys_addr = (u32) virt_to_phys(virt_addr); return virt_addr; } /* * Free buffers */ -void omap_vout_free_buffer(unsigned long virtaddr, u32 buf_size) +void omap_vout_free_buffer(void *virtaddr, u32 buf_size) { u32 order, size; - unsigned long addr = virtaddr; + void *addr = virtaddr; size = PAGE_ALIGN(buf_size); order = get_order(size); @@ -335,7 +334,7 @@ void omap_vout_free_buffer(unsigned long virtaddr, u32 buf_size) addr += PAGE_SIZE; size -= PAGE_SIZE; } - free_pages((void *)virtaddr, order); + free_pages(virtaddr, order); } bool omap_vout_dss_omap24xx(void) diff --git a/drivers/media/platform/omap/omap_voutlib.h b/drivers/media/platform/omap/omap_voutlib.h index f9d1c07..c62894e 100644 --- a/drivers/media/platform/omap/omap_voutlib.h +++ b/drivers/media/platform/omap/omap_voutlib.h @@ -30,8 +30,8 @@ int omap_vout_new_window(struct v4l2_rect *crop, void omap_vout_new_format(struct v4l2_pix_format *pix, struct v4l2_framebuffer *fbuf, struct v4l2_rect *crop, struct v4l2_window *win); -unsigned long omap_vout_alloc_buffer(u32 buf_size, u32 *phys_addr); -void omap_vout_free_buffer(unsigned long virtaddr, u32 buf_size); +void *omap_vout_alloc_buffer(u32 buf_size, u32 *phys_addr); +void omap_vout_free_buffer(void *virtaddr, u32 buf_size); bool omap_vout_dss_omap24xx(void); bool omap_vout_dss_omap34xx(void); -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

