Skip to contentSkip to conversation

Minor fix for qcom tsens driver

PATCH In review Ansuel Smith 2 participants 5 messages Apr 29, 2021 – May 10, 2021

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

v2 cover Minor fix for qcom tsens driver

This is a small series to fix some warning arised testing the 8960 tsens driver. 8960 calibration function can return PROBE_DEFER and cause reregistration of debugfs. Move debugfs registration deeper in the probe function and fix a small problem with wrong tsens version reported.

v2:
- Address review comments from Thara

Ansuel Smith (2):
thermal: qcom: tsens: init debugfs only with successful probe
thermal: qcom: tsens: simplify debugfs init function

 drivers/thermal/qcom/tsens.c | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)
Signature · 1 line
2.30.2
#1 lore raw

PATCH v2 1/2 thermal: qcom: tsens: init debugfs only with successful probe

calibrate and tsens_register can fail or PROBE_DEFER. This will cause a double or a wrong init of the debugfs information. Init debugfs only with successful probe fixing warning about directory already present.

---
 drivers/thermal/qcom/tsens.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
drivers/thermal/qcom/tsens.c +6 -3
index d8ce3a687b80..b37d5fd71f3a 100644
@@ -845,8 +845,6 @@ int __init init_common(struct tsens_priv *priv)
 	if (tsens_version(priv) >= VER_0_1)
 		tsens_enable_irq(priv);
 
-	tsens_debug_init(op);
-
 err_put_device:
 	put_device(&op->dev);
 	return ret;
@@ -1057,7 +1055,12 @@ static int tsens_probe(struct platform_device *pdev)
 		}
 	}
 
-	return tsens_register(priv);
+	ret = tsens_register(priv);
+
+	if (!ret)
+		tsens_debug_init(pdev);
+
+	return ret;
 }
 
 static int tsens_remove(struct platform_device *pdev)
Signature · 1 line
2.30.2
Reviewed-by on v2 1/2
#2 lore raw

Re: [thermal-next PATCH v2 1/2] thermal: qcom: tsens: init debugfs only with successful probe

Quoted 5 lines · Ansuel Smith

calibrate and tsens_register can fail or PROBE_DEFER. This will cause a double or a wrong init of the debugfs information. Init debugfs only with successful probe fixing warning about directory already present.

Signature · 2 lines
Warm Regards
Thara
Quoted 32 lines
---
  drivers/thermal/qcom/tsens.c | 9 ++++++---
  1 file changed, 6 insertions(+), 3 deletions(-)
drivers/thermal/qcom/tsens.c +6 -3
index d8ce3a687b80..b37d5fd71f3a 100644
@@ -845,8 +845,6 @@ int __init init_common(struct tsens_priv *priv)
  	if (tsens_version(priv) >= VER_0_1)
  		tsens_enable_irq(priv);
 
-	tsens_debug_init(op);
-
  err_put_device:
  	put_device(&op->dev);
  	return ret;
@@ -1057,7 +1055,12 @@ static int tsens_probe(struct platform_device *pdev)
  		}
  	}
 
-	return tsens_register(priv);
+	ret = tsens_register(priv);
+
+	if (!ret)
+		tsens_debug_init(pdev);
+
+	return ret;
  }
 
  static int tsens_remove(struct platform_device *pdev)
#3 lore raw

PATCH v2 2/2 thermal: qcom: tsens: simplify debugfs init function

In reply to Ansuel Smith

Simplify debugfs init function.
- Add check for existing dev directory.
- Fix wrong version in dbg_version_show (with version 0.0.0, 0.1.0 was incorrectly reported)

---
 drivers/thermal/qcom/tsens.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/thermal/qcom/tsens.c +4 -8
index b37d5fd71f3a..e43898bf3199 100644
@@ -657,7 +657,7 @@ static int dbg_version_show(struct seq_file *s, void *data)
 			return ret;
 		seq_printf(s, "%d.%d.%d\n", maj_ver, min_ver, step_ver);
 	} else {
-		seq_puts(s, "0.1.0\n");
+		seq_printf(s, "0.%d.0\n", priv->feat->ver_major);
 	}
 
 	return 0;
@@ -669,16 +669,12 @@ DEFINE_SHOW_ATTRIBUTE(dbg_sensors);
 static void tsens_debug_init(struct platform_device *pdev)
 {
 	struct tsens_priv *priv = platform_get_drvdata(pdev);
-	struct dentry *root, *file;
 
-	root = debugfs_lookup("tsens", NULL);
-	if (!root)
+	priv->debug_root = debugfs_lookup("tsens", NULL);
+	if (!priv->debug_root)
 		priv->debug_root = debugfs_create_dir("tsens", NULL);
-	else
-		priv->debug_root = root;
 
-	file = debugfs_lookup("version", priv->debug_root);
-	if (!file)
+	if (!debugfs_lookup("version", priv->debug_root))
 		debugfs_create_file("version", 0444, priv->debug_root,
 				    pdev, &dbg_version_fops);
 
Signature · 1 line
2.30.2
Acked-by on v2 2/2
#4 lore raw

Re: [thermal-next PATCH v2 2/2] thermal: qcom: tsens: simplify debugfs init function

Quoted 6 lines · Ansuel Smith

Simplify debugfs init function.
- Add check for existing dev directory.
- Fix wrong version in dbg_version_show (with version 0.0.0, 0.1.0 was incorrectly reported)

Warm Regards
Thara

Quoted 38 lines
---
  drivers/thermal/qcom/tsens.c | 12 ++++--------
  1 file changed, 4 insertions(+), 8 deletions(-)
drivers/thermal/qcom/tsens.c +4 -8
index b37d5fd71f3a..e43898bf3199 100644
@@ -657,7 +657,7 @@ static int dbg_version_show(struct seq_file *s, void *data)
  			return ret;
  		seq_printf(s, "%d.%d.%d\n", maj_ver, min_ver, step_ver);
  	} else {
-		seq_puts(s, "0.1.0\n");
+		seq_printf(s, "0.%d.0\n", priv->feat->ver_major);
  	}
 
  	return 0;
@@ -669,16 +669,12 @@ DEFINE_SHOW_ATTRIBUTE(dbg_sensors);
  static void tsens_debug_init(struct platform_device *pdev)
  {
  	struct tsens_priv *priv = platform_get_drvdata(pdev);
-	struct dentry *root, *file;
 
-	root = debugfs_lookup("tsens", NULL);
-	if (!root)
+	priv->debug_root = debugfs_lookup("tsens", NULL);
+	if (!priv->debug_root)
  		priv->debug_root = debugfs_create_dir("tsens", NULL);
-	else
-		priv->debug_root = root;
 
-	file = debugfs_lookup("version", priv->debug_root);
-	if (!file)
+	if (!debugfs_lookup("version", priv->debug_root))
  		debugfs_create_file("version", 0444, priv->debug_root,
  				    pdev, &dbg_version_fops);