Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

scwhab@suse.de and committed by
Paul Mackerras
dcb34abb 35e95e63

+26
+26
drivers/macintosh/macio_sysfs.c
··· 39 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 67 macio_config_of_attr (name, "%s\n"); 43 68 macio_config_of_attr (type, "%s\n"); 44 69 ··· 71 46 __ATTR_RO(name), 72 47 __ATTR_RO(type), 73 48 __ATTR_RO(compatible), 49 + __ATTR_RO(modalias), 74 50 __ATTR_NULL 75 51 };