]> err.no Git - linux-2.6/blobdiff - drivers/s390/cio/ccwgroup.c
[S390] cio: Disable channel measurements (cmf) on shutdown/reboot.
[linux-2.6] / drivers / s390 / cio / ccwgroup.c
index e5ccda63e883a2cac7c9c277bcda9ac7b12e05f5..9c3b9ea1e66f9de6cd6c1f11c128822587523762 100644 (file)
@@ -152,16 +152,24 @@ __ccwgroup_create_symlinks(struct ccwgroup_device *gdev)
        return 0;
 }
 
-/*
- * try to add a new ccwgroup device for one driver
- * argc and argv[] are a list of bus_id's of devices
- * belonging to the driver.
+/**
+ * ccwgroup_create() - create and register a ccw group device
+ * @root: parent device for the new device
+ * @creator_id: identifier of creating driver
+ * @cdrv: ccw driver of slave devices
+ * @argc: number of slave devices
+ * @argv: bus ids of slave devices
+ *
+ * Create and register a new ccw group device as a child of @root. Slave
+ * devices are obtained from the list of bus ids given in @argv[] and must all
+ * belong to @cdrv.
+ * Returns:
+ *  %0 on success and an error code on failure.
+ * Context:
+ *  non-atomic
  */
-int
-ccwgroup_create(struct device *root,
-               unsigned int creator_id,
-               struct ccw_driver *cdrv,
-               int argc, char *argv[])
+int ccwgroup_create(struct device *root, unsigned int creator_id,
+                   struct ccw_driver *cdrv, int argc, char *argv[])
 {
        struct ccwgroup_device *gdev;
        int i;
@@ -359,7 +367,6 @@ ccwgroup_probe (struct device *dev)
        if ((ret = device_create_file(dev, &dev_attr_online)))
                return ret;
 
-       pr_debug("%s: device %s\n", __func__, gdev->dev.bus_id);
        ret = gdrv->probe ? gdrv->probe(gdev) : -ENODEV;
        if (ret)
                device_remove_file(dev, &dev_attr_online);
@@ -376,8 +383,6 @@ ccwgroup_remove (struct device *dev)
        gdev = to_ccwgroupdev(dev);
        gdrv = to_ccwgroupdrv(dev->driver);
 
-       pr_debug("%s: device %s\n", __func__, gdev->dev.bus_id);
-
        device_remove_file(dev, &dev_attr_online);
 
        if (gdrv && gdrv->remove)
@@ -393,8 +398,13 @@ static struct bus_type ccwgroup_bus_type = {
        .remove = ccwgroup_remove,
 };
 
-int
-ccwgroup_driver_register (struct ccwgroup_driver *cdriver)
+/**
+ * ccwgroup_driver_register() - register a ccw group driver
+ * @cdriver: driver to be registered
+ *
+ * This function is mainly a wrapper around driver_register().
+ */
+int ccwgroup_driver_register(struct ccwgroup_driver *cdriver)
 {
        /* register our new driver with the core */
        cdriver->driver.bus = &ccwgroup_bus_type;
@@ -409,8 +419,13 @@ __ccwgroup_match_all(struct device *dev, void *data)
        return 1;
 }
 
-void
-ccwgroup_driver_unregister (struct ccwgroup_driver *cdriver)
+/**
+ * ccwgroup_driver_unregister() - deregister a ccw group driver
+ * @cdriver: driver to be deregistered
+ *
+ * This function is mainly a wrapper around driver_unregister().
+ */
+void ccwgroup_driver_unregister(struct ccwgroup_driver *cdriver)
 {
        struct device *dev;
 
@@ -430,8 +445,16 @@ ccwgroup_driver_unregister (struct ccwgroup_driver *cdriver)
        driver_unregister(&cdriver->driver);
 }
 
-int
-ccwgroup_probe_ccwdev(struct ccw_device *cdev)
+/**
+ * ccwgroup_probe_ccwdev() - probe function for slave devices
+ * @cdev: ccw device to be probed
+ *
+ * This is a dummy probe function for ccw devices that are slave devices in
+ * a ccw group device.
+ * Returns:
+ *  always %0
+ */
+int ccwgroup_probe_ccwdev(struct ccw_device *cdev)
 {
        return 0;
 }
@@ -455,8 +478,15 @@ __ccwgroup_get_gdev_by_cdev(struct ccw_device *cdev)
        return NULL;
 }
 
-void
-ccwgroup_remove_ccwdev(struct ccw_device *cdev)
+/**
+ * ccwgroup_remove_ccwdev() - remove function for slave devices
+ * @cdev: ccw device to be removed
+ *
+ * This is a remove function for ccw devices that are slave devices in a ccw
+ * group device. It sets the ccw device offline and also deregisters the
+ * embedding ccw group device.
+ */
+void ccwgroup_remove_ccwdev(struct ccw_device *cdev)
 {
        struct ccwgroup_device *gdev;