Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp630697imm; Wed, 1 Aug 2018 02:39:13 -0700 (PDT) X-Google-Smtp-Source: AAOMgpcUukgdlf8PCjXA69sPdqX07KCyE4OEtcoC5xmCn8wwGCjgoONMdOuVFei0UEt0ZCwIz2Kk X-Received: by 2002:a63:9802:: with SMTP id q2-v6mr23763612pgd.70.1533116353790; Wed, 01 Aug 2018 02:39:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533116353; cv=none; d=google.com; s=arc-20160816; b=R1vS8dhsdzk+5r1C0IdH2b6X4sgGTCKYpSSfX5auBE7r6w7xv84F7jEP4WikKiWmez XfYiHEdAHix9uk4hKT+XIWyK8Eh/w8vp5KeDr2lKz2Zxb/e2uudOZkw7C835QbGb1CBw BEuDqW6TPQOtHtpdSaw6Y0xIh1aWfIKhL48XEqUwr6SVqUo8ZpJcz0Qe33tUSh1j9wfG lExX/AQolVI4OX+/k8c49KzXOnUAosjhqgGluR7GJqbx4pMUoLJt1691k6F4IziXHBi6 tdmnMIatiq9EZawCazyKcphZUoX6fZEELHMZUDMnl1jDKUoeIvstMpjcB4ZhDDQemdh8 QIeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=JIeBSeEPv649WQU8igXozhanZPRKScrcH9outJhRMK0=; b=uNmTxTXi11yP1UYObkYW26N30myKRF5ZQUvCR1UeGZ0HBPZY/uEy7Spmr5BIXFZKSV mf1WTINPi4hjP5zJbBkQ2w8of85ZH4uDkGfIioDz6ExlCQ1CtOYxujUPotpPQ8k9J/uX WNqqaJu2OPB0gV4hb0Bw0GTJkNNYHBeByEe+BQam1IuPvmS+cvtZ05zDM9YykM2qu15o 31KYy1uwV755amOhVV7xW5cOeowB4G0L3YXUkyWNgfj9cxe1Pj1T63FeahwK9NEBTSoM kccpDDXCybQoyh4dplpZpCjW4JVIrhCFiORjExJrzstkZdAwnCt9NMZH9GO24fOl2r0H cN0Q== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a67-v6si4452512pla.135.2018.08.01.02.38.57; Wed, 01 Aug 2018 02:39:13 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389203AbeHALWq (ORCPT + 99 others); Wed, 1 Aug 2018 07:22:46 -0400 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:18207 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389061AbeHALWq (ORCPT ); Wed, 1 Aug 2018 07:22:46 -0400 Received: from pps.filterd (m0046668.ppops.net [127.0.0.1]) by mx07-.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id w719SakZ016581; Wed, 1 Aug 2018 11:37:34 +0200 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2kgdxvjuxn-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 01 Aug 2018 11:37:34 +0200 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id AE2F838; Wed, 1 Aug 2018 09:37:33 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas23.st.com [10.75.90.46]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 3638C288E; Wed, 1 Aug 2018 09:37:33 +0000 (GMT) Received: from SAFEX1HUBCAS24.st.com (10.75.90.95) by SAFEX1HUBCAS23.st.com (10.75.90.46) with Microsoft SMTP Server (TLS) id 14.3.361.1; Wed, 1 Aug 2018 11:37:33 +0200 Received: from lmecxl0923.lme.st.com (10.48.0.237) by webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.361.1; Wed, 1 Aug 2018 11:37:32 +0200 From: Ludovic Barre To: Ulf Hansson , Rob Herring CC: Maxime Coquelin , Alexandre Torgue , Gerald Baeza , , , , , Ludovic Barre Subject: [PATCH 10/14] mmc: mmci: add dma_release callback Date: Wed, 1 Aug 2018 11:36:57 +0200 Message-ID: <1533116221-380-11-git-send-email-ludovic.Barre@st.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1533116221-380-1-git-send-email-ludovic.Barre@st.com> References: <1533116221-380-1-git-send-email-ludovic.Barre@st.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.48.0.237] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-08-01_03:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ludovic Barre This patch adds dma_release callback at mmci_host_ops to allow to call specific variant. Signed-off-by: Ludovic Barre --- drivers/mmc/host/mmci.c | 13 ++++++++----- drivers/mmc/host/mmci.h | 2 ++ drivers/mmc/host/mmci_qcom_dml.c | 1 + 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index ae47d08..177e2e8 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c @@ -409,6 +409,12 @@ int mmci_dma_setup(struct mmci_host *host) return host->ops->dma_setup(host); } +void mmci_dma_release(struct mmci_host *host) +{ + if (host->ops && host->ops->dma_release) + host->ops->dma_release(host); +} + static void mmci_request_end(struct mmci_host *host, struct mmc_request *mrq) { @@ -546,7 +552,7 @@ int mmci_dmae_setup(struct mmci_host *host) * This is used in or so inline it * so it can be discarded. */ -static inline void mmci_dma_release(struct mmci_host *host) +void mmci_dmae_release(struct mmci_host *host) { struct dmaengine_priv *dmae = host->dma_priv; @@ -799,13 +805,10 @@ static struct mmci_host_ops mmci_variant_ops = { .unprepare_data = mmci_dmae_unprepare_data, .get_next_data = mmci_dmae_get_next_data, .dma_setup = mmci_dmae_setup, + .dma_release = mmci_dmae_release, }; #else /* Blank functions if the DMA engine is not available */ -static inline void mmci_dma_release(struct mmci_host *host) -{ -} - static inline void mmci_dma_finalize(struct mmci_host *host, struct mmc_data *data) { diff --git a/drivers/mmc/host/mmci.h b/drivers/mmc/host/mmci.h index e1b389c..f961f90 100644 --- a/drivers/mmc/host/mmci.h +++ b/drivers/mmc/host/mmci.h @@ -279,6 +279,7 @@ struct mmci_host_ops { int err); void (*get_next_data)(struct mmci_host *host, struct mmc_data *data); int (*dma_setup)(struct mmci_host *host); + void (*dma_release)(struct mmci_host *host); }; struct mmci_host { @@ -336,3 +337,4 @@ void mmci_dmae_unprepare_data(struct mmci_host *host, struct mmc_data *data, int err); void mmci_dmae_get_next_data(struct mmci_host *host, struct mmc_data *data); int mmci_dmae_setup(struct mmci_host *host); +void mmci_dmae_release(struct mmci_host *host); diff --git a/drivers/mmc/host/mmci_qcom_dml.c b/drivers/mmc/host/mmci_qcom_dml.c index 47abbdd..3c9d32e 100644 --- a/drivers/mmc/host/mmci_qcom_dml.c +++ b/drivers/mmc/host/mmci_qcom_dml.c @@ -186,6 +186,7 @@ static struct mmci_host_ops qcom_variant_ops = { .unprepare_data = mmci_dmae_unprepare_data, .get_next_data = mmci_dmae_get_next_data, .dma_setup = qcom_dma_setup, + .dma_release = mmci_dmae_release, }; void qcom_variant_init(struct mmci_host *host) -- 2.7.4