Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp443240imm; Fri, 5 Oct 2018 06:24:46 -0700 (PDT) X-Google-Smtp-Source: ACcGV61PJzXZgZYdje7ymB1vl92tIBk/i6AQAwV+YxV1e6e4WR0g0rkSByujd9lUNLb2DuF9Daze X-Received: by 2002:a17:902:44:: with SMTP id 62-v6mr11782522pla.181.1538745886070; Fri, 05 Oct 2018 06:24:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538745886; cv=none; d=google.com; s=arc-20160816; b=e9mVybuuNTn3ftXng3y9YRmntYrG05N/4JJiJwVQ/7kQpq32rSjjjmrJ3N/AZ5NinG tLEblAue/vsGHywNCEPCu2yFWpfh5R/TsJpxTCtUJGGVIeQW3IZibHSPQod3WMJEVp0W buqD6efOfnQ3+QP25ondo8Xk93fClPz3HypsNv00jN8f3q6L5kWYLD7nJ/9+1SuzCgIU ZYhiLCFI3xWQRZk8kKBtHr08+ix2h5lzjY4bHt41MKYUykNG1Ayx9qb2KisVoxSNG8Wf Mm0i9VNXbzwazRIt8bYXsEceRPnAk6vu4GaQeTNB2CBK4wQ+LI2N5SLU0BJLwxFn72vQ a+KA== 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; bh=9p70OGvWp2Pryctx4YwrDoIWfEMP/YaFyU1+LJpzKSA=; b=GsDd6Z+rjeWl5P5W9bjjc5mwemSTFHzYptskKBWD5Zlwxpa/TuNmrIek18DNVNxi13 H6zOcs+WAwm/wcL31ULTmTKDb+ecyUNynVPjjhbORqGWm+opYwgB0vfhHcvAD23eeFZ1 ypJurKRtZ/15FN16HrUpJg3Z3L+kFKvdzR5KA1d7xGY75o+yhiy9TeZColclMeuKcP1N +tBFQUr2VCkw3gFai1ygYnitDGMu9n+T/SW9YRK5t90dsXL/msVadcLssbSgtRtbDBow 5RPCe4SRGoBrHX1xdfw79aC0tsJI5v10L6mJc2Gm8DZpyfDCDBZk6THxRr3DYnylltZ7 zFjA== 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 i21-v6si8094870pgj.51.2018.10.05.06.24.30; Fri, 05 Oct 2018 06:24:46 -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 S1728732AbeJEUWp (ORCPT + 99 others); Fri, 5 Oct 2018 16:22:45 -0400 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:21289 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728473AbeJEUWo (ORCPT ); Fri, 5 Oct 2018 16:22:44 -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 w95DIid0003593; Fri, 5 Oct 2018 15:23:35 +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 2mv4kdbjh8-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Fri, 05 Oct 2018 15:23:35 +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 66A8D31; Fri, 5 Oct 2018 13:23:34 +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 4580E2C92; Fri, 5 Oct 2018 13:23:34 +0000 (GMT) Received: from SAFEX1HUBCAS22.st.com (10.75.90.93) by SAFEX1HUBCAS23.st.com (10.75.90.46) with Microsoft SMTP Server (TLS) id 14.3.361.1; Fri, 5 Oct 2018 15:23:34 +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; Fri, 5 Oct 2018 15:23:33 +0200 From: Ludovic Barre To: Ulf Hansson , Rob Herring CC: , Maxime Coquelin , Alexandre Torgue , , , , , , Ludovic Barre Subject: [PATCH V5 11/24] mmc: mmci: add set_clk/pwrreg callbacks Date: Fri, 5 Oct 2018 15:22:49 +0200 Message-ID: <1538745782-27446-12-git-send-email-ludovic.Barre@st.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1538745782-27446-1-git-send-email-ludovic.Barre@st.com> References: <1538745782-27446-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-10-05_07:,, 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 set_clkreg and set_pwrreg callbacks at mmci_host_ops to allow to call specific variant. extends visibility of mmci_write_clk/pwrreg functions to be used into specific file variant. Signed-off-by: Ludovic Barre --- drivers/mmc/host/mmci.c | 16 ++++++++++++---- drivers/mmc/host/mmci.h | 5 +++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index 0444aba..e5cd199 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c @@ -251,7 +251,7 @@ static void mmci_reg_delay(struct mmci_host *host) /* * This must be called with host->lock held */ -static void mmci_write_clkreg(struct mmci_host *host, u32 clk) +void mmci_write_clkreg(struct mmci_host *host, u32 clk) { if (host->clk_reg != clk) { host->clk_reg = clk; @@ -262,7 +262,7 @@ static void mmci_write_clkreg(struct mmci_host *host, u32 clk) /* * This must be called with host->lock held */ -static void mmci_write_pwrreg(struct mmci_host *host, u32 pwr) +void mmci_write_pwrreg(struct mmci_host *host, u32 pwr) { if (host->pwr_reg != pwr) { host->pwr_reg = pwr; @@ -1565,8 +1565,16 @@ static void mmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) spin_lock_irqsave(&host->lock, flags); - mmci_set_clkreg(host, ios->clock); - mmci_write_pwrreg(host, pwr); + if (host->ops && host->ops->set_clkreg) + host->ops->set_clkreg(host, ios->clock); + else + mmci_set_clkreg(host, ios->clock); + + if (host->ops && host->ops->set_pwrreg) + host->ops->set_pwrreg(host, pwr); + else + mmci_write_pwrreg(host, pwr); + mmci_reg_delay(host); spin_unlock_irqrestore(&host->lock, flags); diff --git a/drivers/mmc/host/mmci.h b/drivers/mmc/host/mmci.h index f103465..e4bb527 100644 --- a/drivers/mmc/host/mmci.h +++ b/drivers/mmc/host/mmci.h @@ -284,6 +284,8 @@ struct mmci_host_ops { int (*dma_start)(struct mmci_host *host, unsigned int *datactrl); void (*dma_finalize)(struct mmci_host *host, struct mmc_data *data); void (*dma_error)(struct mmci_host *host); + void (*set_clkreg)(struct mmci_host *host, unsigned int desired); + void (*set_pwrreg)(struct mmci_host *host, unsigned int pwr); }; struct mmci_host { @@ -344,6 +346,9 @@ static inline void mmci_variant_init(struct mmci_host *host) } #endif +void mmci_write_clkreg(struct mmci_host *host, u32 clk); +void mmci_write_pwrreg(struct mmci_host *host, u32 pwr); + int mmci_dmae_prep_data(struct mmci_host *host, struct mmc_data *data, bool next); void mmci_dmae_unprep_data(struct mmci_host *host, struct mmc_data *data, -- 2.7.4