modules making use of irq domains at the very least need access to the add/remove/lookup routines, though there's nothing preventing them from using the remainder of the public API, either. The current set of exports seem primarily geared at DT-enabled platforms using DT-backed IRQ domains, where many of the API accesses are hidden away in OF code. The non-DT cases need to do most of this on their own.
Unified · Split
| @@ -122,6 +122,7 @@ void irq_domain_remove(struct irq_domain *domain) · 121 unmodified lines | ||
| 122 | 122 | |
| 123 | 123 | irq_domain_free(domain); |
| 124 | 124 | } |
| 125 | +EXPORT_SYMBOL_GPL(irq_domain_remove); | |
| 125 | 126 | |
| 126 | 127 | static unsigned int irq_domain_legacy_revmap(struct irq_domain *domain, |
| 127 | 128 | irq_hw_number_t hwirq) |
| @@ -209,6 +210,7 @@ struct irq_domain *irq_domain_add_legacy(struct device_node *of_node, · 81 unmodified lines | ||
| 209 | 210 | irq_domain_add(domain); |
| 210 | 211 | return domain; |
| 211 | 212 | } |
| 213 | +EXPORT_SYMBOL_GPL(irq_domain_add_legacy); | |
| 212 | 214 | |
| 213 | 215 | /** |
| 214 | 216 | * irq_domain_add_linear() - Allocate and register a legacy revmap irq_domain. |
| @@ -238,6 +240,7 @@ struct irq_domain *irq_domain_add_linear(struct device_node *of_node, · 23 unmodified lines | ||
| 238 | 240 | irq_domain_add(domain); |
| 239 | 241 | return domain; |
| 240 | 242 | } |
| 243 | +EXPORT_SYMBOL_GPL(irq_domain_add_linear); | |
| 241 | 244 | |
| 242 | 245 | struct irq_domain *irq_domain_add_nomap(struct device_node *of_node, |
| 243 | 246 | unsigned int max_irq, |
| @@ -252,6 +255,7 @@ struct irq_domain *irq_domain_add_nomap(struct device_node *of_node, · 8 unmodified lines | ||
| 252 | 255 | } |
| 253 | 256 | return domain; |
| 254 | 257 | } |
| 258 | +EXPORT_SYMBOL_GPL(irq_domain_add_nomap); | |
| 255 | 259 | |
| 256 | 260 | /** |
| 257 | 261 | * irq_domain_add_tree() |
| @@ -273,6 +277,7 @@ struct irq_domain *irq_domain_add_tree(struct device_node *of_node, · 15 unmodified lines | ||
| 273 | 277 | } |
| 274 | 278 | return domain; |
| 275 | 279 | } |
| 280 | +EXPORT_SYMBOL_GPL(irq_domain_add_tree); | |
| 276 | 281 | |
| 277 | 282 | /** |
| 278 | 283 | * irq_find_host() - Locates a domain for a given device node |
| @@ -320,6 +325,7 @@ void irq_set_default_host(struct irq_domain *domain) · 41 unmodified lines | ||
| 320 | 325 | |
| 321 | 326 | irq_default_domain = domain; |
| 322 | 327 | } |
| 328 | +EXPORT_SYMBOL_GPL(irq_set_default_host); | |
| 323 | 329 | |
| 324 | 330 | static int irq_setup_virq(struct irq_domain *domain, unsigned int virq, |
| 325 | 331 | irq_hw_number_t hwirq) |
| @@ -378,6 +384,7 @@ unsigned int irq_create_direct_mapping(struct irq_domain *domain) · 52 unmodified lines | ||
| 378 | 384 | |
| 379 | 385 | return virq; |
| 380 | 386 | } |
| 387 | +EXPORT_SYMBOL_GPL(irq_create_direct_mapping); | |
| 381 | 388 | |
| 382 | 389 | /** |
| 383 | 390 | * irq_create_mapping() - Map a hardware interrupt into linux irq space |
| @@ -617,6 +624,7 @@ unsigned int irq_radix_revmap_lookup(struct irq_domain *domain, · 233 unmodified lines | ||
| 617 | 624 | */ |
| 618 | 625 | return irq_data ? irq_data->irq : irq_find_mapping(domain, hwirq); |
| 619 | 626 | } |
| 627 | +EXPORT_SYMBOL_GPL(irq_radix_revmap_lookup); | |
| 620 | 628 | |
| 621 | 629 | /** |
| 622 | 630 | * irq_radix_revmap_insert() - Insert a hw irq to linux irq number mapping. |
| @@ -641,6 +649,7 @@ void irq_radix_revmap_insert(struct irq_domain *domain, unsigned int virq, · 18 unmodified lines | ||
| 641 | 649 | mutex_unlock(&revmap_trees_mutex); |
| 642 | 650 | } |
| 643 | 651 | } |
| 652 | +EXPORT_SYMBOL_GPL(irq_radix_revmap_insert); | |
| 644 | 653 | |
| 645 | 654 | /** |
| 646 | 655 | * irq_linear_revmap() - Find a linux irq from a hw irq number. |
| @@ -674,6 +683,7 @@ unsigned int irq_linear_revmap(struct irq_domain *domain, · 27 unmodified lines | ||
| 674 | 683 | |
| 675 | 684 | return revmap[hwirq]; |
| 676 | 685 | } |
| 686 | +EXPORT_SYMBOL_GPL(irq_linear_revmap); | |
| 677 | 687 | |
| 678 | 688 | #ifdef CONFIG_IRQ_DOMAIN_DEBUG |
| 679 | 689 | static int virq_debug_show(struct seq_file *m, void *private) |