Commit 9a8c7fff authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Mauro Carvalho Chehab
Browse files

[media] omap3isp: queue: Use sg_alloc_table_from_pages()



Replace the custom implementation with a call to the scatterlist helper
function.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: default avatarSakari Ailus <sakari.ailus@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent 49ac3695
Loading
Loading
Loading
Loading
+2 −14
Original line number Diff line number Diff line
@@ -233,12 +233,10 @@ static void isp_video_buffer_cleanup(struct isp_video_buffer *buf)
 */
static int isp_video_buffer_prepare_user(struct isp_video_buffer *buf)
{
	struct scatterlist *sg;
	unsigned int offset;
	unsigned long data;
	unsigned int first;
	unsigned int last;
	unsigned int i;
	int ret;

	data = buf->vbuf.m.userptr;
@@ -267,21 +265,11 @@ static int isp_video_buffer_prepare_user(struct isp_video_buffer *buf)
	if (ret < 0)
		return ret;

	ret = sg_alloc_table(&buf->sgt, buf->npages, GFP_KERNEL);
	ret = sg_alloc_table_from_pages(&buf->sgt, buf->pages, buf->npages,
					offset, buf->vbuf.length, GFP_KERNEL);
	if (ret < 0)
		return ret;

	for (sg = buf->sgt.sgl, i = 0; i < buf->npages; ++i) {
		if (PageHighMem(buf->pages[i])) {
			sg_free_table(&buf->sgt);
			return -EINVAL;
		}

		sg_set_page(sg, buf->pages[i], PAGE_SIZE - offset, offset);
		sg = sg_next(sg);
		offset = 0;
	}

	return 0;
}