aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/of/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/of/irq.c')
-rw-r--r--drivers/of/irq.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 6dacacf22df4..6839bda3ce3c 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -36,13 +36,12 @@
36 */ 36 */
37unsigned int irq_of_parse_and_map(struct device_node *dev, int index) 37unsigned int irq_of_parse_and_map(struct device_node *dev, int index)
38{ 38{
39 struct of_irq oirq; 39 struct of_phandle_args oirq;
40 40
41 if (of_irq_parse_one(dev, index, &oirq)) 41 if (of_irq_parse_one(dev, index, &oirq))
42 return 0; 42 return 0;
43 43
44 return irq_create_of_mapping(oirq.controller, oirq.specifier, 44 return irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count);
45 oirq.size);
46} 45}
47EXPORT_SYMBOL_GPL(irq_of_parse_and_map); 46EXPORT_SYMBOL_GPL(irq_of_parse_and_map);
48 47
@@ -94,7 +93,7 @@ struct device_node *of_irq_find_parent(struct device_node *child)
94 * node exist for the parent. 93 * node exist for the parent.
95 */ 94 */
96int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec, 95int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec,
97 u32 ointsize, const __be32 *addr, struct of_irq *out_irq) 96 u32 ointsize, const __be32 *addr, struct of_phandle_args *out_irq)
98{ 97{
99 struct device_node *ipar, *tnode, *old = NULL, *newpar = NULL; 98 struct device_node *ipar, *tnode, *old = NULL, *newpar = NULL;
100 const __be32 *tmp, *imap, *imask; 99 const __be32 *tmp, *imap, *imask;
@@ -156,10 +155,10 @@ int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec,
156 NULL) { 155 NULL) {
157 pr_debug(" -> got it !\n"); 156 pr_debug(" -> got it !\n");
158 for (i = 0; i < intsize; i++) 157 for (i = 0; i < intsize; i++)
159 out_irq->specifier[i] = 158 out_irq->args[i] =
160 of_read_number(intspec +i, 1); 159 of_read_number(intspec +i, 1);
161 out_irq->size = intsize; 160 out_irq->args_count = intsize;
162 out_irq->controller = ipar; 161 out_irq->np = ipar;
163 of_node_put(old); 162 of_node_put(old);
164 return 0; 163 return 0;
165 } 164 }
@@ -280,7 +279,7 @@ EXPORT_SYMBOL_GPL(of_irq_parse_raw);
280 * This function resolves an interrupt, walking the tree, for a given 279 * This function resolves an interrupt, walking the tree, for a given
281 * device-tree node. It's the high level pendant to of_irq_parse_raw(). 280 * device-tree node. It's the high level pendant to of_irq_parse_raw().
282 */ 281 */
283int of_irq_parse_one(struct device_node *device, int index, struct of_irq *out_irq) 282int of_irq_parse_one(struct device_node *device, int index, struct of_phandle_args *out_irq)
284{ 283{
285 struct device_node *p; 284 struct device_node *p;
286 const __be32 *intspec, *tmp, *addr; 285 const __be32 *intspec, *tmp, *addr;