diff options
-rw-r--r-- | drivers/hwmon/lm70.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/hwmon/lm70.c b/drivers/hwmon/lm70.c index 275d392eca61..30b9b2be87b9 100644 --- a/drivers/hwmon/lm70.c +++ b/drivers/hwmon/lm70.c | |||
@@ -81,7 +81,7 @@ static ssize_t lm70_sense_temp(struct device *dev, | |||
81 | * So it's equivalent to multiplying by 0.25 * 1000 = 250. | 81 | * So it's equivalent to multiplying by 0.25 * 1000 = 250. |
82 | */ | 82 | */ |
83 | val = ((int)raw/32) * 250; | 83 | val = ((int)raw/32) * 250; |
84 | status = sprintf(buf, "%+d\n", val); /* millidegrees Celsius */ | 84 | status = sprintf(buf, "%d\n", val); /* millidegrees Celsius */ |
85 | out: | 85 | out: |
86 | up(&p_lm70->sem); | 86 | up(&p_lm70->sem); |
87 | return status; | 87 | return status; |
@@ -89,6 +89,14 @@ out: | |||
89 | 89 | ||
90 | static DEVICE_ATTR(temp1_input, S_IRUGO, lm70_sense_temp, NULL); | 90 | static DEVICE_ATTR(temp1_input, S_IRUGO, lm70_sense_temp, NULL); |
91 | 91 | ||
92 | static ssize_t lm70_show_name(struct device *dev, struct device_attribute | ||
93 | *devattr, char *buf) | ||
94 | { | ||
95 | return sprintf(buf, "lm70\n"); | ||
96 | } | ||
97 | |||
98 | static DEVICE_ATTR(name, S_IRUGO, lm70_show_name, NULL); | ||
99 | |||
92 | /*----------------------------------------------------------------------*/ | 100 | /*----------------------------------------------------------------------*/ |
93 | 101 | ||
94 | static int __devinit lm70_probe(struct spi_device *spi) | 102 | static int __devinit lm70_probe(struct spi_device *spi) |
@@ -115,7 +123,8 @@ static int __devinit lm70_probe(struct spi_device *spi) | |||
115 | } | 123 | } |
116 | dev_set_drvdata(&spi->dev, p_lm70); | 124 | dev_set_drvdata(&spi->dev, p_lm70); |
117 | 125 | ||
118 | if ((status = device_create_file(&spi->dev, &dev_attr_temp1_input))) { | 126 | if ((status = device_create_file(&spi->dev, &dev_attr_temp1_input)) |
127 | || (status = device_create_file(&spi->dev, &dev_attr_name))) { | ||
119 | dev_dbg(&spi->dev, "device_create_file failure.\n"); | 128 | dev_dbg(&spi->dev, "device_create_file failure.\n"); |
120 | goto out_dev_create_file_failed; | 129 | goto out_dev_create_file_failed; |
121 | } | 130 | } |
@@ -123,6 +132,7 @@ static int __devinit lm70_probe(struct spi_device *spi) | |||
123 | return 0; | 132 | return 0; |
124 | 133 | ||
125 | out_dev_create_file_failed: | 134 | out_dev_create_file_failed: |
135 | device_remove_file(&spi->dev, &dev_attr_temp1_input); | ||
126 | hwmon_device_unregister(p_lm70->cdev); | 136 | hwmon_device_unregister(p_lm70->cdev); |
127 | out_dev_reg_failed: | 137 | out_dev_reg_failed: |
128 | dev_set_drvdata(&spi->dev, NULL); | 138 | dev_set_drvdata(&spi->dev, NULL); |
@@ -135,6 +145,7 @@ static int __devexit lm70_remove(struct spi_device *spi) | |||
135 | struct lm70 *p_lm70 = dev_get_drvdata(&spi->dev); | 145 | struct lm70 *p_lm70 = dev_get_drvdata(&spi->dev); |
136 | 146 | ||
137 | device_remove_file(&spi->dev, &dev_attr_temp1_input); | 147 | device_remove_file(&spi->dev, &dev_attr_temp1_input); |
148 | device_remove_file(&spi->dev, &dev_attr_name); | ||
138 | hwmon_device_unregister(p_lm70->cdev); | 149 | hwmon_device_unregister(p_lm70->cdev); |
139 | dev_set_drvdata(&spi->dev, NULL); | 150 | dev_set_drvdata(&spi->dev, NULL); |
140 | kfree(p_lm70); | 151 | kfree(p_lm70); |