aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew F. Davis <afd@ti.com>2016-08-02 17:07:09 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-08-02 19:35:39 -0400
commit939fc832290d548a02b6a309992b3c1ff7de1ff9 (patch)
treeec7f08bea46363dc89e423c13f8a782ba3574b24
parent098f9fb0c962eb2fdba5f9d34f4cf7a938237184 (diff)
w1: add helper macro module_w1_family
The helper macro module_w1_family can be used in module drivers that only register a w1 driver in their module init functions. Add this macro and use it in all applicable drivers. Link: http://lkml.kernel.org/r/20160531204313.20979-2-afd@ti.com Signed-off-by: Andrew F. Davis <afd@ti.com> Acked-by: Evgeniy Polyakov <zbr@ioremap.net> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/w1/slaves/w1_ds2406.c14
-rw-r--r--drivers/w1/slaves/w1_ds2408.c14
-rw-r--r--drivers/w1/slaves/w1_ds2413.c14
-rw-r--r--drivers/w1/slaves/w1_ds2423.c14
-rw-r--r--drivers/w1/slaves/w1_ds2431.c14
-rw-r--r--drivers/w1/slaves/w1_ds2433.c14
-rw-r--r--drivers/w1/slaves/w1_ds2760.c15
-rw-r--r--drivers/w1/slaves/w1_ds2780.c14
-rw-r--r--drivers/w1/slaves/w1_ds2781.c14
-rw-r--r--drivers/w1/slaves/w1_ds28e04.c14
-rw-r--r--drivers/w1/w1_family.h12
11 files changed, 22 insertions, 131 deletions
diff --git a/drivers/w1/slaves/w1_ds2406.c b/drivers/w1/slaves/w1_ds2406.c
index d488961a8c90..51f2f66d6555 100644
--- a/drivers/w1/slaves/w1_ds2406.c
+++ b/drivers/w1/slaves/w1_ds2406.c
@@ -153,16 +153,4 @@ static struct w1_family w1_family_12 = {
153 .fid = W1_FAMILY_DS2406, 153 .fid = W1_FAMILY_DS2406,
154 .fops = &w1_f12_fops, 154 .fops = &w1_f12_fops,
155}; 155};
156 156module_w1_family(w1_family_12);
157static int __init w1_f12_init(void)
158{
159 return w1_register_family(&w1_family_12);
160}
161
162static void __exit w1_f12_exit(void)
163{
164 w1_unregister_family(&w1_family_12);
165}
166
167module_init(w1_f12_init);
168module_exit(w1_f12_exit);
diff --git a/drivers/w1/slaves/w1_ds2408.c b/drivers/w1/slaves/w1_ds2408.c
index 7dfa0e11688a..aec5958e66e9 100644
--- a/drivers/w1/slaves/w1_ds2408.c
+++ b/drivers/w1/slaves/w1_ds2408.c
@@ -351,16 +351,4 @@ static struct w1_family w1_family_29 = {
351 .fid = W1_FAMILY_DS2408, 351 .fid = W1_FAMILY_DS2408,
352 .fops = &w1_f29_fops, 352 .fops = &w1_f29_fops,
353}; 353};
354 354module_w1_family(w1_family_29);
355static int __init w1_f29_init(void)
356{
357 return w1_register_family(&w1_family_29);
358}
359
360static void __exit w1_f29_exit(void)
361{
362 w1_unregister_family(&w1_family_29);
363}
364
365module_init(w1_f29_init);
366module_exit(w1_f29_exit);
diff --git a/drivers/w1/slaves/w1_ds2413.c b/drivers/w1/slaves/w1_ds2413.c
index ee28fc1ff390..f2e1c51533b9 100644
--- a/drivers/w1/slaves/w1_ds2413.c
+++ b/drivers/w1/slaves/w1_ds2413.c
@@ -135,16 +135,4 @@ static struct w1_family w1_family_3a = {
135 .fid = W1_FAMILY_DS2413, 135 .fid = W1_FAMILY_DS2413,
136 .fops = &w1_f3a_fops, 136 .fops = &w1_f3a_fops,
137}; 137};
138 138module_w1_family(w1_family_3a);
139static int __init w1_f3a_init(void)
140{
141 return w1_register_family(&w1_family_3a);
142}
143
144static void __exit w1_f3a_exit(void)
145{
146 w1_unregister_family(&w1_family_3a);
147}
148
149module_init(w1_f3a_init);
150module_exit(w1_f3a_exit);
diff --git a/drivers/w1/slaves/w1_ds2423.c b/drivers/w1/slaves/w1_ds2423.c
index 7e41b7d91fb5..4ab54fd9dde2 100644
--- a/drivers/w1/slaves/w1_ds2423.c
+++ b/drivers/w1/slaves/w1_ds2423.c
@@ -138,19 +138,7 @@ static struct w1_family w1_family_1d = {
138 .fid = W1_COUNTER_DS2423, 138 .fid = W1_COUNTER_DS2423,
139 .fops = &w1_f1d_fops, 139 .fops = &w1_f1d_fops,
140}; 140};
141 141module_w1_family(w1_family_1d);
142static int __init w1_f1d_init(void)
143{
144 return w1_register_family(&w1_family_1d);
145}
146
147static void __exit w1_f1d_exit(void)
148{
149 w1_unregister_family(&w1_family_1d);
150}
151
152module_init(w1_f1d_init);
153module_exit(w1_f1d_exit);
154 142
155MODULE_LICENSE("GPL"); 143MODULE_LICENSE("GPL");
156MODULE_AUTHOR("Mika Laitio <lamikr@pilppa.org>"); 144MODULE_AUTHOR("Mika Laitio <lamikr@pilppa.org>");
diff --git a/drivers/w1/slaves/w1_ds2431.c b/drivers/w1/slaves/w1_ds2431.c
index 9c4ff9d28adc..80572cb63ba8 100644
--- a/drivers/w1/slaves/w1_ds2431.c
+++ b/drivers/w1/slaves/w1_ds2431.c
@@ -288,19 +288,7 @@ static struct w1_family w1_family_2d = {
288 .fid = W1_EEPROM_DS2431, 288 .fid = W1_EEPROM_DS2431,
289 .fops = &w1_f2d_fops, 289 .fops = &w1_f2d_fops,
290}; 290};
291 291module_w1_family(w1_family_2d);
292static int __init w1_f2d_init(void)
293{
294 return w1_register_family(&w1_family_2d);
295}
296
297static void __exit w1_f2d_fini(void)
298{
299 w1_unregister_family(&w1_family_2d);
300}
301
302module_init(w1_f2d_init);
303module_exit(w1_f2d_fini);
304 292
305MODULE_LICENSE("GPL"); 293MODULE_LICENSE("GPL");
306MODULE_AUTHOR("Bernhard Weirich <bernhard.weirich@riedel.net>"); 294MODULE_AUTHOR("Bernhard Weirich <bernhard.weirich@riedel.net>");
diff --git a/drivers/w1/slaves/w1_ds2433.c b/drivers/w1/slaves/w1_ds2433.c
index 72319a968a9e..6cf378c89ecb 100644
--- a/drivers/w1/slaves/w1_ds2433.c
+++ b/drivers/w1/slaves/w1_ds2433.c
@@ -305,16 +305,4 @@ static struct w1_family w1_family_23 = {
305 .fid = W1_EEPROM_DS2433, 305 .fid = W1_EEPROM_DS2433,
306 .fops = &w1_f23_fops, 306 .fops = &w1_f23_fops,
307}; 307};
308 308module_w1_family(w1_family_23);
309static int __init w1_f23_init(void)
310{
311 return w1_register_family(&w1_family_23);
312}
313
314static void __exit w1_f23_fini(void)
315{
316 w1_unregister_family(&w1_family_23);
317}
318
319module_init(w1_f23_init);
320module_exit(w1_f23_fini);
diff --git a/drivers/w1/slaves/w1_ds2760.c b/drivers/w1/slaves/w1_ds2760.c
index 59a81cfe64d5..ffa37f773b3b 100644
--- a/drivers/w1/slaves/w1_ds2760.c
+++ b/drivers/w1/slaves/w1_ds2760.c
@@ -162,26 +162,13 @@ static struct w1_family w1_ds2760_family = {
162 .fid = W1_FAMILY_DS2760, 162 .fid = W1_FAMILY_DS2760,
163 .fops = &w1_ds2760_fops, 163 .fops = &w1_ds2760_fops,
164}; 164};
165 165module_w1_family(w1_ds2760_family);
166static int __init w1_ds2760_init(void)
167{
168 pr_info("1-Wire driver for the DS2760 battery monitor chip - (c) 2004-2005, Szabolcs Gyurko\n");
169 return w1_register_family(&w1_ds2760_family);
170}
171
172static void __exit w1_ds2760_exit(void)
173{
174 w1_unregister_family(&w1_ds2760_family);
175}
176 166
177EXPORT_SYMBOL(w1_ds2760_read); 167EXPORT_SYMBOL(w1_ds2760_read);
178EXPORT_SYMBOL(w1_ds2760_write); 168EXPORT_SYMBOL(w1_ds2760_write);
179EXPORT_SYMBOL(w1_ds2760_store_eeprom); 169EXPORT_SYMBOL(w1_ds2760_store_eeprom);
180EXPORT_SYMBOL(w1_ds2760_recall_eeprom); 170EXPORT_SYMBOL(w1_ds2760_recall_eeprom);
181 171
182module_init(w1_ds2760_init);
183module_exit(w1_ds2760_exit);
184
185MODULE_LICENSE("GPL"); 172MODULE_LICENSE("GPL");
186MODULE_AUTHOR("Szabolcs Gyurko <szabolcs.gyurko@tlt.hu>"); 173MODULE_AUTHOR("Szabolcs Gyurko <szabolcs.gyurko@tlt.hu>");
187MODULE_DESCRIPTION("1-wire Driver Dallas 2760 battery monitor chip"); 174MODULE_DESCRIPTION("1-wire Driver Dallas 2760 battery monitor chip");
diff --git a/drivers/w1/slaves/w1_ds2780.c b/drivers/w1/slaves/w1_ds2780.c
index e63eb86d66f1..f5c2aa429a92 100644
--- a/drivers/w1/slaves/w1_ds2780.c
+++ b/drivers/w1/slaves/w1_ds2780.c
@@ -154,19 +154,7 @@ static struct w1_family w1_ds2780_family = {
154 .fid = W1_FAMILY_DS2780, 154 .fid = W1_FAMILY_DS2780,
155 .fops = &w1_ds2780_fops, 155 .fops = &w1_ds2780_fops,
156}; 156};
157 157module_w1_family(w1_ds2780_family);
158static int __init w1_ds2780_init(void)
159{
160 return w1_register_family(&w1_ds2780_family);
161}
162
163static void __exit w1_ds2780_exit(void)
164{
165 w1_unregister_family(&w1_ds2780_family);
166}
167
168module_init(w1_ds2780_init);
169module_exit(w1_ds2780_exit);
170 158
171MODULE_LICENSE("GPL"); 159MODULE_LICENSE("GPL");
172MODULE_AUTHOR("Clifton Barnes <cabarnes@indesign-llc.com>"); 160MODULE_AUTHOR("Clifton Barnes <cabarnes@indesign-llc.com>");
diff --git a/drivers/w1/slaves/w1_ds2781.c b/drivers/w1/slaves/w1_ds2781.c
index 99b0f4dc0e31..9c03e014cf9e 100644
--- a/drivers/w1/slaves/w1_ds2781.c
+++ b/drivers/w1/slaves/w1_ds2781.c
@@ -151,19 +151,7 @@ static struct w1_family w1_ds2781_family = {
151 .fid = W1_FAMILY_DS2781, 151 .fid = W1_FAMILY_DS2781,
152 .fops = &w1_ds2781_fops, 152 .fops = &w1_ds2781_fops,
153}; 153};
154 154module_w1_family(w1_ds2781_family);
155static int __init w1_ds2781_init(void)
156{
157 return w1_register_family(&w1_ds2781_family);
158}
159
160static void __exit w1_ds2781_exit(void)
161{
162 w1_unregister_family(&w1_ds2781_family);
163}
164
165module_init(w1_ds2781_init);
166module_exit(w1_ds2781_exit);
167 155
168MODULE_LICENSE("GPL"); 156MODULE_LICENSE("GPL");
169MODULE_AUTHOR("Renata Sayakhova <renata@oktetlabs.ru>"); 157MODULE_AUTHOR("Renata Sayakhova <renata@oktetlabs.ru>");
diff --git a/drivers/w1/slaves/w1_ds28e04.c b/drivers/w1/slaves/w1_ds28e04.c
index 365d6dff21de..5e348d38ec5c 100644
--- a/drivers/w1/slaves/w1_ds28e04.c
+++ b/drivers/w1/slaves/w1_ds28e04.c
@@ -427,16 +427,4 @@ static struct w1_family w1_family_1C = {
427 .fid = W1_FAMILY_DS28E04, 427 .fid = W1_FAMILY_DS28E04,
428 .fops = &w1_f1C_fops, 428 .fops = &w1_f1C_fops,
429}; 429};
430 430module_w1_family(w1_family_1C);
431static int __init w1_f1C_init(void)
432{
433 return w1_register_family(&w1_family_1C);
434}
435
436static void __exit w1_f1C_fini(void)
437{
438 w1_unregister_family(&w1_family_1C);
439}
440
441module_init(w1_f1C_init);
442module_exit(w1_f1C_fini);
diff --git a/drivers/w1/w1_family.h b/drivers/w1/w1_family.h
index ed5dcb80a1f7..10a7a0767187 100644
--- a/drivers/w1/w1_family.h
+++ b/drivers/w1/w1_family.h
@@ -88,4 +88,16 @@ struct w1_family * w1_family_registered(u8);
88void w1_unregister_family(struct w1_family *); 88void w1_unregister_family(struct w1_family *);
89int w1_register_family(struct w1_family *); 89int w1_register_family(struct w1_family *);
90 90
91/**
92 * module_w1_driver() - Helper macro for registering a 1-Wire families
93 * @__w1_family: w1_family struct
94 *
95 * Helper macro for 1-Wire families which do not do anything special in module
96 * init/exit. This eliminates a lot of boilerplate. Each module may only
97 * use this macro once, and calling it replaces module_init() and module_exit()
98 */
99#define module_w1_family(__w1_family) \
100 module_driver(__w1_family, w1_register_family, \
101 w1_unregister_family)
102
91#endif /* __W1_FAMILY_H */ 103#endif /* __W1_FAMILY_H */