lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Mon, 14 Nov 2011 17:13:21 +0900
From:	MyungJoo Ham <myungjoo.ham@...sung.com>
To:	LKML <linux-kernel@...r.kernel.org>, lm-sensors@...sensors.org
Cc:	Jean Delvare <khali@...ux-fr.org>,
	Guenter Roeck <guenter.roeck@...csson.com>,
	dg77.kim@...sung.com, kyungmin.park@...sung.com,
	함명주 <myungjoo.ham@...il.com>,
	Ben Hutchings <bhutchings@...arflare.com>
Subject: [PATCH v2 2/2] HWMON: support in-kernel HWMON API: NTC, S3C-HWMON, Exynos4-TMU

Supports in-kernel HWMON interfaces for
1. NTC Thermistor
2. Exynos4 TMU
3. S3C-HWMON
device drivers.

Signed-off-by: MyungJoo Ham <myungjoo.ham@...sung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@...sung.com>
---
 drivers/hwmon/exynos4_tmu.c    |    2 ++
 drivers/hwmon/ntc_thermistor.c |    2 ++
 drivers/hwmon/s3c-hwmon.c      |   10 ++++++++++
 3 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/drivers/hwmon/exynos4_tmu.c b/drivers/hwmon/exynos4_tmu.c
index faa0884..f9566b9 100644
--- a/drivers/hwmon/exynos4_tmu.c
+++ b/drivers/hwmon/exynos4_tmu.c
@@ -431,6 +431,8 @@ static int __devinit exynos4_tmu_probe(struct
platform_device *pdev)
 		goto err_create_group;
 	}

+	hwmon_register_properties(data->hwmon_dev, &exynos4_tmu_attr_group);
+
 	exynos4_tmu_control(pdev, true);

 	return 0;
diff --git a/drivers/hwmon/ntc_thermistor.c b/drivers/hwmon/ntc_thermistor.c
index eab1161..21060ff 100644
--- a/drivers/hwmon/ntc_thermistor.c
+++ b/drivers/hwmon/ntc_thermistor.c
@@ -389,6 +389,8 @@ static int __devinit ntc_thermistor_probe(struct
platform_device *pdev)
 		goto err_after_sysfs;
 	}

+	hwmon_register_properties(data->hwmon_dev, &ntc_attr_group);
+
 	dev_info(&pdev->dev, "Thermistor %s:%d (type: %s/%lu) successfully probed.\n",
 			pdev->name, pdev->id, pdev->id_entry->name,
 			pdev->id_entry->driver_data);
diff --git a/drivers/hwmon/s3c-hwmon.c b/drivers/hwmon/s3c-hwmon.c
index b39f52e..e003001 100644
--- a/drivers/hwmon/s3c-hwmon.c
+++ b/drivers/hwmon/s3c-hwmon.c
@@ -227,6 +227,8 @@ static int s3c_hwmon_create_attr(struct device *dev,
 {
 	struct sensor_device_attribute *attr;
 	int ret;
+	struct platform_device = to_platform_device(dev);
+	struct s3c_hwmon *hwmon = platform_get_drvdata(pdev, hwmon);

 	snprintf(attrs->in_name, sizeof(attrs->in_name), "in%d_input", channel);

@@ -242,6 +244,7 @@ static int s3c_hwmon_create_attr(struct device *dev,
 		dev_err(dev, "failed to create input attribute\n");
 		return ret;
 	}
+	hwmon_register_property(hwmon->hwmon_dev, &attr->dev_attr);

 	/* if this has a name, add a label */
 	if (cfg->name) {
@@ -260,6 +263,7 @@ static int s3c_hwmon_create_attr(struct device *dev,
 			device_remove_file(dev, &attrs->in.dev_attr);
 			dev_err(dev, "failed to create label attribute\n");
 		}
+		hwmon_register_property(hwmon->hwmon_dev, &attr->dev_attr);
 	}

 	return ret;
@@ -268,6 +272,12 @@ static int s3c_hwmon_create_attr(struct device *dev,
 static void s3c_hwmon_remove_attr(struct device *dev,
 				  struct s3c_hwmon_attr *attrs)
 {
+	/*
+	 * hwmon_unregister_property is not needed for this as
+	 * hwmon_device_unregister() is always called in the paths
+	 * when s3c_hwmon_revoce_attr() is called. And hwmon_device_unregister
+	 * calls hwmon_unregister_property for all properties.
+	 */
 	device_remove_file(dev, &attrs->in.dev_attr);
 	device_remove_file(dev, &attrs->label.dev_attr);
 }
-- 
1.7.4.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ