From patchwork Mon Jan 30 17:49:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 92905 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp1560253qgi; Mon, 30 Jan 2017 10:00:32 -0800 (PST) X-Received: by 10.98.147.207 with SMTP id r76mr24577407pfk.111.1485799231931; Mon, 30 Jan 2017 10:00:31 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i61si13231950plb.162.2017.01.30.10.00.31; Mon, 30 Jan 2017 10:00:31 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-usb-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@baylibre-com.20150623.gappssmtp.com; spf=pass (google.com: best guess record for domain of linux-usb-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-usb-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753529AbdA3SAV (ORCPT + 4 others); Mon, 30 Jan 2017 13:00:21 -0500 Received: from mail-wm0-f48.google.com ([74.125.82.48]:36263 "EHLO mail-wm0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752174AbdA3R7x (ORCPT ); Mon, 30 Jan 2017 12:59:53 -0500 Received: by mail-wm0-f48.google.com with SMTP id c85so225082143wmi.1 for ; Mon, 30 Jan 2017 09:58:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bzrKjX+R9ESU7itZZ2GszHi7iA/zbdcY0ZSjrji6Xtw=; b=F4AcAOszbozFzSaRZ4XN2D2+xeHOMbtovk+gB3Ist+aSNgKSo5a0ucBoDU2H/x4ojf 6sBcZxxG5MyncQCk96AQg2iGzJvZuAHTsFN/iFdfXt6jnDmqWam0Q+xSO3b96H/ho2Sd lF0zL2VuxrhJfnJnEqo+CX9TEQGRUlvH4ESx8XS5GzkuisvHXk+U6fozCTky1Y1mzFm7 /I1SG+LBDYR5+GCbr3M977Fba9RAP2aU+G0xrOsUZqJ4CzQISp+vO9mXOAweKxKx+pe4 xldlcQfQcGAhe56dlKZsnU6UQDjNybi/GkkR6dCq5rJqC5e5LFCcUWniE1qvwo3uu5KR irAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=bzrKjX+R9ESU7itZZ2GszHi7iA/zbdcY0ZSjrji6Xtw=; b=d/oaoxJwZas9yPby52/jmqplO/834Hh5XwrjkBccYI86nPHebb00DpJ56qW7GJMk3a VuIEl3ukRx2+NQTXIx1SCyTOf8hvvGP2ZWa9Q/fj9n4wxFiPkCGuOD7V22+m8gsTQB7R ybTt6J7zgM40oPxXmEmSROtW8QuBaacqXWgY8ERKE/g216UPBKw7Z/UR1eG0bzMoUZ8O wK0L52pOHKNtzMOvkIODBhqkrvhGP8sPiqjXPxoupQUSYXW8lCGEM2WnT883LB4/T7N6 gNSyCUdk9rcOyb9sqwpxZ1ACEvUztSORoNDJPS7daJynT+ZXNK37Wll1lFhaKlTp6aL3 AdZA== X-Gm-Message-State: AIkVDXLVS1pwZ47B94ceAGh0eRWPGK8wuKHeC2ZoD3qVA7LPIDI1e0G1IAx4pcZuKrei0zjt X-Received: by 10.223.175.49 with SMTP id z46mr23794165wrc.84.1485798565511; Mon, 30 Jan 2017 09:49:25 -0800 (PST) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id b87sm19912333wmi.0.2017.01.30.09.49.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 30 Jan 2017 09:49:25 -0800 (PST) From: Alexandre Bailon To: vinod.koul@intel.com Cc: dmaengine@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, robh+dt@kernel.org, nsekhar@ti.com, khilman@baylibre.com, ptitiano@baylibre.com, tony@atomide.com, b-liu@ti.com, sergei.shtylyov@cogentembedded.com, Alexandre Bailon Subject: [PATCH v4 1/3] dt/bindings: da8xx-usb: Add binding for the CPPI 4.1 DMA controller Date: Mon, 30 Jan 2017 18:49:19 +0100 Message-Id: <20170130174921.28231-2-abailon@baylibre.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170130174921.28231-1-abailon@baylibre.com> References: <20170130174921.28231-1-abailon@baylibre.com> MIME-Version: 1.0 Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org DT binding for the TI DA8xx/OMAP-L1x/AM17xx/AM18xx CPPI 4.1 DMA controller. Signed-off-by: Alexandre Bailon Acked-by: Rob Herring --- .../devicetree/bindings/usb/da8xx-usb.txt | 41 +++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) -- 2.10.2 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/Documentation/devicetree/bindings/usb/da8xx-usb.txt b/Documentation/devicetree/bindings/usb/da8xx-usb.txt index ccb844a..717c5f6 100644 --- a/Documentation/devicetree/bindings/usb/da8xx-usb.txt +++ b/Documentation/devicetree/bindings/usb/da8xx-usb.txt @@ -18,10 +18,26 @@ Required properties: - phy-names: Should be "usb-phy" + - dmas: specifies the dma channels + + - dma-names: specifies the names of the channels. Use "rxN" for receive + and "txN" for transmit endpoints. N specifies the endpoint number. + Optional properties: ~~~~~~~~~~~~~~~~~~~~ - vbus-supply: Phandle to a regulator providing the USB bus power. +DMA +~~~ +- compatible: ti,da830-cppi41 +- reg: offset and length of the following register spaces: CPPI DMA Controller, + CPPI DMA Scheduler, Queue Manager +- reg-names: "controller", "scheduler", "queuemgr" +- #dma-cells: should be set to 2. The first number represents the + channel number (0 … 3 for endpoints 1 … 4). + The second number is 0 for RX and 1 for TX transfers. +- #dma-channels: should be set to 4 representing the 4 endpoints. + Example: usb_phy: usb-phy { compatible = "ti,da830-usb-phy"; @@ -30,7 +46,10 @@ Example: }; usb0: usb@200000 { compatible = "ti,da830-musb"; - reg = <0x00200000 0x10000>; + reg = <0x00200000 0x1000>; + ranges; + #address-cells = <1>; + #size-cells = <1>; interrupts = <58>; interrupt-names = "mc"; @@ -39,5 +58,25 @@ Example: phys = <&usb_phy 0>; phy-names = "usb-phy"; + dmas = <&cppi41dma 0 0 &cppi41dma 1 0 + &cppi41dma 2 0 &cppi41dma 3 0 + &cppi41dma 0 1 &cppi41dma 1 1 + &cppi41dma 2 1 &cppi41dma 3 1>; + dma-names = + "rx1", "rx2", "rx3", "rx4", + "tx1", "tx2", "tx3", "tx4"; + status = "okay"; + + cppi41dma: dma-controller@201000 { + compatible = "ti,da830-cppi41"; + reg = <0x201000 0x1000 + 0x202000 0x1000 + 0x204000 0x4000>; + reg-names = "controller", "scheduler", "queuemgr"; + interrupts = <58>; + #dma-cells = <2>; + #dma-channels = <4>; + }; + }; From patchwork Mon Jan 30 17:49:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 92908 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp1569457qgi; Mon, 30 Jan 2017 10:20:03 -0800 (PST) X-Received: by 10.99.177.79 with SMTP id g15mr25724587pgp.185.1485800402943; Mon, 30 Jan 2017 10:20:02 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f7si13286121plm.190.2017.01.30.10.20.02; Mon, 30 Jan 2017 10:20:02 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-usb-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@baylibre-com.20150623.gappssmtp.com; spf=pass (google.com: best guess record for domain of linux-usb-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-usb-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753587AbdA3SUB (ORCPT + 4 others); Mon, 30 Jan 2017 13:20:01 -0500 Received: from mail-wm0-f46.google.com ([74.125.82.46]:38176 "EHLO mail-wm0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753215AbdA3SUA (ORCPT ); Mon, 30 Jan 2017 13:20:00 -0500 Received: by mail-wm0-f46.google.com with SMTP id r141so44402829wmg.1 for ; Mon, 30 Jan 2017 10:20:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=vlWHX391xmTVKqikPIvcpUxAKp5ApwIa+W98cCpnQ4c=; b=DQMXWGTVIb8OtdZt2okUGinjXPQv5WBRgZYeAJlbCTFZhFD4XGQqsBsq8VC8fS1rUg A3G/4pg9kNZOwvEBLLQO2XLlkwkkmlqtJ/06g9UnOIasNt+mkdbP68HiG+vOXOOqP2ve ZaPODDTDUJcDdoo/Nfaoy8iz7G+mxZ6GeAiEl0VqcMh+A7k4SkOHd3H8gISfizzPFTFb t8aIkYMWaTfvRcJ6HE3EhvLeZCse+wQzN2LZNDiFU8lF+XUcKC4ByfGXsRU03L0OlYcf SwIyzY5XecPDWjCb2rX0LG0lggvwG5y/Ehhy0etYRoWW3vyKY2oEraF4pSWMoqVnfP3w 6K4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=vlWHX391xmTVKqikPIvcpUxAKp5ApwIa+W98cCpnQ4c=; b=Wdkr0PWyUOaqoxmB5F01q7n0wrzM5ZAxMOadUCFi4V9SEak0BKkt40jwqQF/U8bTbn ecCZsZNw/F7FAI/Zi636Z+U+RduZtyLFSWZoQvz89WSnWdwjyqeIBLdptu5msoh4qzH7 I7+HttbDVtQKkGG7cWtvSWNSIX8kkt7h/T2uPtO3xvOdp5r1H3VOFy53idppyjO/oTyT /u4kSW9gc18jkSkgBOJWlgvro4t8zd34fa3vT1YL9boH9wywoGF7HfcLBxmC04Ws/Lyq FqShmTt9l0ppMi6Rewg2AQwwlE6tHXN/4rZzEN6XBs79icjrQXc0Xb3aLD0/7SQos8Rv fxEQ== X-Gm-Message-State: AIkVDXLv4aP9RCkQI5LEow5LPhKp0/Qd5PMMTBXvQEz9ZpUJ0fvAiMVTmv5bEH2b1MEt6BL6 X-Received: by 10.28.213.142 with SMTP id m136mr16606143wmg.90.1485798566449; Mon, 30 Jan 2017 09:49:26 -0800 (PST) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id b87sm19912333wmi.0.2017.01.30.09.49.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 30 Jan 2017 09:49:25 -0800 (PST) From: Alexandre Bailon To: vinod.koul@intel.com Cc: dmaengine@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, robh+dt@kernel.org, nsekhar@ti.com, khilman@baylibre.com, ptitiano@baylibre.com, tony@atomide.com, b-liu@ti.com, sergei.shtylyov@cogentembedded.com, Alexandre Bailon Subject: [PATCH v4 2/3] dmaengine: cppi41: Add support of DA8xx to CPPI 4.1 Date: Mon, 30 Jan 2017 18:49:20 +0100 Message-Id: <20170130174921.28231-3-abailon@baylibre.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170130174921.28231-1-abailon@baylibre.com> References: <20170130174921.28231-1-abailon@baylibre.com> Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org The DA8xx has a CPPI 4.1 DMA controller. This is add the glue layer required to make it work on DA8xx. Signed-off-by: Alexandre Bailon --- drivers/dma/Kconfig | 6 +++--- drivers/dma/cppi41.c | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) -- 2.10.2 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig index 0d6a96e..2a31e1a 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig @@ -514,12 +514,12 @@ config TIMB_DMA Enable support for the Timberdale FPGA DMA engine. config TI_CPPI41 - tristate "AM33xx CPPI41 DMA support" - depends on ARCH_OMAP + tristate "CPPI 4.1 DMA support" + depends on (ARCH_OMAP || ARCH_DAVINCI_DA8XX) select DMA_ENGINE help The Communications Port Programming Interface (CPPI) 4.1 DMA engine - is currently used by the USB driver on AM335x platforms. + is currently used by the USB driver on AM335x and DA8xx platforms. config TI_DMA_CROSSBAR bool diff --git a/drivers/dma/cppi41.c b/drivers/dma/cppi41.c index 21a4f79..5c501da 100644 --- a/drivers/dma/cppi41.c +++ b/drivers/dma/cppi41.c @@ -221,6 +221,20 @@ static const struct chan_queues am335x_usb_queues_rx[] = { [29] = { .submit = 30, .complete = 155}, }; +static const struct chan_queues da8xx_usb_queues_tx[] = { + [0] = { .submit = 16, .complete = 24}, + [1] = { .submit = 18, .complete = 24}, + [2] = { .submit = 20, .complete = 24}, + [3] = { .submit = 22, .complete = 24}, +}; + +static const struct chan_queues da8xx_usb_queues_rx[] = { + [0] = { .submit = 1, .complete = 26}, + [1] = { .submit = 3, .complete = 26}, + [2] = { .submit = 5, .complete = 26}, + [3] = { .submit = 7, .complete = 26}, +}; + struct cppi_glue_infos { const struct chan_queues *queues_rx; const struct chan_queues *queues_tx; @@ -949,8 +963,17 @@ static const struct cppi_glue_infos am335x_usb_infos = { .qmgr_num_pend = 5, }; +static const struct cppi_glue_infos da8xx_usb_infos = { + .queues_rx = da8xx_usb_queues_rx, + .queues_tx = da8xx_usb_queues_tx, + .td_queue = { .submit = 31, .complete = 0 }, + .first_completion_queue = 24, + .qmgr_num_pend = 2, +}; + static const struct of_device_id cppi41_dma_ids[] = { { .compatible = "ti,am3359-cppi41", .data = &am335x_usb_infos}, + { .compatible = "ti,da830-cppi41", .data = &da8xx_usb_infos}, {}, }; MODULE_DEVICE_TABLE(of, cppi41_dma_ids); From patchwork Mon Jan 30 17:49:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 92907 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp1568806qgi; Mon, 30 Jan 2017 10:18:23 -0800 (PST) X-Received: by 10.98.30.4 with SMTP id e4mr24880821pfe.19.1485800303607; Mon, 30 Jan 2017 10:18:23 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q126si13318600pfb.202.2017.01.30.10.18.23; Mon, 30 Jan 2017 10:18:23 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-usb-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@baylibre-com.20150623.gappssmtp.com; spf=pass (google.com: best guess record for domain of linux-usb-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-usb-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753332AbdA3SSW (ORCPT + 4 others); Mon, 30 Jan 2017 13:18:22 -0500 Received: from mail-wm0-f44.google.com ([74.125.82.44]:38893 "EHLO mail-wm0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752265AbdA3SSV (ORCPT ); Mon, 30 Jan 2017 13:18:21 -0500 Received: by mail-wm0-f44.google.com with SMTP id r141so44335227wmg.1 for ; Mon, 30 Jan 2017 10:18:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=MhKkIRkinMVek0LL5F1GBXKHJMEiupRRDHiIG4IV0FM=; b=fY9CG+ojYlwDhiJd3L+8UOP7Op+k9aTkm47kj8+Vmv3lmTJeB0yEzGKlDw5lOigJP7 PYVIVjNRl+AHPuPeSpHoSqpUmkwYC8eQUdMxXwDmgr4oz4/fa5a47fqgp8gyMJjGRNQe 29O07MU4MJCSIgzJpjg6Gmkbp26zd+vlGZh1aJbfeaMBYUp768nGKE4flEKUNMPkbzOC tL5+n9Y+7hxkas7P03x3Z5zkVVDWgnlEzvEO3AnExquHVOw9G/NdhHNfSL3iCIM1AGVC /cq/eRooT/+2Km+H+Sbh72EGUZrVH63vAM+TrhlKnaNyqXsuVBgDNT6u3TqUFQXwCEuJ 8GuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=MhKkIRkinMVek0LL5F1GBXKHJMEiupRRDHiIG4IV0FM=; b=IxkCfqS5aH4vHNl8p5j5JQ3egcUg6FhhjAyeXLLRxWLXhuXmi5KfXM52Vq01gMQVpc UqihdpbiaiRwb8aXy0Sd3BTfx4eSv2wtT/dpiGw+51OeBroNOOKZRLxLKcCGk5HP9I46 IYaq9VB6pfB+Yzom4JwXOs7hP37jeU19yA2+hA7UOIA7YqKSDvj3Qw1N1hctKjrzg75x KQMUd6eRaVZ6br6waWDelMVyGlkeZ8B+XqmKv8dqTeMyGF+ZrKDeghXHu2NQrX4BpRZu WAYmZFJCEDiF7k1bw8q0TRqdsD4CJgVpkcrCwLkCWG9DzCCeGfZGGaWYlMhXLhELQ8dt aBrQ== X-Gm-Message-State: AIkVDXIMK3+aOc+m39CSZJ36ABlCawhhZBt4684owuvqpea0AJ68sxZIj2YM+KB/VWHFjoal X-Received: by 10.28.66.221 with SMTP id k90mr7253028wmi.90.1485798567403; Mon, 30 Jan 2017 09:49:27 -0800 (PST) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id b87sm19912333wmi.0.2017.01.30.09.49.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 30 Jan 2017 09:49:26 -0800 (PST) From: Alexandre Bailon To: vinod.koul@intel.com Cc: dmaengine@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, robh+dt@kernel.org, nsekhar@ti.com, khilman@baylibre.com, ptitiano@baylibre.com, tony@atomide.com, b-liu@ti.com, sergei.shtylyov@cogentembedded.com, Alexandre Bailon Subject: [PATCH v4 3/3] dmaengine: cppi41: Fix teardown warnings Date: Mon, 30 Jan 2017 18:49:21 +0100 Message-Id: <20170130174921.28231-4-abailon@baylibre.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170130174921.28231-1-abailon@baylibre.com> References: <20170130174921.28231-1-abailon@baylibre.com> Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org During the teardown of a RX channel, because there is only one completion queue available for RX channel, descriptor of another channel may be popped which will cause 2 warnings: - the first one because we popped a wrong descriptor (neither the channel's descriptor, nor the teardown descriptor). - the second one happen during the teardown of another channel, because we can't find the channel descriptor (that is, the one that caused the first warning). To avoid that, use one free queue instead of a transmit completion queue. Note that fix doesn't fix all the teardown warnings: I still get some when I run some corner case. Signed-off-by: Alexandre Bailon --- drivers/dma/cppi41.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.10.2 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/dma/cppi41.c b/drivers/dma/cppi41.c index 5c501da..9fdd824 100644 --- a/drivers/dma/cppi41.c +++ b/drivers/dma/cppi41.c @@ -629,7 +629,7 @@ static int cppi41_tear_down_chan(struct cppi41_channel *c) if (!c->is_tx) { reg |= GCR_STARV_RETRY; reg |= GCR_DESC_TYPE_HOST; - reg |= c->q_comp_num; + reg |= cdd->td_queue.complete; } reg |= GCR_TEARDOWN; cppi_writel(reg, c->gcr_reg); @@ -640,7 +640,7 @@ static int cppi41_tear_down_chan(struct cppi41_channel *c) if (!c->td_seen || !c->td_desc_seen) { desc_phys = cppi41_pop_desc(cdd, cdd->td_queue.complete); - if (!desc_phys) + if (!desc_phys && c->is_tx) desc_phys = cppi41_pop_desc(cdd, c->q_comp_num); if (desc_phys == c->desc_phys) {