aboutsummaryrefslogtreecommitdiff
path: root/arch/s390/include/asm/ccwgroup.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/include/asm/ccwgroup.h')
-rw-r--r--arch/s390/include/asm/ccwgroup.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/s390/include/asm/ccwgroup.h b/arch/s390/include/asm/ccwgroup.h
index f2ef34f6d6e..057ce0ca637 100644
--- a/arch/s390/include/asm/ccwgroup.h
+++ b/arch/s390/include/asm/ccwgroup.h
@@ -6,14 +6,14 @@ struct ccw_driver;
/**
* struct ccwgroup_device - ccw group device
- * @creator_id: unique number of the driver
* @state: online/offline state
* @count: number of attached slave devices
* @dev: embedded device structure
* @cdev: variable number of slave devices, allocated as needed
+ * @ungroup_work: work to be done when a ccwgroup notifier has action
+ * type %BUS_NOTIFY_UNBIND_DRIVER
*/
struct ccwgroup_device {
- unsigned long creator_id;
enum {
CCWGROUP_OFFLINE,
CCWGROUP_ONLINE,
@@ -24,6 +24,7 @@ struct ccwgroup_device {
/* public: */
unsigned int count;
struct device dev;
+ struct work_struct ungroup_work;
struct ccw_device *cdev[0];
};
@@ -61,6 +62,9 @@ extern void ccwgroup_driver_unregister (struct ccwgroup_driver *cdriver);
int ccwgroup_create_dev(struct device *root, struct ccwgroup_driver *gdrv,
int num_devices, const char *buf);
+extern int ccwgroup_set_online(struct ccwgroup_device *gdev);
+extern int ccwgroup_set_offline(struct ccwgroup_device *gdev);
+
extern int ccwgroup_probe_ccwdev(struct ccw_device *cdev);
extern void ccwgroup_remove_ccwdev(struct ccw_device *cdev);