Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp3092162ybl; Sun, 12 Jan 2020 09:32:42 -0800 (PST) X-Google-Smtp-Source: APXvYqxzybIpU+TtK+hfEyq6b7gHfDT5ypRfyuhFcUX+3wc7MLtyHST/eV/MY0FrmGBv4+j9Qccl X-Received: by 2002:a05:6830:1f19:: with SMTP id u25mr10831096otg.170.1578850362773; Sun, 12 Jan 2020 09:32:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578850362; cv=none; d=google.com; s=arc-20160816; b=dmYC6NbQaMbnOlyohpxA+OdYUdBo2NtjD1ZNp4f/5W268Y1XrKNv8KmjGNxiGng0Vk EqSntrsE3DyMFoJjNpL4B3QJkMNLykXQzNDgdLHbfpsBjFm+EQCfLw8pTVccdlsfUtWS 7m+hP+P1wv92eWr/c0v0njh68iT/Z88WetJc//TfztRvBC4OqJFmIuKgMHKcgFvtRK2t /yPsvRVmCLN2cFtKRfbkzAUCb5ltJqa1akClPeOE5T74l4KFbSVU1xsM+0IdGUiTeGcJ yOvhJd0OeV1o+e+7tG0Se67oKeziQ4TC2JjVM0KLiMV9QdLpC2UVsOcNf7AwHIyejpQE l5AA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=iSzNtTGK3mbZvFsWdibdEoWrg4nzIZ5PMxmWTFl+mGA=; b=rdhvUe+YCF6DgxaefXdufW86LCq2ouyywUvi8idMZrpk+gfcmQnwcMuRwVmMxrkRoA SllLFRNUte4Faktzcn3DImU51Hp5zqCtTMfw9+WKqGTZ0PxVzHyqhirgG9RFq3aG5+g0 oOCEZWdPy2hLxWChTM799/9n1BHwWyIk8G2L/ZwbTq6l4ksKYdGdyYV0XbNTYv+n1jQ0 JAROdKVcxLulB7x2cSk+cstcHiqYVcyEVTUTlHgBX/eI/Qm0eVtXloQhJaGQBeG20WG8 uUEZnPOslPq8LYjA/aCTjTPAz7RZ4sK3QNxNKSUq0Po2rDZXQSY9+TWeGbJeZr2rVcrr 1GhQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=VLhpT+xt; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f189si4907113oib.268.2020.01.12.09.32.31; Sun, 12 Jan 2020 09:32:42 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=VLhpT+xt; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733176AbgALRbi (ORCPT + 99 others); Sun, 12 Jan 2020 12:31:38 -0500 Received: from mail-lj1-f194.google.com ([209.85.208.194]:45374 "EHLO mail-lj1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733115AbgALRbd (ORCPT ); Sun, 12 Jan 2020 12:31:33 -0500 Received: by mail-lj1-f194.google.com with SMTP id j26so7423670ljc.12; Sun, 12 Jan 2020 09:31:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iSzNtTGK3mbZvFsWdibdEoWrg4nzIZ5PMxmWTFl+mGA=; b=VLhpT+xtSOOwihhyK3NBL7PpJlC5RGYW6+AL19VuiQzXByT/1ufPIS8D/RH7vouOJW B298S+32ed8q7d4kG+fgtBv7U4ULiNaN9G5vjHGZAUm9faPwgGecPJYTkVPLg0V48yHh jJo0Pgq3O0+v8i9gSah+8whTlahMvTWCDVJcva2nN0hd+n53T2hjgE96LH3Vwt8H2kXr wiDztZLS3j3q8UfpIiWshX7/MzNGYgiYKAoz+9CeP95bJ82DqyixnG45O80Rqfm16Fkc yiQR8AJOzrY+/zG/iwPBAV2yycuQD25y8vwBaTPnYfnL/wi7DToyAEnHG95YHbR5CfBH XbeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iSzNtTGK3mbZvFsWdibdEoWrg4nzIZ5PMxmWTFl+mGA=; b=NATfVFjN/R8qocyqJpXzD/jY18Tu3/3mkz2mW2JDM74PrYgxMKG5QaXIPdB+PWyVvX csv1j+MDfkXoBC2ukwLElNtMN6WMauL7VYl1lxAziJt+fOaSXTT4bU/I2XAPwFzsQnOe x5iUz39nV/y5I/srxUyOjlnGr5DeTssKxPTUZunt4RzLoQZOVSfIHd+49gD6s7wlvRWX 2/ivnP6txAuDaEnPIuETfSB1tjqYkawPiVIIBh2mAzUMCcys0OeRWFMk+oRhmayF+GXI mEcc3AiDKzSphHIXXD4S2stJ4w1F6kzP7+EFFgjHkGU0NVoV5wMlVR3ru9kIL5O/FCBe NugA== X-Gm-Message-State: APjAAAVsztuLjtlRBo19kZYrLVyKndf+QYopr/lsLSYCj/sFgLSjZGz9 dkxeTVWHcYbPNGEhDUSQd1I= X-Received: by 2002:a05:651c:32b:: with SMTP id b11mr8585302ljp.203.1578850290755; Sun, 12 Jan 2020 09:31:30 -0800 (PST) Received: from localhost.localdomain (79-139-233-37.dynamic.spd-mgts.ru. [79.139.233.37]) by smtp.gmail.com with ESMTPSA id 140sm4458888lfk.78.2020.01.12.09.31.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 09:31:30 -0800 (PST) From: Dmitry Osipenko To: Laxman Dewangan , Vinod Koul , Dan Williams , Thierry Reding , Jonathan Hunter , =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= Cc: dmaengine@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 02/14] dmaengine: tegra-apb: Implement synchronization callback Date: Sun, 12 Jan 2020 20:29:54 +0300 Message-Id: <20200112173006.29863-3-digetx@gmail.com> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20200112173006.29863-1-digetx@gmail.com> References: <20200112173006.29863-1-digetx@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The ISR tasklet could be kept scheduled after DMA transfer termination, let's add synchronization callback which blocks until tasklet is finished. Signed-off-by: Dmitry Osipenko --- drivers/dma/tegra20-apb-dma.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c index 319f31d27014..664e9c5df3ba 100644 --- a/drivers/dma/tegra20-apb-dma.c +++ b/drivers/dma/tegra20-apb-dma.c @@ -798,6 +798,13 @@ static int tegra_dma_terminate_all(struct dma_chan *dc) return 0; } +static void tegra_dma_synchronize(struct dma_chan *dc) +{ + struct tegra_dma_channel *tdc = to_tegra_dma_chan(dc); + + tasklet_kill(&tdc->tasklet); +} + static unsigned int tegra_dma_sg_bytes_xferred(struct tegra_dma_channel *tdc, struct tegra_dma_sg_req *sg_req) { @@ -1506,6 +1513,7 @@ static int tegra_dma_probe(struct platform_device *pdev) tdma->dma_dev.residue_granularity = DMA_RESIDUE_GRANULARITY_BURST; tdma->dma_dev.device_config = tegra_dma_slave_config; tdma->dma_dev.device_terminate_all = tegra_dma_terminate_all; + tdma->dma_dev.device_synchronize = tegra_dma_synchronize; tdma->dma_dev.device_tx_status = tegra_dma_tx_status; tdma->dma_dev.device_issue_pending = tegra_dma_issue_pending; -- 2.24.0