aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ipack/ipack.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ipack/ipack.c')
-rw-r--r--drivers/ipack/ipack.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/drivers/ipack/ipack.c b/drivers/ipack/ipack.c
index 4f913aa88971..6e066c53acce 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)
227 struct ipack_bus_device *bus = data; 227 struct ipack_bus_device *bus = data;
228 228
229 if (idev->bus == bus) 229 if (idev->bus == bus)
230 ipack_device_unregister(idev); 230 ipack_device_del(idev);
231 231
232 return 1; 232 return 1;
233} 233}
@@ -419,7 +419,7 @@ out:
419 return ret; 419 return ret;
420} 420}
421 421
422int ipack_device_register(struct ipack_device *dev) 422int ipack_device_init(struct ipack_device *dev)
423{ 423{
424 int ret; 424 int ret;
425 425
@@ -428,6 +428,7 @@ int ipack_device_register(struct ipack_device *dev)
428 dev->dev.parent = dev->bus->parent; 428 dev->dev.parent = dev->bus->parent;
429 dev_set_name(&dev->dev, 429 dev_set_name(&dev->dev,
430 "ipack-dev.%u.%u", dev->bus->bus_nr, dev->slot); 430 "ipack-dev.%u.%u", dev->bus->bus_nr, dev->slot);
431 device_initialize(&dev->dev);
431 432
432 if (dev->bus->ops->set_clockrate(dev, 8)) 433 if (dev->bus->ops->set_clockrate(dev, 8))
433 dev_warn(&dev->dev, "failed to switch to 8 MHz operation for reading of device ID.\n"); 434 dev_warn(&dev->dev, "failed to switch to 8 MHz operation for reading of device ID.\n");
@@ -447,19 +448,22 @@ int ipack_device_register(struct ipack_device *dev)
447 dev_err(&dev->dev, "failed to switch to 32 MHz operation.\n"); 448 dev_err(&dev->dev, "failed to switch to 32 MHz operation.\n");
448 } 449 }
449 450
450 ret = device_register(&dev->dev); 451 return 0;
451 if (ret < 0) 452}
452 kfree(dev->id); 453EXPORT_SYMBOL_GPL(ipack_device_init);
453 454
454 return ret; 455int ipack_device_add(struct ipack_device *dev)
456{
457 return device_add(&dev->dev);
455} 458}
456EXPORT_SYMBOL_GPL(ipack_device_register); 459EXPORT_SYMBOL_GPL(ipack_device_add);
457 460
458void ipack_device_unregister(struct ipack_device *dev) 461void ipack_device_del(struct ipack_device *dev)
459{ 462{
460 device_unregister(&dev->dev); 463 device_del(&dev->dev);
464 ipack_put_device(dev);
461} 465}
462EXPORT_SYMBOL_GPL(ipack_device_unregister); 466EXPORT_SYMBOL_GPL(ipack_device_del);
463 467
464void ipack_get_device(struct ipack_device *dev) 468void ipack_get_device(struct ipack_device *dev)
465{ 469{