From patchwork Mon Jul 2 09:21:52 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yoshihiro Shimoda X-Patchwork-Id: 10500791 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 6584260545 for ; Mon, 2 Jul 2018 09:23:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 550972861D for ; Mon, 2 Jul 2018 09:23:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5385F2868D; Mon, 2 Jul 2018 09:23:01 +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=-5.3 required=2.0 tests=AXB_X_OUTLOOKPROT_ENVSDR, BAYES_00, DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID 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 DBE64286AA for ; Mon, 2 Jul 2018 09:23:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933489AbeGBJXA (ORCPT ); Mon, 2 Jul 2018 05:23:00 -0400 Received: from relmlor4.renesas.com ([210.160.252.174]:54609 "EHLO relmlie3.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933829AbeGBJW6 (ORCPT ); Mon, 2 Jul 2018 05:22:58 -0400 Received: from unknown (HELO relmlir2.idc.renesas.com) ([10.200.68.152]) by relmlie3.idc.renesas.com with ESMTP; 02 Jul 2018 18:22:56 +0900 Received: from relmlii2.idc.renesas.com (relmlii2.idc.renesas.com [10.200.68.66]) by relmlir2.idc.renesas.com (Postfix) with ESMTP id B4B048EC2E; Mon, 2 Jul 2018 18:22:56 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.51,298,1526310000"; d="scan'208";a="285693304" Received: from mail-pu1apc01lp0018.outbound.protection.outlook.com (HELO APC01-PU1-obe.outbound.protection.outlook.com) ([65.55.88.18]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 02 Jul 2018 18:22:55 +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=/+D1EwU2lOnTkaDuHSxzlHJ5obRz2lJ8sACyPT2NS9s=; b=jvSzeg1fyxnI0Kr/jqN0YBOLOAo8kAT9qYRH98x/1KW5Py08QCR4kLc0mHeDjMT2srb15qN12hYz/iCwP+BS7zvasR+OsWexbyAGGJYYTYm7NH+dbZg3qselFJybM5/wFq9FmL7CCjTlb+TRrkAK+HF1DSns1MHaqVKF4TVcoyk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=<>; Received: from localhost.localdomain (211.11.155.144) by TY2PR01MB2300.jpnprd01.prod.outlook.com (2603:1096:404:10::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.906.26; Mon, 2 Jul 2018 09:22:50 +0000 From: Yoshihiro Shimoda To: vinod.koul@intel.com Cc: dmaengine@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Yoshihiro Shimoda Subject: [PATCH 2/2] dma: sh: rcar-dmac: Add dma_pause operation Date: Mon, 2 Jul 2018 18:21:52 +0900 Message-Id: <1530523312-2253-3-git-send-email-yoshihiro.shimoda.uh@renesas.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1530523312-2253-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> References: <1530523312-2253-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> MIME-Version: 1.0 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: TYAPR01CA0024.jpnprd01.prod.outlook.com (2603:1096:404::36) To TY2PR01MB2300.jpnprd01.prod.outlook.com (2603:1096:404:10::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 71a70f76-b278-4ee9-fc78-08d5dffd622f X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(48565401081)(4534165)(4627221)(201703031133081)(8559017)(8990107)(2017052603328)(7153060)(7193020); SRVR:TY2PR01MB2300; X-Microsoft-Exchange-Diagnostics: 1; TY2PR01MB2300; 3:mVWrY8/5nbyZuoAX/9DuIewgnj7OU1b/IFN/TCLjLLgXchXOxal42iWzqFv49GHKgQd6H1Obk9XP9opaRd+Iiw3kak4zq1maxJvyehX0tn4KdxoosIfwGMM2JzmRmc+/cndvXwKWGNc289/TludammRE74eQMVdq1945btQC4v4eWDEsMjkjl3sRKJMA7WQIpn8A/OcWjCSggSGjlwAkLqJeRHmPPRifRGM851ydyOyHIbyOIcbVfqgMMFYzn/lY; 25:I15ptj1EftEFG24e7SSm4BXscgSAH/V/U5wnOTqJaDW58dp0mTghkXuVnc31GvqDtywdh7D0FsHEWYMW2waRcuNPpVZ7RZHCruLrTWEGL76rg2Ef6Pwt+le6ANwv43vOX3c5xOmIxqlEcA1/FUMjYvqxVlrb40gssQOb7Q2gLcd5b57k/dgRTEkW4bUogc+zyVMrQrmHOl1+M/+7YL49153dv3tdaWJA8nwfxbnZLSZj5u+hYFq24iJ0yBxZBWNUugYwXb37oD9e+16mioqmfHnruGZ2RtxH5M7uE3QLfSUdAwsyf+SwwnTUseHAQRMtel+HQDdXdUCK6hcba8gzAA==; 31:wAezEnl6cz314srmjoy3HRY6FEProM1JbCvZfJAl2YHkzpVvEHNgO2bjxFz5Ny9Ru5DQp5Cywq+lgWdLm0MUt/2eve50Iql2Iv3Yo+NV3ASrTktr8TLmYeYnICOOh2tR69Cuvy/+7a1FBgBaPxdntuXbBphMFwSgyyVFOHo1MwCGlSRglZL/hH1GXqm7IsidYnhaHVqAjdthzpaba9rfBSMTtDGdsicLjWN0MpGeLDA= X-MS-TrafficTypeDiagnostic: TY2PR01MB2300: X-Microsoft-Exchange-Diagnostics: 1; TY2PR01MB2300; 20:kuqVpW76ejar273MdkrP67DRLWcI61pAm0Hwo0uAXzGqBEvWek4gTspebXRdzpx+YFmh2PweR+JSXCMMEPwC2GocN+3/b8EpY1vuNCmMtq8ixvCflbqLztFvuYp2tJ1XKbKzB5RzUjsVXw1RGedz1s+KEakoUoxc1Z5wcFwtIj2XmxwLaZLxMsuBbxL/XNnTdodBnjQSXDceiMZQu3VQXwRAlDcV66LOk9lm3EuuiKThHoiVduQN6eBml8zkN/dA1jx/qFTRwGBAE0tbZhNKViLtfqgAILdSTIyC48X9eHGkK6eA+g5f5gtS+BuEfR0PSgEDfS7Zy2ZAFBQMCgRcqNu/oRWSN2/EREd5cusx+5B3aSdKHi0Vn7XtzNxgQtmvXFtYjOG9tzGALM/pMnTQZXNSEN5O7+OubWW5MwWIPOminSpVopI6mcb//me2w93DhNE5hWfW4kmw10ZIje3jFiBamfkctRKyrEsb6OPLj+8k0YARydWERO/NBKXKBbLj; 4:dB9HhJ4KBB/ZGU8x8ch6g3fhVQVUtzJeTb1nEA8U35Laoo4rJyHx5eH/Tao6zyUFl/7QXeKOscRYfTuY8DCqNGFWgstR+bDIrm25xB5FHyrLoUAyLrHqwGeNeXpUbcY/vW3Wb7cyOVD+TtDharsPW9+1G9s21mdGYZIdKZA01pBpeM6j1abwvsUual17ZpIshmXzSPhwWX7tPBo2SNHff8Cr93tkiQ9CpbeusPXmSdSUjyxkyjY4YHFoi6KX/E+dGHAhRo3Oyob+a36+iSBFcQ== 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)(8121501046)(5005006)(3231254)(944501410)(52105095)(93006095)(3002001)(10201501046)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061750153)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011)(7699016); SRVR:TY2PR01MB2300; BCL:0; PCL:0; RULEID:; SRVR:TY2PR01MB2300; X-Forefront-PRVS: 07215D0470 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6069001)(1496009)(376002)(346002)(39860400002)(396003)(366004)(136003)(199004)(189003)(25786009)(107886003)(14444005)(53936002)(16526019)(6506007)(386003)(26005)(42882007)(4326008)(8936002)(48376002)(8676002)(76176011)(81156014)(81166006)(51416003)(105586002)(52116002)(2351001)(16586007)(316002)(2906002)(106356001)(7736002)(50226002)(2361001)(3846002)(6116002)(6486002)(6512007)(66066001)(47776003)(305945005)(498600001)(36756003)(6916009)(78352004)(486006)(446003)(476003)(956004)(2616005)(11346002)(97736004)(5660300001)(68736007)(50466002)(3720700003); DIR:OUT; SFP:1102; SCL:1; SRVR:TY2PR01MB2300; H:localhost.localdomain; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:0; MX:0; Received-SPF: None (protection.outlook.com: localhost.localdomain does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; TY2PR01MB2300; 23:wnZhpsU2WoHGeyBpXgRp0DQzak8KghTqXgVtGfosw?= =?us-ascii?Q?F2xsosM7VIw+fdwAXoLjnerdtV5YdHAl6IvvzKtzOfXLcogcI4AiGZMZc1Hr?= =?us-ascii?Q?6rJeqpr0eT+MpInGpKsnuKog8WeSor179q81F0RvmzhXskmXHAsJHVAGOCud?= =?us-ascii?Q?vvwwlQrK2Jzfk3IvjpFpPLIlyXlmRyjS7FUDT5+JqEPtkmarX85/Zpfe+x6w?= =?us-ascii?Q?5VRHSWiUfBZdLYSRa9/l1g1z5oorcG02LXKJqXpj5HTPw6xE33A0l721rta6?= =?us-ascii?Q?qF1AM0nmh7SifaJHteiFzY1B4mv12pX2C8Zsr64vcIkKB0/RpZFabL05yyht?= =?us-ascii?Q?MudBoKYooOBnZQtyO3F9uscQzJZhS1wlWg2taimTRtnAQKuyp9q9/hlF6gbu?= =?us-ascii?Q?qehSOhA6caR8j3bUei9FGeYx7Ehjgdt081sH3TZlxqjzIXL9DOSdZTGe8XQT?= =?us-ascii?Q?r3Bb2+U+JMilTnOD8yRCqHr+m7Gtpi/oMu75N/ayUGelg003mqsz6cUi9BrK?= =?us-ascii?Q?aRw1mPauBqapFDFv+oRTmYTI4P3laOYw02+bgd8x7kG2l4KdZYxKBcKwlpQe?= =?us-ascii?Q?7zj+G6DkKF0IlVnADdsghhhv44E2c7Skr3K2v0gG68fsw66ED33w4NNYJ7cm?= =?us-ascii?Q?F45E1DCSHHcOMOW0GVdWqpQkwppVw+jiGSUSO8TXsYZxzzpiwIlYRu+ZnfVn?= =?us-ascii?Q?sar90KL7awTsL5FD7oSS8LswqrOY1eojZ0HdA1H6Lu1YAc/y6yfoDUzqpv/o?= =?us-ascii?Q?272yVPc7Y8F9o0TQeDEEJAU7aX0Px5dy20RxfUtEab9WJXmJ77uMBFYzfMD1?= =?us-ascii?Q?zGz+ronkKluCngS/tHmD50NHTfGsEGx2n2S36KhhFw63c7nVLQycAXFv1Zw9?= =?us-ascii?Q?0gy3vs/jJW3OF+bqz2jyGJ1QKXo1TZZoWYbpVGoPU2z48OHOHP5zTstKhrQ+?= =?us-ascii?Q?A7mgV4XtdfbtYtVu6BmELEQH/nPR9RFnxgJoLMoCSG+9Tyap1ZgcIfDUTYta?= =?us-ascii?Q?TFFdtjyNnKx06r4sNfkcxmjfvweINjxMcEHpoq5c2haNjHKz7m3mQNe1ZFiC?= =?us-ascii?Q?+0VHAJOozWNmDNn2ayz24ON3l8vRT2UC4IF8vmSEOw2un4Yz4yLEO7+Jw9Xc?= =?us-ascii?Q?h2/i3m/TaN5whNQPBwdaYztDEChVlQRYpgidokzKXzClLr4jAUceD7NzOZ4u?= =?us-ascii?Q?rc0MZ2EIrqlnRzf5dzageWs5J5Y2vTXyU/cN85kPDZ9ibG4kuz0I7Jd6L5e2?= =?us-ascii?Q?sAVub5H4OreoFC9m04U2E3hTZDD11gjjpCmdPxKYKblUh/cTHI5F9f3zy99+?= =?us-ascii?B?UT09?= X-Microsoft-Antispam-Message-Info: jzEkdETE1l8C2pwrYFGcrSMs+7GeLBO9APpp4eY31sBTdCbgaO6N5KzkeYG3v+aHns1mIzKaOrPYpsClJ14mlPcELBRl1Ss2jet9xt298Rswbx5F69Xl3o0QjqZP28rdsUejKrFUrBrwcgsYwp4B/68Qxx5Myi/+AGA4RPqOnOvd/5Q+Pw4HAXhshM6iuQ42ibWapQqKnJDyIO90mGhIZt7mTZ80V8kdFnhxmgKJ4AElojk+IGmGMGx23sVx7Cdrvco0zvWoDJY46DQVtC1EiFUDjbn0RdCwEzCV/tv0FoctFpkbpAzjFSn5+tKfJodDhEGlVUyfKvKBJ+jMX5uQzEfj4eBwwqr6RMbrNsLrsak= X-Microsoft-Exchange-Diagnostics: 1; TY2PR01MB2300; 6:4O5pz9jTfrQSjm5lfnDRCWcGVLUQiAmgBJc/YRgHs8NKW93nsx2CJDbhaNJMfqHS7iKYMBkf2AZc+7ZnurQtm2/1eEoHcufWtSqIEE28JR6o/or+LTr0E13CSmRlTQbY0HcCn3HJmeh9XRp9HCENOEXXkMT6Ae0PJHKbTNI+8z6p+FGl/eARIMIYDJ5lYMjaGZn24mSYOZtQbMnkuWbNdjX7J1Oj8hKLaB7tGRkWuMtN/k9Qtb/8P/NARY2FJix6pfT7MDo92fFY4ycPvtjFXsr5Hnsu0Wjebedo/RMrxX22OpOFx/xT0ab8XgxTFA+FUe+3TqSIsxMUSacAJfjucPGRveBfESRsJNU8pcYun93tR5wzUl5p1KtM9za0ab0+mpHed3F9ny67DQl1a3rv5Pap0cfRZmYIb9Yy705QDbyHBUHkArQtYOMDK+z/kMTIwawkA5Qp50VbHGtd57Ta8g==; 5:ElctWp21UWAMnu5HxxGLiUhTWoLl90A5Hr4s0Mfhdjbg/eJhkcrdxPNUuNI2GSM5YME+iyIWHG92S7n2p2FPSfpYh+bKYbgV22UA6GUDpN/ksBfteZGCPTZL++haPzWVIdfnVFdGfEYz4deb+48MIs2SYakZwiI8+QLWc8zsJ74=; 24:leZj/PTPLGAolbshp8myHM0a9sBsmQuM2USBulAS4mBSiQbkcu30lhgyQeBmpZSVWBCgKC/kTaxkxE7tNcfAIqb50T15ODttjY9VX0Gz/JQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; TY2PR01MB2300; 7:rbluoNAd/EBoMnlqpqQybG2G5j1ol4P1V0Z08HXwe47Jk5uy31mxXFEOpZRRez5KE33YtpQ1qB8dUKlz0G9PIXHBeLKxX+jM2exocpMthO1CbC9hBdala79UoXW3gdQr3cef3cIJq+83Y7kmEa9EKd4pyCH9yhgnK0nyygQUMMegOYqpzlPNX6HNGUznz44TlPIExn2S5G4Tssr0Zdo3LtWktZjuEVu3zpicSHd9JJ36Wr4QJ/WdPRU/sbc1ArVa; 20:ym8/sEg3W5tcTVqvNbLqGDOkORgbuQ6oGGVHb8bv2zEgMNZ61cBoz2ZuKQ06fjyPd09kDXowYz6U7CkK8hf+DWs/rxpDs+66OQEcJV2gHVrXV3NJm/Vq3X0Zxs4VZKpjUEfnqccngWP/05+TMYlwvEtcpPpYUOLI3qLc6TPGbHU= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jul 2018 09:22:50.9294 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 71a70f76-b278-4ee9-fc78-08d5dffd622f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY2PR01MB2300 Sender: dmaengine-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch adds dma_pause operation. This patch is based on Muhammad Hamza Farooq's patch. After this patch applied, an issue that the sh-sci driver with high baud rate might cause data lost disappeared because the DMAC is possible to transmit between [1] and [2] below, and then the residue of [1] is not true: In rx_timer_fn() of the sh-sci.c: dmaengine_pause(); ... dmaengine_tx_status(); /* [1] */ ... dmaengine_terminate_all() /* [2] */ Signed-off-by: Yoshihiro Shimoda --- drivers/dma/sh/rcar-dmac.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index afd8c7b..285967b 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -836,6 +836,17 @@ static void rcar_dmac_stop_all_chan(struct rcar_dmac *dmac) } } +static int rcar_dmac_chan_pause(struct dma_chan *chan) +{ + unsigned long flags; + struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan); + + spin_lock_irqsave(&rchan->lock, flags); + rcar_dmac_clear_chcr_de(rchan); + spin_unlock_irqrestore(&rchan->lock, flags); + + return 0; +} /* ----------------------------------------------------------------------------- * Descriptors preparation @@ -1858,6 +1869,7 @@ static int rcar_dmac_probe(struct platform_device *pdev) engine->device_prep_slave_sg = rcar_dmac_prep_slave_sg; engine->device_prep_dma_cyclic = rcar_dmac_prep_dma_cyclic; engine->device_config = rcar_dmac_device_config; + engine->device_pause = rcar_dmac_chan_pause; engine->device_terminate_all = rcar_dmac_chan_terminate_all; engine->device_tx_status = rcar_dmac_tx_status; engine->device_issue_pending = rcar_dmac_issue_pending;