diff options
author | Andrew F. Davis <afd@ti.com> | 2016-08-02 17:07:09 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-02 19:35:39 -0400 |
commit | 939fc832290d548a02b6a309992b3c1ff7de1ff9 (patch) | |
tree | ec7f08bea46363dc89e423c13f8a782ba3574b24 | |
parent | 098f9fb0c962eb2fdba5f9d34f4cf7a938237184 (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.c | 14 | ||||
-rw-r--r-- | drivers/w1/slaves/w1_ds2408.c | 14 | ||||
-rw-r--r-- | drivers/w1/slaves/w1_ds2413.c | 14 | ||||
-rw-r--r-- | drivers/w1/slaves/w1_ds2423.c | 14 | ||||
-rw-r--r-- | drivers/w1/slaves/w1_ds2431.c | 14 | ||||
-rw-r--r-- | drivers/w1/slaves/w1_ds2433.c | 14 | ||||
-rw-r--r-- | drivers/w1/slaves/w1_ds2760.c | 15 | ||||
-rw-r--r-- | drivers/w1/slaves/w1_ds2780.c | 14 | ||||
-rw-r--r-- | drivers/w1/slaves/w1_ds2781.c | 14 | ||||
-rw-r--r-- | drivers/w1/slaves/w1_ds28e04.c | 14 | ||||
-rw-r--r-- | drivers/w1/w1_family.h | 12 |
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 | 156 | module_w1_family(w1_family_12); | |
157 | static int __init w1_f12_init(void) | ||
158 | { | ||
159 | return w1_register_family(&w1_family_12); | ||
160 | } | ||
161 | |||
162 | static void __exit w1_f12_exit(void) | ||
163 | { | ||
164 | w1_unregister_family(&w1_family_12); | ||
165 | } | ||
166 | |||
167 | module_init(w1_f12_init); | ||
168 | module_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 | 354 | module_w1_family(w1_family_29); | |
355 | static int __init w1_f29_init(void) | ||
356 | { | ||
357 | return w1_register_family(&w1_family_29); | ||
358 | } | ||
359 | |||
360 | static void __exit w1_f29_exit(void) | ||
361 | { | ||
362 | w1_unregister_family(&w1_family_29); | ||
363 | } | ||
364 | |||
365 | module_init(w1_f29_init); | ||
366 | module_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 | 138 | module_w1_family(w1_family_3a); | |
139 | static int __init w1_f3a_init(void) | ||
140 | { | ||
141 | return w1_register_family(&w1_family_3a); | ||
142 | } | ||
143 | |||
144 | static void __exit w1_f3a_exit(void) | ||
145 | { | ||
146 | w1_unregister_family(&w1_family_3a); | ||
147 | } | ||
148 | |||
149 | module_init(w1_f3a_init); | ||
150 | module_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 | 141 | module_w1_family(w1_family_1d); | |
142 | static int __init w1_f1d_init(void) | ||
143 | { | ||
144 | return w1_register_family(&w1_family_1d); | ||
145 | } | ||
146 | |||
147 | static void __exit w1_f1d_exit(void) | ||
148 | { | ||
149 | w1_unregister_family(&w1_family_1d); | ||
150 | } | ||
151 | |||
152 | module_init(w1_f1d_init); | ||
153 | module_exit(w1_f1d_exit); | ||
154 | 142 | ||
155 | MODULE_LICENSE("GPL"); | 143 | MODULE_LICENSE("GPL"); |
156 | MODULE_AUTHOR("Mika Laitio <lamikr@pilppa.org>"); | 144 | MODULE_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 | 291 | module_w1_family(w1_family_2d); | |
292 | static int __init w1_f2d_init(void) | ||
293 | { | ||
294 | return w1_register_family(&w1_family_2d); | ||
295 | } | ||
296 | |||
297 | static void __exit w1_f2d_fini(void) | ||
298 | { | ||
299 | w1_unregister_family(&w1_family_2d); | ||
300 | } | ||
301 | |||
302 | module_init(w1_f2d_init); | ||
303 | module_exit(w1_f2d_fini); | ||
304 | 292 | ||
305 | MODULE_LICENSE("GPL"); | 293 | MODULE_LICENSE("GPL"); |
306 | MODULE_AUTHOR("Bernhard Weirich <bernhard.weirich@riedel.net>"); | 294 | MODULE_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 | 308 | module_w1_family(w1_family_23); | |
309 | static int __init w1_f23_init(void) | ||
310 | { | ||
311 | return w1_register_family(&w1_family_23); | ||
312 | } | ||
313 | |||
314 | static void __exit w1_f23_fini(void) | ||
315 | { | ||
316 | w1_unregister_family(&w1_family_23); | ||
317 | } | ||
318 | |||
319 | module_init(w1_f23_init); | ||
320 | module_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 | 165 | module_w1_family(w1_ds2760_family); | |
166 | static 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 | |||
172 | static void __exit w1_ds2760_exit(void) | ||
173 | { | ||
174 | w1_unregister_family(&w1_ds2760_family); | ||
175 | } | ||
176 | 166 | ||
177 | EXPORT_SYMBOL(w1_ds2760_read); | 167 | EXPORT_SYMBOL(w1_ds2760_read); |
178 | EXPORT_SYMBOL(w1_ds2760_write); | 168 | EXPORT_SYMBOL(w1_ds2760_write); |
179 | EXPORT_SYMBOL(w1_ds2760_store_eeprom); | 169 | EXPORT_SYMBOL(w1_ds2760_store_eeprom); |
180 | EXPORT_SYMBOL(w1_ds2760_recall_eeprom); | 170 | EXPORT_SYMBOL(w1_ds2760_recall_eeprom); |
181 | 171 | ||
182 | module_init(w1_ds2760_init); | ||
183 | module_exit(w1_ds2760_exit); | ||
184 | |||
185 | MODULE_LICENSE("GPL"); | 172 | MODULE_LICENSE("GPL"); |
186 | MODULE_AUTHOR("Szabolcs Gyurko <szabolcs.gyurko@tlt.hu>"); | 173 | MODULE_AUTHOR("Szabolcs Gyurko <szabolcs.gyurko@tlt.hu>"); |
187 | MODULE_DESCRIPTION("1-wire Driver Dallas 2760 battery monitor chip"); | 174 | MODULE_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 | 157 | module_w1_family(w1_ds2780_family); | |
158 | static int __init w1_ds2780_init(void) | ||
159 | { | ||
160 | return w1_register_family(&w1_ds2780_family); | ||
161 | } | ||
162 | |||
163 | static void __exit w1_ds2780_exit(void) | ||
164 | { | ||
165 | w1_unregister_family(&w1_ds2780_family); | ||
166 | } | ||
167 | |||
168 | module_init(w1_ds2780_init); | ||
169 | module_exit(w1_ds2780_exit); | ||
170 | 158 | ||
171 | MODULE_LICENSE("GPL"); | 159 | MODULE_LICENSE("GPL"); |
172 | MODULE_AUTHOR("Clifton Barnes <cabarnes@indesign-llc.com>"); | 160 | MODULE_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 | 154 | module_w1_family(w1_ds2781_family); | |
155 | static int __init w1_ds2781_init(void) | ||
156 | { | ||
157 | return w1_register_family(&w1_ds2781_family); | ||
158 | } | ||
159 | |||
160 | static void __exit w1_ds2781_exit(void) | ||
161 | { | ||
162 | w1_unregister_family(&w1_ds2781_family); | ||
163 | } | ||
164 | |||
165 | module_init(w1_ds2781_init); | ||
166 | module_exit(w1_ds2781_exit); | ||
167 | 155 | ||
168 | MODULE_LICENSE("GPL"); | 156 | MODULE_LICENSE("GPL"); |
169 | MODULE_AUTHOR("Renata Sayakhova <renata@oktetlabs.ru>"); | 157 | MODULE_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 | 430 | module_w1_family(w1_family_1C); | |
431 | static int __init w1_f1C_init(void) | ||
432 | { | ||
433 | return w1_register_family(&w1_family_1C); | ||
434 | } | ||
435 | |||
436 | static void __exit w1_f1C_fini(void) | ||
437 | { | ||
438 | w1_unregister_family(&w1_family_1C); | ||
439 | } | ||
440 | |||
441 | module_init(w1_f1C_init); | ||
442 | module_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); | |||
88 | void w1_unregister_family(struct w1_family *); | 88 | void w1_unregister_family(struct w1_family *); |
89 | int w1_register_family(struct w1_family *); | 89 | int 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 */ |