diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-07-24 18:05:20 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-07-26 21:05:17 -0400 |
commit | 3499116b915e260b275c167a471e0e05bbe3f1d6 (patch) | |
tree | c5e7a9da815204b34141411ba621b49d2859112e /drivers/ptp | |
parent | 5baa7503a7a0b8d65308ff3b2ab887bf343c65d3 (diff) |
PTP: convert class code to use dev_groups
The dev_attrs field of struct class is going away soon, dev_groups
should be used instead. This converts the ptp class code to use the
correct field.
Acked-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/ptp')
-rw-r--r-- | drivers/ptp/ptp_clock.c | 2 | ||||
-rw-r--r-- | drivers/ptp/ptp_private.h | 2 | ||||
-rw-r--r-- | drivers/ptp/ptp_sysfs.c | 51 |
3 files changed, 31 insertions, 24 deletions
diff --git a/drivers/ptp/ptp_clock.c b/drivers/ptp/ptp_clock.c index 4a8c388364ca..a8319b266643 100644 --- a/drivers/ptp/ptp_clock.c +++ b/drivers/ptp/ptp_clock.c | |||
@@ -330,7 +330,7 @@ static int __init ptp_init(void) | |||
330 | goto no_region; | 330 | goto no_region; |
331 | } | 331 | } |
332 | 332 | ||
333 | ptp_class->dev_attrs = ptp_dev_attrs; | 333 | ptp_class->dev_groups = ptp_groups; |
334 | pr_info("PTP clock support registered\n"); | 334 | pr_info("PTP clock support registered\n"); |
335 | return 0; | 335 | return 0; |
336 | 336 | ||
diff --git a/drivers/ptp/ptp_private.h b/drivers/ptp/ptp_private.h index 69d32070cc65..df03f2e30ad9 100644 --- a/drivers/ptp/ptp_private.h +++ b/drivers/ptp/ptp_private.h | |||
@@ -84,7 +84,7 @@ uint ptp_poll(struct posix_clock *pc, | |||
84 | * see ptp_sysfs.c | 84 | * see ptp_sysfs.c |
85 | */ | 85 | */ |
86 | 86 | ||
87 | extern struct device_attribute ptp_dev_attrs[]; | 87 | extern const struct attribute_group *ptp_groups[]; |
88 | 88 | ||
89 | int ptp_cleanup_sysfs(struct ptp_clock *ptp); | 89 | int ptp_cleanup_sysfs(struct ptp_clock *ptp); |
90 | 90 | ||
diff --git a/drivers/ptp/ptp_sysfs.c b/drivers/ptp/ptp_sysfs.c index 2f93926ac976..13ec5311746a 100644 --- a/drivers/ptp/ptp_sysfs.c +++ b/drivers/ptp/ptp_sysfs.c | |||
@@ -27,36 +27,43 @@ static ssize_t clock_name_show(struct device *dev, | |||
27 | struct ptp_clock *ptp = dev_get_drvdata(dev); | 27 | struct ptp_clock *ptp = dev_get_drvdata(dev); |
28 | return snprintf(page, PAGE_SIZE-1, "%s\n", ptp->info->name); | 28 | return snprintf(page, PAGE_SIZE-1, "%s\n", ptp->info->name); |
29 | } | 29 | } |
30 | static DEVICE_ATTR(clock_name, 0444, clock_name_show, NULL); | ||
30 | 31 | ||
31 | #define PTP_SHOW_INT(name) \ | 32 | #define PTP_SHOW_INT(name, var) \ |
32 | static ssize_t name##_show(struct device *dev, \ | 33 | static ssize_t var##_show(struct device *dev, \ |
33 | struct device_attribute *attr, char *page) \ | 34 | struct device_attribute *attr, char *page) \ |
34 | { \ | 35 | { \ |
35 | struct ptp_clock *ptp = dev_get_drvdata(dev); \ | 36 | struct ptp_clock *ptp = dev_get_drvdata(dev); \ |
36 | return snprintf(page, PAGE_SIZE-1, "%d\n", ptp->info->name); \ | 37 | return snprintf(page, PAGE_SIZE-1, "%d\n", ptp->info->var); \ |
37 | } | 38 | } \ |
38 | 39 | static DEVICE_ATTR(name, 0444, var##_show, NULL); | |
39 | PTP_SHOW_INT(max_adj); | 40 | |
40 | PTP_SHOW_INT(n_alarm); | 41 | PTP_SHOW_INT(max_adjustment, max_adj); |
41 | PTP_SHOW_INT(n_ext_ts); | 42 | PTP_SHOW_INT(n_alarms, n_alarm); |
42 | PTP_SHOW_INT(n_per_out); | 43 | PTP_SHOW_INT(n_external_timestamps, n_ext_ts); |
43 | PTP_SHOW_INT(pps); | 44 | PTP_SHOW_INT(n_periodic_outputs, n_per_out); |
45 | PTP_SHOW_INT(pps_available, pps); | ||
46 | |||
47 | static struct attribute *ptp_attrs[] = { | ||
48 | &dev_attr_clock_name.attr, | ||
49 | &dev_attr_max_adjustment.attr, | ||
50 | &dev_attr_n_alarms.attr, | ||
51 | &dev_attr_n_external_timestamps.attr, | ||
52 | &dev_attr_n_periodic_outputs.attr, | ||
53 | &dev_attr_pps_available.attr, | ||
54 | NULL, | ||
55 | }; | ||
44 | 56 | ||
45 | #define PTP_RO_ATTR(_var, _name) { \ | 57 | static const struct attribute_group ptp_group = { |
46 | .attr = { .name = __stringify(_name), .mode = 0444 }, \ | 58 | .attrs = ptp_attrs, |
47 | .show = _var##_show, \ | 59 | }; |
48 | } | ||
49 | 60 | ||
50 | struct device_attribute ptp_dev_attrs[] = { | 61 | const struct attribute_group *ptp_groups[] = { |
51 | PTP_RO_ATTR(clock_name, clock_name), | 62 | &ptp_group, |
52 | PTP_RO_ATTR(max_adj, max_adjustment), | 63 | NULL, |
53 | PTP_RO_ATTR(n_alarm, n_alarms), | ||
54 | PTP_RO_ATTR(n_ext_ts, n_external_timestamps), | ||
55 | PTP_RO_ATTR(n_per_out, n_periodic_outputs), | ||
56 | PTP_RO_ATTR(pps, pps_available), | ||
57 | __ATTR_NULL, | ||
58 | }; | 64 | }; |
59 | 65 | ||
66 | |||
60 | static ssize_t extts_enable_store(struct device *dev, | 67 | static ssize_t extts_enable_store(struct device *dev, |
61 | struct device_attribute *attr, | 68 | struct device_attribute *attr, |
62 | const char *buf, size_t count) | 69 | const char *buf, size_t count) |