diff options
Diffstat (limited to 'drivers/ipack/ipack.c')
| -rw-r--r-- | drivers/ipack/ipack.c | 36 | 
1 files changed, 26 insertions, 10 deletions
diff --git a/drivers/ipack/ipack.c b/drivers/ipack/ipack.c index 7ec6b208b1c..6e066c53acc 100644 --- a/drivers/ipack/ipack.c +++ b/drivers/ipack/ipack.c @@ -227,7 +227,7 @@ static int ipack_unregister_bus_member(struct device *dev, void *data)  	struct ipack_bus_device *bus = data;  	if (idev->bus == bus) -		ipack_device_unregister(idev); +		ipack_device_del(idev);  	return 1;  } @@ -419,7 +419,7 @@ out:  	return ret;  } -int ipack_device_register(struct ipack_device *dev) +int ipack_device_init(struct ipack_device *dev)  {  	int ret; @@ -428,6 +428,7 @@ int ipack_device_register(struct ipack_device *dev)  	dev->dev.parent = dev->bus->parent;  	dev_set_name(&dev->dev,  		     "ipack-dev.%u.%u", dev->bus->bus_nr, dev->slot); +	device_initialize(&dev->dev);  	if (dev->bus->ops->set_clockrate(dev, 8))  		dev_warn(&dev->dev, "failed to switch to 8 MHz operation for reading of device ID.\n"); @@ -447,19 +448,34 @@ int ipack_device_register(struct ipack_device *dev)  			dev_err(&dev->dev, "failed to switch to 32 MHz operation.\n");  	} -	ret = device_register(&dev->dev); -	if (ret < 0) -		kfree(dev->id); +	return 0; +} +EXPORT_SYMBOL_GPL(ipack_device_init); -	return ret; +int ipack_device_add(struct ipack_device *dev) +{ +	return device_add(&dev->dev); +} +EXPORT_SYMBOL_GPL(ipack_device_add); + +void ipack_device_del(struct ipack_device *dev) +{ +	device_del(&dev->dev); +	ipack_put_device(dev); +} +EXPORT_SYMBOL_GPL(ipack_device_del); + +void ipack_get_device(struct ipack_device *dev) +{ +	get_device(&dev->dev);  } -EXPORT_SYMBOL_GPL(ipack_device_register); +EXPORT_SYMBOL_GPL(ipack_get_device); -void ipack_device_unregister(struct ipack_device *dev) +void ipack_put_device(struct ipack_device *dev)  { -	device_unregister(&dev->dev); +	put_device(&dev->dev);  } -EXPORT_SYMBOL_GPL(ipack_device_unregister); +EXPORT_SYMBOL_GPL(ipack_put_device);  static int __init ipack_init(void)  {  |