w1: support auto-load of w1_bq27000 module.
1/ change request_module call to zero-pad single digit family numbers. This appears to be the intention of the code, but not what it actually does. This means that the alias created for W1_FAMILY_SMEM_01 might actually be useful. 2/ Define a family name for the BQ27000 battery charge monitor. Unfortunately this is the same number as W1_FAMILY_SMEM_01 so if both a compiled on a system, one module might need to be blacklisted. 3/ Add a MODULE_ALIAS for the bq27000. Acked-by: Evgeniy Polyakov <zbr@ioremap.net> Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4b97b27939
commit
4b7e4f8289
|
@ -88,7 +88,7 @@ static struct w1_family_ops w1_bq27000_fops = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct w1_family w1_bq27000_family = {
|
static struct w1_family w1_bq27000_family = {
|
||||||
.fid = 1,
|
.fid = W1_FAMILY_BQ27000,
|
||||||
.fops = &w1_bq27000_fops,
|
.fops = &w1_bq27000_fops,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ module_exit(w1_bq27000_exit);
|
||||||
|
|
||||||
module_param(F_ID, int, S_IRUSR);
|
module_param(F_ID, int, S_IRUSR);
|
||||||
MODULE_PARM_DESC(F_ID, "1-wire slave FID for BQ device");
|
MODULE_PARM_DESC(F_ID, "1-wire slave FID for BQ device");
|
||||||
|
MODULE_ALIAS("w1-family-" __stringify(W1_FAMILY_BQ27000));
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
MODULE_AUTHOR("Texas Instruments Ltd");
|
MODULE_AUTHOR("Texas Instruments Ltd");
|
||||||
MODULE_DESCRIPTION("HDQ/1-wire slave driver bq27000 battery monitor chip");
|
MODULE_DESCRIPTION("HDQ/1-wire slave driver bq27000 battery monitor chip");
|
||||||
|
|
|
@ -727,7 +727,7 @@ int w1_attach_slave_device(struct w1_master *dev, struct w1_reg_num *rn)
|
||||||
|
|
||||||
/* slave modules need to be loaded in a context with unlocked mutex */
|
/* slave modules need to be loaded in a context with unlocked mutex */
|
||||||
mutex_unlock(&dev->mutex);
|
mutex_unlock(&dev->mutex);
|
||||||
request_module("w1-family-0x%0x", rn->family);
|
request_module("w1-family-0x%02x", rn->family);
|
||||||
mutex_lock(&dev->mutex);
|
mutex_lock(&dev->mutex);
|
||||||
|
|
||||||
spin_lock(&w1_flock);
|
spin_lock(&w1_flock);
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include <linux/atomic.h>
|
#include <linux/atomic.h>
|
||||||
|
|
||||||
#define W1_FAMILY_DEFAULT 0
|
#define W1_FAMILY_DEFAULT 0
|
||||||
|
#define W1_FAMILY_BQ27000 0x01
|
||||||
#define W1_FAMILY_SMEM_01 0x01
|
#define W1_FAMILY_SMEM_01 0x01
|
||||||
#define W1_FAMILY_SMEM_81 0x81
|
#define W1_FAMILY_SMEM_81 0x81
|
||||||
#define W1_THERM_DS18S20 0x10
|
#define W1_THERM_DS18S20 0x10
|
||||||
|
|
Loading…
Reference in New Issue