Commit 4b7e4f82 authored by NeilBrown's avatar NeilBrown Committed by Greg Kroah-Hartman

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: default avatarEvgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4b97b279
...@@ -88,7 +88,7 @@ static struct w1_family_ops w1_bq27000_fops = { ...@@ -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); ...@@ -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) ...@@ -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 @@ ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment