浏览代码

[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: Bastian Blank <waldi@debian.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Bastian Blank 19 年之前
父节点
当前提交
f1fc78a8c7
共有 1 个文件被更改,包括 19 次插入0 次删除
  1. 19 0
      drivers/s390/cio/device.c

+ 19 - 0
drivers/s390/cio/device.c

@@ -251,6 +251,23 @@ cutype_show (struct device *dev, struct device_attribute *attr, char *buf)
 		       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
 online_show (struct device *dev, struct device_attribute *attr, char *buf)
 {
@@ -448,6 +465,7 @@ static DEVICE_ATTR(chpids, 0444, chpids_show, NULL);
 static DEVICE_ATTR(pimpampom, 0444, pimpampom_show, NULL);
 static DEVICE_ATTR(devtype, 0444, devtype_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);
 extern struct device_attribute dev_attr_cmb_enable;
 static DEVICE_ATTR(availability, 0444, available_show, NULL);
@@ -471,6 +489,7 @@ subchannel_add_files (struct device *dev)
 static struct attribute * ccwdev_attrs[] = {
 	&dev_attr_devtype.attr,
 	&dev_attr_cutype.attr,
+	&dev_attr_modalias.attr,
 	&dev_attr_online.attr,
 	&dev_attr_cmb_enable.attr,
 	&dev_attr_availability.attr,