From patchwork Wed Mar 18 10:22:53 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Philipp Zabel X-Patchwork-Id: 6037871 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 42A83BF911 for ; Wed, 18 Mar 2015 10:23:08 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 2D80720504 for ; Wed, 18 Mar 2015 10:23:06 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 0758C201BB for ; Wed, 18 Mar 2015 10:23:04 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 418EA6E7F5; Wed, 18 Mar 2015 03:23:03 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [92.198.50.35]) by gabe.freedesktop.org (Postfix) with ESMTP id 1CE266E7F8 for ; Wed, 18 Mar 2015 03:23:01 -0700 (PDT) Received: from dude.hi.4.pengutronix.de ([10.1.0.7] helo=dude.pengutronix.de.) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1YYB7s-0006KQ-AV; Wed, 18 Mar 2015 11:23:00 +0100 From: Philipp Zabel To: linux-media@vger.kernel.org Subject: [PATCH v2 5/5] [media] imx-ipu: Add i.MX IPUv3 scaler driver Date: Wed, 18 Mar 2015 11:22:53 +0100 Message-Id: <1426674173-17088-6-git-send-email-p.zabel@pengutronix.de> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1426674173-17088-1-git-send-email-p.zabel@pengutronix.de> References: <1426674173-17088-1-git-send-email-p.zabel@pengutronix.de> X-SA-Exim-Connect-IP: 10.1.0.7 X-SA-Exim-Mail-From: p.zabel@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: dri-devel@lists.freedesktop.org Cc: Mauro Carvalho Chehab , dri-devel@lists.freedesktop.org, Hans Verkuil , kernel@pengutronix.de, Steve Longerbeam , Jean-Michel Hautbois , Michael Olbrich X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Sascha Hauer This patch adds support for hardware accelerated scaling and color space conversion between memory buffers using the IPUv3 IC. Since the maximum output size of the IC unit is 1024x1024 pixels, multiple IC tasks with overlapping tiles are used internally to scale and convert larger frames. The IC operates with a burst size of at least 8 pixels. Depending on the frame width and scaling factor, up to 7 junk pixels may be written after the end of the frame. The sizeimage is increased accordingly. Signed-off-by: Sascha Hauer Signed-off-by: Michael Olbrich Signed-off-by: Philipp Zabel --- Changes since v1: - Removed removal of deinterlacer support left-overs --- drivers/media/platform/imx/Kconfig | 9 + drivers/media/platform/imx/Makefile | 1 + drivers/media/platform/imx/imx-ipu-scaler.c | 869 ++++++++++++++++++++++++++++ drivers/media/platform/imx/imx-ipu.c | 2 +- drivers/media/platform/imx/imx-ipu.h | 1 + 5 files changed, 881 insertions(+), 1 deletion(-) create mode 100644 drivers/media/platform/imx/imx-ipu-scaler.c diff --git a/drivers/media/platform/imx/Kconfig b/drivers/media/platform/imx/Kconfig index a90c973..4694367 100644 --- a/drivers/media/platform/imx/Kconfig +++ b/drivers/media/platform/imx/Kconfig @@ -1,2 +1,11 @@ config VIDEO_IMX_IPU_COMMON tristate + +config VIDEO_IMX_IPU_SCALER + tristate "i.MX5/6 IPUv3 based image scaler driver" + depends on VIDEO_DEV && IMX_IPUV3_CORE + select VIDEOBUF2_DMA_CONTIG + select VIDEO_IMX_IPU_COMMON + select V4L2_MEM2MEM_DEV + ---help--- + This is a v4l2 scaler video driver for the IPUv3 on i.MX5/6. diff --git a/drivers/media/platform/imx/Makefile b/drivers/media/platform/imx/Makefile index 5de119c..f20aa0b 100644 --- a/drivers/media/platform/imx/Makefile +++ b/drivers/media/platform/imx/Makefile @@ -1 +1,2 @@ obj-$(CONFIG_VIDEO_IMX_IPU_COMMON) += imx-ipu.o +obj-$(CONFIG_VIDEO_IMX_IPU_SCALER) += imx-ipu-scaler.o diff --git a/drivers/media/platform/imx/imx-ipu-scaler.c b/drivers/media/platform/imx/imx-ipu-scaler.c new file mode 100644 index 0000000..9cf8a70 --- /dev/null +++ b/drivers/media/platform/imx/imx-ipu-scaler.c @@ -0,0 +1,869 @@ +/* + * i.MX IPUv3 scaler driver + * + * Copyright (C) 2011 Sascha Hauer, Pengutronix + * + * based on the mem2mem test driver + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +#include +#include +#include +#include +#include +#include +#include