From patchwork Thu Jan 19 11:13:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 91855 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp223260qgi; Thu, 19 Jan 2017 03:14:25 -0800 (PST) X-Received: by 10.99.126.27 with SMTP id z27mr9420306pgc.177.1484824464961; Thu, 19 Jan 2017 03:14:24 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z86si3250480pfj.81.2017.01.19.03.14.24; Thu, 19 Jan 2017 03:14:24 -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 S1751898AbdASLOX (ORCPT + 4 others); Thu, 19 Jan 2017 06:14:23 -0500 Received: from mail-wm0-f51.google.com ([74.125.82.51]:37322 "EHLO mail-wm0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752115AbdASLOO (ORCPT ); Thu, 19 Jan 2017 06:14:14 -0500 Received: by mail-wm0-f51.google.com with SMTP id c206so71858361wme.0 for ; Thu, 19 Jan 2017 03:13:41 -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=qbF78oorgbQW3TZDqze+zX7G4XhuFUNODH/QN2w86b6Xo1hWCwlUVMFobcb9oiURsj UmvS20kYnwY4g9iot/u8IYw4j3aBbpwdsOlykCBVqnt2oTC0dbb75aT1DvzXe/3TSVkW 0Icw9uN7Socy5bzyow6KWZmu+lKBL4jdP40OKeWhNKSBbk8An2JtMZV8bS0W/OyEWXgl iGONosOO6VB7WbkFuLwRzXLKiZXlOFXvZE2YXhChB/U+2mPCrDqyabhrpD1z8BDHzh6w 42AyWbxznyQqF4bt5vdNE6Q88Zfl69R5Z8/6rMBnmgUUvdE/pKj/qSNqcevdbfaZOt46 I9Tw== 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=m3z82hYdjnZZxAfeIESUpJf7gjRNlFOyRllheimbc/MW4bjM2NHp1QpndYssN+reKZ 2rI4HSpKdyp0nq2Fm6qayJlrjAyktAksB3U2Lwyje7TrMzHnimb58DaIqJPEnB8xkdNB bHHwlt/v2cOVR2bRvV1fmrnn4oa0ZX51BsSyjKm3TzYejM4sjcrXVYkudXjz4denjTML XmNoGsO1wZJB99je59NiBDci9pCXhK7hmI7igDTkNAJfeArakgsHrXEftWEMK/7ca0wp OupB2IhbdptX/Jm0wsOodvmFTFHqgJJjtH3LnldH450byeEMySzLsDFIiPQeFYeg8yeW 4FLw== X-Gm-Message-State: AIkVDXKLiZ4cZ/8jfhHJ7ctVfmD1yJzgPIufunkvPTiKMPkb/XWGZn1MFxvLj41ij4d95AGr X-Received: by 10.223.130.204 with SMTP id 70mr6795348wrc.128.1484824420785; Thu, 19 Jan 2017 03:13:40 -0800 (PST) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id g75sm12117028wme.5.2017.01.19.03.13.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 19 Jan 2017 03:13:40 -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, b-liu@ti.com, sergei.shtylyov@cogentembedded.com, grygorii.strashko@ti.com, linux-usb@vger.kernel.org, Alexandre Bailon Subject: [PATCH v3 1/3] dt/bindings: da8xx-usb: Add binding for the CPPI 4.1 DMA controller Date: Thu, 19 Jan 2017 12:13:32 +0100 Message-Id: <20170119111334.14718-2-abailon@baylibre.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170119111334.14718-1-abailon@baylibre.com> References: <20170119111334.14718-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 Thu Jan 19 11:13:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 91854 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp223225qgi; Thu, 19 Jan 2017 03:14:18 -0800 (PST) X-Received: by 10.98.32.221 with SMTP id m90mr9531063pfj.127.1484824458909; Thu, 19 Jan 2017 03:14:18 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z86si3250480pfj.81.2017.01.19.03.14.18; Thu, 19 Jan 2017 03:14:18 -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 S1752192AbdASLOR (ORCPT + 4 others); Thu, 19 Jan 2017 06:14:17 -0500 Received: from mail-wm0-f48.google.com ([74.125.82.48]:38146 "EHLO mail-wm0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752183AbdASLOO (ORCPT ); Thu, 19 Jan 2017 06:14:14 -0500 Received: by mail-wm0-f48.google.com with SMTP id r144so71722957wme.1 for ; Thu, 19 Jan 2017 03:13:43 -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=s395wfEOusiV7TW7/zNVWoxXfodIGsDhtUtetP+1rMI=; b=dU62tKpkvGUgSPcvQCxcD+SJeGVyOlrnqJCa3a2A2v1vW4hmM77I2nRqofl0QfM8Bv DKZ+gvA0hVlJNxfIkkozx0Wl/Qe3YUifZolPKVl2i+fPe2iljGYgC4TNlsIVRKW4WV24 BfHNPQ4am+nqfRrB2lIgJcewbUSVvNIoDCpGyPV352G1jc+/fkNdGtLgCPPyE3Av+3zy IaDI7zZFROqpIew5DVQAKqjHRFoLry4UDrrXSXGy7II1SI1uNkDCGweUuYI0ykNnwcrh AU5/fvOeI0z0YaTSSYwaXPp5YPVotT6i7N8oYx1maGDNYLqULKoO6LD61mAl3ShdXS4w vuzg== 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=s395wfEOusiV7TW7/zNVWoxXfodIGsDhtUtetP+1rMI=; b=H0Bw4nDFVJbuPUMUMqd0LcCzxV6HBcjjnEkWGJIOfNXjjB1vin5OU2WXdIq1rO4EME cl5bEu5qC1otxFxBVo9UIXWQzVhICxhOgmVucEahpJh8emq6OENguQGS73qYAJ2oamFg f/ko+7FwQc0xxYxbI8MPv1tDmrtDnFIMUo7QP7Xx7Rxshu1nvRRhI0Ss/iP1pk1CE3yH dRwrdqbcd+Izo3l2GRryvqJ2KbFNxXo4fDUyWSq7FcIT5s63zPmhOoIZxFGPpO8PY2Vd 0FTzKzSqk/MwlzT1Ok4iZFcs/YKqzRF/ZrYb5UqGXEX9qxZWhyhe0nTDqD5icNd99i4R rrGQ== X-Gm-Message-State: AIkVDXKdt9r6sen8A0i8KmBY7srPOfyLSVg06QFBkAb4TdHz8iUwl+wkLCVdgeJiYWtwBWze X-Received: by 10.28.136.13 with SMTP id k13mr6983595wmd.94.1484824423035; Thu, 19 Jan 2017 03:13:43 -0800 (PST) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id g75sm12117028wme.5.2017.01.19.03.13.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 19 Jan 2017 03:13:42 -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, b-liu@ti.com, sergei.shtylyov@cogentembedded.com, grygorii.strashko@ti.com, linux-usb@vger.kernel.org, Alexandre Bailon Subject: [PATCH v3 2/3] dmaengine: cppi41: Add support of DA8xx to CPPI 4.1 Date: Thu, 19 Jan 2017 12:13:33 +0100 Message-Id: <20170119111334.14718-3-abailon@baylibre.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170119111334.14718-1-abailon@baylibre.com> References: <20170119111334.14718-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 | 24 ++++++++++++++++++++++++ 2 files changed, 27 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..03ae2a1 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 "CPPI41 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 9767b97..f6f2d84 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 { irqreturn_t (*isr)(int irq, void *data); const struct chan_queues *queues_rx; @@ -951,8 +965,18 @@ static const struct cppi_glue_infos am335x_usb_infos = { .qmgr_num_pend = 5, }; +static const struct cppi_glue_infos da8xx_usb_infos = { + .isr = cppi41_irq, + .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 Thu Jan 19 11:13:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 91856 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp223267qgi; Thu, 19 Jan 2017 03:14:26 -0800 (PST) X-Received: by 10.99.66.198 with SMTP id p189mr9717791pga.30.1484824466286; Thu, 19 Jan 2017 03:14:26 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z86si3250480pfj.81.2017.01.19.03.14.26; Thu, 19 Jan 2017 03:14:26 -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 S1752143AbdASLOW (ORCPT + 4 others); Thu, 19 Jan 2017 06:14:22 -0500 Received: from mail-wm0-f53.google.com ([74.125.82.53]:38172 "EHLO mail-wm0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752185AbdASLOO (ORCPT ); Thu, 19 Jan 2017 06:14:14 -0500 Received: by mail-wm0-f53.google.com with SMTP id r144so71724013wme.1 for ; Thu, 19 Jan 2017 03:13:45 -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=dMizHBylMzXYMQ1+urGiQqCmqRyGyctiG9CjLDTGGdg=; b=KR7+7oC3ikMZCB11YhS/lkrC1zU4okmCR5BgABauvaGTlK4myc23CupsyE3Qzw/eVv gEJSitfxtHfyDljF6fVqKk8FYBmUbbxoPlhX4PhJqy+VvV/BcoAr7nnuGlx2WNFC5FX6 fdjoygxn3puqXUZtzRhYdQDTceGrqFU6iINeDorRIhlD8sAYYBPILxOYYePtLOBUXnkX QSW+DLzSnLuY8bmeK0kjtmX+DE6weh8A8MPU28pJvAzyt+xtZ85A4R9/ZRkYcbB5RMV6 iG8VNFWL6oJqIajKR/4OmcZnsQMKQTv6u0gS7GdnWhcNIZBtgx32VPv2g3fMn0XKLMKR ldZA== 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=dMizHBylMzXYMQ1+urGiQqCmqRyGyctiG9CjLDTGGdg=; b=k0sj/cg/DH8ngegMSeHmri5+EBfUBMgHQxVMg2e6DhozF0sqSR/SfCmIF6Ud1u4SRa L5YcC2J66MevGbsPXV4XDuBJqDYhVOFbmwxV+59GTTAehE+SrGW+6AXI8bnrJ/5YCrtP QIZ8sCH6sX+hVRDWeaVqpSNV4YY29lKFns+IVu0NhHloZLk3LyBmwcrU2M15prp+bWzI 6V2PL7xMR3qbpMLWLox75to4L8UFFkIuqbHGym0HrtcWdwEHjFIwGqw1KXhxqn7qKGD7 QG/oTT4TD40UHd0Qj0ruv9Nqm8iETQwODbL/fdwxjFAdy1eEVqvAOVuzqseU3pZEwEzR 15ew== X-Gm-Message-State: AIkVDXJ7vANeK5ZsmF8QbTwQkL65Kem1pYWuE4Uf6F5xllm3mFs1YHIznB08Yb0OzX0v4EFk X-Received: by 10.28.103.69 with SMTP id b66mr6313143wmc.73.1484824424787; Thu, 19 Jan 2017 03:13:44 -0800 (PST) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id g75sm12117028wme.5.2017.01.19.03.13.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 19 Jan 2017 03:13:44 -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, b-liu@ti.com, sergei.shtylyov@cogentembedded.com, grygorii.strashko@ti.com, linux-usb@vger.kernel.org, Alexandre Bailon Subject: [PATCH v3 3/3] dmaengine: cppi41: Fix teardown warnings Date: Thu, 19 Jan 2017 12:13:34 +0100 Message-Id: <20170119111334.14718-4-abailon@baylibre.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170119111334.14718-1-abailon@baylibre.com> References: <20170119111334.14718-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 f6f2d84..cd30fd3 100644 --- a/drivers/dma/cppi41.c +++ b/drivers/dma/cppi41.c @@ -630,7 +630,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); @@ -641,7 +641,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) {