From patchwork Sun Jan 6 17:29:01 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Federico Vaga X-Patchwork-Id: 16151 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1TrtyY-0006te-Cw; Sun, 06 Jan 2013 18:25:34 +0100 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.75/mailfrontend-2) with esmtp id 1TrtyX-00077Q-IE; Sun, 06 Jan 2013 18:25:34 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756051Ab3AFRZa (ORCPT + 1 other); Sun, 6 Jan 2013 12:25:30 -0500 Received: from mail-ea0-f177.google.com ([209.85.215.177]:32790 "EHLO mail-ea0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755774Ab3AFRZ3 (ORCPT ); Sun, 6 Jan 2013 12:25:29 -0500 Received: by mail-ea0-f177.google.com with SMTP id c10so7364756eaa.8 for ; Sun, 06 Jan 2013 09:25:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer; bh=BS7++f5kbFjQmpBJkn8tZnqX78pRoW3yEn/p/GA5Z1o=; b=H9Q+2F3Q4/AzoQ6i3YNaqPhE9FwrgknFZyUDE2AWsDqI1l9+qrKnZazqApAkS22TIb 6uKDso36op0SEETc89u97d67A469yO0CEOVC+8z46RHlgvC9PJL4mIWXT5C+rVFu6o8V rzWpmaeKcSGwRySpHxPZvo3aAOiBV42VMannNiqPRu1DlzLi6slAFvlfcdmlEWJjukix hfRKLKszxtOfT/t1GrvSwsA+vl7Bxkic09DWrxRmxceguqQRDV4aKhoRegg1TBa9LIgE RyJFNDfe0gOHh0hikRIw8UiDJKxuLmA29J4qJHwCaVEyvzEYdizzDL+2Id/RQ4Q48yyJ uNqw== X-Received: by 10.14.178.196 with SMTP id f44mr160980536eem.14.1357493127997; Sun, 06 Jan 2013 09:25:27 -0800 (PST) Received: from harkonnen.i.gnudd.com (mail2.gnudd.com. [213.203.150.91]) by mx.google.com with ESMTPS id z8sm125593936eeo.11.2013.01.06.09.25.24 (version=SSLv3 cipher=OTHER); Sun, 06 Jan 2013 09:25:26 -0800 (PST) From: Federico Vaga To: Mauro Carvalho Chehab , Pawel Osciak , Marek Szyprowski , Hans Verkuil Cc: Mauro Carvalho Chehab , Giancarlo Asnaghi , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Jonathan Corbet , Federico Vaga Subject: [PATCH v4 1/3] videobuf2-dma-contig: user can specify GFP flags Date: Sun, 6 Jan 2013 18:29:01 +0100 Message-Id: <1357493343-13090-1-git-send-email-federico.vaga@gmail.com> X-Mailer: git-send-email 1.7.11.7 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2013.1.6.171526 X-PMX-Spam: Gauge=IIIIIIIII, Probability=9%, Report=' FORGED_FROM_GMAIL 0.1, MULTIPLE_RCPTS 0.1, HTML_00_01 0.05, HTML_00_10 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1800_1899 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, DKIM_SIGNATURE 0, URI_ENDS_IN_HTML 0, __ANY_URI 0, __CP_MEDIA_BODY 0, __CP_URI_IN_BODY 0, __FRAUD_BODY_WEBMAIL 0, __FRAUD_WEBMAIL 0, __FRAUD_WEBMAIL_FROM 0, __FROM_GMAIL 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __MIME_TEXT_ONLY 0, __MULTIPLE_RCPTS_CC_X2 0, __PHISH_SPEAR_STRUCTURE_1 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __URI_NO_WWW 0, __URI_NS , __YOUTUBE_RCVD 0' This is useful when you need to specify specific GFP flags during memory allocation (e.g. GFP_DMA). Signed-off-by: Federico Vaga --- drivers/media/v4l2-core/videobuf2-dma-contig.c | 7 ++----- include/media/videobuf2-dma-contig.h | 5 +++++ 2 file modificati, 7 inserzioni(+), 5 rimozioni(-) diff --git a/drivers/media/v4l2-core/videobuf2-dma-contig.c b/drivers/media/v4l2-core/videobuf2-dma-contig.c index 10beaee..bb411c0 100644 --- a/drivers/media/v4l2-core/videobuf2-dma-contig.c +++ b/drivers/media/v4l2-core/videobuf2-dma-contig.c @@ -21,10 +21,6 @@ #include #include -struct vb2_dc_conf { - struct device *dev; -}; - struct vb2_dc_buf { struct device *dev; void *vaddr; @@ -165,7 +161,8 @@ static void *vb2_dc_alloc(void *alloc_ctx, unsigned long size) /* align image size to PAGE_SIZE */ size = PAGE_ALIGN(size); - buf->vaddr = dma_alloc_coherent(dev, size, &buf->dma_addr, GFP_KERNEL); + buf->vaddr = dma_alloc_coherent(dev, size, &buf->dma_addr, + GFP_KERNEL | conf->mem_flags); if (!buf->vaddr) { dev_err(dev, "dma_alloc_coherent of size %ld failed\n", size); kfree(buf); diff --git a/include/media/videobuf2-dma-contig.h b/include/media/videobuf2-dma-contig.h index 8197f87..22733f4 100644 --- a/include/media/videobuf2-dma-contig.h +++ b/include/media/videobuf2-dma-contig.h @@ -16,6 +16,11 @@ #include #include +struct vb2_dc_conf { + struct device *dev; + gfp_t mem_flags; +}; + static inline dma_addr_t vb2_dma_contig_plane_dma_addr(struct vb2_buffer *vb, unsigned int plane_no) {