diff options
author | Yuanyuan Liu <yuanliu@codeaurora.org> | 2016-05-25 16:26:40 -0700 |
---|---|---|
committer | Vishwajith Upendra <vishwaji@codeaurora.org> | 2016-06-14 14:28:17 -0700 |
commit | 5e25f531b5028e7fa2317054cb1d6142a25f4b6d (patch) | |
tree | 1f73db1cfa6b6166c391d89943988b05f6e42f26 /core/pld/src/pld_snoc.c | |
parent | 59f81e020e22ddd35b43632a7c1a911b04f43ae9 (diff) | |
download | qcacld-5e25f531b5028e7fa2317054cb1d6142a25f4b6d.tar.gz |
qcacld-3.0: Provide common functions of adding/deleting dev node
Provide common functions of adding/deleting dev node from PLD
global context. These two APIs should be called in probe/remove
callback functions.
CRs-Fixed: 1023650
Change-Id: Iff8157ab4396266ffb013700076d4107a3a21566
Diffstat (limited to 'core/pld/src/pld_snoc.c')
-rw-r--r-- | core/pld/src/pld_snoc.c | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/core/pld/src/pld_snoc.c b/core/pld/src/pld_snoc.c index 2ae4ab1029..b21e1b9c9e 100644 --- a/core/pld/src/pld_snoc.c +++ b/core/pld/src/pld_snoc.c @@ -50,8 +50,6 @@ static int pld_snoc_probe(struct device *dev) { struct pld_context *pld_context; - unsigned long flags; - struct dev_node *dev_node; int ret = 0; pld_context = pld_get_global_context(); @@ -60,17 +58,9 @@ static int pld_snoc_probe(struct device *dev) goto out; } - dev_node = kzalloc(sizeof(*dev_node), GFP_KERNEL); - if (dev_node == NULL) { - ret = -ENOMEM; + ret = pld_add_dev(pld_context, dev, PLD_BUS_TYPE_SNOC); + if (ret) goto out; - } - dev_node->dev = dev; - dev_node->bus_type = PLD_BUS_TYPE_SNOC; - - spin_lock_irqsave(&pld_context->pld_lock, flags); - list_add_tail(&dev_node->list, &pld_context->dev_list); - spin_unlock_irqrestore(&pld_context->pld_lock, flags); return pld_context->ops->probe(dev, PLD_BUS_TYPE_SNOC, NULL, NULL); @@ -91,8 +81,6 @@ out: static void pld_snoc_remove(struct device *dev) { struct pld_context *pld_context; - unsigned long flags; - struct dev_node *dev_node, *tmp; pld_context = pld_get_global_context(); @@ -101,14 +89,7 @@ static void pld_snoc_remove(struct device *dev) pld_context->ops->remove(dev, PLD_BUS_TYPE_SNOC); - spin_lock_irqsave(&pld_context->pld_lock, flags); - list_for_each_entry_safe(dev_node, tmp, &pld_context->dev_list, list) { - if (dev_node->dev == dev) { - list_del(&dev_node->list); - kfree(dev_node); - } - } - spin_unlock_irqrestore(&pld_context->pld_lock, flags); + pld_del_dev(pld_context, dev); } /** |