diff options
author | scwhab@suse.de <scwhab@suse.de> | 2005-10-28 20:46:20 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-10-29 00:35:58 -0400 |
commit | dcb34abb4d9bae0588c5c11101ed6afcee71f895 (patch) | |
tree | 41e79b5d302ddb08745e93891a6dd4e4a00c208a /drivers/macintosh | |
parent | 35e95e63995f3e52178db4b769120ce60deb6b54 (diff) |
[PATCH] Add modalias to macio sysfs attributes
Provide a "compatible" entry in /sys/bus/macio/devices/*/ This can be used
to load drivers via the modules.alias file.
Signed-off-by: Olaf Hering <olh@suse.de>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'drivers/macintosh')
-rw-r--r-- | drivers/macintosh/macio_sysfs.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/macintosh/macio_sysfs.c b/drivers/macintosh/macio_sysfs.c index 97d22bb4516a..7f7d4eaca870 100644 --- a/drivers/macintosh/macio_sysfs.c +++ b/drivers/macintosh/macio_sysfs.c | |||
@@ -39,6 +39,31 @@ compatible_show (struct device *dev, struct device_attribute *attr, char *buf) | |||
39 | return length; | 39 | return length; |
40 | } | 40 | } |
41 | 41 | ||
42 | static ssize_t modalias_show (struct device *dev, struct device_attribute *attr, | ||
43 | char *buf) | ||
44 | { | ||
45 | struct of_device *of; | ||
46 | char *compat; | ||
47 | int cplen; | ||
48 | int length; | ||
49 | |||
50 | of = &to_macio_device (dev)->ofdev; | ||
51 | compat = (char *) get_property (of->node, "compatible", &cplen); | ||
52 | if (!compat) compat = "", cplen = 1; | ||
53 | length = sprintf (buf, "of:N%sT%s", of->node->name, of->node->type); | ||
54 | buf += length; | ||
55 | while (cplen > 0) { | ||
56 | int l; | ||
57 | length += sprintf (buf, "C%s", compat); | ||
58 | buf += length; | ||
59 | l = strlen (compat) + 1; | ||
60 | compat += l; | ||
61 | cplen -= l; | ||
62 | } | ||
63 | |||
64 | return length; | ||
65 | } | ||
66 | |||
42 | macio_config_of_attr (name, "%s\n"); | 67 | macio_config_of_attr (name, "%s\n"); |
43 | macio_config_of_attr (type, "%s\n"); | 68 | macio_config_of_attr (type, "%s\n"); |
44 | 69 | ||
@@ -46,5 +71,6 @@ struct device_attribute macio_dev_attrs[] = { | |||
46 | __ATTR_RO(name), | 71 | __ATTR_RO(name), |
47 | __ATTR_RO(type), | 72 | __ATTR_RO(type), |
48 | __ATTR_RO(compatible), | 73 | __ATTR_RO(compatible), |
74 | __ATTR_RO(modalias), | ||
49 | __ATTR_NULL | 75 | __ATTR_NULL |
50 | }; | 76 | }; |