mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-11 00:08:50 +00:00
s390/ccwgroup: allow drivers to call set_{on,off}line
Allow drivers to enable/disable ccwgroup devices. Acked-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com> Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
cff971026d
commit
683c3dcef4
@ -59,6 +59,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);
|
||||
|
||||
|
@ -65,7 +65,15 @@ static void __ccwgroup_remove_cdev_refs(struct ccwgroup_device *gdev)
|
||||
}
|
||||
}
|
||||
|
||||
static int ccwgroup_set_online(struct ccwgroup_device *gdev)
|
||||
/**
|
||||
* ccwgroup_set_online() - enable a ccwgroup device
|
||||
* @gdev: target ccwgroup device
|
||||
*
|
||||
* This function attempts to put the ccwgroup device into the online state.
|
||||
* Returns:
|
||||
* %0 on success and a negative error value on failure.
|
||||
*/
|
||||
int ccwgroup_set_online(struct ccwgroup_device *gdev)
|
||||
{
|
||||
struct ccwgroup_driver *gdrv = to_ccwgroupdrv(gdev->dev.driver);
|
||||
int ret = -EINVAL;
|
||||
@ -84,8 +92,17 @@ out:
|
||||
atomic_set(&gdev->onoff, 0);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(ccwgroup_set_online);
|
||||
|
||||
static int ccwgroup_set_offline(struct ccwgroup_device *gdev)
|
||||
/**
|
||||
* ccwgroup_set_offline() - disable a ccwgroup device
|
||||
* @gdev: target ccwgroup device
|
||||
*
|
||||
* This function attempts to put the ccwgroup device into the offline state.
|
||||
* Returns:
|
||||
* %0 on success and a negative error value on failure.
|
||||
*/
|
||||
int ccwgroup_set_offline(struct ccwgroup_device *gdev)
|
||||
{
|
||||
struct ccwgroup_driver *gdrv = to_ccwgroupdrv(gdev->dev.driver);
|
||||
int ret = -EINVAL;
|
||||
@ -104,6 +121,7 @@ out:
|
||||
atomic_set(&gdev->onoff, 0);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(ccwgroup_set_offline);
|
||||
|
||||
static ssize_t ccwgroup_online_store(struct device *dev,
|
||||
struct device_attribute *attr,
|
||||
|
Loading…
x
Reference in New Issue
Block a user