Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

iio: core: Use sysfs_match_string() helper

Use sysfs_match_string() helper instead of open coded variant.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Nuno Sa <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20230724110204.46285-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

authored by

Andy Shevchenko and committed by
Jonathan Cameron
971ddd4b 579f6b00

+32 -39
+32 -39
drivers/iio/industrialio-core.c
··· 1397 1397 1398 1398 static DEVICE_ATTR_RO(label); 1399 1399 1400 + static const char * const clock_names[] = { 1401 + [CLOCK_REALTIME] = "realtime", 1402 + [CLOCK_MONOTONIC] = "monotonic", 1403 + [CLOCK_PROCESS_CPUTIME_ID] = "process_cputime_id", 1404 + [CLOCK_THREAD_CPUTIME_ID] = "thread_cputime_id", 1405 + [CLOCK_MONOTONIC_RAW] = "monotonic_raw", 1406 + [CLOCK_REALTIME_COARSE] = "realtime_coarse", 1407 + [CLOCK_MONOTONIC_COARSE] = "monotonic_coarse", 1408 + [CLOCK_BOOTTIME] = "boottime", 1409 + [CLOCK_REALTIME_ALARM] = "realtime_alarm", 1410 + [CLOCK_BOOTTIME_ALARM] = "boottime_alarm", 1411 + [CLOCK_SGI_CYCLE] = "sgi_cycle", 1412 + [CLOCK_TAI] = "tai", 1413 + }; 1414 + 1400 1415 static ssize_t current_timestamp_clock_show(struct device *dev, 1401 1416 struct device_attribute *attr, 1402 1417 char *buf) 1403 1418 { 1404 1419 const struct iio_dev *indio_dev = dev_to_iio_dev(dev); 1405 1420 const clockid_t clk = iio_device_get_clock(indio_dev); 1406 - const char *name; 1407 - ssize_t sz; 1408 1421 1409 1422 switch (clk) { 1410 1423 case CLOCK_REALTIME: 1411 - name = "realtime\n"; 1412 - sz = sizeof("realtime\n"); 1413 - break; 1414 1424 case CLOCK_MONOTONIC: 1415 - name = "monotonic\n"; 1416 - sz = sizeof("monotonic\n"); 1417 - break; 1418 1425 case CLOCK_MONOTONIC_RAW: 1419 - name = "monotonic_raw\n"; 1420 - sz = sizeof("monotonic_raw\n"); 1421 - break; 1422 1426 case CLOCK_REALTIME_COARSE: 1423 - name = "realtime_coarse\n"; 1424 - sz = sizeof("realtime_coarse\n"); 1425 - break; 1426 1427 case CLOCK_MONOTONIC_COARSE: 1427 - name = "monotonic_coarse\n"; 1428 - sz = sizeof("monotonic_coarse\n"); 1429 - break; 1430 1428 case CLOCK_BOOTTIME: 1431 - name = "boottime\n"; 1432 - sz = sizeof("boottime\n"); 1433 - break; 1434 1429 case CLOCK_TAI: 1435 - name = "tai\n"; 1436 - sz = sizeof("tai\n"); 1437 1430 break; 1438 1431 default: 1439 1432 BUG(); 1440 1433 } 1441 1434 1442 - memcpy(buf, name, sz); 1443 - return sz; 1435 + return sysfs_emit(buf, "%s\n", clock_names[clk]); 1444 1436 } 1445 1437 1446 1438 static ssize_t current_timestamp_clock_store(struct device *dev, ··· 1442 1450 clockid_t clk; 1443 1451 int ret; 1444 1452 1445 - if (sysfs_streq(buf, "realtime")) 1446 - clk = CLOCK_REALTIME; 1447 - else if (sysfs_streq(buf, "monotonic")) 1448 - clk = CLOCK_MONOTONIC; 1449 - else if (sysfs_streq(buf, "monotonic_raw")) 1450 - clk = CLOCK_MONOTONIC_RAW; 1451 - else if (sysfs_streq(buf, "realtime_coarse")) 1452 - clk = CLOCK_REALTIME_COARSE; 1453 - else if (sysfs_streq(buf, "monotonic_coarse")) 1454 - clk = CLOCK_MONOTONIC_COARSE; 1455 - else if (sysfs_streq(buf, "boottime")) 1456 - clk = CLOCK_BOOTTIME; 1457 - else if (sysfs_streq(buf, "tai")) 1458 - clk = CLOCK_TAI; 1459 - else 1453 + ret = sysfs_match_string(clock_names, buf); 1454 + if (ret < 0) 1455 + return ret; 1456 + clk = ret; 1457 + 1458 + switch (clk) { 1459 + case CLOCK_REALTIME: 1460 + case CLOCK_MONOTONIC: 1461 + case CLOCK_MONOTONIC_RAW: 1462 + case CLOCK_REALTIME_COARSE: 1463 + case CLOCK_MONOTONIC_COARSE: 1464 + case CLOCK_BOOTTIME: 1465 + case CLOCK_TAI: 1466 + break; 1467 + default: 1460 1468 return -EINVAL; 1469 + } 1461 1470 1462 1471 ret = iio_device_set_clock(dev_to_iio_dev(dev), clk); 1463 1472 if (ret)