[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>
This commit is contained in:
parent
35e95e6399
commit
dcb34abb4d
@ -39,6 +39,31 @@ compatible_show (struct device *dev, struct device_attribute *attr, char *buf)
|
|||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static ssize_t modalias_show (struct device *dev, struct device_attribute *attr,
|
||||||
|
char *buf)
|
||||||
|
{
|
||||||
|
struct of_device *of;
|
||||||
|
char *compat;
|
||||||
|
int cplen;
|
||||||
|
int length;
|
||||||
|
|
||||||
|
of = &to_macio_device (dev)->ofdev;
|
||||||
|
compat = (char *) get_property (of->node, "compatible", &cplen);
|
||||||
|
if (!compat) compat = "", cplen = 1;
|
||||||
|
length = sprintf (buf, "of:N%sT%s", of->node->name, of->node->type);
|
||||||
|
buf += length;
|
||||||
|
while (cplen > 0) {
|
||||||
|
int l;
|
||||||
|
length += sprintf (buf, "C%s", compat);
|
||||||
|
buf += length;
|
||||||
|
l = strlen (compat) + 1;
|
||||||
|
compat += l;
|
||||||
|
cplen -= l;
|
||||||
|
}
|
||||||
|
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
macio_config_of_attr (name, "%s\n");
|
macio_config_of_attr (name, "%s\n");
|
||||||
macio_config_of_attr (type, "%s\n");
|
macio_config_of_attr (type, "%s\n");
|
||||||
|
|
||||||
@ -46,5 +71,6 @@ struct device_attribute macio_dev_attrs[] = {
|
|||||||
__ATTR_RO(name),
|
__ATTR_RO(name),
|
||||||
__ATTR_RO(type),
|
__ATTR_RO(type),
|
||||||
__ATTR_RO(compatible),
|
__ATTR_RO(compatible),
|
||||||
|
__ATTR_RO(modalias),
|
||||||
__ATTR_NULL
|
__ATTR_NULL
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user