hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/drivers/hwmon/emc6w201.c
....@@ -1,20 +1,7 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * emc6w201.c - Hardware monitoring driver for the SMSC EMC6W201
34 * Copyright (C) 2011 Jean Delvare <jdelvare@suse.de>
4
- *
5
- * This program is free software; you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation; either version 2 of the License, or
8
- * (at your option) any later version.
9
- *
10
- * This program is distributed in the hope that it will be useful,
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- * GNU General Public License for more details.
14
- *
15
- * You should have received a copy of the GNU General Public License
16
- * along with this program; if not, write to the Free Software
17
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
185 */
196
207 #include <linux/module.h>
....@@ -189,8 +176,8 @@
189176
190177 static const s16 nominal_mv[6] = { 2500, 1500, 3300, 5000, 1500, 1500 };
191178
192
-static ssize_t show_in(struct device *dev, struct device_attribute *devattr,
193
- char *buf)
179
+static ssize_t in_show(struct device *dev, struct device_attribute *devattr,
180
+ char *buf)
194181 {
195182 struct emc6w201_data *data = emc6w201_update_device(dev);
196183 int sf = to_sensor_dev_attr_2(devattr)->index;
....@@ -200,8 +187,8 @@
200187 (unsigned)data->in[sf][nr] * nominal_mv[nr] / 0xC0);
201188 }
202189
203
-static ssize_t set_in(struct device *dev, struct device_attribute *devattr,
204
- const char *buf, size_t count)
190
+static ssize_t in_store(struct device *dev, struct device_attribute *devattr,
191
+ const char *buf, size_t count)
205192 {
206193 struct emc6w201_data *data = dev_get_drvdata(dev);
207194 struct i2c_client *client = data->client;
....@@ -228,8 +215,8 @@
228215 return err < 0 ? err : count;
229216 }
230217
231
-static ssize_t show_temp(struct device *dev, struct device_attribute *devattr,
232
- char *buf)
218
+static ssize_t temp_show(struct device *dev, struct device_attribute *devattr,
219
+ char *buf)
233220 {
234221 struct emc6w201_data *data = emc6w201_update_device(dev);
235222 int sf = to_sensor_dev_attr_2(devattr)->index;
....@@ -238,8 +225,9 @@
238225 return sprintf(buf, "%d\n", (int)data->temp[sf][nr] * 1000);
239226 }
240227
241
-static ssize_t set_temp(struct device *dev, struct device_attribute *devattr,
242
- const char *buf, size_t count)
228
+static ssize_t temp_store(struct device *dev,
229
+ struct device_attribute *devattr, const char *buf,
230
+ size_t count)
243231 {
244232 struct emc6w201_data *data = dev_get_drvdata(dev);
245233 struct i2c_client *client = data->client;
....@@ -266,8 +254,8 @@
266254 return err < 0 ? err : count;
267255 }
268256
269
-static ssize_t show_fan(struct device *dev, struct device_attribute *devattr,
270
- char *buf)
257
+static ssize_t fan_show(struct device *dev, struct device_attribute *devattr,
258
+ char *buf)
271259 {
272260 struct emc6w201_data *data = emc6w201_update_device(dev);
273261 int sf = to_sensor_dev_attr_2(devattr)->index;
....@@ -282,8 +270,8 @@
282270 return sprintf(buf, "%u\n", rpm);
283271 }
284272
285
-static ssize_t set_fan(struct device *dev, struct device_attribute *devattr,
286
- const char *buf, size_t count)
273
+static ssize_t fan_store(struct device *dev, struct device_attribute *devattr,
274
+ const char *buf, size_t count)
287275 {
288276 struct emc6w201_data *data = dev_get_drvdata(dev);
289277 struct i2c_client *client = data->client;
....@@ -312,83 +300,54 @@
312300 return err < 0 ? err : count;
313301 }
314302
315
-static SENSOR_DEVICE_ATTR_2(in0_input, S_IRUGO, show_in, NULL, 0, input);
316
-static SENSOR_DEVICE_ATTR_2(in0_min, S_IRUGO | S_IWUSR, show_in, set_in,
317
- 0, min);
318
-static SENSOR_DEVICE_ATTR_2(in0_max, S_IRUGO | S_IWUSR, show_in, set_in,
319
- 0, max);
320
-static SENSOR_DEVICE_ATTR_2(in1_input, S_IRUGO, show_in, NULL, 1, input);
321
-static SENSOR_DEVICE_ATTR_2(in1_min, S_IRUGO | S_IWUSR, show_in, set_in,
322
- 1, min);
323
-static SENSOR_DEVICE_ATTR_2(in1_max, S_IRUGO | S_IWUSR, show_in, set_in,
324
- 1, max);
325
-static SENSOR_DEVICE_ATTR_2(in2_input, S_IRUGO, show_in, NULL, 2, input);
326
-static SENSOR_DEVICE_ATTR_2(in2_min, S_IRUGO | S_IWUSR, show_in, set_in,
327
- 2, min);
328
-static SENSOR_DEVICE_ATTR_2(in2_max, S_IRUGO | S_IWUSR, show_in, set_in,
329
- 2, max);
330
-static SENSOR_DEVICE_ATTR_2(in3_input, S_IRUGO, show_in, NULL, 3, input);
331
-static SENSOR_DEVICE_ATTR_2(in3_min, S_IRUGO | S_IWUSR, show_in, set_in,
332
- 3, min);
333
-static SENSOR_DEVICE_ATTR_2(in3_max, S_IRUGO | S_IWUSR, show_in, set_in,
334
- 3, max);
335
-static SENSOR_DEVICE_ATTR_2(in4_input, S_IRUGO, show_in, NULL, 4, input);
336
-static SENSOR_DEVICE_ATTR_2(in4_min, S_IRUGO | S_IWUSR, show_in, set_in,
337
- 4, min);
338
-static SENSOR_DEVICE_ATTR_2(in4_max, S_IRUGO | S_IWUSR, show_in, set_in,
339
- 4, max);
340
-static SENSOR_DEVICE_ATTR_2(in5_input, S_IRUGO, show_in, NULL, 5, input);
341
-static SENSOR_DEVICE_ATTR_2(in5_min, S_IRUGO | S_IWUSR, show_in, set_in,
342
- 5, min);
343
-static SENSOR_DEVICE_ATTR_2(in5_max, S_IRUGO | S_IWUSR, show_in, set_in,
344
- 5, max);
303
+static SENSOR_DEVICE_ATTR_2_RO(in0_input, in, 0, input);
304
+static SENSOR_DEVICE_ATTR_2_RW(in0_min, in, 0, min);
305
+static SENSOR_DEVICE_ATTR_2_RW(in0_max, in, 0, max);
306
+static SENSOR_DEVICE_ATTR_2_RO(in1_input, in, 1, input);
307
+static SENSOR_DEVICE_ATTR_2_RW(in1_min, in, 1, min);
308
+static SENSOR_DEVICE_ATTR_2_RW(in1_max, in, 1, max);
309
+static SENSOR_DEVICE_ATTR_2_RO(in2_input, in, 2, input);
310
+static SENSOR_DEVICE_ATTR_2_RW(in2_min, in, 2, min);
311
+static SENSOR_DEVICE_ATTR_2_RW(in2_max, in, 2, max);
312
+static SENSOR_DEVICE_ATTR_2_RO(in3_input, in, 3, input);
313
+static SENSOR_DEVICE_ATTR_2_RW(in3_min, in, 3, min);
314
+static SENSOR_DEVICE_ATTR_2_RW(in3_max, in, 3, max);
315
+static SENSOR_DEVICE_ATTR_2_RO(in4_input, in, 4, input);
316
+static SENSOR_DEVICE_ATTR_2_RW(in4_min, in, 4, min);
317
+static SENSOR_DEVICE_ATTR_2_RW(in4_max, in, 4, max);
318
+static SENSOR_DEVICE_ATTR_2_RO(in5_input, in, 5, input);
319
+static SENSOR_DEVICE_ATTR_2_RW(in5_min, in, 5, min);
320
+static SENSOR_DEVICE_ATTR_2_RW(in5_max, in, 5, max);
345321
346
-static SENSOR_DEVICE_ATTR_2(temp1_input, S_IRUGO, show_temp, NULL, 0, input);
347
-static SENSOR_DEVICE_ATTR_2(temp1_min, S_IRUGO | S_IWUSR, show_temp, set_temp,
348
- 0, min);
349
-static SENSOR_DEVICE_ATTR_2(temp1_max, S_IRUGO | S_IWUSR, show_temp, set_temp,
350
- 0, max);
351
-static SENSOR_DEVICE_ATTR_2(temp2_input, S_IRUGO, show_temp, NULL, 1, input);
352
-static SENSOR_DEVICE_ATTR_2(temp2_min, S_IRUGO | S_IWUSR, show_temp, set_temp,
353
- 1, min);
354
-static SENSOR_DEVICE_ATTR_2(temp2_max, S_IRUGO | S_IWUSR, show_temp, set_temp,
355
- 1, max);
356
-static SENSOR_DEVICE_ATTR_2(temp3_input, S_IRUGO, show_temp, NULL, 2, input);
357
-static SENSOR_DEVICE_ATTR_2(temp3_min, S_IRUGO | S_IWUSR, show_temp, set_temp,
358
- 2, min);
359
-static SENSOR_DEVICE_ATTR_2(temp3_max, S_IRUGO | S_IWUSR, show_temp, set_temp,
360
- 2, max);
361
-static SENSOR_DEVICE_ATTR_2(temp4_input, S_IRUGO, show_temp, NULL, 3, input);
362
-static SENSOR_DEVICE_ATTR_2(temp4_min, S_IRUGO | S_IWUSR, show_temp, set_temp,
363
- 3, min);
364
-static SENSOR_DEVICE_ATTR_2(temp4_max, S_IRUGO | S_IWUSR, show_temp, set_temp,
365
- 3, max);
366
-static SENSOR_DEVICE_ATTR_2(temp5_input, S_IRUGO, show_temp, NULL, 4, input);
367
-static SENSOR_DEVICE_ATTR_2(temp5_min, S_IRUGO | S_IWUSR, show_temp, set_temp,
368
- 4, min);
369
-static SENSOR_DEVICE_ATTR_2(temp5_max, S_IRUGO | S_IWUSR, show_temp, set_temp,
370
- 4, max);
371
-static SENSOR_DEVICE_ATTR_2(temp6_input, S_IRUGO, show_temp, NULL, 5, input);
372
-static SENSOR_DEVICE_ATTR_2(temp6_min, S_IRUGO | S_IWUSR, show_temp, set_temp,
373
- 5, min);
374
-static SENSOR_DEVICE_ATTR_2(temp6_max, S_IRUGO | S_IWUSR, show_temp, set_temp,
375
- 5, max);
322
+static SENSOR_DEVICE_ATTR_2_RO(temp1_input, temp, 0, input);
323
+static SENSOR_DEVICE_ATTR_2_RW(temp1_min, temp, 0, min);
324
+static SENSOR_DEVICE_ATTR_2_RW(temp1_max, temp, 0, max);
325
+static SENSOR_DEVICE_ATTR_2_RO(temp2_input, temp, 1, input);
326
+static SENSOR_DEVICE_ATTR_2_RW(temp2_min, temp, 1, min);
327
+static SENSOR_DEVICE_ATTR_2_RW(temp2_max, temp, 1, max);
328
+static SENSOR_DEVICE_ATTR_2_RO(temp3_input, temp, 2, input);
329
+static SENSOR_DEVICE_ATTR_2_RW(temp3_min, temp, 2, min);
330
+static SENSOR_DEVICE_ATTR_2_RW(temp3_max, temp, 2, max);
331
+static SENSOR_DEVICE_ATTR_2_RO(temp4_input, temp, 3, input);
332
+static SENSOR_DEVICE_ATTR_2_RW(temp4_min, temp, 3, min);
333
+static SENSOR_DEVICE_ATTR_2_RW(temp4_max, temp, 3, max);
334
+static SENSOR_DEVICE_ATTR_2_RO(temp5_input, temp, 4, input);
335
+static SENSOR_DEVICE_ATTR_2_RW(temp5_min, temp, 4, min);
336
+static SENSOR_DEVICE_ATTR_2_RW(temp5_max, temp, 4, max);
337
+static SENSOR_DEVICE_ATTR_2_RO(temp6_input, temp, 5, input);
338
+static SENSOR_DEVICE_ATTR_2_RW(temp6_min, temp, 5, min);
339
+static SENSOR_DEVICE_ATTR_2_RW(temp6_max, temp, 5, max);
376340
377
-static SENSOR_DEVICE_ATTR_2(fan1_input, S_IRUGO, show_fan, NULL, 0, input);
378
-static SENSOR_DEVICE_ATTR_2(fan1_min, S_IRUGO | S_IWUSR, show_fan, set_fan,
379
- 0, min);
380
-static SENSOR_DEVICE_ATTR_2(fan2_input, S_IRUGO, show_fan, NULL, 1, input);
381
-static SENSOR_DEVICE_ATTR_2(fan2_min, S_IRUGO | S_IWUSR, show_fan, set_fan,
382
- 1, min);
383
-static SENSOR_DEVICE_ATTR_2(fan3_input, S_IRUGO, show_fan, NULL, 2, input);
384
-static SENSOR_DEVICE_ATTR_2(fan3_min, S_IRUGO | S_IWUSR, show_fan, set_fan,
385
- 2, min);
386
-static SENSOR_DEVICE_ATTR_2(fan4_input, S_IRUGO, show_fan, NULL, 3, input);
387
-static SENSOR_DEVICE_ATTR_2(fan4_min, S_IRUGO | S_IWUSR, show_fan, set_fan,
388
- 3, min);
389
-static SENSOR_DEVICE_ATTR_2(fan5_input, S_IRUGO, show_fan, NULL, 4, input);
390
-static SENSOR_DEVICE_ATTR_2(fan5_min, S_IRUGO | S_IWUSR, show_fan, set_fan,
391
- 4, min);
341
+static SENSOR_DEVICE_ATTR_2_RO(fan1_input, fan, 0, input);
342
+static SENSOR_DEVICE_ATTR_2_RW(fan1_min, fan, 0, min);
343
+static SENSOR_DEVICE_ATTR_2_RO(fan2_input, fan, 1, input);
344
+static SENSOR_DEVICE_ATTR_2_RW(fan2_min, fan, 1, min);
345
+static SENSOR_DEVICE_ATTR_2_RO(fan3_input, fan, 2, input);
346
+static SENSOR_DEVICE_ATTR_2_RW(fan3_min, fan, 2, min);
347
+static SENSOR_DEVICE_ATTR_2_RO(fan4_input, fan, 3, input);
348
+static SENSOR_DEVICE_ATTR_2_RW(fan4_min, fan, 3, min);
349
+static SENSOR_DEVICE_ATTR_2_RO(fan5_input, fan, 4, input);
350
+static SENSOR_DEVICE_ATTR_2_RW(fan5_min, fan, 4, min);
392351
393352 static struct attribute *emc6w201_attrs[] = {
394353 &sensor_dev_attr_in0_input.dev_attr.attr,
....@@ -485,8 +444,7 @@
485444 return 0;
486445 }
487446
488
-static int emc6w201_probe(struct i2c_client *client,
489
- const struct i2c_device_id *id)
447
+static int emc6w201_probe(struct i2c_client *client)
490448 {
491449 struct device *dev = &client->dev;
492450 struct emc6w201_data *data;
....@@ -516,7 +474,7 @@
516474 .driver = {
517475 .name = "emc6w201",
518476 },
519
- .probe = emc6w201_probe,
477
+ .probe_new = emc6w201_probe,
520478 .id_table = emc6w201_id,
521479 .detect = emc6w201_detect,
522480 .address_list = normal_i2c,