mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
098f9fb0c9
commit
939fc83229
|
@ -153,16 +153,4 @@ static struct w1_family w1_family_12 = {
|
|||
.fid = W1_FAMILY_DS2406,
|
||||
.fops = &w1_f12_fops,
|
||||
};
|
||||
|
||||
static int __init w1_f12_init(void)
|
||||
{
|
||||
return w1_register_family(&w1_family_12);
|
||||
}
|
||||
|
||||
static void __exit w1_f12_exit(void)
|
||||
{
|
||||
w1_unregister_family(&w1_family_12);
|
||||
}
|
||||
|
||||
module_init(w1_f12_init);
|
||||
module_exit(w1_f12_exit);
|
||||
module_w1_family(w1_family_12);
|
||||
|
|
|
@ -351,16 +351,4 @@ static struct w1_family w1_family_29 = {
|
|||
.fid = W1_FAMILY_DS2408,
|
||||
.fops = &w1_f29_fops,
|
||||
};
|
||||
|
||||
static int __init w1_f29_init(void)
|
||||
{
|
||||
return w1_register_family(&w1_family_29);
|
||||
}
|
||||
|
||||
static void __exit w1_f29_exit(void)
|
||||
{
|
||||
w1_unregister_family(&w1_family_29);
|
||||
}
|
||||
|
||||
module_init(w1_f29_init);
|
||||
module_exit(w1_f29_exit);
|
||||
module_w1_family(w1_family_29);
|
||||
|
|
|
@ -135,16 +135,4 @@ static struct w1_family w1_family_3a = {
|
|||
.fid = W1_FAMILY_DS2413,
|
||||
.fops = &w1_f3a_fops,
|
||||
};
|
||||
|
||||
static int __init w1_f3a_init(void)
|
||||
{
|
||||
return w1_register_family(&w1_family_3a);
|
||||
}
|
||||
|
||||
static void __exit w1_f3a_exit(void)
|
||||
{
|
||||
w1_unregister_family(&w1_family_3a);
|
||||
}
|
||||
|
||||
module_init(w1_f3a_init);
|
||||
module_exit(w1_f3a_exit);
|
||||
module_w1_family(w1_family_3a);
|
||||
|
|
|
@ -138,19 +138,7 @@ static struct w1_family w1_family_1d = {
|
|||
.fid = W1_COUNTER_DS2423,
|
||||
.fops = &w1_f1d_fops,
|
||||
};
|
||||
|
||||
static int __init w1_f1d_init(void)
|
||||
{
|
||||
return w1_register_family(&w1_family_1d);
|
||||
}
|
||||
|
||||
static void __exit w1_f1d_exit(void)
|
||||
{
|
||||
w1_unregister_family(&w1_family_1d);
|
||||
}
|
||||
|
||||
module_init(w1_f1d_init);
|
||||
module_exit(w1_f1d_exit);
|
||||
module_w1_family(w1_family_1d);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Mika Laitio <lamikr@pilppa.org>");
|
||||
|
|
|
@ -288,19 +288,7 @@ static struct w1_family w1_family_2d = {
|
|||
.fid = W1_EEPROM_DS2431,
|
||||
.fops = &w1_f2d_fops,
|
||||
};
|
||||
|
||||
static int __init w1_f2d_init(void)
|
||||
{
|
||||
return w1_register_family(&w1_family_2d);
|
||||
}
|
||||
|
||||
static void __exit w1_f2d_fini(void)
|
||||
{
|
||||
w1_unregister_family(&w1_family_2d);
|
||||
}
|
||||
|
||||
module_init(w1_f2d_init);
|
||||
module_exit(w1_f2d_fini);
|
||||
module_w1_family(w1_family_2d);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Bernhard Weirich <bernhard.weirich@riedel.net>");
|
||||
|
|
|
@ -305,16 +305,4 @@ static struct w1_family w1_family_23 = {
|
|||
.fid = W1_EEPROM_DS2433,
|
||||
.fops = &w1_f23_fops,
|
||||
};
|
||||
|
||||
static int __init w1_f23_init(void)
|
||||
{
|
||||
return w1_register_family(&w1_family_23);
|
||||
}
|
||||
|
||||
static void __exit w1_f23_fini(void)
|
||||
{
|
||||
w1_unregister_family(&w1_family_23);
|
||||
}
|
||||
|
||||
module_init(w1_f23_init);
|
||||
module_exit(w1_f23_fini);
|
||||
module_w1_family(w1_family_23);
|
||||
|
|
|
@ -162,26 +162,13 @@ static struct w1_family w1_ds2760_family = {
|
|||
.fid = W1_FAMILY_DS2760,
|
||||
.fops = &w1_ds2760_fops,
|
||||
};
|
||||
|
||||
static int __init w1_ds2760_init(void)
|
||||
{
|
||||
pr_info("1-Wire driver for the DS2760 battery monitor chip - (c) 2004-2005, Szabolcs Gyurko\n");
|
||||
return w1_register_family(&w1_ds2760_family);
|
||||
}
|
||||
|
||||
static void __exit w1_ds2760_exit(void)
|
||||
{
|
||||
w1_unregister_family(&w1_ds2760_family);
|
||||
}
|
||||
module_w1_family(w1_ds2760_family);
|
||||
|
||||
EXPORT_SYMBOL(w1_ds2760_read);
|
||||
EXPORT_SYMBOL(w1_ds2760_write);
|
||||
EXPORT_SYMBOL(w1_ds2760_store_eeprom);
|
||||
EXPORT_SYMBOL(w1_ds2760_recall_eeprom);
|
||||
|
||||
module_init(w1_ds2760_init);
|
||||
module_exit(w1_ds2760_exit);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Szabolcs Gyurko <szabolcs.gyurko@tlt.hu>");
|
||||
MODULE_DESCRIPTION("1-wire Driver Dallas 2760 battery monitor chip");
|
||||
|
|
|
@ -154,19 +154,7 @@ static struct w1_family w1_ds2780_family = {
|
|||
.fid = W1_FAMILY_DS2780,
|
||||
.fops = &w1_ds2780_fops,
|
||||
};
|
||||
|
||||
static int __init w1_ds2780_init(void)
|
||||
{
|
||||
return w1_register_family(&w1_ds2780_family);
|
||||
}
|
||||
|
||||
static void __exit w1_ds2780_exit(void)
|
||||
{
|
||||
w1_unregister_family(&w1_ds2780_family);
|
||||
}
|
||||
|
||||
module_init(w1_ds2780_init);
|
||||
module_exit(w1_ds2780_exit);
|
||||
module_w1_family(w1_ds2780_family);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Clifton Barnes <cabarnes@indesign-llc.com>");
|
||||
|
|
|
@ -151,19 +151,7 @@ static struct w1_family w1_ds2781_family = {
|
|||
.fid = W1_FAMILY_DS2781,
|
||||
.fops = &w1_ds2781_fops,
|
||||
};
|
||||
|
||||
static int __init w1_ds2781_init(void)
|
||||
{
|
||||
return w1_register_family(&w1_ds2781_family);
|
||||
}
|
||||
|
||||
static void __exit w1_ds2781_exit(void)
|
||||
{
|
||||
w1_unregister_family(&w1_ds2781_family);
|
||||
}
|
||||
|
||||
module_init(w1_ds2781_init);
|
||||
module_exit(w1_ds2781_exit);
|
||||
module_w1_family(w1_ds2781_family);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Renata Sayakhova <renata@oktetlabs.ru>");
|
||||
|
|
|
@ -427,16 +427,4 @@ static struct w1_family w1_family_1C = {
|
|||
.fid = W1_FAMILY_DS28E04,
|
||||
.fops = &w1_f1C_fops,
|
||||
};
|
||||
|
||||
static int __init w1_f1C_init(void)
|
||||
{
|
||||
return w1_register_family(&w1_family_1C);
|
||||
}
|
||||
|
||||
static void __exit w1_f1C_fini(void)
|
||||
{
|
||||
w1_unregister_family(&w1_family_1C);
|
||||
}
|
||||
|
||||
module_init(w1_f1C_init);
|
||||
module_exit(w1_f1C_fini);
|
||||
module_w1_family(w1_family_1C);
|
||||
|
|
|
@ -88,4 +88,16 @@ struct w1_family * w1_family_registered(u8);
|
|||
void w1_unregister_family(struct w1_family *);
|
||||
int w1_register_family(struct w1_family *);
|
||||
|
||||
/**
|
||||
* module_w1_driver() - Helper macro for registering a 1-Wire families
|
||||
* @__w1_family: w1_family struct
|
||||
*
|
||||
* Helper macro for 1-Wire families which do not do anything special in module
|
||||
* init/exit. This eliminates a lot of boilerplate. Each module may only
|
||||
* use this macro once, and calling it replaces module_init() and module_exit()
|
||||
*/
|
||||
#define module_w1_family(__w1_family) \
|
||||
module_driver(__w1_family, w1_register_family, \
|
||||
w1_unregister_family)
|
||||
|
||||
#endif /* __W1_FAMILY_H */
|
||||
|
|
Loading…
Reference in New Issue