From: Thierry Reding <thierry.reding@gmail.com>
To: Jon Hunter <jonathanh@nvidia.com>
Cc: "Michael Turquette" <mturquette@baylibre.com>,
"Stephen Boyd" <sboyd@kernel.org>,
linux-clk@vger.kernel.org, linux-tegra@vger.kernel.org,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Svyatoslav Ryhel" <clamor95@gmail.com>,
"Thomas Graichen" <thomas.graichen@googlemail.com>
Subject: Re: [PATCH V2] clk: tegra: Fix Tegra PWM parent clock
Date: Fri, 7 Oct 2022 12:21:54 +0200 [thread overview]
Message-ID: <Yz/9wrmdRQTAhIgS@orome> (raw)
In-Reply-To: <20221007084524.10712-1-jonathanh@nvidia.com>
[-- Attachment #1: Type: text/plain, Size: 4247 bytes --]
On Fri, Oct 07, 2022 at 09:45:24AM +0100, Jon Hunter wrote:
> Commit 8c193f4714df ("pwm: tegra: Optimize period calculation") updated
> the period calculation in the Tegra PWM driver and now returns an error
> if the period requested is less than minimum period supported. This is
> breaking PWM support on various Tegra platforms. For example, on the
> Tegra210 Jetson Nano platform this is breaking the PWM fan support and
> probing the PWM fan driver now fails ...
>
> pwm-fan pwm-fan: Failed to configure PWM: -22
> pwm-fan: probe of pwm-fan failed with error -22
>
> The problem is that the default parent clock for the PWM on Tegra210 is
> a 32kHz clock and is unable to support the requested PWM period.
>
> Fix PWM support on Tegra20, Tegra30, Tegra124 and Tegra210 by updating
> the parent clock for the PWM to be the PLL_P.
>
> Fixes: 8c193f4714df ("pwm: tegra: Optimize period calculation")
> Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
> ---
>
> I have tested this on Tegra210 and boot tested on the Tegra20/30/124
> platforms but please confirm if this fixes all the issues seen on these
> platforms.
>
> drivers/clk/tegra/clk-tegra124.c | 1 +
> drivers/clk/tegra/clk-tegra20.c | 1 +
> drivers/clk/tegra/clk-tegra210.c | 1 +
> drivers/clk/tegra/clk-tegra30.c | 1 +
> 4 files changed, 4 insertions(+)
Thomas, can you check this on Nyan where you were observing display to
be completely broken? In case you don't have this in your mailbox, see
here:
http://patchwork.ozlabs.org/project/linux-tegra/patch/20221007084524.10712-1-jonathanh@nvidia.com/
Thierry
>
> diff --git a/drivers/clk/tegra/clk-tegra124.c b/drivers/clk/tegra/clk-tegra124.c
> index a9d4efcef2d4..6c46592d794e 100644
> --- a/drivers/clk/tegra/clk-tegra124.c
> +++ b/drivers/clk/tegra/clk-tegra124.c
> @@ -1330,6 +1330,7 @@ static struct tegra_clk_init_table common_init_table[] __initdata = {
> { TEGRA124_CLK_I2S3_SYNC, TEGRA124_CLK_CLK_MAX, 24576000, 0 },
> { TEGRA124_CLK_I2S4_SYNC, TEGRA124_CLK_CLK_MAX, 24576000, 0 },
> { TEGRA124_CLK_VIMCLK_SYNC, TEGRA124_CLK_CLK_MAX, 24576000, 0 },
> + { TEGRA124_CLK_PWM, TEGRA124_CLK_PLL_P, 408000000, 0 },
> /* must be the last entry */
> { TEGRA124_CLK_CLK_MAX, TEGRA124_CLK_CLK_MAX, 0, 0 },
> };
> diff --git a/drivers/clk/tegra/clk-tegra20.c b/drivers/clk/tegra/clk-tegra20.c
> index 8a4514f6d503..422d78247553 100644
> --- a/drivers/clk/tegra/clk-tegra20.c
> +++ b/drivers/clk/tegra/clk-tegra20.c
> @@ -1044,6 +1044,7 @@ static struct tegra_clk_init_table init_table[] = {
> { TEGRA20_CLK_GR2D, TEGRA20_CLK_PLL_C, 300000000, 0 },
> { TEGRA20_CLK_GR3D, TEGRA20_CLK_PLL_C, 300000000, 0 },
> { TEGRA20_CLK_VDE, TEGRA20_CLK_PLL_C, 300000000, 0 },
> + { TEGRA20_CLK_PWM, TEGRA20_CLK_PLL_P, 48000000, 0 },
> /* must be the last entry */
> { TEGRA20_CLK_CLK_MAX, TEGRA20_CLK_CLK_MAX, 0, 0 },
> };
> diff --git a/drivers/clk/tegra/clk-tegra210.c b/drivers/clk/tegra/clk-tegra210.c
> index 499f999e91e1..a3488aaac3f7 100644
> --- a/drivers/clk/tegra/clk-tegra210.c
> +++ b/drivers/clk/tegra/clk-tegra210.c
> @@ -3597,6 +3597,7 @@ static struct tegra_clk_init_table init_table[] __initdata = {
> { TEGRA210_CLK_VIMCLK_SYNC, TEGRA210_CLK_CLK_MAX, 24576000, 0 },
> { TEGRA210_CLK_HDA, TEGRA210_CLK_PLL_P, 51000000, 0 },
> { TEGRA210_CLK_HDA2CODEC_2X, TEGRA210_CLK_PLL_P, 48000000, 0 },
> + { TEGRA210_CLK_PWM, TEGRA210_CLK_PLL_P, 48000000, 0 },
> /* This MUST be the last entry. */
> { TEGRA210_CLK_CLK_MAX, TEGRA210_CLK_CLK_MAX, 0, 0 },
> };
> diff --git a/drivers/clk/tegra/clk-tegra30.c b/drivers/clk/tegra/clk-tegra30.c
> index 168c07d5a5f2..60f1534711f1 100644
> --- a/drivers/clk/tegra/clk-tegra30.c
> +++ b/drivers/clk/tegra/clk-tegra30.c
> @@ -1237,6 +1237,7 @@ static struct tegra_clk_init_table init_table[] = {
> { TEGRA30_CLK_VIMCLK_SYNC, TEGRA30_CLK_CLK_MAX, 24000000, 0 },
> { TEGRA30_CLK_HDA, TEGRA30_CLK_PLL_P, 102000000, 0 },
> { TEGRA30_CLK_HDA2CODEC_2X, TEGRA30_CLK_PLL_P, 48000000, 0 },
> + { TEGRA30_CLK_PWM, TEGRA30_CLK_PLL_P, 48000000, 0 },
> /* must be the last entry */
> { TEGRA30_CLK_CLK_MAX, TEGRA30_CLK_CLK_MAX, 0, 0 },
> };
> --
> 2.25.1
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2022-10-07 10:22 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-07 8:45 [PATCH V2] clk: tegra: Fix Tegra PWM parent clock Jon Hunter
2022-10-07 10:21 ` Thierry Reding [this message]
2022-10-09 6:50 ` Thomas Graichen
2022-10-09 8:18 ` Uwe Kleine-König
2022-10-10 10:03 ` Jon Hunter
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=Yz/9wrmdRQTAhIgS@orome \
--to=thierry.reding@gmail.com \
--cc=clamor95@gmail.com \
--cc=jonathanh@nvidia.com \
--cc=linux-clk@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=sboyd@kernel.org \
--cc=thomas.graichen@googlemail.com \
--cc=u.kleine-koenig@pengutronix.de \
/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