Commit a30e93186c607684ed2d8283c95d30c7f1007aa3

Authored by Olof Johansson

Merge tag 'renesas-soc-fixes-for-v3.19' of git://git.kernel.org/pub/scm/linux/ke…

…rnel/git/horms/renesas into fixes

Merge "Renesas ARM Based SoC Fixes for v3.19" from Simon Horman:

Renesas ARM Based SoC Fixes for v3.19

This pull request is based on the last round of SoC updates for v3.19,
Fourth Round of Renesas ARM Based SoC Updates for v3.19, tagged as
renesas-soc3-for-v3.19, merged into your next/soc branch and included in
v3.19-rc1.

- ARM: shmobile: r8a7740: Instantiate GIC from C board code in legacy builds

  Set .control_parent for all irqpin instances for sh73a0 SoC when booting
  using legacy C.

- ARM: shmobile: r8a7740: Instantiate GIC from C board code in legacy builds

  This fixes a long standing problem which has been present since
  the sh73a0 SoC started using the INTC External IRQ pin driver.

  The patch that introduced the problem is 341eb5465f67437a ("ARM:
  shmobile: INTC External IRQ pin driver on sh73a0") which was included
  in v3.10.

* tag 'renesas-soc-fixes-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: sh73a0 legacy: Set .control_parent for all irqpin instances
  ARM: shmobile: r8a7740: Instantiate GIC from C board code in legacy builds

Showing 2 changed files Side-by-side Diff

arch/arm/mach-shmobile/setup-r8a7740.c
... ... @@ -800,7 +800,14 @@
800 800 void __iomem *intc_msk_base = ioremap_nocache(0xe6900040, 0x10);
801 801 void __iomem *pfc_inta_ctrl = ioremap_nocache(0xe605807c, 0x4);
802 802  
  803 +#ifdef CONFIG_ARCH_SHMOBILE_LEGACY
  804 + void __iomem *gic_dist_base = ioremap_nocache(0xc2800000, 0x1000);
  805 + void __iomem *gic_cpu_base = ioremap_nocache(0xc2000000, 0x1000);
  806 +
  807 + gic_init(0, 29, gic_dist_base, gic_cpu_base);
  808 +#else
803 809 irqchip_init();
  810 +#endif
804 811  
805 812 /* route signals to GIC */
806 813 iowrite32(0x0, pfc_inta_ctrl);
arch/arm/mach-shmobile/setup-sh73a0.c
... ... @@ -595,6 +595,7 @@
595 595  
596 596 static struct renesas_intc_irqpin_config irqpin0_platform_data = {
597 597 .irq_base = irq_pin(0), /* IRQ0 -> IRQ7 */
  598 + .control_parent = true,
598 599 };
599 600  
600 601 static struct resource irqpin0_resources[] = {
... ... @@ -656,6 +657,7 @@
656 657  
657 658 static struct renesas_intc_irqpin_config irqpin2_platform_data = {
658 659 .irq_base = irq_pin(16), /* IRQ16 -> IRQ23 */
  660 + .control_parent = true,
659 661 };
660 662  
661 663 static struct resource irqpin2_resources[] = {
... ... @@ -686,6 +688,7 @@
686 688  
687 689 static struct renesas_intc_irqpin_config irqpin3_platform_data = {
688 690 .irq_base = irq_pin(24), /* IRQ24 -> IRQ31 */
  691 + .control_parent = true,
689 692 };
690 693  
691 694 static struct resource irqpin3_resources[] = {