From: Dmitry Osipenko <digetx@gmail.com>
To: "Thierry Reding" <thierry.reding@gmail.com>,
"Jonathan Hunter" <jonathanh@nvidia.com>,
"Ulf Hansson" <ulf.hansson@linaro.org>,
"Viresh Kumar" <vireshk@kernel.org>,
"Stephen Boyd" <sboyd@kernel.org>,
"Peter De Schrijver" <pdeschrijver@nvidia.com>,
"Mikko Perttunen" <mperttunen@nvidia.com>,
"Peter Chen" <peter.chen@kernel.org>,
"Lee Jones" <lee.jones@linaro.org>,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Nishanth Menon" <nm@ti.com>,
"Adrian Hunter" <adrian.hunter@intel.com>,
"Rob Herring" <robh+dt@kernel.org>,
"Michael Turquette" <mturquette@baylibre.com>
Cc: linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org,
linux-pm@vger.kernel.org, linux-usb@vger.kernel.org,
linux-staging@lists.linux.dev, linux-pwm@vger.kernel.org,
linux-mmc@vger.kernel.org, dri-devel@lists.freedesktop.org,
devicetree@vger.kernel.org, linux-clk@vger.kernel.org,
Mark Brown <broonie@kernel.org>,
Vignesh Raghavendra <vigneshr@ti.com>,
Richard Weinberger <richard@nod.at>,
Miquel Raynal <miquel.raynal@bootlin.com>,
Lucas Stach <dev@lynxeye.de>, Stefan Agner <stefan@agner.ch>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
David Heidelberg <david@ixit.cz>
Subject: [PATCH v12 10/35] gpu: host1x: Add host1x_channel_stop()
Date: Mon, 20 Sep 2021 21:11:20 +0300 [thread overview]
Message-ID: <20210920181145.19543-11-digetx@gmail.com> (raw)
In-Reply-To: <20210920181145.19543-1-digetx@gmail.com>
Add host1x_channel_stop() which waits till channel becomes idle and then
stops the channel hardware. This is needed for supporting suspend/resume
by host1x drivers since the hardware state is lost after power-gating,
thus the channel needs to be stopped before client enters into suspend.
Tested-by: Peter Geis <pgwipeout@gmail.com> # Ouya T30
Tested-by: Paul Fertser <fercerpav@gmail.com> # PAZ00 T20
Tested-by: Nicolas Chauvet <kwizart@gmail.com> # PAZ00 T20 and TK1 T124
Tested-by: Matt Merhar <mattmerhar@protonmail.com> # Ouya T30
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
drivers/gpu/host1x/channel.c | 8 ++++++++
include/linux/host1x.h | 1 +
2 files changed, 9 insertions(+)
diff --git a/drivers/gpu/host1x/channel.c b/drivers/gpu/host1x/channel.c
index 4cd212bb570d..2a9a3a8d5931 100644
--- a/drivers/gpu/host1x/channel.c
+++ b/drivers/gpu/host1x/channel.c
@@ -75,6 +75,14 @@ struct host1x_channel *host1x_channel_get_index(struct host1x *host,
return ch;
}
+void host1x_channel_stop(struct host1x_channel *channel)
+{
+ struct host1x *host = dev_get_drvdata(channel->dev->parent);
+
+ host1x_hw_cdma_stop(host, &channel->cdma);
+}
+EXPORT_SYMBOL(host1x_channel_stop);
+
static void release_channel(struct kref *kref)
{
struct host1x_channel *channel =
diff --git a/include/linux/host1x.h b/include/linux/host1x.h
index 7bccf589aba7..66473b5be0af 100644
--- a/include/linux/host1x.h
+++ b/include/linux/host1x.h
@@ -181,6 +181,7 @@ struct host1x_job;
struct host1x_channel *host1x_channel_request(struct host1x_client *client);
struct host1x_channel *host1x_channel_get(struct host1x_channel *channel);
+void host1x_channel_stop(struct host1x_channel *channel);
void host1x_channel_put(struct host1x_channel *channel);
int host1x_job_submit(struct host1x_job *job);
--
2.32.0
next prev parent reply other threads:[~2021-09-21 2:41 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-20 18:11 [PATCH v12 00/35] NVIDIA Tegra power management patches for 5.16 Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 01/35] opp: Change type of dev_pm_opp_attach_genpd(names) argument Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 02/35] soc/tegra: Add devm_tegra_core_dev_init_opp_table_common() Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 03/35] soc/tegra: pmc: Disable PMC state syncing Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 04/35] soc/tegra: Don't print error message when OPPs not available Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 05/35] dt-bindings: clock: tegra-car: Document new clock sub-nodes Dmitry Osipenko
2021-09-23 21:09 ` Rob Herring
2021-10-15 0:16 ` Stephen Boyd
2021-10-15 0:43 ` Dmitry Osipenko
2021-10-15 0:45 ` Stephen Boyd
2021-10-15 1:02 ` Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 06/35] clk: tegra: Support runtime PM and power domain Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 07/35] dt-bindings: host1x: Document OPP and power domain properties Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 08/35] dt-bindings: host1x: Document Memory Client resets of Host1x, GR2D and GR3D Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 09/35] gpu: host1x: Add runtime PM and OPP support Dmitry Osipenko
2021-09-20 18:11 ` Dmitry Osipenko [this message]
2021-09-20 18:11 ` [PATCH v12 11/35] drm/tegra: dc: Support OPP and SoC core voltage scaling Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 12/35] drm/tegra: hdmi: Add OPP support Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 13/35] drm/tegra: gr2d: Support generic power domain and runtime PM Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 14/35] drm/tegra: gr3d: " Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 15/35] drm/tegra: vic: Support system suspend Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 16/35] usb: chipidea: tegra: Add runtime PM and OPP support Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 17/35] bus: tegra-gmi: " Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 18/35] pwm: tegra: " Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 19/35] mmc: sdhci-tegra: " Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 20/35] mtd: rawnand: tegra: " Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 21/35] spi: tegra20-slink: Add " Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 22/35] media: dt: bindings: tegra-vde: Convert to schema Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 23/35] media: dt: bindings: tegra-vde: Document OPP and power domain Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 24/35] media: staging: tegra-vde: Support generic " Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 25/35] soc/tegra: fuse: Reset hardware Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 26/35] soc/tegra: fuse: Use resource-managed helpers Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 27/35] soc/tegra: regulators: Prepare for suspend Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 28/35] soc/tegra: pmc: Rename 3d power domains Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 29/35] soc/tegra: pmc: Rename core power domain Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 30/35] soc/tegra: pmc: Enable core domain support for Tegra20 and Tegra30 Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 31/35] ARM: tegra: Add OPP tables and power domains to Tegra20 device-trees Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 32/35] ARM: tegra: Add OPP tables and power domains to Tegra30 device-trees Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 33/35] ARM: tegra: Add Memory Client resets to Tegra20 GR2D, GR3D and Host1x Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 34/35] ARM: tegra: Add Memory Client resets to Tegra30 " Dmitry Osipenko
2021-09-20 18:11 ` [PATCH v12 35/35] ARM: tegra20/30: Disable unused host1x hardware Dmitry Osipenko
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=20210920181145.19543-11-digetx@gmail.com \
--to=digetx@gmail.com \
--cc=adrian.hunter@intel.com \
--cc=broonie@kernel.org \
--cc=david@ixit.cz \
--cc=dev@lynxeye.de \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=jonathanh@nvidia.com \
--cc=lee.jones@linaro.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=linux-staging@lists.linux.dev \
--cc=linux-tegra@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=miquel.raynal@bootlin.com \
--cc=mperttunen@nvidia.com \
--cc=mturquette@baylibre.com \
--cc=nm@ti.com \
--cc=pdeschrijver@nvidia.com \
--cc=peter.chen@kernel.org \
--cc=richard@nod.at \
--cc=robh+dt@kernel.org \
--cc=sboyd@kernel.org \
--cc=stefan@agner.ch \
--cc=thierry.reding@gmail.com \
--cc=u.kleine-koenig@pengutronix.de \
--cc=ulf.hansson@linaro.org \
--cc=vigneshr@ti.com \
--cc=vireshk@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).