Lines Matching refs:counter

31 	struct counter_device counter;  member
43 struct counter_device *const counter = in counter_device_release() local
46 counter_chrdev_remove(counter); in counter_device_release()
49 kfree(container_of(counter, struct counter_device_allochelper, counter)); in counter_device_release()
70 void *counter_priv(const struct counter_device *const counter) in counter_priv() argument
73 container_of(counter, struct counter_device_allochelper, counter); in counter_priv()
91 struct counter_device *counter; in counter_alloc() local
99 counter = &ch->counter; in counter_alloc()
100 dev = &counter->dev; in counter_alloc()
108 mutex_init(&counter->ops_exist_lock); in counter_alloc()
113 err = counter_chrdev_add(counter); in counter_alloc()
123 return counter; in counter_alloc()
127 counter_chrdev_remove(counter); in counter_alloc()
139 void counter_put(struct counter_device *counter) in counter_put() argument
141 put_device(&counter->dev); in counter_put()
153 int counter_add(struct counter_device *counter) in counter_add() argument
156 struct device *dev = &counter->dev; in counter_add()
158 if (counter->parent) { in counter_add()
159 dev->parent = counter->parent; in counter_add()
160 dev->of_node = counter->parent->of_node; in counter_add()
163 err = counter_sysfs_add(counter); in counter_add()
168 return cdev_device_add(&counter->chrdev, dev); in counter_add()
178 void counter_unregister(struct counter_device *const counter) in counter_unregister() argument
180 if (!counter) in counter_unregister()
183 cdev_device_del(&counter->chrdev, &counter->dev); in counter_unregister()
185 mutex_lock(&counter->ops_exist_lock); in counter_unregister()
187 counter->ops = NULL; in counter_unregister()
188 wake_up(&counter->events_wait); in counter_unregister()
190 mutex_unlock(&counter->ops_exist_lock); in counter_unregister()
194 static void devm_counter_release(void *counter) in devm_counter_release() argument
196 counter_unregister(counter); in devm_counter_release()
199 static void devm_counter_put(void *counter) in devm_counter_put() argument
201 counter_put(counter); in devm_counter_put()
214 struct counter_device *counter; in devm_counter_alloc() local
217 counter = counter_alloc(sizeof_priv); in devm_counter_alloc()
218 if (!counter) in devm_counter_alloc()
221 err = devm_add_action_or_reset(dev, devm_counter_put, counter); in devm_counter_alloc()
225 return counter; in devm_counter_alloc()
238 struct counter_device *const counter) in devm_counter_add() argument
242 err = counter_add(counter); in devm_counter_add()
246 return devm_add_action_or_reset(dev, devm_counter_release, counter); in devm_counter_add()