[PATCH RESEND] soc/tegra: fuse: Use device-specific instance in suspend/resume

Kartik Rajput posted 1 patch 4 weeks, 1 day ago
drivers/soc/tegra/fuse/fuse-tegra.c | 5 +++++
1 file changed, 5 insertions(+)
[PATCH RESEND] soc/tegra: fuse: Use device-specific instance in suspend/resume
Posted by Kartik Rajput 4 weeks, 1 day ago
Avoid using the default fuse instance in suspend/resume callbacks, as it
always runs the suspend/resume callbacks for the default instance rather
than the device’s own.

Get the correct fuse instance by using `dev_get_drvdata()`.

Signed-off-by: Kartik Rajput <kkartik@nvidia.com>
---
 drivers/soc/tegra/fuse/fuse-tegra.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c
index 291484595dcf..f38107d04ed6 100644
--- a/drivers/soc/tegra/fuse/fuse-tegra.c
+++ b/drivers/soc/tegra/fuse/fuse-tegra.c
@@ -259,6 +259,7 @@ static int tegra_fuse_probe(struct platform_device *pdev)
 
 static int __maybe_unused tegra_fuse_runtime_resume(struct device *dev)
 {
+	struct tegra_fuse *fuse = dev_get_drvdata(dev);
 	int err;
 
 	err = clk_prepare_enable(fuse->clk);
@@ -272,6 +273,8 @@ static int __maybe_unused tegra_fuse_runtime_resume(struct device *dev)
 
 static int __maybe_unused tegra_fuse_runtime_suspend(struct device *dev)
 {
+	struct tegra_fuse *fuse = dev_get_drvdata(dev);
+
 	clk_disable_unprepare(fuse->clk);
 
 	return 0;
@@ -279,6 +282,7 @@ static int __maybe_unused tegra_fuse_runtime_suspend(struct device *dev)
 
 static int __maybe_unused tegra_fuse_suspend(struct device *dev)
 {
+	struct tegra_fuse *fuse = dev_get_drvdata(dev);
 	int ret;
 
 	/*
@@ -295,6 +299,7 @@ static int __maybe_unused tegra_fuse_suspend(struct device *dev)
 
 static int __maybe_unused tegra_fuse_resume(struct device *dev)
 {
+	struct tegra_fuse *fuse = dev_get_drvdata(dev);
 	int ret = 0;
 
 	if (fuse->soc->clk_suspend_on)
-- 
2.43.0

Re: [PATCH RESEND] soc/tegra: fuse: Use device-specific instance in suspend/resume
Posted by Jon Hunter 4 weeks, 1 day ago

On 14/05/2026 06:35, Kartik Rajput wrote:
> Avoid using the default fuse instance in suspend/resume callbacks, as it
> always runs the suspend/resume callbacks for the default instance rather
> than the device’s own.
> 
> Get the correct fuse instance by using `dev_get_drvdata()`.
> 
> Signed-off-by: Kartik Rajput <kkartik@nvidia.com>
> ---
>   drivers/soc/tegra/fuse/fuse-tegra.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c
> index 291484595dcf..f38107d04ed6 100644
> --- a/drivers/soc/tegra/fuse/fuse-tegra.c
> +++ b/drivers/soc/tegra/fuse/fuse-tegra.c
> @@ -259,6 +259,7 @@ static int tegra_fuse_probe(struct platform_device *pdev)
>   
>   static int __maybe_unused tegra_fuse_runtime_resume(struct device *dev)
>   {
> +	struct tegra_fuse *fuse = dev_get_drvdata(dev);
>   	int err;
>   
>   	err = clk_prepare_enable(fuse->clk);
> @@ -272,6 +273,8 @@ static int __maybe_unused tegra_fuse_runtime_resume(struct device *dev)
>   
>   static int __maybe_unused tegra_fuse_runtime_suspend(struct device *dev)
>   {
> +	struct tegra_fuse *fuse = dev_get_drvdata(dev);
> +
>   	clk_disable_unprepare(fuse->clk);
>   
>   	return 0;
> @@ -279,6 +282,7 @@ static int __maybe_unused tegra_fuse_runtime_suspend(struct device *dev)
>   
>   static int __maybe_unused tegra_fuse_suspend(struct device *dev)
>   {
> +	struct tegra_fuse *fuse = dev_get_drvdata(dev);
>   	int ret;
>   
>   	/*
> @@ -295,6 +299,7 @@ static int __maybe_unused tegra_fuse_suspend(struct device *dev)
>   
>   static int __maybe_unused tegra_fuse_resume(struct device *dev)
>   {
> +	struct tegra_fuse *fuse = dev_get_drvdata(dev);
>   	int ret = 0;
>   
>   	if (fuse->soc->clk_suspend_on)

So now we have both local and global variables called 'fuse'. It would 
be better to have a different name to distinguish between these.

Jon

-- 
nvpublic