From patchwork Mon Jan 18 12:52:20 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josh Wu X-Patchwork-Id: 8054601 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 66D5E9F818 for ; Mon, 18 Jan 2016 12:56:00 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 7CF25203B1 for ; Mon, 18 Jan 2016 12:55:59 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id ADF75203A9 for ; Mon, 18 Jan 2016 12:55:58 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1aL9KL-0002hF-Jd; Mon, 18 Jan 2016 12:54:33 +0000 Received: from mail-pa0-x241.google.com ([2607:f8b0:400e:c03::241]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1aL9Jm-0002GQ-U0 for linux-arm-kernel@lists.infradead.org; Mon, 18 Jan 2016 12:54:00 +0000 Received: by mail-pa0-x241.google.com with SMTP id yy13so32583693pab.1 for ; Mon, 18 Jan 2016 04:53:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=9C93RF5dl6fk8Gm4usxo636leHMSsk87Oznxz59Tbac=; b=FGY3/TPOBkJPqL4zlmOfnk+AmBUoP7BsVW1Xhwp7EjuyhhcUavcIQfyr3zNc3cec8v 5j6hHJrLlwrEjTSGrIheiya9RRUQ1aKib+FAgBc9fgfGXe6u176C2d/SM1vF9YcZtx27 wttPTrJ8gM/dq2yYn6tTN8vkzrrQF5mXOY7LAC/nNFpb47pqd+J0nQIWDRJwox97C80h UQPGUEqz1N048vSsRQBAblJ5nAcR2gcDiEhxOYQUaxUZ468tcomR+zbyI0WNrO9Wta/L fKg+2HJelWn8AakWPw71iuDH97SLoKKLpQNqK8ewuY6Su9Qo8UJqdHUtkFK7zxsxGshY bf5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=9C93RF5dl6fk8Gm4usxo636leHMSsk87Oznxz59Tbac=; b=VAG9dZUkfo7AA8r+vw3LW2s117ruLvrHukJz+BlvzmL/ddopmMVYWqvhGqPz6fFDRb 1yRbsrnSUkfLdQJlKmng7Sz539OROmKVD4E3RxJWkwcjiy4WrfIxYF/EqbJoPtICAmpM wdEeoLqHvGzQIISyZN8uV/GImQ0aSv1pzdh2Yi4D2G0+HJdCuuWa5ReOCWZak0rW5EZu WvBISsFq05ThVlo5U9ZZMCoR5rQES8jvATRWV38nfhDP2j/47CO+sscyijYbbU3Tt3fc pxx/vXNIoHrmFsxqqEUQTyPNIhR4RV5bZKXDQpoozB6XZaKHpcbCP/rroVDfBFiUGWBv oo4w== X-Gm-Message-State: ALoCoQm3sErcWoF5ukqpZvf3H8uJO0yYpT4ei3A13hIg2U0NLkIJXIen6R6lNz4b3ZfcCmwBAVhzWyUrWhHRaEGGCaFXcmxOGg== X-Received: by 10.66.142.168 with SMTP id rx8mr35944576pab.16.1453121618227; Mon, 18 Jan 2016 04:53:38 -0800 (PST) Received: from ubuntu.ubuntu-domain ([101.224.101.57]) by smtp.gmail.com with ESMTPSA id q14sm27491890pfq.81.2016.01.18.04.53.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 18 Jan 2016 04:53:36 -0800 (PST) From: Josh Wu To: Guennadi Liakhovetski , Linux Media Mailing List Subject: [PATCH 09/13] atmel-isi: add a function start_isi() Date: Mon, 18 Jan 2016 20:52:20 +0800 Message-Id: <1453121545-27528-4-git-send-email-rainyfeeling@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1453121545-27528-1-git-send-email-rainyfeeling@gmail.com> References: <1453119709-20940-1-git-send-email-rainyfeeling@gmail.com> <1453121545-27528-1-git-send-email-rainyfeeling@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160118_045359_364588_94D59E80 X-CRM114-Status: GOOD ( 14.96 ) X-Spam-Score: -2.7 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Josh Wu , Ludovic Desroches , Nicolas Ferre , Songjun Wu , linux-arm-kernel@lists.infradead.org MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, T_DKIM_INVALID, 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 Since start_dma() has code which is to start isi, so move such code into a new function: start_isi(). Signed-off-by: Josh Wu --- drivers/media/platform/soc_camera/atmel-isi.c | 32 +++++++++++++++------------ 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/drivers/media/platform/soc_camera/atmel-isi.c b/drivers/media/platform/soc_camera/atmel-isi.c index e1ad18f..0e42171 100644 --- a/drivers/media/platform/soc_camera/atmel-isi.c +++ b/drivers/media/platform/soc_camera/atmel-isi.c @@ -245,6 +245,20 @@ static int isi_hw_initialize(struct atmel_isi *isi) return 0; } +static void start_isi(struct atmel_isi *isi) +{ + u32 ctrl; + + /* cxfr for the codec path, pxfr for the preview path */ + isi_writel(isi, ISI_INTEN, + ISI_SR_CXFR_DONE | ISI_SR_PXFR_DONE); + + /* Enable ISI */ + ctrl = ISI_CTRL_EN | + (isi->enable_preview_path ? 0 : ISI_CTRL_CDC); + isi_writel(isi, ISI_CTRL, ctrl); +} + static irqreturn_t atmel_isi_handle_streaming(struct atmel_isi *isi) { if (isi->active) { @@ -403,12 +417,6 @@ static void buffer_cleanup(struct vb2_buffer *vb) static void start_dma(struct atmel_isi *isi, struct frame_buffer *buffer) { - u32 ctrl; - - /* Enable irq: cxfr for the codec path, pxfr for the preview path */ - isi_writel(isi, ISI_INTEN, - ISI_SR_CXFR_DONE | ISI_SR_PXFR_DONE); - /* Check if already in a frame */ if (!isi->enable_preview_path) { if (isi_readl(isi, ISI_STATUS) & ISI_CTRL_CDC) { @@ -429,13 +437,6 @@ static void start_dma(struct atmel_isi *isi, struct frame_buffer *buffer) isi_writel(isi, ISI_DMA_CHER, ISI_DMA_CHSR_P_CH); } - /* Enable ISI */ - ctrl = ISI_CTRL_EN; - - if (!isi->enable_preview_path) - ctrl |= ISI_CTRL_CDC; - - isi_writel(isi, ISI_CTRL, ctrl); } static void buffer_queue(struct vb2_buffer *vb) @@ -478,8 +479,11 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count) spin_lock_irq(&isi->lock); - if (count) + if (count) { start_dma(isi, isi->active); + start_isi(isi); + } + spin_unlock_irq(&isi->lock); return 0;