All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: linux-tegra@vger.kernel.org, devicetree@vger.kernel.org,
	Rob Herring <robh+dt@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	Jon Hunter <jonathanh@nvidia.com>
Subject: [PATCH 07/13] memory: tegra: Add system sleep support
Date: Sun, 22 Dec 2019 15:10:29 +0100	[thread overview]
Message-ID: <20191222141035.1649937-8-thierry.reding@gmail.com> (raw)
In-Reply-To: <20191222141035.1649937-1-thierry.reding@gmail.com>

From: Thierry Reding <treding@nvidia.com>

Add system suspend/resume support for the memory controller found on
Tegra186 and later. This is required so that the SID registers can be
reprogrammed after their content was lost during system sleep.

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 drivers/memory/tegra/tegra186.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/memory/tegra/tegra186.c b/drivers/memory/tegra/tegra186.c
index 57895116c8e5..77a313f1bf0e 100644
--- a/drivers/memory/tegra/tegra186.c
+++ b/drivers/memory/tegra/tegra186.c
@@ -602,10 +602,29 @@ static const struct of_device_id tegra186_mc_of_match[] = {
 };
 MODULE_DEVICE_TABLE(of, tegra186_mc_of_match);
 
+static int tegra186_mc_suspend(struct device *dev)
+{
+	return 0;
+}
+
+static int tegra186_mc_resume(struct device *dev)
+{
+	struct tegra186_mc *mc = dev_get_drvdata(dev);
+
+	tegra186_mc_program_sid(mc);
+
+	return 0;
+}
+
+static const struct dev_pm_ops tegra186_mc_pm_ops = {
+	SET_SYSTEM_SLEEP_PM_OPS(tegra186_mc_suspend, tegra186_mc_resume)
+};
+
 static struct platform_driver tegra186_mc_driver = {
 	.driver = {
 		.name = "tegra186-mc",
 		.of_match_table = tegra186_mc_of_match,
+		.pm = &tegra186_mc_pm_ops,
 		.suppress_bind_attrs = true,
 	},
 	.prevent_deferred_probe = true,
-- 
2.24.1

WARNING: multiple messages have this Message-ID (diff)
From: Thierry Reding <thierry.reding@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Rob Herring <robh+dt@kernel.org>,
	Jon Hunter <jonathanh@nvidia.com>,
	linux-tegra@vger.kernel.org, devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH 07/13] memory: tegra: Add system sleep support
Date: Sun, 22 Dec 2019 15:10:29 +0100	[thread overview]
Message-ID: <20191222141035.1649937-8-thierry.reding@gmail.com> (raw)
In-Reply-To: <20191222141035.1649937-1-thierry.reding@gmail.com>

From: Thierry Reding <treding@nvidia.com>

Add system suspend/resume support for the memory controller found on
Tegra186 and later. This is required so that the SID registers can be
reprogrammed after their content was lost during system sleep.

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 drivers/memory/tegra/tegra186.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/memory/tegra/tegra186.c b/drivers/memory/tegra/tegra186.c
index 57895116c8e5..77a313f1bf0e 100644
--- a/drivers/memory/tegra/tegra186.c
+++ b/drivers/memory/tegra/tegra186.c
@@ -602,10 +602,29 @@ static const struct of_device_id tegra186_mc_of_match[] = {
 };
 MODULE_DEVICE_TABLE(of, tegra186_mc_of_match);
 
+static int tegra186_mc_suspend(struct device *dev)
+{
+	return 0;
+}
+
+static int tegra186_mc_resume(struct device *dev)
+{
+	struct tegra186_mc *mc = dev_get_drvdata(dev);
+
+	tegra186_mc_program_sid(mc);
+
+	return 0;
+}
+
+static const struct dev_pm_ops tegra186_mc_pm_ops = {
+	SET_SYSTEM_SLEEP_PM_OPS(tegra186_mc_suspend, tegra186_mc_resume)
+};
+
 static struct platform_driver tegra186_mc_driver = {
 	.driver = {
 		.name = "tegra186-mc",
 		.of_match_table = tegra186_mc_of_match,
+		.pm = &tegra186_mc_pm_ops,
 		.suppress_bind_attrs = true,
 	},
 	.prevent_deferred_probe = true,
-- 
2.24.1


WARNING: multiple messages have this Message-ID (diff)
From: Thierry Reding <thierry.reding@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: linux-tegra@vger.kernel.org, devicetree@vger.kernel.org,
	Rob Herring <robh+dt@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	Jon Hunter <jonathanh@nvidia.com>
Subject: [PATCH 07/13] memory: tegra: Add system sleep support
Date: Sun, 22 Dec 2019 15:10:29 +0100	[thread overview]
Message-ID: <20191222141035.1649937-8-thierry.reding@gmail.com> (raw)
In-Reply-To: <20191222141035.1649937-1-thierry.reding@gmail.com>

From: Thierry Reding <treding@nvidia.com>

Add system suspend/resume support for the memory controller found on
Tegra186 and later. This is required so that the SID registers can be
reprogrammed after their content was lost during system sleep.

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 drivers/memory/tegra/tegra186.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/memory/tegra/tegra186.c b/drivers/memory/tegra/tegra186.c
index 57895116c8e5..77a313f1bf0e 100644
--- a/drivers/memory/tegra/tegra186.c
+++ b/drivers/memory/tegra/tegra186.c
@@ -602,10 +602,29 @@ static const struct of_device_id tegra186_mc_of_match[] = {
 };
 MODULE_DEVICE_TABLE(of, tegra186_mc_of_match);
 
+static int tegra186_mc_suspend(struct device *dev)
+{
+	return 0;
+}
+
+static int tegra186_mc_resume(struct device *dev)
+{
+	struct tegra186_mc *mc = dev_get_drvdata(dev);
+
+	tegra186_mc_program_sid(mc);
+
+	return 0;
+}
+
+static const struct dev_pm_ops tegra186_mc_pm_ops = {
+	SET_SYSTEM_SLEEP_PM_OPS(tegra186_mc_suspend, tegra186_mc_resume)
+};
+
 static struct platform_driver tegra186_mc_driver = {
 	.driver = {
 		.name = "tegra186-mc",
 		.of_match_table = tegra186_mc_of_match,
+		.pm = &tegra186_mc_pm_ops,
 		.suppress_bind_attrs = true,
 	},
 	.prevent_deferred_probe = true,
-- 
2.24.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2019-12-22 14:10 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-22 14:10 [PATCH 00/13] memory: tegra: Add Tegra186/Tegra194 support Thierry Reding
2019-12-22 14:10 ` Thierry Reding
2019-12-22 14:10 ` Thierry Reding
2019-12-22 14:10 ` [PATCH 01/13] dt-bindings: memory: Add Tegra186 memory client IDs Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2020-01-08 16:14   ` Rob Herring
2020-01-08 16:14     ` Rob Herring
2020-01-08 16:14     ` Rob Herring
2019-12-22 14:10 ` [PATCH 02/13] dt-bindings: memory: Add Tegra194 memory controller header Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2020-01-08 16:15   ` Rob Herring
2020-01-08 16:15     ` Rob Herring
2020-01-08 16:15     ` Rob Herring
2019-12-22 14:10 ` [PATCH 03/13] dt-bindings: memory: Add Tegra186 memory subsystem Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2020-01-08 16:19   ` Rob Herring
2020-01-08 16:19     ` Rob Herring
2020-01-08 16:19     ` Rob Herring
2019-12-22 14:10 ` [PATCH 04/13] memory: tegra: Rename tegra_mc to tegra186_mc on Tegra186 Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10 ` [PATCH 05/13] memory: tegra: Add per-SoC data for Tegra186 Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10 ` [PATCH 06/13] memory: tegra: Extract memory client SID programming Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10 ` Thierry Reding [this message]
2019-12-22 14:10   ` [PATCH 07/13] memory: tegra: Add system sleep support Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10 ` [PATCH 08/13] memory: tegra: Support DVFS on Tegra186 and later Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10 ` [PATCH 09/13] memory: tegra: Only include support for enabled SoCs Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10 ` [PATCH 10/13] memory: tegra: Add support for the Tegra194 memory controller Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10 ` [PATCH 11/13] arm64: tegra: Add interrupt for memory controller on Tegra186 Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10 ` [PATCH 12/13] arm64: tegra: Add external " Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10 ` [PATCH 13/13] arm64: tegra: Add the memory subsystem on Tegra194 Thierry Reding
2019-12-22 14:10   ` Thierry Reding
2019-12-22 14:10   ` Thierry Reding

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191222141035.1649937-8-thierry.reding@gmail.com \
    --to=thierry.reding@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=jonathanh@nvidia.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.