Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752522AbdLUKLk (ORCPT ); Thu, 21 Dec 2017 05:11:40 -0500 Received: from mail-by2nam01on0068.outbound.protection.outlook.com ([104.47.34.68]:24098 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751933AbdLUKLM (ORCPT ); Thu, 21 Dec 2017 05:11:12 -0500 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; From: Kedareswara rao Appana To: , , , , , , , , CC: , , Subject: [LINUX PATCH 2/4] dmaengine: xilinx_dma: Fix race condition in the driver for cdma Date: Thu, 21 Dec 2017 15:41:36 +0530 Message-ID: <1513851098-15787-3-git-send-email-appanad@xilinx.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1513851098-15787-1-git-send-email-appanad@xilinx.com> References: <1513851098-15787-1-git-send-email-appanad@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23542.006 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(39380400002)(346002)(396003)(39860400002)(376002)(2980300002)(438002)(199004)(189003)(478600001)(54906003)(7416002)(5660300001)(110136005)(2906002)(16586007)(59450400001)(106002)(36386004)(63266004)(81166006)(76176011)(39060400002)(106466001)(316002)(4326008)(77096006)(51416003)(7696005)(6666003)(305945005)(50466002)(47776003)(8676002)(36756003)(9786002)(2201001)(50226002)(356003)(48376002)(2950100002)(8936002)(81156014)(107986001)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR02MB3381;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;PTR:unknown-60-83.xilinx.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2NAM02FT060;1:F/IYTnKXuiO+1Y4C+oAW39iTShbRSQzUG+//rdSkHakBxcph8DUSIqBn+kLkaz8Ll2FNqy6aMe25bnUFKrLVn5gCRK05f6YnnPf+zzrTuCv7DQxoYPYA8884YZzxzE+s MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 46b30746-9c64-462e-c7e0-08d5485b26b5 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(4608076)(2017052603307)(7153060);SRVR:CY4PR02MB3381; X-Microsoft-Exchange-Diagnostics: 1;CY4PR02MB3381;3:sTaf/aqT5OT3XnbaIqxX5VyEwkY3GZDd0zeByBxVLNsXulcKLAET5ChIfx9BCPm5Xby58qc/YLDbiXRM0eMffQAl2OHEQ60WHhH6yMD68pDO5VnqwjvaIr6AxvVoM6DG3s6/sh9CLcm2rili5ADxO/7JgouB3s/o/PH+2p9qyP6kfxIC+fQAyzoJgn1Wb01pueseLIJ+YMCFNKyS1xLlVheM/Z45vT084AfCiO5MrFLozQk6nSD5ptcePscOn8+Vabxh9lJjIh79Ebxg29GY3BIrbDUqdQWBEUwEmVDR0W0oKJES9FrgEEZCYdSOucSJ4RI7a6rIQK/x6VdXVZRVztz7WIxE2MswY6fImKiRWLg=;25:NLZbdCmJ656y82ZyXBk6kiQxYrzLMus++8AE2l38XUkyPoxQtFM9POVmpwseUHjhoHaLWTyOK/3RcW7JpmA749PpxoCdAu7JXaovFeenB5gXYUPlT5AapsE55ndFz9W/20m3ubOBSBkDRBxZnz/P09Gfy/9kOGtHkqZVpAgpp+xxYUB493oC9ZmTcuofAUrGoN+xlEWi5KJjMjBS9nmPUAshjn2OsuxL1/VRypZeEwwQesyk+bNwNm71uu8JOoZWwaq5AohkPHDHm1OnmLwGsNIho+DX319eG69kPYQke3YTjQg0Cf+eJ1bWuikL46Tas+nxF55RusHG0RrvWr/KpahsghlYITv4OugUPVbuJG4= X-MS-TrafficTypeDiagnostic: CY4PR02MB3381: X-Microsoft-Exchange-Diagnostics: 1;CY4PR02MB3381;31:FKoxIIkXa/8iphZkoO1TOKRbIuhqe6+ESMbk1M0Zl3bYAiRLTfmx/P4wN9rxk2j/eTZ9tx5TGVzmy2Fp2MgJXUUEoYhweQwE3MQ705T2qzJOTKY4DxOk1hXeKepcZgvrxQSdUVf9iQDfRNNtm16BDM6Pn3Q9O48oBAbeBhg282G5XTsyPggoJC1//YLs0KNpc5mOLZTGU2EIDaXFEeX3siSzcI0TiemTkyCnC8uQ3nc=;20:swVvSXCN2ZPlXd9QxMq9mB+CVp+5O98bdQmNeKVW3D8fMT/wdsfEqZS9rVDltZMGwTa1qYrwmpjSqGFiIQ6YT4ZrZ7TGiFHwh/mhw9kUiuwabAcerNCXQfBehfH3eEaFAhqsAV1EKoYTzf0kB6J1Rdmr1YuyfMbGJqlHSdwkmOdOKhMlNdPlIxr47owxHqjznFHRDsja7lOlBULaVTFucIDK6XmeUiMDWzE7f68KbZubtTVMF3V6yAOBMiqYPiV77kSIjFhplO7D5jBEvdFlLfYo0upZRSJbQygc+8PuYDwB+miXBTbuoHYUTQUC97USBThtVIunfEd0Z+Bu8dpFyXX4ExhA7voQr9gQSjW4myer0qpIC4669AQR/Cc+uMWKsk5379iGdR4CLRx2ZMeTaWpGmaiDM9B5OoKFoMzzSv7OPJlha1rZ4b+N1ZrHMo+05IwGFYDgIGgqx9YRONgRmS/XUvG6RcuaHni1OeVIZXy5Akp4x4+Poa0OwPrSmzKj X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040470)(2401047)(8121501046)(5005006)(3231023)(93006095)(93004095)(10201501046)(3002001)(6055026)(6041268)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:CY4PR02MB3381;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:CY4PR02MB3381; X-Microsoft-Exchange-Diagnostics: 1;CY4PR02MB3381;4:hXH2BRa9/2jAjacJYY2jmOjBekbgupAme3c1ZumSfhU6tW79PzrmXMqE9dJWVD5/eCn4YeyVvur+OSm//jyVYcUttowDYkx2sBZafnskzIWiOii8CC3S1YvYFG/GETeFJq0bf8A7Rrc46TIwDS/XU4py6bmVvua1V8wqaHVwDdNVAKf3wEdIooMwvoLdGZzOqRywzOad1ZnZbtUWSW+/IpvsA+fkMVN7poSpRVZnHhXMeNlZ+WUVnUa+gnQ+bkXpFvEYyc74Nvt/bygKdYsrko5po3VUG8q82k8RkU48zgNawiaFCAaKRh/EshEEuzOa X-Forefront-PRVS: 0528942FD8 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR02MB3381;23:Wkmhm8K9oJ4GRYelWMKIDHg4bWWBICS+yJRPVqAeU?= =?us-ascii?Q?BbMNHJMkqkdZyvtpdu/I/IDGvzWt7NuIzY6aEeamVs4313rs4B/4WoIXjX/C?= =?us-ascii?Q?WeroO5+nps9avklce2vk52w8OTyV7VxNfh4W4QYf4UOZAr6rzmMIeGJcnTs9?= =?us-ascii?Q?dy0dcpoxGyuT/5fKovnR4vbdjGvv007F09TgAQCmOweHAlmvymXvaSXkP/lr?= =?us-ascii?Q?NdEQ/D3m4OEN9+Ys9ef5Ull+QA1YrPb5iogUPyO1vbtzJ2WB5/5/+KYPOM+c?= =?us-ascii?Q?GKaBcPft1pXoyp+9PDQX+Ej3JvQ1vi+6ekLpvUizJc3/xHAtqdTeaXaHJicd?= =?us-ascii?Q?OnRcll6onFRnFWENSV7ILeghCGk3Akor4T4MAoaRmdIFHNEglCq2um4A4Mip?= =?us-ascii?Q?jtCa+eEVibOTqcGo0dYmQEG+lYEVHwT0kAvxam4mi2QdFYwFzLcWnfr0IYZz?= =?us-ascii?Q?cFYOuRrXit1w+7g1NBRPKiaHwpKN8GruY2ug0Zsa/znr0H1lmxQNM8aemvx1?= =?us-ascii?Q?vZsgaH4inL1KaK9jJAwHrptoF8T4Y1cS4oyff+J7WXzyA/2TI4WAcPZX4BtY?= =?us-ascii?Q?4J8BZkiR4dyKmVjO1mb2oSCiq4tj8ocaLuyu8A0Vv9H+/wd+b0K32bTg5BJo?= =?us-ascii?Q?0rFxdzQCiEczmif3+xaT70vEneDbdQ8W9ImAs9ZrXL7Dz94Z8mfh+55VNeiy?= =?us-ascii?Q?FX+QmOxIovHm6DKk2JINTur2iWZNuFszFbzy5CzxC5yTHaD2nZZyIWoSdG4M?= =?us-ascii?Q?X27dNvbkB3IikLK0cfM5/NrXFrX9ViyI4ubGmpJI21dJjhdVcTs5uHKxYwR1?= =?us-ascii?Q?fm4P6UHfwk2QN0qxhJiksQkt2S2odwvyUZBYpCqP94N3AidS6LuIW7IcEN3b?= =?us-ascii?Q?rU2Jd/P3WFRczqtaHQewGAz5knmYpweQYIFLJt5wgKCt0aFNrERmqQVgLsyo?= =?us-ascii?Q?XC8Vg8Z+5uyzzjtagsqXs6hSprkWpu5VJL5OYeHNXi68KMNxQf5oKeZEOmup?= =?us-ascii?Q?CgNu9S88oTXSxBsmEmIvppfHAtigGtBuEh62GzdA4AeP/QAG0zxWOrWJ8yZM?= =?us-ascii?Q?dXvnYRjGwbItXQE57tP4h0IVyBc?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR02MB3381;6:0N+oHcRLQhjMypVO3cWyDds4sXKwhqQXX97/3avg5mEacji+8ZhNwnnRYqTTjJeHDoFUr1W2v32IIIQAzxvuyvWXt33+yApa0Vo5aUO9t08TNnU5buaaxCCFr2N4L+tVVJPMm7hZ9dJrbCLZEWbT+DPgHP9Sy2ANWOuMw3+WrAdw9HPqhOaLpNv9mnx4ztA3tzfrf3iKTalT2rMyKLv6mSch4Uloe1+TctULtWYUryMi4WoY2GxUfBumjy9jRioUvPeVCKo9bI8wLYThWkSuE+WYcqk58gwMg3pe1aA+UuBDOhWzoAS75mpYLkxx4jycor6hjaCe1E828pwNIDWLV5ayA1I8Jhk7b89xqFW3YUc=;5:7KRgEdMgsFrbAON2nVSpwBo1Wrw7Jq+g7U+Hw2A85wZ0iI5vi0rkgpYhkqUQpEu9yIeGk471ZwFD5hRZTdhYn7GBEQoAWOpaDs1TWM2/WMWFM1MzF07hyS9hIO/MVhjPNTzePFHQDmVq997I23hNHJSS0Cgk6vtT/EOufvWEnQU=;24:vezEmTVKnz90QuzVD1AWPW9rXiKZ+j2yXKm1hyeCVppf/qykXFBwjGmQytD+AmWkNxDNfBHjWIrw/aU8Utnj/rQY1smLPFg5VQ3n6k+cAk8=;7:Wjdvarkf3C3pmEtt5zpLt4TYtIPpvsPGFvoaMWcQbyy6fdaDC5yDqyH+Z+Qkd5G5lRudxd8pGSpvUxzp4Ztzuls67Q6lTyRn32+3mw0m3v5rldFAYrr3vo7LwL88RtoUXc9xNdrJeWUAJp/KhIM8Nbg4z62U461StbRARpSqdj8o611e/xehP3wvn6HJ6EC1Q1wOaP8ilhulWCL0wmWIn2ffHREAK90eVg7Xe8tyDGyxTroO9Lx7fZM59Ym7vGjz SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2017 10:11:06.9576 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 46b30746-9c64-462e-c7e0-08d5485b26b5 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR02MB3381 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1200 Lines: 42 when hardware is idle we need to toggle the SG bit in the control register, inorder to update new value to the current descriptor register other wise undefined results will occur. This patch updates the same. Signed-off-by: Kedareswara rao Appana --- drivers/dma/xilinx/xilinx_dma.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c index 21ac954..8467671 100644 --- a/drivers/dma/xilinx/xilinx_dma.c +++ b/drivers/dma/xilinx/xilinx_dma.c @@ -1204,6 +1204,12 @@ static void xilinx_cdma_start_transfer(struct xilinx_dma_chan *chan) } if (chan->has_sg) { + dma_ctrl_clr(chan, XILINX_DMA_REG_DMACR, + XILINX_CDMA_CR_SGMODE); + + dma_ctrl_set(chan, XILINX_DMA_REG_DMACR, + XILINX_CDMA_CR_SGMODE); + xilinx_write(chan, XILINX_DMA_REG_CURDESC, head_desc->async_tx.phys); @@ -2052,6 +2058,10 @@ static int xilinx_dma_terminate_all(struct dma_chan *dchan) chan->cyclic = false; } + if ((chan->xdev->dma_config->dmatype == XDMA_TYPE_CDMA) && chan->has_sg) + dma_ctrl_clr(chan, XILINX_DMA_REG_DMACR, + XILINX_CDMA_CR_SGMODE); + return 0; } -- 2.7.4