From patchwork Mon Jul 2 01:07:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10500329 X-Patchwork-Delegate: geert@linux-m68k.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 8B17560532 for ; Mon, 2 Jul 2018 01:12:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 77E2126E49 for ; Mon, 2 Jul 2018 01:12:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 68E5F28797; Mon, 2 Jul 2018 01:12:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5C26B26E49 for ; Mon, 2 Jul 2018 01:12:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932517AbeGBBMX (ORCPT ); Sun, 1 Jul 2018 21:12:23 -0400 Received: from relmlor3.renesas.com ([210.160.252.173]:18192 "EHLO relmlie2.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932656AbeGBBMW (ORCPT ); Sun, 1 Jul 2018 21:12:22 -0400 Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie2.idc.renesas.com with ESMTP; 02 Jul 2018 10:12:20 +0900 Received: from relmlii2.idc.renesas.com (relmlii2.idc.renesas.com [10.200.68.66]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id F33C44AAEA; Mon, 2 Jul 2018 10:12:19 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.51,296,1526310000"; d="scan'208";a="285637317" Received: from mail-hk2apc01lp0210.outbound.protection.outlook.com (HELO APC01-HK2-obe.outbound.protection.outlook.com) ([65.55.88.210]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-GCM-SHA384; 02 Jul 2018 10:12:18 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Gg7E0MSyO/BcNC61mWFcnWkBZh/tSpGUBqdL57sxFfk=; b=cmuJuDGfP7524vBG1E37nElZje3KwqBV0qqNEtRLwmkcYiKjNuUXUevvCem+fn6/dW6TMZHdsscRRBY+QP4Nb3GY7qYIkKwTiIIoeF5zw1TRsmQPWU8shreSEHt/KXjPXdANl4OJRBw8trLdIroM+vv3OnLHPwqOxhpdl4ENT/Y= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.130) by TY2PR01MB2076.jpnprd01.prod.outlook.com (2603:1096:404:e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.906.24; Mon, 2 Jul 2018 01:12:15 +0000 Date: Mon, 02 Jul 2018 10:07:17 +0900 Message-ID: <87wouefnsq.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH] dmaengine: rcar-dmac: clear channel register when error User-Agent: Wanderlust/2.15.9 Emacs/24.5 Mule/6.0 To: Vinod Cc: Geert Uytterhoeven , Dan Williams , Magnus Damm , Linux-Renesas , Laurent Pinchart , Kieran Bingham , Geert Uytterhoeven , dmaengine@vger.kernel.org MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-Originating-IP: [211.11.155.130] X-ClientProxiedBy: TYAPR01CA0034.jpnprd01.prod.outlook.com (2603:1096:404:28::22) To TY2PR01MB2076.jpnprd01.prod.outlook.com (2603:1096:404:e::16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: f9018253-92c8-471f-9831-08d5dfb8d9ba X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(48565401081)(5600053)(711020)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:TY2PR01MB2076; X-Microsoft-Exchange-Diagnostics: 1; TY2PR01MB2076; 3:VIAccE3S9tXaBMF6FlTgrjHxfKO1Co8G23oEtxrgbslYfGKYnw3PWT1UFAjTdG5+qaVhpayF0aeLmWO5ROu7DJyYhtgrqXIZ+2U/LXK1KQfREdk+krnYXyuBUCoVlz2w7TuYxpmq8GRLrsXrIeUdmZ51TUM3PeIE/KtBZKrmfA9Uu/C43PuSjEmKPG/qAbEqf566heUvVpkc4IeMivAbv1TNd61EFBeXcFY4+jpjVIFQsHon8fsTr2hM/aeedHzM; 25:CyoKoNR19yZH/wQoZQvneioi84Mjox0ilv8fLp/wbcMm0QTRCnyRj+S4GVJScnyA+SWsRB1lR95M+9/5eXJBon+u8jMFiilPmwJ2FWhI+smkUnpRADEbNQg8QmQp5cmkoSTFPzarVF9h0vbGOBenkdOpYOZp2lsfr0UzDfO0ngK0ryCpIkIuua2wYQlLPmslIQBVvpFdjHpsEZWyqT365Lfl2f3j/AeoZv1ziQGt5NuB/895rP+vDYkqL21o2Hvs/P9we3M0UsrWFMRMUxaHaYNGecHbKLwleOqJG03ai1NQu7HBQKiq0ehiuJu6lgHFEAa6OIToUMW5j3JYW5CBIw==; 31:Gv5Fqyl9DBVR01QwaKGSiZ+1YMXOAwHlNSkHsv4DKq81u8qvnuNCeET81g6TLp3PcnJgOUpG0ginhJWI5EH/S4ra2kF4WxK+fylBBFKK7qlMzamYFXYvmrf9lpgU6A3CGPvTqeVzkAWiVim793U/mD8Xpf+TAWkqWVCk+TjafxCWbHU1z7EJ0dIeb4gSz8guZiyXpK7nTNHphj0pYrusATqiT7suNoXfv41ctGUWOe0= X-MS-TrafficTypeDiagnostic: TY2PR01MB2076: X-Microsoft-Exchange-Diagnostics: 1; TY2PR01MB2076; 20:RrlWrKxSpVIyYhCjB52X1AUEIxnDSi9aIye932VnI2xM4m5LBBSHMjf1JPL8h7aOk2BPbKeQ6JemW6rnU1muHdhwn+mSUZUy59PnevOnbNir1M5Vb1l1wUr0ZlUtYJGY0I2qk8k6/30t5bwHSYoy6HIMIQEZpoOwioiAhVQuCaca5i5jqUXRA4+JhtHxV5UkAP3tDoGR6psNNgdASPIcFrueyfpYYvsdR+4xTgDMlnm7Xtvl/Qt9ONKD+/zP8q+8gGzmDwEbxPAcYsbJTh9eyq5mB1xt8hXk3HMaP/hxv80UxSp1Om3ZiV2I3eIRer9pMvntLOKR0KDI87aYAlPMARFrv7/txDQbT99R9bKIbzrj2jYudamIw6wjWOF8aoUH5MqExIjNpjeNRjZgjpj6MSRwUslnmCXFjCpCADonHoy3FXesTP7qeha+OOqU5Hr/oZkT34hvkRUWkAREaev5pSpS+YRUIhAJmi5SH4lwnNCan9gUmLYJjMTl9+aEIlgt; 4:MTDdQGga83tgJfBt9YcqDUMbjyxpmTh0HmkKt9zQ+Zk72s2GGjwajdwqtCwwE4yZei0xP4c08ZMvTDyJL8fqVvgxko+5m14/v+1X1vQwd8zFIr5mqWQjPZVHTmekreNi5TcPDlVXlNwyK2AGa9gafHK9uCnrZ0T4FZnjF3CRIMW/RBo/Omte8Po/gbmQQz4D+qhXpywO8xmYy3Za2rIzlF/1wQZd+IAGvnBO1lc0HSofQZCZtSWV1dGsbYYE7I0fU+IOfhgtZiTym42fgUEiCA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3231254)(944501410)(52105095)(3002001)(6055026)(149027)(150027)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123558120)(6072148)(201708071742011)(7699016); SRVR:TY2PR01MB2076; BCL:0; PCL:0; RULEID:; SRVR:TY2PR01MB2076; X-Forefront-PRVS: 07215D0470 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(366004)(396003)(376002)(136003)(39860400002)(346002)(189003)(199004)(39060400002)(86362001)(53416004)(3846002)(105586002)(106356001)(4326008)(68736007)(23726003)(53936002)(2906002)(6116002)(25786009)(47776003)(386003)(956004)(54906003)(14444005)(50466002)(52116002)(305945005)(5660300001)(1857600001)(16586007)(97736004)(7696005)(81166006)(316002)(58126008)(476003)(478600001)(26005)(69596002)(186003)(486006)(6486002)(7736002)(2616005)(66066001)(36756003)(8676002)(81156014)(6916009)(16526019)(8936002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:TY2PR01MB2076; H:morimoto-PC.renesas.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: renesas.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; TY2PR01MB2076; 23:Hdmzott2mm3uCcrGUArR/8Jt1yDfpj/CAKq7h8iIS?= =?us-ascii?Q?M8XUtS6Fes0EtrY4MQQMyI6UtKtgK6EkA4RX3TGEg1/KtxQy8eIeqvNkZ3l0?= =?us-ascii?Q?EUkq7yvJfPqu3uPj2V75ZXrcL0JLbZ/dCkGmnfWCRYbzcJeT8KbH4lAG9ZuH?= =?us-ascii?Q?8L/ErkctCqux331hwfhoplftOlhCXj1eMa8/ze/j+C6YOp4TpuKVf2phfmyz?= =?us-ascii?Q?b6p8XaHVJPV7PIGj4lvX/jSC3E5Qd/jx8A1yc/9C2///v+TzNPbrbDWTpc35?= =?us-ascii?Q?6x1iod93NqNHezJltYi8AwDbn3MunT+lktc0NKw3Pf3FDi45ZcLHfLGXr/Cn?= =?us-ascii?Q?iLjfb9RRhAGnvuP6Wzt3GgdaeOdRa7tqEn9i824xz9gwbVVkzHIU1RXPld7N?= =?us-ascii?Q?6mjAQxUBU03xg3qIdZrxpVH+cVvpuIT5zdbykYECF/mbWQKjzhxQeE+S2Xik?= =?us-ascii?Q?SZHeGADuSTyj2zX/wzJUDCdCrDS4VfcLQsTlSvmgKCLoPRwgHnB/Xr7/Kt8/?= =?us-ascii?Q?0jjitLQYMYUStYZqdYL6ODM3KMk8BZXWBYi2xxuo3ihpu6ghG6vMn0Y7taYO?= =?us-ascii?Q?eu/EqTbx+9gBmYkJiAoXnKI4FClW/6yUGT/5XXqlFLqh5tz6kY2yVrqXrZnu?= =?us-ascii?Q?tqSXDSsI5OBdk7kAMdD61sLByfMPXCuRwAkCLR/oXy5Iffp9b+vP6VxP/eA+?= =?us-ascii?Q?YR6Rcp72OdWOXUudKReuY7YffDSl7GLUIRCYro7zIRDwqaogkwbxZ2BbKRgY?= =?us-ascii?Q?f5GNMYjSvzqzmugzBxPkP+UpOqs8qf53UnknodtKr80w2hFaBs0/KUtpizyC?= =?us-ascii?Q?5fHPN7Np938q5wqGyE9RITOKZZrO+da0fV3M+eeL4XbEQ+0ZrrTD7Vd459E5?= =?us-ascii?Q?1BeKZjQobk45eI/jdIgRreyJc9kbERqtwzulhucIhq1+Al9lKTB/AZtJ1MxE?= =?us-ascii?Q?F1WAUdJYClrMBYaXCu2IXpR34i6dOyix6ah/RXF6HPpMazLg4namlescLvMS?= =?us-ascii?Q?43bEf5VUJ+vsDxln4M1bOTRsFFBUD78MGrRdSnsEYn7erwQRMKqcIVXHp4Pd?= =?us-ascii?Q?jBrhPlt8GoFnZvj8K7bgLfVeLvWCDIzENKlAby9MMcIk8H44WrfhVcdT1JlZ?= =?us-ascii?Q?urT8VBKh8dToPh2+3rbUr2jULFsqW/wAjQ829nUs8VxdSivgzvHBeKBEU5a/?= =?us-ascii?Q?e2u4gWEIiAwnZUFDWVvKwHUPUbzviAWDD8B?= X-Microsoft-Antispam-Message-Info: 7ckrtxvIRnOVRURDae3wzCEdpmRYqtvucpGb+xR9jOmQ0iHhTM0w4BTrkff0ei61G2VI3yrEgcpLBeYkRbjcISUmCVdURG9kGniqNGiMEpDCSQNoi8K9tSuvfxpNVw1YQuh3F7GSPAgKAm7TuPdtFuEf0aU5di/cQPyvUvdEzFO6SeMZNEJT3ka28O/0UCXNSG7hqqkiFR1M3nArZ9eXOWlAn5Z5lHuxS9WdgLTcuw9b0/DksccZN0vthEiKbYa/Mw7XrQELnbJzWNscEoXOktFYxVS9A6FiOOdUN5iKWyYZwa/lGx4OtSgJpkwrIekMviF/+2KtNMyf96eFAMbsvN/9eY34kbcUB9X8hw07fWI= X-Microsoft-Exchange-Diagnostics: 1; TY2PR01MB2076; 6:MOjNZ/pbQb8ZAZUsIngAi3MUSMeW+eapZrD9hfz5cXcyTNMgfWC4owl4JrvZXNBAxJz9tW4f1tHyCa9mOwFNue3VeTyOC/g09LvyD1tLXMbGZ1XHrl/PScgPeWyjsTbMBky+avR9p10bV6AYnEFBTltyZsuiqdjyqCqEaBBmT+FXxf+ZuOEPNsE8Heo1BjWZQPENPwWFkWi897T0MSn4ZZomXMKIAGm920IEgpcWDFXaV5okqU2P7k5NPkqcEm9tV4x5kBv1MFFf3Wqg2hvdRfDYm15ejlvNfex2kZ7TsEvPI3qnM37vlXzeTaJW8sUQVhxDoYcN6WpHbppM8+uaT7oeyzTCautxbTDutcVmaPR+l1MJbVLL6tM7Yo3lr+J+qaRbiYXGKnvQm3MIFPP6lL3V94UQwxCfBYRxDFIqxHqNf4Ov96izx8xcnu8BT4W2sSGbYgbU87tx1MQx139qOg==; 5:8tJeKrZTgBes3rujlVOmssMUXm9Cm9+G0OHy/GMJkZIPE/0EUjQ+/DD078RivfNEw6UrrPlmtlKpE6hqmoKJX/CQ91n0DWTGLpr++o+pHJmfDsLkDOv+ddeTj94yzDXbxCFvQBxY0aTBzcGAOOjqs6dUJN+mgVHJF+VaJdwT9dQ=; 24:5kdg8byH/8TZDb3RDYAgkr0sKBszrwMRrI4FR0w2LnXGnvlQhyfjD0oT4e0T722AAU4Mdg7EijGxnwMyAT0FplNImIJQwl1bEuOHV0Aa50o= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; TY2PR01MB2076; 7:6CcfFX1fSv7YSnuBXEsEK6KLkLyzItFD+Oq1Md12lZIe8CNLecf6pKj5d2goW54h9fkz9kPTpZN63B0JTTA8oDDma/kkkEaL340DHKlWoVPvVL+5htBGYBCiObez/gzU5VcQA6g0sI6F1Gs4miDXL6dkYhsRP8b2mdGdUo/iJLaEt9phq+ryVBVkYbrZN4JzO95D7dTh8u9MlZffrH6yDxQr1y/xvsiTxuQ/qL5r72rT3BG5LNu8otV5gapv5EAD; 20:uH9byPn4vu3BzL1yBF+bVV0xBP+wBQD+QECU1ZahrPLpfrx0MCBTYWL+QsKMOJ2LB8tHNq0aiNX3ZaJ6XMCg27NGp1Wir7QrF+3X8/7KNyLjx/sqCr/pNCx8ZQ6P/b5C3Q9Z2DlSV3vZP4kYuSmuQLRTwpmiEJ3ukRwi7Ov+w+o= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jul 2018 01:12:15.8279 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f9018253-92c8-471f-9831-08d5dfb8d9ba X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY2PR01MB2076 Sender: linux-renesas-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-renesas-soc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Kuninori Morimoto We need to clear channel register in error case as recovery. The channel is already stopped in such case, thus we don't need to call rcar_dmac_chan_halt() before clearing. rcar_dmac_chan_halt() will clear register and confirm DE bit. But it will be failed because channel is already stopped in error case. In other words, we shouldn't call it then. // This patch started to use C++ style comment out // because it is recent Linus request Reported-by: Hiroki Negishi Signed-off-by: Kuninori Morimoto Reviewed-by: Hiroki Negishi --- drivers/dma/sh/rcar-dmac.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index 279c930..35d7a16 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -1525,7 +1525,13 @@ static irqreturn_t rcar_dmac_isr_channel(int irq, void *dev) chcr = rcar_dmac_chan_read(chan, RCAR_DMACHCR); if (chcr & RCAR_DMACHCR_CAE) { - rcar_dmac_chan_halt(chan); + struct rcar_dmac *dmac = dev_get_drvdata(chan->chan.device->dev); + + // We don't need to call rcar_dmac_chan_halt() + // because channel is already stopped in error case. + // We need to clear register and check DE bit as recovery. + rcar_dmac_write(dmac, RCAR_DMACHCLR, 1 << chan->index); + rcar_dmac_chcr_de_barrier(chan); reinit = true; goto spin_lock_end; }