summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir.cohen@xorcom.com>2011-10-26 19:06:11 +0000
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>2011-10-26 19:06:11 +0000
commit30e341e403f85e9376507c9e8044f5cf6861eae1 (patch)
tree93556db12e287f80231bca4419db576da574dec1
parentae2b48f1ce94997de8e7e812b437c40836735184 (diff)
xpp: adapt to 'location' attribute removal:
* Reparent astribanks below their USB transport * This way their location can be derived from their hardware hierarchy. * The tradeoff is that once USB hardware is disconnected, there is no sysfs visibility of the astribank object even if it cannot be release yet due to open channels by asterisk * Thus, we'll need to migrate to "surprise removal" of dahdi devices... Signed-off-by: Oron Peled <oron.peled@xorcom.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@10281 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r--drivers/dahdi/xpp/xbus-sysfs.c23
1 files changed, 2 insertions, 21 deletions
diff --git a/drivers/dahdi/xpp/xbus-sysfs.c b/drivers/dahdi/xpp/xbus-sysfs.c
index c9f78f9..ccc1a01 100644
--- a/drivers/dahdi/xpp/xbus-sysfs.c
+++ b/drivers/dahdi/xpp/xbus-sysfs.c
@@ -438,16 +438,6 @@ static void astribank_release(struct device *dev)
xbus_free(xbus);
}
-static void toplevel_release(struct device *dev)
-{
- NOTICE("%s\n", __func__);
-}
-
-static struct device toplevel_device = {
- .release = toplevel_release,
- /* No Parent */
-};
-
static struct bus_type toplevel_bus_type = {
.name = "astribanks",
.match = astribank_match,
@@ -941,7 +931,7 @@ int xbus_sysfs_create(xbus_t *xbus)
astribank = &xbus->astribank;
XBUS_DBG(DEVICES, xbus, "\n");
astribank->bus = &toplevel_bus_type;
- astribank->parent = &toplevel_device;
+ astribank->parent = xbus->transport.transport_device;
dev_set_name(astribank, "xbus-%02d", xbus->num);
dev_set_drvdata(astribank, xbus);
astribank->release = astribank_release;
@@ -958,16 +948,10 @@ int __init xpp_driver_init(void)
int ret;
DBG(DEVICES, "SYSFS\n");
- dev_set_name(&toplevel_device, "astribanks");
- ret = device_register(&toplevel_device);
- if (ret) {
- ERR("%s: toplevel device_register failed: %d\n", __func__, ret);
- goto failed_toplevel;
- }
if((ret = bus_register(&toplevel_bus_type)) < 0) {
ERR("%s: bus_register(%s) failed. Error number %d",
__FUNCTION__, toplevel_bus_type.name, ret);
- goto failed_bus;
+ goto failed_toplevel;
}
if((ret = driver_register(&xpp_driver)) < 0) {
ERR("%s: driver_register(%s) failed. Error number %d",
@@ -984,8 +968,6 @@ failed_xpd_bus:
driver_unregister(&xpp_driver);
failed_xpp_driver:
bus_unregister(&toplevel_bus_type);
-failed_bus:
- device_unregister(&toplevel_device);
failed_toplevel:
return ret;
}
@@ -996,7 +978,6 @@ void xpp_driver_exit(void)
bus_unregister(&xpd_type);
driver_unregister(&xpp_driver);
bus_unregister(&toplevel_bus_type);
- device_unregister(&toplevel_device);
}
EXPORT_SYMBOL(xpd_driver_register);