From patchwork Tue Mar 20 15:33:59 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Martin X-Patchwork-Id: 10423 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1SA14t-0007Dh-2U for patchwork@linuxtv.org; Tue, 20 Mar 2012 16:34:27 +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 for id 1SA14s-0000To-GW; Tue, 20 Mar 2012 16:34:26 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760587Ab2CTPeS (ORCPT ); Tue, 20 Mar 2012 11:34:18 -0400 Received: from mail-wi0-f172.google.com ([209.85.212.172]:50918 "EHLO mail-wi0-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760426Ab2CTPeP (ORCPT ); Tue, 20 Mar 2012 11:34:15 -0400 Received: by wibhj6 with SMTP id hj6so5337637wib.1 for ; Tue, 20 Mar 2012 08:34:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:x-gm-message-state; bh=jZneeZSQjlres8Qye7ipiFff/W6Yaib7mMwVNPeucGs=; b=M7qT0xhNf+qDt+1+UHL8gDSewDIKq/dFHTBl5hoWph8y/NeownwhWs0M35PqtZEj12 8lt2atK10v7A2Azi3UEBRL6eLTJUQr47+yOz/1FgTAFym4f6McBGlh4gJDSi4lK4BPPf 7froPwSewjKVGO80U+496b+rUJt2lpDY5y1iCypgd/Qy/ygH2mEd0AOAd+RtaeH0s05Z mzX2/Ww7OV5KCPWm0rmmVVe6Usl/z8S7Y1ShxpF2FoL9rehRhsyKvDCMCdEulWXy3EHk 238M9fsWI+nILagtIDfQck1CztsAxhFFxOvxiUvsa9sTSeAPXPpcWycvoMQeb1kl9av0 DJ8g== Received: by 10.180.78.225 with SMTP id e1mr885216wix.0.1332257651766; Tue, 20 Mar 2012 08:34:11 -0700 (PDT) Received: from localhost.localdomain (182.50.18.95.dynamic.jazztel.es. [95.18.50.182]) by mx.google.com with ESMTPS id 17sm16544833wis.0.2012.03.20.08.34.09 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 20 Mar 2012 08:34:10 -0700 (PDT) From: Javier Martin To: linux-media@vger.kernel.org Cc: s.nawrocki@samsung.com, mchehab@infradead.org, Javier Martin Subject: [PATCH] media: i.MX2: eMMa-PrP: Allow userptr IO mode. Date: Tue, 20 Mar 2012 16:33:59 +0100 Message-Id: <1332257639-7908-1-git-send-email-javier.martin@vista-silicon.com> X-Mailer: git-send-email 1.7.0.4 X-Gm-Message-State: ALoCoQl+++tf6G9ktsx57cU/rlXBAd49wQlRvagYb9oSQC6meG7E6PmXC0q1gmKGzToxZUtTmXpf 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: 2012.3.20.152415 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' MULTIPLE_RCPTS 0.1, HTML_00_01 0.05, HTML_00_10 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1400_1499 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, __ANY_URI 0, __CP_MEDIA_BODY 0, __CP_URI_IN_BODY 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __MIME_TEXT_ONLY 0, __MULTIPLE_RCPTS_CC_X2 0, __SANE_MSGID 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS ' Userptr can be very useful if this device is requested to use video buffers allocated by another processing device. So that buffers don't need to be copied. Signed-off-by: Javier Martin --- drivers/media/video/mx2_emmaprp.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/video/mx2_emmaprp.c b/drivers/media/video/mx2_emmaprp.c index ba89a74..55ac173 100644 --- a/drivers/media/video/mx2_emmaprp.c +++ b/drivers/media/video/mx2_emmaprp.c @@ -755,7 +755,7 @@ static int queue_init(void *priv, struct vb2_queue *src_vq, memset(src_vq, 0, sizeof(*src_vq)); src_vq->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; - src_vq->io_modes = VB2_MMAP; + src_vq->io_modes = VB2_MMAP | VB2_USERPTR; src_vq->drv_priv = ctx; src_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer); src_vq->ops = &emmaprp_qops; @@ -767,7 +767,7 @@ static int queue_init(void *priv, struct vb2_queue *src_vq, memset(dst_vq, 0, sizeof(*dst_vq)); dst_vq->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - dst_vq->io_modes = VB2_MMAP; + dst_vq->io_modes = VB2_MMAP | VB2_USERPTR; dst_vq->drv_priv = ctx; dst_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer); dst_vq->ops = &emmaprp_qops;