From patchwork Wed Jul 11 02:10:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yoshihiro Shimoda X-Patchwork-Id: 10518493 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 D18276032C for ; Wed, 11 Jul 2018 02:11:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C268626530 for ; Wed, 11 Jul 2018 02:11:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B5BB028E96; Wed, 11 Jul 2018 02:11:28 +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.8 required=2.0 tests=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 9D8D426530 for ; Wed, 11 Jul 2018 02:11:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732290AbeGKCNT (ORCPT ); Tue, 10 Jul 2018 22:13:19 -0400 Received: from relmlor3.renesas.com ([210.160.252.173]:35658 "EHLO relmlie2.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1732284AbeGKCNT (ORCPT ); Tue, 10 Jul 2018 22:13:19 -0400 Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie2.idc.renesas.com with ESMTP; 11 Jul 2018 11:11:23 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id 81A22682FF; Wed, 11 Jul 2018 11:11:23 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.51,336,1526310000"; d="scan'208";a="285029638" Received: from mail-ty1jpn01lp0178.outbound.protection.outlook.com (HELO JPN01-TY1-obe.outbound.protection.outlook.com) ([23.103.139.178]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 11 Jul 2018 11:11:23 +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=7hyNkvujK0Kx0a/0O8Gmb0HAltifuqjCyVCPvirSvXY=; b=iasRmFjSWU5gjPw6hhuPmpDAOUTLBRRIXnnp//v3uD5SMDeDW9spVioK4gUCGCx+0kpupmOOk11tWxzeiT6FIydB7AuUoowv558mQJSLdpe72P6L4jrby5ApptaJI40lp7mQLVrs2RydX3P1r1qjE6GltbjRXWNa1t9cexuU/G4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=<>; Received: from localhost.localdomain (211.11.155.144) by OSBPR01MB2293.jpnprd01.prod.outlook.com (2603:1096:603:26::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.952.17; Wed, 11 Jul 2018 02:11:20 +0000 From: Yoshihiro Shimoda To: vinod.koul@intel.com Cc: dmaengine@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Yoshihiro Shimoda Subject: [PATCH v2 2/2] dmaengine: sh: rcar-dmac: Add dma_pause operation Date: Wed, 11 Jul 2018 11:10:16 +0900 Message-Id: <1531275016-9809-3-git-send-email-yoshihiro.shimoda.uh@renesas.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1531275016-9809-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> References: <1531275016-9809-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> MIME-Version: 1.0 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: TY1PR01CA0178.jpnprd01.prod.outlook.com (2603:1096:402::30) To OSBPR01MB2293.jpnprd01.prod.outlook.com (2603:1096:603:26::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 60492974-e2e7-45b9-ce99-08d5e6d397f6 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(4534165)(4627221)(201703031133081)(8559020)(8990107)(48565401081)(2017052603328)(7153060)(7193020); SRVR:OSBPR01MB2293; X-Microsoft-Exchange-Diagnostics: 1; OSBPR01MB2293; 3:GWlzRKqi9iBEvhWVimI5oYMBOvYTdLPgpA+wn6x1VvwaoZKY3tI5d60rQZXwen9nhVce+BgfYVc5qvYf1DZjTVwm5sULDSVqdBI/J9eaELm5G8daQo0vFO3nbhez3RFAi/eAcF/PiHWDw8OCPADkReUouF2RdMWEb6bVNpMzxrxJtKtA2aR70LPJJuwTJdp1EPAItl/zw+aUuN+990M1h3Dew+/Os/o8QGeAkxtbFu4TWdPyVr8sXVZWqE0spbvW; 25:Q498EFuH45PAiddn9XgSxqhqHCiuyu6OR3hTohW+LPw1h308fqWP7fEHNcntEsMTg83RCEF/ZOYZiU7A3fpCX+t7/cZPBWhkKv1GgzuX6tAqzWoLArIAEsTH0xwPc3lIaLklAvRfHWCq3Z1WdH5ITSY0NwXnzw3LXOIUOm9Dc1+mGVtD07a48niChSHqW/YuMZnPzUSsiL6LzlkBi2hMAW//HVNGXCSqWi9hW2qg5lSvYXW3B37JLosdvx21X2wW66dmZ2Y2B2VDkVK5NE6rx7YNere3PuLd7rlI+DgLpDhIaJWoSTcjm4NhQGRQJ1uRDsGDLZw3oO5smhxPACrPzQ==; 31:XjUYpdHFbW1U6Shu6DSNSsE58t/mxqsvKxT1OXdfOrpfWL9AoB0vMBYpwRfTybcZ0vaWj5zkQeL26ov5bHP5TrdmTg98Ufs6ipBfT1An05woY1vdv2ZO2eibgeUEoaUic9skWdIZYNT5EOmY7P8MSmMNY2lAF2/26OM9bjHTqaX8wb73unjvu6MZHXjC6eCIBupgjvewtsMjTbuIOaztiJhpbwrXdd0b5SbohA0vKuw= X-MS-TrafficTypeDiagnostic: OSBPR01MB2293: X-Microsoft-Exchange-Diagnostics: 1; OSBPR01MB2293; 20:qLMzM2FWIuEjME+Epixjjp+QA6bz3m2z+8JvmisBZlzR4Ltas/UFdM8NeXpzf1t/7AoWxGPxZHiXUtVxfvQ2NchU/mUlFpz5u+QhReHBKJNqS47LYjMxWMtcnOFoYffeshAprzL0UuJG8gyXfEV5cQmMFPlX3mZBPS86gOMVY/2HvAMnCYHkylhbGTbXhrylI2egepWoui0E2TA4BEWOsaYYXHqFcdSLLKf6ZEyWqAyj9IcOSPOY8plxdMgialj8ZsS6V7MxGrq6yxNKH/tZYpIWez15ebtRsVz8If3sbGNTc6YljLt+n1LYxAO+TehSWCjo3OgwFHDpS6XVsn5R9nxGbqsmazXYmHvB7YWApvBLw81ZWS7ZBmPjyjTqt3nOvD4S//ADWBtIAARGHFxPUWGNNExEfSuGWZvNccNb5rcf+Qxh1Ne1QwLXGECIewkOUTCbhk62GWTFpl4dcQss7qnAiPCtdaOtAMu80Okah7UZL9KGkLM2xqjIje6n357E; 4:TYJCp4R8bj6lAUXYQ3sOAu7ZHpxEs0dxXN9INFSDFgJPbqmlWFbrMLGQnT0aZBYahGkc54S0y3uveRbw99OTcJBqN0JAkgkfJHke0JxM1h3X1l4/kKSVGq3DdfEqFamIoUDajqt2OlFDISnyxMeQ35VGh6Y/n8QGUOQo3HoYTNJ53EMaonvu/tg7XgkUrgwBZdLXK7ez6hDt6TepzIOsJdLDx5swzn5n7H9ynVNblTeqCUlf5IBoiQP8mb788r89INq5NphHk/6X1q4E0DbOlw== 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)(93006095)(10201501046)(3231311)(944501410)(52105095)(3002001)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061750153)(6072148)(201708071742011)(7699016); SRVR:OSBPR01MB2293; BCL:0; PCL:0; RULEID:; SRVR:OSBPR01MB2293; X-Forefront-PRVS: 0730093765 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6069001)(346002)(396003)(136003)(366004)(376002)(39860400002)(199004)(189003)(14444005)(316002)(105586002)(305945005)(106356001)(2351001)(16586007)(6666003)(486006)(386003)(6506007)(446003)(107886003)(97736004)(476003)(53936002)(956004)(11346002)(2616005)(50226002)(3846002)(6116002)(7736002)(5660300001)(47776003)(66066001)(42882007)(81156014)(81166006)(68736007)(8676002)(48376002)(8936002)(6512007)(2906002)(4326008)(52116002)(16526019)(78352004)(25786009)(36756003)(6486002)(498600001)(2361001)(50466002)(6916009)(76176011)(26005)(51416003)(3720700003); DIR:OUT; SFP:1102; SCL:1; SRVR:OSBPR01MB2293; 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; OSBPR01MB2293; 23:UTKb3uaB8+oSRrx2+jq5iwzfPAlaAC14/NCSTGe8L?= =?us-ascii?Q?DVvSVFrMZtF4l4+uae9xvRvXWQkcZJtASX8H0a/WDiG03kYBrqMG9U2oTr8C?= =?us-ascii?Q?AdYo1PWUQLvpmZMnvuLYxfKMfr2KOu1IBu/DxzvrqY5KGlDoEKxZgbUsO6w5?= =?us-ascii?Q?ABx8/8uLn/vTXB/GWeQPMU7/ucSzgOC/WHt+WCAgUMoUDVW2u0Ki2c+8m7sL?= =?us-ascii?Q?bUhEn/xWa1QabMXDszA9j7zp6KZ9EhLtjgb70rSfMjJS2sFrE1JKHvNlQwPi?= =?us-ascii?Q?JPJWY5j4XM7RPyvw+XqEfedPiZ9/gWh0OeXaLWKF4cO+0bd/Dd1m9OhiDojL?= =?us-ascii?Q?km8lsxnK7tw6MzNQryB3Zn3qULR5FHwRzBmI84vhS9pucQicf2bTB0f0qsAW?= =?us-ascii?Q?+5R8EJqEwAbynBeVhoSZ8ga8UySTV1Nyf49dwa4LwmXPGgg2AGCMxXxzfq6Y?= =?us-ascii?Q?P6gvcvV+bwD+KuR242auAmF/pnK0goaTgPIAbCi6oxXroNmYAmzLjyPL6SAT?= =?us-ascii?Q?5dnMDqu0D1S9F9rZM4FS2vbt2DuLRp8OOUpzKciU0etsHY50BjKaKvUSUptA?= =?us-ascii?Q?tJ92W0mv/8BhHtemgZ4KVUttoF+kcT6F5U8maLYT+bWbACLMMG956Nt2ujws?= =?us-ascii?Q?UGja1YXp/Jh0sMPOBtrpFHDnsgA1IroQzpF1K5xSjt4Ya+452DthEL+sIaK+?= =?us-ascii?Q?X62+UrEIg+HMZe18xBvMmdtu62Y6DaON4e/47s/eoNhl00ok8yRj4IjW1HsD?= =?us-ascii?Q?pXwFsZJNYUz8I+vuTeFERkk0Lh/YJMymKEmff1k/Q5btSfYHt7kC2lH0G5s4?= =?us-ascii?Q?pqmqLfKq8ILU07U4Df7bs7QyjTHKOdZO82/mkecu5KsrHsUlgysW7cMFaaGs?= =?us-ascii?Q?yIDZHV+oBgB/t3MpqbhIQerhmxBB2aJjtHjvpMGocvHN14Io7S9ZUjesLUch?= =?us-ascii?Q?TDinj9g8AFut8k5uzj0IMPwdtmXS/AxOrPib06ePHoyy8QBRcLLuPCOGcbUY?= =?us-ascii?Q?C6NZwmETddgxqosCYXaLED7thJLsCUkDl81sl299wt0P5mx4fTAPE9N1O/n8?= =?us-ascii?Q?6CPTkqaY2vRmXMhoNjBlEE2eTZ/2Fy4eKS7Cu3+cfuNM+clMSB8hRxeMZTv2?= =?us-ascii?Q?Sds78vVZ7DBaQIXJ4J/3GEpAwpvoawBSxe1s/eiAzaLEtbH85QdVRy/KITiz?= =?us-ascii?Q?XeYDxqExA/BlYV1oxpqvNgR0CJy1YL6v2Aeggh769LUnNh3BtoYsj8SQvO92?= =?us-ascii?Q?12feTNJoLNSC7u1SUr+k8zC+4rYPiX70FPcQGVEvs6/WqQCZdU1B96S4Gd0/?= =?us-ascii?B?dz09?= X-Microsoft-Antispam-Message-Info: xRaEKSsGFdU83YOOOUFn9IlhaLoeGGzVotPkxhQozeYhG5Wi2ODkzstS8OAhdUxrE4lBE/GYPip+ETkWVSfMeyQLWSzOjoACgIZ5kRvnBIXcNFKftO9IidPimtWFuKl16R2NTs5y+Mv4ksT3ee68qesNHHnTnWZgytGGtEHoK/3wTUxyS0ZCh+dCq2hexy7wKA53D1uWO3n/dWyRAe+zunTDJKFVUWlONcYBFaBwb4I+bpnd/kPlIeYPZLWhI2t4cRq/8dMqCDHxfCHHxeB9n74IWahT7tf1vj9+LVkxMNNZ3fty0wbFoJPTesr8yeCql4jzSxQXgku4to0ZeIMl/gRFE7QhYQt9xFhXu/zu/Xg= X-Microsoft-Exchange-Diagnostics: 1; OSBPR01MB2293; 6:ntDnJIK7iqdsDBMxxFrN3zB/fsCXx9ay7/J8bv5ufiRVli7eatV2LhUiYOCDhf8FaexFkaQGBEGNaE2glrvyjqq6LWTiGIHnZuiKktmuG2qNIsk7l1X9VRWlIU8CauVy/K/nSpNVK4nbIKUR3nhpUJYO0otNzVpqYl5l6KjxIob5mkEhpEoNDEr7A4HGYoIMnv5lw866HkiD/pCktQTME2ym2llGsaZbZ/IEq20ZuRaXs1sapomYDxiK01/sSYFrNJweBWG3sAk/LPzWpbXDethdJX95j+AHm/+VA6XyycSEabTkj2ug8lXZCoHcgBwkETMR1wLI6oMAbKaiuTbGClqKooYR3nraLJl/RW8VG20qV3JeCw5SgI4yaOah9ZuM7quDe4NhOB/bOQoxAh/jg0edO+2J/oAOlx+QzA60sVjGL5fO73QVr+qXaDYEvBc4JOEIxRvTvs+TzytFcLYYWA==; 5:D3Qq8kJEFAQLaSrAcMcigS5s0TPSMYb10/oa/nTAsOcQ4LhZgrW/z2Ez3CG0VG2UkwFGiKFISw+YWsHioZ1BGGCPum5VIa4Zc6qorEBja9+xsRxMJtO3j1f9eyBg9ztNnqvfAEFEZkyHtehY55RGJfGZfr1Ou2Rw9dvaeH4+tAY=; 24:HNrZYApVMSJjFiPZPcf/9kWENe1Ir+MHwcBJ6oxrxbnI5/BMqgvgvOdixoSJjrDPfeDYwsR00Kf9LedXcPgoWgRI+zXG4JV4UkuqFYq0Z8c= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; OSBPR01MB2293; 7:c5ycMlV9fMWvC2tkU8oKFxC6NxAZOmDvvdGI7j+Ky8x9TjQLiePq8qqZISjDoQM7zJ8OEKwWyWQCHEA+I2FqJF4IBghfRHZmupDk/km/22CS2eAjRYiM3nmVt+5FKdvDfsf8uTXfc8wlOXjtc27JabUvSwU76rQnFHJDo9z4gLkjkM4SKjhBuh4ITm8DJY2/67iZfnzN0ZsJYixiPtRj/WdauK0K3RnfP22wuejplBOkLNH8F7jfBndOX/5AzHl0; 20:jUvCB6lxeyyKjCnZYrB1NOAh9VyfPyoIB3bvmRbvybWj33y9yxpz0kpdZm/EpyEK10TNUHSDqaQRVAFlyphn9eP9rLMpur47I9I7wLtEdiFzeTjkqFrLIXwrVJIh5HF+Og8cC7P7IyIuyNDGh5wkvhr57SDSP0eQzQI6iHFfUnQ= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2018 02:11:20.3214 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 60492974-e2e7-45b9-ce99-08d5e6d397f6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSBPR01MB2293 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 d3b7388..be82d69 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -834,6 +834,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 @@ -1864,6 +1875,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;