mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH V2 0/2] Disable periodic tracking on Tegra234
@ 2025-05-19  9:09 Wayne Chang
  2025-05-19  9:09 ` [PATCH V2 1/2] phy: tegra: xusb: Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from trk_hw_mode Wayne Chang
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Wayne Chang @ 2025-05-19  9:09 UTC (permalink / raw)
  To: waynec, jckuo, vkoul, kishon, thierry.reding, jonathanh
  Cc: linux-phy, linux-tegra, linux-kernel

Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from trk_hw_mode and disable
periodic tracking on Tegra234

Haotien Hsu (1):
  phy: tegra: xusb: Disable periodic tracking on Tegra234

Wayne Chang (1):
  phy: tegra: xusb: Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from
    trk_hw_mode

 drivers/phy/tegra/xusb-tegra186.c | 16 +++++++++-------
 drivers/phy/tegra/xusb.h          |  1 +
 2 files changed, 10 insertions(+), 7 deletions(-)


base-commit: a5806cd506af5a7c19bcd596e4708b5c464bfd21
-- 
2.25.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH V2 1/2] phy: tegra: xusb: Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from trk_hw_mode
  2025-05-19  9:09 [PATCH V2 0/2] Disable periodic tracking on Tegra234 Wayne Chang
@ 2025-05-19  9:09 ` Wayne Chang
  2025-05-19  9:09 ` [PATCH V2 2/2] phy: tegra: xusb: Disable periodic tracking on Tegra234 Wayne Chang
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Wayne Chang @ 2025-05-19  9:09 UTC (permalink / raw)
  To: waynec, jckuo, vkoul, kishon, thierry.reding, jonathanh
  Cc: linux-phy, linux-tegra, linux-kernel, stable

The logic that drives the pad calibration values resides in the
controller reset domain and so the calibration values are only being
captured when the controller is out of reset. However, by clearing the
CYA_TRK_CODE_UPDATE_ON_IDLE bit, the calibration values can be set
while the controller is in reset.

The CYA_TRK_CODE_UPDATE_ON_IDLE bit was previously cleared based on the
trk_hw_mode flag, but this dependency is not necessary. Instead,
introduce a new flag, trk_update_on_idle, to independently control this
bit.

Fixes: d8163a32ca95 ("phy: tegra: xusb: Add Tegra234 support")
Cc: stable@vger.kernel.org
Signed-off-by: Wayne Chang <waynec@nvidia.com>
---
V1->V2: Rebased the commit
 drivers/phy/tegra/xusb-tegra186.c | 14 ++++++++------
 drivers/phy/tegra/xusb.h          |  1 +
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/phy/tegra/xusb-tegra186.c b/drivers/phy/tegra/xusb-tegra186.c
index 23a23f2d64e5..683692f0ec3c 100644
--- a/drivers/phy/tegra/xusb-tegra186.c
+++ b/drivers/phy/tegra/xusb-tegra186.c
@@ -648,14 +648,15 @@ static void tegra186_utmi_bias_pad_power_on(struct tegra_xusb_padctl *padctl)
 		udelay(100);
 	}
 
-	if (padctl->soc->trk_hw_mode) {
-		value = padctl_readl(padctl, XUSB_PADCTL_USB2_BIAS_PAD_CTL2);
-		value |= USB2_TRK_HW_MODE;
+	value = padctl_readl(padctl, XUSB_PADCTL_USB2_BIAS_PAD_CTL2);
+	if (padctl->soc->trk_update_on_idle)
 		value &= ~CYA_TRK_CODE_UPDATE_ON_IDLE;
-		padctl_writel(padctl, value, XUSB_PADCTL_USB2_BIAS_PAD_CTL2);
-	} else {
+	if (padctl->soc->trk_hw_mode)
+		value |= USB2_TRK_HW_MODE;
+	padctl_writel(padctl, value, XUSB_PADCTL_USB2_BIAS_PAD_CTL2);
+
+	if (!padctl->soc->trk_hw_mode)
 		clk_disable_unprepare(priv->usb2_trk_clk);
-	}
 }
 
 static void tegra186_utmi_bias_pad_power_off(struct tegra_xusb_padctl *padctl)
@@ -1711,6 +1712,7 @@ const struct tegra_xusb_padctl_soc tegra234_xusb_padctl_soc = {
 	.supports_gen2 = true,
 	.poll_trk_completed = true,
 	.trk_hw_mode = true,
+	.trk_update_on_idle = true,
 	.supports_lp_cfg_en = true,
 };
 EXPORT_SYMBOL_GPL(tegra234_xusb_padctl_soc);
diff --git a/drivers/phy/tegra/xusb.h b/drivers/phy/tegra/xusb.h
index 6e45d194c689..d2b5f9565132 100644
--- a/drivers/phy/tegra/xusb.h
+++ b/drivers/phy/tegra/xusb.h
@@ -434,6 +434,7 @@ struct tegra_xusb_padctl_soc {
 	bool need_fake_usb3_port;
 	bool poll_trk_completed;
 	bool trk_hw_mode;
+	bool trk_update_on_idle;
 	bool supports_lp_cfg_en;
 };
 
-- 
2.25.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH V2 2/2] phy: tegra: xusb: Disable periodic tracking on Tegra234
  2025-05-19  9:09 [PATCH V2 0/2] Disable periodic tracking on Tegra234 Wayne Chang
  2025-05-19  9:09 ` [PATCH V2 1/2] phy: tegra: xusb: Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from trk_hw_mode Wayne Chang
@ 2025-05-19  9:09 ` Wayne Chang
  2025-05-20 12:06 ` [PATCH V2 0/2] " Jon Hunter
  2025-06-15 16:52 ` Vinod Koul
  3 siblings, 0 replies; 6+ messages in thread
From: Wayne Chang @ 2025-05-19  9:09 UTC (permalink / raw)
  To: waynec, jckuo, vkoul, kishon, thierry.reding, jonathanh
  Cc: linux-phy, linux-tegra, linux-kernel, Haotien Hsu, stable

From: Haotien Hsu <haotienh@nvidia.com>

Periodic calibration updates (~10µs) may overlap with transfers when
PCIe NVMe SSD, LPDDR, and USB2 devices operate simultaneously, causing
crosstalk on Tegra234 devices. Hence disable periodic calibration updates
and make this a one-time calibration.

Fixes: d8163a32ca95 ("phy: tegra: xusb: Add Tegra234 support")
Cc: stable@vger.kernel.org
Signed-off-by: Haotien Hsu <haotienh@nvidia.com>
Signed-off-by: Wayne Chang <waynec@nvidia.com>
---
V1->V2: Rebased the commit
 drivers/phy/tegra/xusb-tegra186.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/phy/tegra/xusb-tegra186.c b/drivers/phy/tegra/xusb-tegra186.c
index 683692f0ec3c..ba668c77457f 100644
--- a/drivers/phy/tegra/xusb-tegra186.c
+++ b/drivers/phy/tegra/xusb-tegra186.c
@@ -1711,7 +1711,7 @@ const struct tegra_xusb_padctl_soc tegra234_xusb_padctl_soc = {
 	.num_supplies = ARRAY_SIZE(tegra194_xusb_padctl_supply_names),
 	.supports_gen2 = true,
 	.poll_trk_completed = true,
-	.trk_hw_mode = true,
+	.trk_hw_mode = false,
 	.trk_update_on_idle = true,
 	.supports_lp_cfg_en = true,
 };
-- 
2.25.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH V2 0/2] Disable periodic tracking on Tegra234
  2025-05-19  9:09 [PATCH V2 0/2] Disable periodic tracking on Tegra234 Wayne Chang
  2025-05-19  9:09 ` [PATCH V2 1/2] phy: tegra: xusb: Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from trk_hw_mode Wayne Chang
  2025-05-19  9:09 ` [PATCH V2 2/2] phy: tegra: xusb: Disable periodic tracking on Tegra234 Wayne Chang
@ 2025-05-20 12:06 ` Jon Hunter
  2025-06-10 13:46   ` Jon Hunter
  2025-06-15 16:52 ` Vinod Koul
  3 siblings, 1 reply; 6+ messages in thread
From: Jon Hunter @ 2025-05-20 12:06 UTC (permalink / raw)
  To: Wayne Chang, jckuo, vkoul, kishon, thierry.reding
  Cc: linux-phy, linux-tegra, linux-kernel


On 19/05/2025 10:09, Wayne Chang wrote:
> Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from trk_hw_mode and disable
> periodic tracking on Tegra234
> 
> Haotien Hsu (1):
>    phy: tegra: xusb: Disable periodic tracking on Tegra234
> 
> Wayne Chang (1):
>    phy: tegra: xusb: Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from
>      trk_hw_mode
> 
>   drivers/phy/tegra/xusb-tegra186.c | 16 +++++++++-------
>   drivers/phy/tegra/xusb.h          |  1 +
>   2 files changed, 10 insertions(+), 7 deletions(-)


For the series ...

Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>

Thanks!
Jon

-- 
nvpublic


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH V2 0/2] Disable periodic tracking on Tegra234
  2025-05-20 12:06 ` [PATCH V2 0/2] " Jon Hunter
@ 2025-06-10 13:46   ` Jon Hunter
  0 siblings, 0 replies; 6+ messages in thread
From: Jon Hunter @ 2025-06-10 13:46 UTC (permalink / raw)
  To: Wayne Chang, jckuo, vkoul, kishon, thierry.reding
  Cc: linux-phy, linux-tegra, linux-kernel

Hi Vinod,

On 20/05/2025 13:06, Jon Hunter wrote:
> 
> On 19/05/2025 10:09, Wayne Chang wrote:
>> Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from trk_hw_mode and disable
>> periodic tracking on Tegra234
>>
>> Haotien Hsu (1):
>>    phy: tegra: xusb: Disable periodic tracking on Tegra234
>>
>> Wayne Chang (1):
>>    phy: tegra: xusb: Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from
>>      trk_hw_mode
>>
>>   drivers/phy/tegra/xusb-tegra186.c | 16 +++++++++-------
>>   drivers/phy/tegra/xusb.h          |  1 +
>>   2 files changed, 10 insertions(+), 7 deletions(-)
> 
> 
> For the series ...
> 
> Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
> Tested-by: Jon Hunter <jonathanh@nvidia.com>

Can we get this into -next now?

Thanks!
Jon

-- 
nvpublic


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH V2 0/2] Disable periodic tracking on Tegra234
  2025-05-19  9:09 [PATCH V2 0/2] Disable periodic tracking on Tegra234 Wayne Chang
                   ` (2 preceding siblings ...)
  2025-05-20 12:06 ` [PATCH V2 0/2] " Jon Hunter
@ 2025-06-15 16:52 ` Vinod Koul
  3 siblings, 0 replies; 6+ messages in thread
From: Vinod Koul @ 2025-06-15 16:52 UTC (permalink / raw)
  To: jckuo, kishon, thierry.reding, jonathanh, Wayne Chang
  Cc: linux-phy, linux-tegra, linux-kernel


On Mon, 19 May 2025 17:09:27 +0800, Wayne Chang wrote:
> Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from trk_hw_mode and disable
> periodic tracking on Tegra234
> 
> Haotien Hsu (1):
>   phy: tegra: xusb: Disable periodic tracking on Tegra234
> 
> Wayne Chang (1):
>   phy: tegra: xusb: Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from
>     trk_hw_mode
> 
> [...]

Applied, thanks!

[1/2] phy: tegra: xusb: Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from trk_hw_mode
      commit: 24c63c590adca310e0df95c77cf7aa5552bc3fc5
[2/2] phy: tegra: xusb: Disable periodic tracking on Tegra234
      commit: 7be54870e9bf5ed0b4fe2a23b41a630527882de5

Best regards,
-- 
~Vinod



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-06-15 16:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-05-19  9:09 [PATCH V2 0/2] Disable periodic tracking on Tegra234 Wayne Chang
2025-05-19  9:09 ` [PATCH V2 1/2] phy: tegra: xusb: Decouple CYA_TRK_CODE_UPDATE_ON_IDLE from trk_hw_mode Wayne Chang
2025-05-19  9:09 ` [PATCH V2 2/2] phy: tegra: xusb: Disable periodic tracking on Tegra234 Wayne Chang
2025-05-20 12:06 ` [PATCH V2 0/2] " Jon Hunter
2025-06-10 13:46   ` Jon Hunter
2025-06-15 16:52 ` Vinod Koul

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®