From patchwork Thu Feb 7 11:31:14 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jassi Brar X-Patchwork-Id: 2110081 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by patchwork1.kernel.org (Postfix) with ESMTP id 7972D3FCD5 for ; Thu, 7 Feb 2013 11:34:13 +0000 (UTC) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1U3PhH-0002xG-Tr; Thu, 07 Feb 2013 11:31:19 +0000 Received: from mail-ia0-x236.google.com ([2607:f8b0:4001:c02::236]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1U3PhE-0002ws-O2 for linux-arm-kernel@lists.infradead.org; Thu, 07 Feb 2013 11:31:17 +0000 Received: by mail-ia0-f182.google.com with SMTP id w33so2816598iag.13 for ; Thu, 07 Feb 2013 03:31:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=HD3aqegx3qwIIafAM/jJ/w1zK4DGyLD6im/vVq2/dlA=; b=VcFitdjTq9HuG/eTth6Zg/hj2WfvQvKw7H7kSbTOVu8UldeMrPI3XLpFK8O8yHZuUP Qw3bml013HNAtjkqecieriPIqhLWBW9AJcc5pjQk05p8doHs7KmhXuAvE+JY+IR9qWKB qwTY5H02PSJm/ZHVMPu+zPDNRh7gX3/yfDfXYomnX2YFbNZNs+uUYZz5HExv/c6PhGkl BVdY2MRKPMdWzG/MkIAAV9QGXyC/7frbsfDAK7La71r0dqe61rHyvLDyYQgHnkTduK+w qHiURkbB7/gp98qZ44v6G1aUcZFnITDPA+pTPKu6Iah66eZ4mnxPk33zZ5TTUbdFydko 1aaQ== MIME-Version: 1.0 X-Received: by 10.42.204.79 with SMTP id fl15mr1549609icb.57.1360236675046; Thu, 07 Feb 2013 03:31:15 -0800 (PST) Received: by 10.231.155.70 with HTTP; Thu, 7 Feb 2013 03:31:14 -0800 (PST) In-Reply-To: <1360233523-20825-1-git-send-email-dirac3000@gmail.com> References: <1360233523-20825-1-git-send-email-dirac3000@gmail.com> Date: Thu, 7 Feb 2013 17:01:14 +0530 Message-ID: Subject: Re: [PATCH 1/1] DMA: PL330: allow submitting 2 requests at a time From: Jassi Brar To: Alvaro Moran X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20130207_063116_805056_680FEEF0 X-CRM114-Status: GOOD ( 13.91 ) X-Spam-Score: -2.0 (--) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-2.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (jassisinghbrar[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature Cc: Russell King - ARM Linux , linux-arm-kernel@lists.infradead.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org On Thu, Feb 7, 2013 at 4:08 PM, Alvaro Moran wrote: > Due to the original driver design, only one request was processed at a > time by the driver, even if the low-level part of the driver was able to > handle 2 requests. > With this patch we are able to create 2 microcodes per thread and to > launch the second transfer on the interrupt handler of the first one, > instead of having to wait for the tasklet to generate the microcode. > The following seems more appropriate and complete. Does it fix your problem? break; diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 758122f..a821d71 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -2292,13 +2292,12 @@ static inline void fill_queue(struct dma_pl330_chan *pch) /* If already submitted */ if (desc->status == BUSY) - break; + continue; ret = pl330_submit_req(pch->pl330_chid, &desc->req); if (!ret) { desc->status = BUSY; - break; } else if (ret == -EAGAIN) { /* QFull or DMAC Dying */