aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-07-24 18:05:14 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-08-20 00:22:34 -0400
commit13e2237f36874a7abef44b98969f399127b1917d (patch)
treef4322f542fd6b40d5cd127c350a09eb712952a3c
parent46a58c44c173d3cbfa53931fbb7ad069ef59f190 (diff)
v4l2: 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 v4l2 class code to use the correct field. Cc: Mauro Carvalho Chehab <mchehab@redhat.com> Cc: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/media/v4l2-core/v4l2-dev.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v4l2-dev.c
index c8859d6ff6ad..b0f49b014bc5 100644
--- a/drivers/media/v4l2-core/v4l2-dev.c
+++ b/drivers/media/v4l2-core/v4l2-dev.c
@@ -38,24 +38,25 @@
38 * sysfs stuff 38 * sysfs stuff
39 */ 39 */
40 40
41static ssize_t show_index(struct device *cd, 41static ssize_t index_show(struct device *cd,
42 struct device_attribute *attr, char *buf) 42 struct device_attribute *attr, char *buf)
43{ 43{
44 struct video_device *vdev = to_video_device(cd); 44 struct video_device *vdev = to_video_device(cd);
45 45
46 return sprintf(buf, "%i\n", vdev->index); 46 return sprintf(buf, "%i\n", vdev->index);
47} 47}
48static DEVICE_ATTR_RO(index);
48 49
49static ssize_t show_debug(struct device *cd, 50static ssize_t debug_show(struct device *cd,
50 struct device_attribute *attr, char *buf) 51 struct device_attribute *attr, char *buf)
51{ 52{
52 struct video_device *vdev = to_video_device(cd); 53 struct video_device *vdev = to_video_device(cd);
53 54
54 return sprintf(buf, "%i\n", vdev->debug); 55 return sprintf(buf, "%i\n", vdev->debug);
55} 56}
56 57
57static ssize_t set_debug(struct device *cd, struct device_attribute *attr, 58static ssize_t debug_store(struct device *cd, struct device_attribute *attr,
58 const char *buf, size_t len) 59 const char *buf, size_t len)
59{ 60{
60 struct video_device *vdev = to_video_device(cd); 61 struct video_device *vdev = to_video_device(cd);
61 int res = 0; 62 int res = 0;
@@ -68,21 +69,24 @@ static ssize_t set_debug(struct device *cd, struct device_attribute *attr,
68 vdev->debug = value; 69 vdev->debug = value;
69 return len; 70 return len;
70} 71}
72static DEVICE_ATTR_RW(debug);
71 73
72static ssize_t show_name(struct device *cd, 74static ssize_t name_show(struct device *cd,
73 struct device_attribute *attr, char *buf) 75 struct device_attribute *attr, char *buf)
74{ 76{
75 struct video_device *vdev = to_video_device(cd); 77 struct video_device *vdev = to_video_device(cd);
76 78
77 return sprintf(buf, "%.*s\n", (int)sizeof(vdev->name), vdev->name); 79 return sprintf(buf, "%.*s\n", (int)sizeof(vdev->name), vdev->name);
78} 80}
81static DEVICE_ATTR_RO(name);
79 82
80static struct device_attribute video_device_attrs[] = { 83static struct attribute *video_device_attrs[] = {
81 __ATTR(name, S_IRUGO, show_name, NULL), 84 &dev_attr_name.attr,
82 __ATTR(debug, 0644, show_debug, set_debug), 85 &dev_attr_debug.attr,
83 __ATTR(index, S_IRUGO, show_index, NULL), 86 &dev_attr_index.attr,
84 __ATTR_NULL 87 NULL,
85}; 88};
89ATTRIBUTE_GROUPS(video_device);
86 90
87/* 91/*
88 * Active devices 92 * Active devices
@@ -217,7 +221,7 @@ static void v4l2_device_release(struct device *cd)
217 221
218static struct class video_class = { 222static struct class video_class = {
219 .name = VIDEO_NAME, 223 .name = VIDEO_NAME,
220 .dev_attrs = video_device_attrs, 224 .dev_groups = video_device_groups,
221}; 225};
222 226
223struct video_device *video_devdata(struct file *file) 227struct video_device *video_devdata(struct file *file)