0014-MIPS-ralink-add-CPU-interrupt-controller-to-of_irq_i.patch 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. From 9afd2ba44145009578d9d445183480a698cc04f2 Mon Sep 17 00:00:00 2001
  2. From: Gabor Juhos <[email protected]>
  3. Date: Thu, 31 Jan 2013 20:43:30 +0100
  4. Subject: [PATCH 14/79] MIPS: ralink: add CPU interrupt controller to
  5. of_irq_ids
  6. Convert the ralink IRQ code to make use of the new MIPS IRQ controller OF
  7. mappings.
  8. Signed-off-by: Gabor Juhos <[email protected]>
  9. Signed-off-by: John Crispin <[email protected]>
  10. Acked-by: David Daney <[email protected]>
  11. Patchwork: http://patchwork.linux-mips.org/patch/4900/
  12. ---
  13. arch/mips/ralink/dts/rt3050.dtsi | 10 ++++++++++
  14. arch/mips/ralink/irq.c | 10 +++++++---
  15. 2 files changed, 17 insertions(+), 3 deletions(-)
  16. diff --git a/arch/mips/ralink/dts/rt3050.dtsi b/arch/mips/ralink/dts/rt3050.dtsi
  17. index fd49daa..069d066 100644
  18. --- a/arch/mips/ralink/dts/rt3050.dtsi
  19. +++ b/arch/mips/ralink/dts/rt3050.dtsi
  20. @@ -13,6 +13,13 @@
  21. bootargs = "console=ttyS0,57600 init=/init";
  22. };
  23. + cpuintc: cpuintc@0 {
  24. + #address-cells = <0>;
  25. + #interrupt-cells = <1>;
  26. + interrupt-controller;
  27. + compatible = "mti,cpu-interrupt-controller";
  28. + };
  29. +
  30. palmbus@10000000 {
  31. compatible = "palmbus";
  32. reg = <0x10000000 0x200000>;
  33. @@ -37,6 +44,9 @@
  34. interrupt-controller;
  35. #interrupt-cells = <1>;
  36. +
  37. + interrupt-parent = <&cpuintc>;
  38. + interrupts = <2>;
  39. };
  40. memc@300 {
  41. diff --git a/arch/mips/ralink/irq.c b/arch/mips/ralink/irq.c
  42. index e62c975..6d054c5 100644
  43. --- a/arch/mips/ralink/irq.c
  44. +++ b/arch/mips/ralink/irq.c
  45. @@ -128,8 +128,11 @@ static int __init intc_of_init(struct device_node *node,
  46. {
  47. struct resource res;
  48. struct irq_domain *domain;
  49. + int irq;
  50. - mips_cpu_irq_init();
  51. + irq = irq_of_parse_and_map(node, 0);
  52. + if (!irq)
  53. + panic("Failed to get INTC IRQ");
  54. if (of_address_to_resource(node, 0, &res))
  55. panic("Failed to get intc memory range");
  56. @@ -156,8 +159,8 @@ static int __init intc_of_init(struct device_node *node,
  57. rt_intc_w32(INTC_INT_GLOBAL, INTC_REG_ENABLE);
  58. - irq_set_chained_handler(RALINK_CPU_IRQ_INTC, ralink_intc_irq_handler);
  59. - irq_set_handler_data(RALINK_CPU_IRQ_INTC, domain);
  60. + irq_set_chained_handler(irq, ralink_intc_irq_handler);
  61. + irq_set_handler_data(irq, domain);
  62. cp0_perfcount_irq = irq_create_mapping(domain, 9);
  63. @@ -165,6 +168,7 @@ static int __init intc_of_init(struct device_node *node,
  64. }
  65. static struct of_device_id __initdata of_irq_ids[] = {
  66. + { .compatible = "mti,cpu-interrupt-controller", .data = mips_cpu_intc_init },
  67. { .compatible = "ralink,rt2880-intc", .data = intc_of_init },
  68. {},
  69. };
  70. --
  71. 1.7.10.4