From: Thierry Reding <thierry.reding@gmail.com>
To: Jon Hunter <jonathanh@nvidia.com>
Cc: Mark Brown <broonie@kernel.org>,
Dmitry Osipenko <digetx@gmail.com>,
linux-spi@vger.kernel.org, linux-tegra@vger.kernel.org
Subject: Re: [PATCH] spi: tegra20-slink: Ensure SPI controller reset is deasserted
Date: Tue, 8 Jun 2021 14:10:11 +0200 [thread overview]
Message-ID: <YL9eI8L32Tc8G7uF@orome.fritz.box> (raw)
In-Reply-To: <20210608071518.93037-1-jonathanh@nvidia.com>
[-- Attachment #1: Type: text/plain, Size: 2146 bytes --]
On Tue, Jun 08, 2021 at 08:15:18AM +0100, Jon Hunter wrote:
> Commit 4782c0a5dd88 ("clk: tegra: Don't deassert reset on enabling
> clocks") removed some legacy code for handling resets on Tegra from
> within the Tegra clock code. This exposed an issue in the Tegra20 slink
> driver where the SPI controller reset was not being deasserted as needed
> during probe. This is causing the Tegra30 Cardhu platform to hang on
> boot. Fix this by ensuring the SPI controller reset is deasserted during
> probe.
>
> Fixes: 4782c0a5dd88 ("clk: tegra: Don't deassert reset on enabling clocks")
While it technically fixes an issue uncovered by that patch, I would
argue that the underlying issue has been present forever. So I think
this should be applied regardless of the above patch.
It also makes me wonder if we shouldn't drop the clock patch for now to
unbreak things and avoid having to model complicated dependencies to
make sure everything continues to work in v5.14-rc1.
Unless perhaps if Mark applies this for v5.13, then we can merge the
clock patch for v5.14-rc1 since SPI is the only IP that seems to be
broken by that change.
> Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
> ---
> drivers/spi/spi-tegra20-slink.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/spi/spi-tegra20-slink.c b/drivers/spi/spi-tegra20-slink.c
> index f7c832fd4003..6a726c95ac7a 100644
> --- a/drivers/spi/spi-tegra20-slink.c
> +++ b/drivers/spi/spi-tegra20-slink.c
> @@ -1118,6 +1118,11 @@ static int tegra_slink_probe(struct platform_device *pdev)
> pm_runtime_put_noidle(&pdev->dev);
> goto exit_pm_disable;
> }
> +
> + reset_control_assert(tspi->rst);
> + udelay(2);
> + reset_control_deassert(tspi->rst);
> +
I wonder if this doesn't break now again on suspend/resume. Should we
perhaps move this into tegra_slink_runtime_resume()? Or better yet, move
the reset_control_assert() into tegra_slink_runtime_suspend() and the
reset_control_deassert() into tegra_slink_runtime_resume(). That should
ensure the device's reset is always deasserted when runtime resumed.
Thierry
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2021-06-08 12:08 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-08 7:15 [PATCH] spi: tegra20-slink: Ensure SPI controller reset is deasserted Jon Hunter
2021-06-08 12:10 ` Thierry Reding [this message]
2021-06-08 12:35 ` Jon Hunter
2021-06-08 13:16 ` Thierry Reding
2021-06-08 15:16 ` Dmitry Osipenko
2021-06-08 16:06 ` Mark Brown
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=YL9eI8L32Tc8G7uF@orome.fritz.box \
--to=thierry.reding@gmail.com \
--cc=broonie@kernel.org \
--cc=digetx@gmail.com \
--cc=jonathanh@nvidia.com \
--cc=linux-spi@vger.kernel.org \
--cc=linux-tegra@vger.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