summaryrefslogtreecommitdiff
path: root/core/pld/src/pld_snoc.c
diff options
context:
space:
mode:
authorYuanyuan Liu <yuanliu@codeaurora.org>2016-05-25 16:26:40 -0700
committerVishwajith Upendra <vishwaji@codeaurora.org>2016-06-14 14:28:17 -0700
commit5e25f531b5028e7fa2317054cb1d6142a25f4b6d (patch)
tree1f73db1cfa6b6166c391d89943988b05f6e42f26 /core/pld/src/pld_snoc.c
parent59f81e020e22ddd35b43632a7c1a911b04f43ae9 (diff)
downloadqcacld-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.c25
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);
}
/**