Merge tag 'renesas-soc-for-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorOlof Johansson <olof@lixom.net>
Mon, 13 Jun 2016 22:44:32 +0000 (15:44 -0700)
committerOlof Johansson <olof@lixom.net>
Mon, 13 Jun 2016 22:44:32 +0000 (15:44 -0700)
Renesas ARM Based SoC Updates for v4.8

* Use ICRAM1 for jump stub on R-Car Gen 2 SoCs
* Postpone call to pm_genpd_init

* tag 'renesas-soc-for-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: rcar-gen2: Use ICRAM1 for jump stub on all SoCs
  ARM: shmobile: pm-rmobile: Postpone call to pm_genpd_init()

Signed-off-by: Olof Johansson <olof@lixom.net>
arch/arm/mach-shmobile/pm-rcar-gen2.c
arch/arm/mach-shmobile/pm-rmobile.c

index 691ac16..61361da 100644 (file)
@@ -26,8 +26,7 @@
 #define CA7RESCNT      0x0044
 
 /* On-chip RAM */
-#define MERAM          0xe8080000
-#define RAM            0xe6300000
+#define ICRAM1         0xe63c0000      /* Inter Connect RAM1 (4 KiB) */
 
 /* SYSC */
 #define SYSCIER 0x0c
@@ -58,7 +57,7 @@ void __init rcar_gen2_pm_init(void)
        struct device_node *np, *cpus;
        bool has_a7 = false;
        bool has_a15 = false;
-       phys_addr_t boot_vector_addr = 0;
+       phys_addr_t boot_vector_addr = ICRAM1;
        u32 syscier = 0;
 
        if (once++)
@@ -75,14 +74,10 @@ void __init rcar_gen2_pm_init(void)
                        has_a7 = true;
        }
 
-       if (of_machine_is_compatible("renesas,r8a7790")) {
-               boot_vector_addr = MERAM;
+       if (of_machine_is_compatible("renesas,r8a7790"))
                syscier = 0x013111ef;
-
-       } else if (of_machine_is_compatible("renesas,r8a7791")) {
-               boot_vector_addr = RAM;
+       else if (of_machine_is_compatible("renesas,r8a7791"))
                syscier = 0x00111003;
-       }
 
        /* RAM for jump stub, because BAR requires 256KB aligned address */
        p = ioremap_nocache(boot_vector_addr, shmobile_boot_size);
index c0b05e9..45a1955 100644 (file)
@@ -131,13 +131,13 @@ static void rmobile_init_pm_domain(struct rmobile_pm_domain *rmobile_pd)
        struct dev_power_governor *gov = rmobile_pd->gov;
 
        genpd->flags = GENPD_FLAG_PM_CLK;
-       pm_genpd_init(genpd, gov ? : &simple_qos_governor, false);
        genpd->dev_ops.active_wakeup    = rmobile_pd_active_wakeup;
        genpd->power_off                = rmobile_pd_power_down;
        genpd->power_on                 = rmobile_pd_power_up;
        genpd->attach_dev               = cpg_mstp_attach_dev;
        genpd->detach_dev               = cpg_mstp_detach_dev;
        __rmobile_pd_power_up(rmobile_pd, false);
+       pm_genpd_init(genpd, gov ? : &simple_qos_governor, false);
 }
 
 static int rmobile_pd_suspend_busy(void)