Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp5770320ybv; Tue, 11 Feb 2020 23:32:30 -0800 (PST) X-Google-Smtp-Source: APXvYqxtwCZcyDCYiqNNR2XdOcH0VijUwDDSZ2PCjucR6aaFhA8q5cQkspnyRIX+OG1P1pPOKZkz X-Received: by 2002:a9d:4c92:: with SMTP id m18mr7916954otf.168.1581492749947; Tue, 11 Feb 2020 23:32:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581492749; cv=none; d=google.com; s=arc-20160816; b=wPP3reJjyIymW6UOMnGWcPLzhr6Md7IfJK2cH1McnGNYMb5zN3+IDFJ9Z8u3qadDFH 7IraIHP8Y+0JXkSXqNnY7Zz1E06SqwOAB0sSeqoZxJZ+RaiPvpsB0S0TldPxtM07jYWC OVy7edjuJtqnmGJc8zKnwc7L2P26rNbvYNDCa054EbvuVGDGkyCbJ3q/ZFjSfLE0+xEa 0v9CDfpNIa43TwAT2UQyG28o8LuSFoCeUTCtGVfSvUNu4mlmVHjB8oA4klJHtpb2y0Hd vj0y5lvXpwFLnHqIjP4QlWYAL5+VudX+dPHpMEaCqeMkWY4S1Ai93u4dFeQQu8OUBOYf x4Bw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=n85mAhopmEKKjRLWf2EiWGju9591/UXLWNC01zQri40=; b=yandM/+pbK5AxnkliHocX+3ga8UuBfAjaywZ94ZSdC68JrxT9ehz+22MUzKuJDhtFa mvbaLdZldwCsqQ8dQ8sx65e3H/Jb7wX1ZVi3E+HIm/YXAytmGAqklDyzo6c3BhafvCxa fKs60ynbWuFDYUtq6H0BMOEr19g8V+P2Kau0p4+/autv6F4WG2/cY7MHmFk5AeDJ2EN4 6gq/+tDU8WEdKzlZoHUCaFj7JKtRFh0/e170cdJ8ayIscm3iNcB6YheGCp54kqDGmw+L 8t/sFi8GPLWAVRS2XhWxgFX/bGeaiwgfsYVGf4E4fLQchyvny8FFg5dodMBhYlqvFBBE QfNw== 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 m19si2843861oig.91.2020.02.11.23.32.17; Tue, 11 Feb 2020 23:32:29 -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; 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 S1728327AbgBLHcL (ORCPT + 99 others); Wed, 12 Feb 2020 02:32:11 -0500 Received: from alexa-out-blr-02.qualcomm.com ([103.229.18.198]:55792 "EHLO alexa-out-blr-02.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728192AbgBLHcL (ORCPT ); Wed, 12 Feb 2020 02:32:11 -0500 Received: from ironmsg01-blr.qualcomm.com ([10.86.208.130]) by alexa-out-blr-02.qualcomm.com with ESMTP/TLS/AES256-SHA; 12 Feb 2020 13:02:07 +0530 Received: from c-sbhanu-linux.qualcomm.com ([10.242.50.201]) by ironmsg01-blr.qualcomm.com with ESMTP; 12 Feb 2020 13:01:34 +0530 Received: by c-sbhanu-linux.qualcomm.com (Postfix, from userid 2344807) id 077043609; Wed, 12 Feb 2020 13:01:32 +0530 (IST) From: Shaik Sajida Bhanu To: adrian.hunter@intel.com, ulf.hansson@linaro.org, robh+dt@kernel.org, mka@chromium.org Cc: asutoshd@codeaurora.org, swboyd@google.com, stummala@codeaurora.org, sayalil@codeaurora.org, cang@codeaurora.org, vbadigan@codeaurora.org, rampraka@codeaurora.org, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, agross@kernel.org, bjorn.andersson@linaro.org, Shaik Sajida Bhanu Subject: [PATCH V3] mmc: sdhci-msm: Update system suspend/resume callbacks of sdhci-msm platform driver Date: Wed, 12 Feb 2020 13:01:13 +0530 Message-Id: <1581492673-27295-1-git-send-email-sbhanu@codeaurora.org> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The existing suspend/resume callbacks of sdhci-msm driver are just gating/un-gating the clocks. During suspend cycle more can be done like disabling controller, disabling card detection, enabling wake-up events. So updating the system pm callbacks for performing these extra actions besides controlling the clocks. Signed-off-by: Shaik Sajida Bhanu Changes since V2: Removed disabling/enabling pwr-irq from system pm ops. Changes since V1: Invoking pm_runtime_force_suspend/resume instead of sdhci_msm_runtime_suepend/resume. --- drivers/mmc/host/sdhci-msm.c | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c index c3a160c..fcff3e8 100644 --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c @@ -2159,9 +2159,46 @@ static __maybe_unused int sdhci_msm_runtime_resume(struct device *dev) return 0; } +static int sdhci_msm_suspend(struct device *dev) +{ + struct sdhci_host *host = dev_get_drvdata(dev); + int ret; + + if (host->mmc->caps2 & MMC_CAP2_CQE) { + ret = cqhci_suspend(host->mmc); + if (ret) + return ret; + } + + ret = sdhci_suspend_host(host); + if (ret) + return ret; + + return pm_runtime_force_suspend(dev); +} + +static int sdhci_msm_resume(struct device *dev) +{ + struct sdhci_host *host = dev_get_drvdata(dev); + int ret; + + ret = pm_runtime_force_resume(dev); + if (ret) + return ret; + + ret = sdhci_resume_host(host); + if (ret < 0) + return ret; + + if (host->mmc->caps2 & MMC_CAP2_CQE) + ret = cqhci_resume(host->mmc); + + return ret; +} + static const struct dev_pm_ops sdhci_msm_pm_ops = { - SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, - pm_runtime_force_resume) + SET_SYSTEM_SLEEP_PM_OPS(sdhci_msm_suspend, + sdhci_msm_resume) SET_RUNTIME_PM_OPS(sdhci_msm_runtime_suspend, sdhci_msm_runtime_resume, NULL) -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation