提交 f1fc78a8 编写于 作者: B Bastian Blank 提交者: Linus Torvalds

[PATCH] s390, ccw - export modalias

This patch exports modalias for ccw devices.

So you can do:
 	modprobe `echo /sys/device/path_to_device/modalias`
and the proper driver will automatically be loaded by userspace.
Signed-off-by: NBastian Blank <waldi@debian.org>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 1e8e3383
...@@ -251,6 +251,23 @@ cutype_show (struct device *dev, struct device_attribute *attr, char *buf) ...@@ -251,6 +251,23 @@ cutype_show (struct device *dev, struct device_attribute *attr, char *buf)
id->cu_type, id->cu_model); id->cu_type, id->cu_model);
} }
static ssize_t
modalias_show (struct device *dev, struct device_attribute *attr, char *buf)
{
struct ccw_device *cdev = to_ccwdev(dev);
struct ccw_device_id *id = &(cdev->id);
int ret;
ret = sprintf(buf, "ccw:t%04Xm%02x",
id->cu_type, id->cu_model);
if (id->dev_type != 0)
ret += sprintf(buf + ret, "dt%04Xdm%02X\n",
id->dev_type, id->dev_model);
else
ret += sprintf(buf + ret, "dtdm\n");
return ret;
}
static ssize_t static ssize_t
online_show (struct device *dev, struct device_attribute *attr, char *buf) online_show (struct device *dev, struct device_attribute *attr, char *buf)
{ {
...@@ -448,6 +465,7 @@ static DEVICE_ATTR(chpids, 0444, chpids_show, NULL); ...@@ -448,6 +465,7 @@ static DEVICE_ATTR(chpids, 0444, chpids_show, NULL);
static DEVICE_ATTR(pimpampom, 0444, pimpampom_show, NULL); static DEVICE_ATTR(pimpampom, 0444, pimpampom_show, NULL);
static DEVICE_ATTR(devtype, 0444, devtype_show, NULL); static DEVICE_ATTR(devtype, 0444, devtype_show, NULL);
static DEVICE_ATTR(cutype, 0444, cutype_show, NULL); static DEVICE_ATTR(cutype, 0444, cutype_show, NULL);
static DEVICE_ATTR(modalias, 0444, modalias_show, NULL);
static DEVICE_ATTR(online, 0644, online_show, online_store); static DEVICE_ATTR(online, 0644, online_show, online_store);
extern struct device_attribute dev_attr_cmb_enable; extern struct device_attribute dev_attr_cmb_enable;
static DEVICE_ATTR(availability, 0444, available_show, NULL); static DEVICE_ATTR(availability, 0444, available_show, NULL);
...@@ -471,6 +489,7 @@ subchannel_add_files (struct device *dev) ...@@ -471,6 +489,7 @@ subchannel_add_files (struct device *dev)
static struct attribute * ccwdev_attrs[] = { static struct attribute * ccwdev_attrs[] = {
&dev_attr_devtype.attr, &dev_attr_devtype.attr,
&dev_attr_cutype.attr, &dev_attr_cutype.attr,
&dev_attr_modalias.attr,
&dev_attr_online.attr, &dev_attr_online.attr,
&dev_attr_cmb_enable.attr, &dev_attr_cmb_enable.attr,
&dev_attr_availability.attr, &dev_attr_availability.attr,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册