From patchwork Wed Jul 25 08:27:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yoshihiro Shimoda X-Patchwork-Id: 10543681 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AB09D139A for ; Wed, 25 Jul 2018 08:28:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9CE2229800 for ; Wed, 25 Jul 2018 08:28:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 910872986F; Wed, 25 Jul 2018 08:28:24 +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=unavailable 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 2F9792986B for ; Wed, 25 Jul 2018 08:28:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728673AbeGYJi6 (ORCPT ); Wed, 25 Jul 2018 05:38:58 -0400 Received: from relmlor4.renesas.com ([210.160.252.174]:25073 "EHLO relmlie3.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728357AbeGYJi6 (ORCPT ); Wed, 25 Jul 2018 05:38:58 -0400 Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie3.idc.renesas.com with ESMTP; 25 Jul 2018 17:28:19 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id AD1D97D2CB; Wed, 25 Jul 2018 17:28:19 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.51,400,1526310000"; d="scan'208";a="286336567" Received: from mail-ty1jpn01lp0176.outbound.protection.outlook.com (HELO JPN01-TY1-obe.outbound.protection.outlook.com) ([23.103.139.176]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 25 Jul 2018 17:28:20 +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=1fMTRaHOigEEOHkjWhx1twE6yQqlew7zpDG6KpppVDI=; b=Nitn7dYUEstvPCPxKo20Pnd7+W70UrlNUWkEl2cTvFoerKxzIfC6Gh0+IyJ2qDN73c3myGQjKYS2aBrTzp5XSf9boDjdlyvhkcQBE9d5Zxh2qAwQ/XyVz6BUdtgMUM0e9GQfuhwUzzS3TCa5rmGehtjq1JN335fejjykCDOaNLE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=<>; Received: from localhost.localdomain (211.11.155.144) by OSAPR01MB2292.jpnprd01.prod.outlook.com (2603:1096:603:1c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.973.22; Wed, 25 Jul 2018 08:28:17 +0000 From: Yoshihiro Shimoda To: vinod.koul@intel.com Cc: dmaengine@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Yoshihiro Shimoda Subject: [PATCH] dmaengine: sh: rcar-dmac: Should not stop the DMAC by rcar_dmac_sync_tcr() Date: Wed, 25 Jul 2018 17:27:04 +0900 Message-Id: <1532507224-4213-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: TY2PR02CA0016.apcprd02.prod.outlook.com (2603:1096:404:56::28) To OSAPR01MB2292.jpnprd01.prod.outlook.com (2603:1096:603:1c::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7fe377d1-168a-480d-b61e-08d5f208925d X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(8559020)(8990107)(5600073)(711020)(4618075)(2017052603328)(7153060)(7193020);SRVR:OSAPR01MB2292; X-Microsoft-Exchange-Diagnostics: 1;OSAPR01MB2292;3:qn4/5Ag5XFGKYjniQiQeNk3oNFXM4o+E0ZE6l04/glt8FvWahYM3tHWDccWhWQyBVThlC703OdNpqBrfePC+oeB0q2tomYhPojDRYc5hU8K7WPiGkx2neJKRkbC7miOhhPRSlTgD5BElO2x46SbFFMrjBw+HE2fk4Du+le+E1Jod5jsDrEIlMfK2b4rqrwT0hWxYxt0TE0jrSwfgPbHcrO138cEs+Fq4PMdKELn+nKdM7xrx4/meHr0magWJzUes;25:hqIXZgN2uOeU31/FkHmjmrGNedC8vt31MmYw7+p4Tz87xKJhq2VTyZIlhssBpbj9MHdX0SkFeMyFJlFdAiPbNc9WFGM+ylEV3RkVdIzTVQ36gUiMCOHbzY7QjE3b8Ix321o3YKEuCgmvXFVYr6LFw/7AikIQxpdyXUpI2YmW3NY4z9xrDWKIJV9HFWEkQJcpTzKAc3pC60AdPqrF6UMR/KG5wTCp7QKhZ0TqoQvBHZ8UhJ0tYye3icZzydJ90IO36AfYucWKrGoxF4JUcCQLZchDe+KP3+dwdATXartd9WbWtWyN4e2ZdqX3zpFTC3hhXvHbHgxEGkmlqnby+gMtxw==;31:LPvlYF7g4emn5wfzXoiQOpvT/0VS03AieyHiFwF08Ncyy0jbdCWB4HHntgVv2PKEbIllymfwg//3gY7KIx/dMEnlyNIzvc0WM8Tc9YmJYl2O561ir5qmn2yOnBfL4amH2iMXOzzlf/hX4OSYFuY3HryDjShj8EEsPdBqKgHYQhXEgsSbA9NQ4h/f2NXcMpNnn+VZvT4NopEw9u15GUYg5hDbKTr7CPM6KSk0nxpOgt4= X-MS-TrafficTypeDiagnostic: OSAPR01MB2292: X-Microsoft-Exchange-Diagnostics: 1;OSAPR01MB2292;20:Tir5wO2avRK/e94uGAKskdBpviitiokuVVARTC2CP7sZIsZmUE+SEGZrCB6SSoysrHHAbMU+4/efF5XkARHmnb+CUHU/SFIlbUxh4lwgjm5PqH4+v8+IwhobFOhosLSWViJYyURDYqFdqp5plSJ14sbgQoXMzblyZMVuCffM8Sq0n4W+4Olf6T4RBmyMce7lHnKM5U3bPIhf6Q/BtYj33DwU5BioIVuoHdcJ1hJPYHCBBOXWi15VkKaqldUS3O4F72Fn3V68oUWIagR8q6En9mkxrsKhtKjTGTF5zc/yb6jSC/FOtYec2aqjqVKgpHNAPMqsfjTJoM/kvjPPxCzJh0WkRo5LPIJFM/YNWknDHED2Ka6DmUeRX5VtcIsi8fpRaNc5t1hYRuLTMt1Oah8n8KojtIbfS2BmRrkrWE2xvDawQYPZ6qkrbbzxTrSpWncnm/MSFxmoF8Xh2PMWZxhr7Xnd9E8elGALZWcEh+QLpB/F5EvP7JOjC8PO2FUvaGaf;4:dOkd+obvr4F/IA59DYqSI6a4RGea37YA/PeHEd3vEkn92iehTnK7ih2rYd6gvpd6gNcukR/FPxgswWIj7e/7n/2wv9BWvtztF+lcqnU1fuwNxK9ZjVQDsDl+tp2TXR3rcO/w5I0pLGaV3kq/kSY8aP3qNXoavmcQ6PN41AgOMn0zlgNZkRr+76oJrym7p5qWTBia9mANlBKAwrtkMFlPo5e2v3ANj/nO1QT1SfLKVdpANBRAp6wiDIdf7RaGb1RR23QJY870wqFK+WouugYrqg== 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)(10201501046)(3002001)(93006095)(3231311)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061750153)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011)(7699016);SRVR:OSAPR01MB2292;BCL:0;PCL:0;RULEID:;SRVR:OSAPR01MB2292; X-Forefront-PRVS: 0744CFB5E8 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6069001)(346002)(366004)(136003)(39860400002)(376002)(396003)(199004)(189003)(6916009)(386003)(16526019)(6666003)(5660300001)(25786009)(26005)(107886003)(105586002)(42882007)(47776003)(106356001)(6506007)(1857600001)(305945005)(6486002)(66066001)(8676002)(2616005)(476003)(2351001)(52116002)(2361001)(7736002)(50466002)(956004)(68736007)(81156014)(486006)(78352004)(48376002)(50226002)(4326008)(51416003)(14444005)(3846002)(53936002)(8936002)(2906002)(6116002)(97736004)(36756003)(498600001)(81166006)(575784001)(316002)(16586007)(6512007)(3720700003);DIR:OUT;SFP:1102;SCL:1;SRVR:OSAPR01MB2292;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: 1;OSAPR01MB2292;23:1pw/W82U9wZzdyuneBL1Z9kdfs/irL2YVdIYrLPDpUr6dHP09qR6n1RP0TTS0iDFELPNs4+DmTR4ie/ZWqv2jvMEmaxaj6GUZDQ3aIhQtQfRiX3o1hPT0pJyVbCRjCDDQbAHLLdE1haAddhnPwP1fpdDAsEqgopEBuCcJgY07NqyMOa4+jNASvCGz+J+ETEMoskN8iqNCiTAsrXFJFwIx+cCULZ164jrb3IzMiqI+oqKL3cS83vmiE/IDkLytYx4XuverplXtUHMHHTjGf00K/Gy89bFdXn7J8WmTmnirr2WSvfcSfYC0eH5TUp5bibFiqKQYoNQwEeSx3Xd8veJ/8WkzVbn35n/sob0Z8Xmxjs3Nx+b4adJCqQs5qnDKEpsPVue/ikchNrhitALIidAMvu7CdnjLHV57aBSHKaKXEFnLmTZmbDhRHx9s/VWAFyY1pjog0MRIWx2MYXsPElYKsMjgy1Si7kR1a1xDrPwmnhCM2EoJZapkSMkiQ+8OWBuiypI3YS3U+S5N5a3tl75BgvCppKWxulrr+30zeoa0PnIGcASxt0J/NvjCCdo8UKHXlbJq/uOdfW+zLwtrbIe/Tdineps8PGM2l7ZOmhboizNG2Ql+HGyfEyREv+uj/tskKAKhDKuLyvrPAUa65YFpnbMN08egTf9WsBMKS89NtIeu8UUsfgKvraM6o0KucJabVT0LxA1DrBy5loMfN/F8CGe3+NL4aTgq4RZRAklVXPilfwIWTqcXVNRLGD1PoO+Ilx1qKNtbrwINCDJm44PPnQEroZcrqzdPf+eGAYxiIFjP2yA4yfd9VplqoxF6dpSusuptzLrHNlFax1EMPgs94YrQ+9OWcDIyA/MsBHd2LeVqa9XsPC6pj7fJZ+Aqk+maRBPY9xlGegDQm9P5fp4w6Jm6G6y8or21bX7CY4hw9PsHEzux97Oisb3E9A8wj47qYELKLiV2Lzz8Sw6tzT58pxxpdK3RkHHNuhiyr2Tu/WhVgQrPNm5XvB+EBB+z1McEUFwZw3Bq03YZ0hndCciglkZ/FJ4UPjKoqGJ9Y/ug0JEySuJ9hZ/N/ww9DvDLpfwJuauVuKG0z48jzGww1ckhXfsOWp1UzYFUMsN4tWYFIIOm97PPwT1lZb/ZR4yH+4DmSPl/xJ6TAtakAAm4PyUPM78u7Q8+4irtPNX1hiYDwXhuAodjR0gYIBFcL/HmGCZci3Wms+36spCC34SNaUppcBEl4UP/Tde1/FkmiXm33cqj3KTYDzXoblJ8Q6nTNuXzY5BZp55CEwv6av4oKY7zA== X-Microsoft-Antispam-Message-Info: 8ObF4LK2i4KvyVO9CH+ptw6Rezv9rwqsDlGRMk+ZGgltvXo1M1rOTdcA3x9y1VyOrf89gdmq16ZNGHLYeb2haLgXQ9zANZE6w8vbjAvcFNBwmLRhGSH55To9U8QUw5vA+Ok7BIZIfD991wbWtRYrtgtpZW84MxsPtlWcIC8IsIixeCzpYXqTdFcZ7ThUraKpIjMht7NtFcSwyFVDEgXo/3qCILo+OsrT4lGi236/qi3U1kigWNxprKYppBbBVey/rhrQ54QdziE7aVkNlh5qw5nzN7A19T1U+aNPtpG96D0YAx1nXz6RNYRGnUTIL1nrocBLt7EUrrhz3H2rmsVUbPzpxXPYgfFI6/96u2+Pr+E= X-Microsoft-Exchange-Diagnostics: 1;OSAPR01MB2292;6:EhC+kHWBdgjTwbEcpt9dELs2qPbebQDLbKCv4lD/SaEw4KBS2gGN6WOt04NXAWd385dWWqfKPzwDTFHcHl9YtTqVj24+JwpVNAHmvojPy94Lg6IAbgv7zV6P7FHFmbH4vR3Pjy//9E+n81TwwfeK5nSnlGE63/XUW3ade7S9E6i3+YJ8tUuHZf3PVDRjtk0ojk+K2o+CaZKpKqFwyyKDRJsoheImCJJVMGf3e7BYF1f6hPi9OfTkgJlp64sY3qiZwxqU6ZVOITGCw5PMOSuywmlYJAN56q2xCajohcqG16A054+j4tdhFHHwxJl4H/SUs2WqRW71OvElLKaAQH/cD+3W+IULTERZ1Ml5eLnyQ6XJ4f//JrvdWm2McFG/1eyQa5VXYZPzuUAM1gsTjXTSq1wX6XOdfrerpXR9Phkve+vLT+AIfP/ezab5oDbMZ+GHkLa4rujS+bsoyWjQjLN2/g==;5:2FNYqY+fyGPYfX6YUCciMUfHA+uuxhd53saAVd1jPFQ5L/hQVr6/uFs5dGliERbylhxsBvsZwlEZvZUMWo83ljVu6wYAzd1W7MKvFcPwJaSS3jGbldsDWzX/SAF/x4NFwxgLwSvNDwdQFMAVyrTNvo/JUrcEl2OBwppFyJ5Fr8k=;7:gmvZxoRlS4o9vabyoME80+fe2YHwpiZqO9fMVCUL+Kd3p8w2hwoyEp9KItXvEECXu9re/Sa9qKpqpD2c+ZTtRpyvco4aQpXOeedWgR8jBC0KlENODaezvwTJvBlZt6ne8FpSCo4zEfwVBXTjMxM2Hm7o/aTqK+dXbMJrloQWaJHJtWjrtbPGEh8Tt6U4WaJJIIV2brOIPMiES4QJhqqf45Shv0iT9Whkhwrc0q9Or0fBHkX8W5x1Hi06gwPByevo SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;OSAPR01MB2292;20:BHGl5eil54F3T42Ji5NA93O1PSmg8itkT16tQeYc6UU/N+MZMmZMn4ww9CUgBs123BkPpA1SB+RasjARMhuuOUNY4+4TxjXDTZkha/+DhG7J/iFh2rPVKrPGvSKzpEiBH8Ttid7G0yv2UXNgTAR29yBW7fFfJV27OdmSOxQ0XyM= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2018 08:28:17.1130 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7fe377d1-168a-480d-b61e-08d5f208925d X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSAPR01MB2292 Sender: dmaengine-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP rcar_dmac_chan_get_residue() should not stop the DMAC, because the commit 538603c6026c ("dmaengine: sh: rcar-dmac: avoid to write CHCR.TE to 1 if TCR is set to 0") had fixed unexpected re-transferring issue. But it had caused the next issue which might stop the cyclic mode transferring. Thus, for example R-Car sound might be stopped suddenly. According to the commit 73a47bd0da66 ("dmaengine: rcar-dmac: use TCRB instead of TCR for residue"), the purpose of clearing CHCR.DE bit is flushing buffered data to calculate the exact residue. Such the "exact" residue had been required by sh-sci driver. sh-sci driver is calling dmaengine_pause() to stop transferring, and get "exact" residue. Otherwise, it might receive extra data during getting residue without pausing. In rx_timer_fn() of sh-sci driver: dmaengine_tx_status(); /* For checking roughly */ dmaengine_pause(); dmaengine_tx_status(); /* For getting residue */ dmaengine_terminate_all(); But, unfortunately the rcar-dmac driver didn't support dmaengine_pause() at that time. So, the sh-sci driver cannot get the "exact" residue without stopping the transferring, because rcar-dmac is buffering data inside. Because of these backgrounds, rcar-dmac had been cleared/set CHCR.DE bit in rcar_dmac_chan_get_residue() to synchronizing data and getting "exact" residue. However, rcar-dmac driver has rcar_dmac_chan_pause() now, and clearing CHCR.DE bit in rcar_dmac_chan_get_residue() doesn't need anymore. So, this patch removes the rcar_dmac_sync_tcr(). Fixes: 73a47bd0da66 ("dmaengine: rcar-dmac: use TCRB instead of TCR for residue") Signed-off-by: Yoshihiro Shimoda Tested-by: Hiroyuki Yokoyama Reviewed-by: Geert Uytterhoeven --- drivers/dma/sh/rcar-dmac.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index be82d69..48ee35e 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -770,20 +770,6 @@ static void rcar_dmac_clear_chcr_de(struct rcar_dmac_chan *chan) rcar_dmac_chcr_de_barrier(chan); } -static void rcar_dmac_sync_tcr(struct rcar_dmac_chan *chan) -{ - u32 chcr = rcar_dmac_chan_read(chan, RCAR_DMACHCR); - - if (!(chcr & RCAR_DMACHCR_DE)) - return; - - rcar_dmac_clear_chcr_de(chan); - - /* back DE if remain data exists */ - if (rcar_dmac_chan_read(chan, RCAR_DMATCR)) - rcar_dmac_chan_write(chan, RCAR_DMACHCR, chcr); -} - static void rcar_dmac_chan_halt(struct rcar_dmac_chan *chan) { u32 chcr = rcar_dmac_chan_read(chan, RCAR_DMACHCR); @@ -1367,9 +1353,6 @@ static unsigned int rcar_dmac_chan_get_residue(struct rcar_dmac_chan *chan, residue += chunk->size; } - if (desc->direction == DMA_DEV_TO_MEM) - rcar_dmac_sync_tcr(chan); - /* Add the residue for the current chunk. */ residue += rcar_dmac_chan_read(chan, RCAR_DMATCRB) << desc->xfer_shift;