aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/mfd-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mfd/mfd-core.c')
-rw-r--r--drivers/mfd/mfd-core.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c
index 0c3a01cde2f7..f8b77711ad2d 100644
--- a/drivers/mfd/mfd-core.c
+++ b/drivers/mfd/mfd-core.c
@@ -74,12 +74,11 @@ static int mfd_platform_add_cell(struct platform_device *pdev,
74static int mfd_add_device(struct device *parent, int id, 74static int mfd_add_device(struct device *parent, int id,
75 const struct mfd_cell *cell, 75 const struct mfd_cell *cell,
76 struct resource *mem_base, 76 struct resource *mem_base,
77 int irq_base) 77 int irq_base, struct irq_domain *domain)
78{ 78{
79 struct resource *res; 79 struct resource *res;
80 struct platform_device *pdev; 80 struct platform_device *pdev;
81 struct device_node *np = NULL; 81 struct device_node *np = NULL;
82 struct irq_domain *domain = NULL;
83 int ret = -ENOMEM; 82 int ret = -ENOMEM;
84 int r; 83 int r;
85 84
@@ -97,7 +96,6 @@ static int mfd_add_device(struct device *parent, int id,
97 for_each_child_of_node(parent->of_node, np) { 96 for_each_child_of_node(parent->of_node, np) {
98 if (of_device_is_compatible(np, cell->of_compatible)) { 97 if (of_device_is_compatible(np, cell->of_compatible)) {
99 pdev->dev.of_node = np; 98 pdev->dev.of_node = np;
100 domain = irq_find_host(parent->of_node);
101 break; 99 break;
102 } 100 }
103 } 101 }
@@ -177,7 +175,7 @@ fail_alloc:
177int mfd_add_devices(struct device *parent, int id, 175int mfd_add_devices(struct device *parent, int id,
178 struct mfd_cell *cells, int n_devs, 176 struct mfd_cell *cells, int n_devs,
179 struct resource *mem_base, 177 struct resource *mem_base,
180 int irq_base) 178 int irq_base, struct irq_domain *domain)
181{ 179{
182 int i; 180 int i;
183 int ret = 0; 181 int ret = 0;
@@ -191,7 +189,8 @@ int mfd_add_devices(struct device *parent, int id,
191 for (i = 0; i < n_devs; i++) { 189 for (i = 0; i < n_devs; i++) {
192 atomic_set(&cnts[i], 0); 190 atomic_set(&cnts[i], 0);
193 cells[i].usage_count = &cnts[i]; 191 cells[i].usage_count = &cnts[i];
194 ret = mfd_add_device(parent, id, cells + i, mem_base, irq_base); 192 ret = mfd_add_device(parent, id, cells + i, mem_base,
193 irq_base, domain);
195 if (ret) 194 if (ret)
196 break; 195 break;
197 } 196 }
@@ -247,7 +246,8 @@ int mfd_clone_cell(const char *cell, const char **clones, size_t n_clones)
247 for (i = 0; i < n_clones; i++) { 246 for (i = 0; i < n_clones; i++) {
248 cell_entry.name = clones[i]; 247 cell_entry.name = clones[i];
249 /* don't give up if a single call fails; just report error */ 248 /* don't give up if a single call fails; just report error */
250 if (mfd_add_device(pdev->dev.parent, -1, &cell_entry, NULL, 0)) 249 if (mfd_add_device(pdev->dev.parent, -1, &cell_entry, NULL, 0,
250 NULL))
251 dev_err(dev, "failed to create platform device '%s'\n", 251 dev_err(dev, "failed to create platform device '%s'\n",
252 clones[i]); 252 clones[i]);
253 } 253 }