This patch exports modalias for ccw devices.
Signed-off-by: Bastian Blank <[email protected]>
---
drivers/s390/cio/device.c | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -252,6 +252,23 @@ cutype_show (struct device *dev, struct
}
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)
{
struct ccw_device *cdev = to_ccwdev(dev);
@@ -448,6 +465,7 @@ static DEVICE_ATTR(chpids, 0444, chpids_
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,
--
Spock: The odds of surviving another attack are 13562190123 to 1, Captain.
Bastian Blank <[email protected]> wrote:
>
> This patch exports modalias for ccw devices.
And why do we want to do that?
On Wed, 2005-10-12 at 12:59 -0700, Andrew Morton wrote:
> Bastian Blank <[email protected]> wrote:
> >
> > This patch exports modalias for ccw devices.
>
> And why do we want to do that?
The wanted to have some information for use by udev. After looking at
the patch I wonder why they can't use the cutype/devtype attributes.
They already contain the information that gets exported by the new
attribute. It might be a little bit harder to parse because devtype can
be "n/a" but that certainly isn't rocket science.
--
blue skies,
Martin
Martin Schwidefsky
Linux for zSeries Development & Services
IBM Deutschland Entwicklung GmbH
On Thu, Oct 13, 2005 at 11:09:38AM +0200, Martin Schwidefsky wrote:
> The wanted to have some information for use by udev. After looking at
> the patch I wonder why they can't use the cutype/devtype attributes.
> They already contain the information that gets exported by the new
> attribute. It might be a little bit harder to parse because devtype can
> be "n/a" but that certainly isn't rocket science.
The modalias entry is matched against the alias strings generated by
modpost and put into /lib/modules/$ver/modules.alias. This needs no
special knowledge about this sort of hardware.
Just take a look on how it is used by the pci and usb system.
Bastian
--
Where there's no emotion, there's no motive for violence.
-- Spock, "Dagger of the Mind", stardate 2715.1
On Thu, Oct 13, 2005 at 11:09:38AM +0200, Martin Schwidefsky wrote:
> The wanted to have some information for use by udev. After looking at
> the patch I wonder why they can't use the cutype/devtype attributes.
But anyway, one part is missing: The same string needs to be put in the
environment for hotplug as MODALIAS. And the n/a should be put as
dt0000dm00 in the string.
Bastian
--
There are always alternatives.
-- Spock, "The Galileo Seven", stardate 2822.3
On Wed, Oct 12, 2005 at 12:59:39PM -0700, Andrew Morton wrote:
> Bastian Blank <[email protected]> wrote:
> >
> > This patch exports modalias for ccw devices.
>
> And why do we want to do that?
So you can do:
modprobe `echo /sys/device/path_to_device/modalias`
and the proper driver will automatically be loaded by userspace.
thanks,
greg k-h