From patchwork Tue Jan 24 09:58:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 92309 Delivered-To: patch@linaro.org Received: by 10.182.3.34 with SMTP id 2csp1616712obz; Tue, 24 Jan 2017 01:59:06 -0800 (PST) X-Received: by 10.99.175.16 with SMTP id w16mr37877795pge.32.1485251946484; Tue, 24 Jan 2017 01:59:06 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c12si12857091pfe.23.2017.01.24.01.59.06; Tue, 24 Jan 2017 01:59:06 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-omap-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-omap-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-omap-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750744AbdAXJ7E (ORCPT + 4 others); Tue, 24 Jan 2017 04:59:04 -0500 Received: from mail-wm0-f46.google.com ([74.125.82.46]:37688 "EHLO mail-wm0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750799AbdAXJ65 (ORCPT ); Tue, 24 Jan 2017 04:58:57 -0500 Received: by mail-wm0-f46.google.com with SMTP id c206so200142859wme.0 for ; Tue, 24 Jan 2017 01:58:57 -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=pPM12QVI4OsZ5Laax6HUatu/1t0I1y7EMV5aaL2d4js=; b=YvOr3xckGaW+sYhJMSdtiI8dXGZHadf+0RHnuqNYGF0vKG1JOuYq4GeEezgX3ymEAM PLR4lh6Sc/fIRP/qOX7FhfkshlQ+z2ai/xKR0XgvCBuZPw/NZP7n0m/b91jYvIUB9O8K vnPHIEItT+iBMaIVFB2yrT9PEPUYMYXwfSP4VhPr8re0ngLA5SX0cdI7UgphrthlFeiB VecxKoXqzwY0hxRTuksX8BigA9kk37PcCyMf3DcfXz+rF5ffAZkvCgSJOhdRAjsZg1AK rLkETBcfcChFZTEenyuKbOnCw7HJIM8I+q71mS/+WJOsv5d+dv72HsWE1GresJDK4sol 1OQg== 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=pPM12QVI4OsZ5Laax6HUatu/1t0I1y7EMV5aaL2d4js=; b=Y9Cl8DyQqD3Rw31GBvPE4PWoTJHG8JxqeDbp/H+hO14BiEbZ4yb+JIqJIC79r6+Jc0 k1m1eFcMxRDlYunUrW2XCqe7P5TtFoy3P4+nQ8O0/IdUWI5+3R5qdrqK6KA5euML3kyV aCi9JRiNHKbyBtnDopTkb0Pexwwh0EHegXWChAMPYVWaxOV0o12lIzxfbxND3Ogk5bS6 d/u/1IwSmge4XbYaScGDN35j6mOnoGw8Kp9fbLFXmKI4c3TKTodaGFgeoQUZyhhnup9e VtyVXW/aRoUSETcm3co1B4gufjN5+nvg+Xf7zcEjB2SLuBcxwFg0mts+G/HWXg61uzVu vogQ== X-Gm-Message-State: AIkVDXLCrJxI5ZqpId3wuAICARJOch+nfJ23Ji1bR/SVi742qN+IbOcsqfModP/IqIJnxBoN X-Received: by 10.28.99.69 with SMTP id x66mr16480630wmb.91.1485251936319; Tue, 24 Jan 2017 01:58:56 -0800 (PST) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id l10sm16243815wrb.44.2017.01.24.01.58.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 24 Jan 2017 01:58:55 -0800 (PST) From: Alexandre Bailon To: vinod.koul@intel.com Cc: dmaengine@vger.kernel.org, nsekhar@ti.com, khilman@baylibre.com, ptitiano@baylibre.com, tony@atomide.com, linux-omap@vger.kernel.org, linux-usb@vger.kernel.org, b-liu@ti.com, sergei.shtylyov@cogentembedded.com, devicetree@vger.kernel.org, robh+dt@kernel.org, Alexandre Bailon Subject: [PATCH v3 1/3] dt/bindings: da8xx-usb: Add binding for the CPPI 4.1 DMA controller Date: Tue, 24 Jan 2017 10:58:46 +0100 Message-Id: <20170124095848.14593-2-abailon@baylibre.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170124095848.14593-1-abailon@baylibre.com> References: <20170124095848.14593-1-abailon@baylibre.com> MIME-Version: 1.0 Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org DT binding for the TI DA8xx/OMAP-L1x/AM17xx/AM18xx CPPI 4.1 DMA controller. Signed-off-by: Alexandre Bailon --- .../devicetree/bindings/usb/da8xx-usb.txt | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) -- 2.10.2 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" 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..c3944a6 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"; @@ -31,6 +47,9 @@ Example: usb0: usb@200000 { compatible = "ti,da830-musb"; reg = <0x00200000 0x10000>; + 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 Tue Jan 24 09:58:47 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 92311 Delivered-To: patch@linaro.org Received: by 10.182.3.34 with SMTP id 2csp1616732obz; Tue, 24 Jan 2017 01:59:10 -0800 (PST) X-Received: by 10.98.200.207 with SMTP id i76mr36992310pfk.38.1485251950058; Tue, 24 Jan 2017 01:59:10 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c12si12857091pfe.23.2017.01.24.01.59.09; Tue, 24 Jan 2017 01:59:10 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of devicetree-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 devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750813AbdAXJ7D (ORCPT + 7 others); Tue, 24 Jan 2017 04:59:03 -0500 Received: from mail-wm0-f54.google.com ([74.125.82.54]:38149 "EHLO mail-wm0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750809AbdAXJ66 (ORCPT ); Tue, 24 Jan 2017 04:58:58 -0500 Received: by mail-wm0-f54.google.com with SMTP id r144so199778071wme.1 for ; Tue, 24 Jan 2017 01:58:58 -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=0lw+T9PzEI09MMzTtKPYVfn587s1Gpb0YSDEPGAqrPtEtv/Ba8BrwtYiQPxUBCu0rb ruxWXyM9z6IXb3A08UIjPCp0biVbsHybJfHDhAKaWas1mRmu1oVY6uJJzvN18COrX95+ pSh8+s/Q2usLf4smSnOlnzjwqJRTj2zr9ebahcpFTYHZUabpx1NNX1evJdmZqN0KibY7 HKVYM/qPmCjDa2C1Cw+c7w96Wn44qFdJpkobraxpwTNq2Vy3pPR8BAZCf18GDQlBi1Dg t3o2xo3Peoo0kcvXYb95cJqnQGF657vgnEMkeaEq8h0WwQ/7qj9HURi/CZDxbN+ATzXm 2ujQ== 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=ZbzWM2IRv0n43qt/I2YzhSMuaEfpVYdvOpeJK6HZrdl/YuEf74M0xsydALuLPFe3wH 6oM0JoyzcdurpbZzOWGE7n5OvPIOT27MZ5LCq6Kjn50aiCvs4c6vwmBTnmQ3DRGSk2DT 7TMlpEi1rrb5bvFwH0gDcueVYkcA5M5mx5sWIL6fALMpHpUI7K/Oow1c25aF2yFc1FMd BHjdsmiEuM+uPYH1G4VXRjAijcx5QYK7V2GBeIBjp+7YoPD9wEFeRwo24QekCVLp5scS bnkS3jJKBQVivJzffFH8gGbZqxeyUH4cpL0H+VEq738/hPtIFoDcE9yyOLkjf5zf/pYW 6vkg== X-Gm-Message-State: AIkVDXI6kQkt9wSLkPCCZbLmFvIlLCiEyCnCu66jo0k0y3obTQAqF73PYHQ08gGntCwIgE1G X-Received: by 10.28.217.136 with SMTP id q130mr15907481wmg.13.1485251937391; Tue, 24 Jan 2017 01:58:57 -0800 (PST) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id l10sm16243815wrb.44.2017.01.24.01.58.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 24 Jan 2017 01:58:56 -0800 (PST) From: Alexandre Bailon To: vinod.koul@intel.com Cc: dmaengine@vger.kernel.org, nsekhar@ti.com, khilman@baylibre.com, ptitiano@baylibre.com, tony@atomide.com, linux-omap@vger.kernel.org, linux-usb@vger.kernel.org, b-liu@ti.com, sergei.shtylyov@cogentembedded.com, devicetree@vger.kernel.org, robh+dt@kernel.org, Alexandre Bailon Subject: [PATCH v3 2/3] dmaengine: cppi41: Add support of DA8xx to CPPI 4.1 Date: Tue, 24 Jan 2017 10:58:47 +0100 Message-Id: <20170124095848.14593-3-abailon@baylibre.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170124095848.14593-1-abailon@baylibre.com> References: <20170124095848.14593-1-abailon@baylibre.com> Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@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 devicetree" 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 Tue Jan 24 09:58:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 92310 Delivered-To: patch@linaro.org Received: by 10.182.3.34 with SMTP id 2csp1616731obz; Tue, 24 Jan 2017 01:59:09 -0800 (PST) X-Received: by 10.98.81.6 with SMTP id f6mr14615239pfb.180.1485251949793; Tue, 24 Jan 2017 01:59:09 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c12si12857091pfe.23.2017.01.24.01.59.09; Tue, 24 Jan 2017 01:59:09 -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 S1750824AbdAXJ7D (ORCPT + 4 others); Tue, 24 Jan 2017 04:59:03 -0500 Received: from mail-wm0-f44.google.com ([74.125.82.44]:36590 "EHLO mail-wm0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750814AbdAXJ67 (ORCPT ); Tue, 24 Jan 2017 04:58:59 -0500 Received: by mail-wm0-f44.google.com with SMTP id c85so172758092wmi.1 for ; Tue, 24 Jan 2017 01:58:59 -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=aJ6ln5PiopJGQSEDFCmqBulAPHzBCpNoOXXKtOcsYN9ZiHzgavdTKrXOFNWrQfjroe z5JAN88tsz7swP+c2QYFopS6Rbviwkdg9R11TULh5BzTTzziijj6/AAAZ8jbCqcui95v uKGOeV9xskfgJ6fq8hQOzeGFd3n2IFcgiMXdmI6PZ6815KZeBgys3wUA5ONK67j27v4+ I95bJHEvsEILGJE2oLNyoNK81KQ1iPIbUeqKKn9GhXszWqtErUGMNAaEgZq+K8/gnPQw l8cSpL/GlVpR6MYNGEm2dee6Qt1DhrM+x+Md4VHgJickdzFyIe+zoZcQttpMOriLDjYU OAHg== 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=RfQMiM5ogOwA4qU8nc6Kxx+zWUSFkC2M2qMzIUIoQqpD6J7jyqqLk5gqzvBSucUt9C yU1uiL1jxIT8LXpYNq1aVjI+Ro3ZUXtX3lJ+1Yc4wA1596mRP1rb779A1q/8ZiwnQZXZ eMLoNk+UyaYClDyg80UhQFX4mJtIKpOUlxBbvIxLGWPObWK3ZJzON1CmmZ6jMoVm3Dgs Rz0xtnURa8P6up6TZR8rohxf/cWntbgi/dy7XPOdxMxmbQwwcX33c82N6P2oYtynpdWL UFxyUGADR6yc4K+U0+8J624EAOPFeXrd6wpyG4UGTixlL5ffInHWlP72nNcaOGczshjA wmSQ== X-Gm-Message-State: AIkVDXLxUFJW9tXxF1egT0i3oflZt1cMUna5tEXDZZybj+qyRvMjyg1L9pnZ7bWzBwSpMZTA X-Received: by 10.223.156.9 with SMTP id f9mr27666659wrc.157.1485251938429; Tue, 24 Jan 2017 01:58:58 -0800 (PST) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id l10sm16243815wrb.44.2017.01.24.01.58.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 24 Jan 2017 01:58:58 -0800 (PST) From: Alexandre Bailon To: vinod.koul@intel.com Cc: dmaengine@vger.kernel.org, nsekhar@ti.com, khilman@baylibre.com, ptitiano@baylibre.com, tony@atomide.com, linux-omap@vger.kernel.org, linux-usb@vger.kernel.org, b-liu@ti.com, sergei.shtylyov@cogentembedded.com, devicetree@vger.kernel.org, robh+dt@kernel.org, Alexandre Bailon Subject: [PATCH v3 3/3] dmaengine: cppi41: Fix teardown warnings Date: Tue, 24 Jan 2017 10:58:48 +0100 Message-Id: <20170124095848.14593-4-abailon@baylibre.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170124095848.14593-1-abailon@baylibre.com> References: <20170124095848.14593-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) {