[PATCH] Add modalias to macio sysfs attributes

Benjamin Herrenschmidt benh at kernel.crashing.org
Tue Oct 11 08:17:40 EST 2005


On Mon, 2005-10-10 at 22:07 +0200, Olaf Hering wrote:
> Provide a "compatible" entry in /sys/bus/macio/devices/*/
> This can be used to load drivers via the modules.alias file.
> 
> Author: <schab at suse.de>
> Signed-off-by: Olaf Hering <olh at suse.de>

Acked-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>

> --- linux-2.6.13-rc7/drivers/macintosh/macio_sysfs.c.~1~	2005-08-26 16:32:13.000000000 +0200
> +++ linux-2.6.13-rc7/drivers/macintosh/macio_sysfs.c	2005-08-27 11:58:47.000000000 +0200
> @@ -39,6 +39,31 @@ compatible_show (struct device *dev, str
>  	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 (type, "%s\n");
>  
> @@ -46,5 +71,6 @@ struct device_attribute macio_dev_attrs[
>  	__ATTR_RO(name),
>  	__ATTR_RO(type),
>  	__ATTR_RO(compatible),
> +	__ATTR_RO(modalias),
>  	__ATTR_NULL
>  };




More information about the Linuxppc-dev mailing list