1. 21 7月, 2015 1 次提交
  2. 06 6月, 2015 1 次提交
    • B
      ARM: EXYNOS: add coupled cpuidle support for Exynos3250 · af997114
      Bartlomiej Zolnierkiewicz 提交于
      The following patch adds coupled cpuidle support for Exynos3250 to
      an existing cpuidle-exynos driver.  As a result it enables AFTR mode
      to be used by default on Exynos3250 without the need to hot unplug
      CPU1 first.
      
      The detailed changelog:
      - use exynos_[get,set]_boot_addr() in cpuidle-exynos.c and then make
        cpu_boot_reg_base() static
      - use exynos_core_restart() in exynos_cpu0_enter_aftr()
      - add missing smp_rmb() to exynos_cpu0_enter_aftr() (to make the code
        in-sync with the platform SMP code)
      - add call_firmware_op(cpu_boot, 1) to exynos_cpu0_enter_aftr()
      - use dsb_sev() instead of IPI wakeup for Exynos3250 in
        exynos_cpu0_enter_aftr()
      - add CPU0 vs CPU1 synchronization based on S5P_PMU_SPARE2 register
        for Exynos3250 to cpuidle-exynos.c
      - add flush_cache_all() for CPU1/0 before powerdown/AFTR for
        Exynos3250 to exynos_wfi_finisher()/exynos_do_idle()
      Signed-off-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Signed-off-by: NKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: NKukjin Kim <kgene@kernel.org>
      af997114
  3. 14 5月, 2015 1 次提交
    • K
      ARM: EXYNOS: Fix failed second suspend on Exynos4 · 6f024978
      Krzysztof Kozlowski 提交于
      On Exynos4412 boards (Trats2, Odroid U3) after enabling L2 cache in
      56b60b8b ("ARM: 8265/1: dts: exynos4: Add nodes for L2 cache
      controller") the second suspend to RAM failed. First suspend worked fine
      but the next one hang just after powering down of secondary CPUs (system
      consumed energy as it would be running but was not responsive).
      
      The issue was caused by enabling delayed reset assertion for CPU0 just
      after issuing power down of cores. This was introduced for Exynos4 in
      13cfa6c4 ("ARM: EXYNOS: Fix CPU idle clock down after CPU off").
      
      The whole behavior is not well documented but after checking with vendor
      code this should be done like this (on Exynos4):
      1. Enable delayed reset assertion when system is running (for all CPUs).
      2. Disable delayed reset assertion before suspending the system.
         This can be done after powering off secondary CPUs.
      3. Re-enable the delayed reset assertion when system is resumed.
      
      Fixes: 13cfa6c4 ("ARM: EXYNOS: Fix CPU idle clock down after CPU off")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Tested-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Tested-by: NChanwoo Choi <cw00.choi@samsung.com>
      Signed-off-by: NKukjin Kim <kgene@kernel.org>
      6f024978
  4. 27 3月, 2015 1 次提交
  5. 30 1月, 2015 1 次提交
    • B
      cpuidle: exynos: add coupled cpuidle support for exynos4210 · 712eddf7
      Bartlomiej Zolnierkiewicz 提交于
      The following patch adds coupled cpuidle support for Exynos4210 to
      an existing cpuidle-exynos driver.  As a result it enables AFTR mode
      to be used by default on Exynos4210 without the need to hot unplug
      CPU1 first.
      
      The patch is heavily based on earlier cpuidle-exynos4210 driver from
      Daniel Lezcano:
      
      http://www.spinics.net/lists/linux-samsung-soc/msg28134.html
      
      Changes from Daniel's code include:
      - porting code to current kernels
      - fixing it to work on my setup (by using S5P_INFORM register
        instead of S5P_VA_SYSRAM one on Revison 1.1 and retrying poking
        CPU1 out of the BOOT ROM if necessary)
      - fixing rare lockup caused by waiting for CPU1 to get stuck in
        the BOOT ROM (CPU hotplug code in arch/arm/mach-exynos/platsmp.c
        doesn't require this and works fine)
      - moving Exynos specific code to arch/arm/mach-exynos/pm.c
      - using cpu_boot_reg_base() helper instead of BOOT_VECTOR macro
      - using exynos_cpu_*() helpers instead of accessing registers
        directly
      - using arch_send_wakeup_ipi_mask() instead of dsb_sev()
        (this matches CPU hotplug code in arch/arm/mach-exynos/platsmp.c)
      - integrating separate exynos4210-cpuidle driver into existing
        exynos-cpuidle one
      
      Cc: Colin Cross <ccross@google.com>
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com>
      Cc: Tomasz Figa <tomasz.figa@gmail.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      Acked-by: NKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NKukjin Kim <kgene@kernel.org>
      712eddf7
  6. 22 11月, 2014 1 次提交
  7. 21 11月, 2014 1 次提交
  8. 20 10月, 2014 4 次提交
    • B
      ARM: EXYNOS: Fix build with PM_SLEEP=n and ARM_EXYNOS_CPUIDLE=y · 0d713cf1
      Bartlomiej Zolnierkiewicz 提交于
      Fix building of exynos_defconfig with CONFIG_PM_SLEEP disabled and
      CONFIG_ARM_EXYNOS_CPUIDLE enabled by:
      
      * adding EXYNOS_CPU_SUSPEND config option
      * always building sleep.o
      * building pm.o if EXYNOS_CPU_SUSPEND is enabled
      * moving suspend specific code from pm.c to suspend.c
      * enabling pm-common.o build also for EXYNOS_CPU_SUSPEND option
      
      [ Please note that there are no changes in the code moved from pm.c
        to suspend.c except making few functions non-static and cleaning
        up includes. ]
      
      Also while at it update Copyright dates.
      
      The build error messages:
      drivers/built-in.o: In function `exynos_enter_core0_aftr':
      /home/bzolnier/linux/drivers/cpuidle/cpuidle-exynos.c:36: undefined reference to `cpu_suspend'
      arch/arm/mach-exynos/built-in.o:(.data+0x74): undefined reference to `exynos_enter_aftr'
      make: *** [vmlinux] Error 1
      
      This patch has been tested on Exynos4210 based Origen board.
      Signed-off-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Acked-by: NKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      0d713cf1
    • B
      ARM: firmware: add AFTR mode support to firmware do_idle method · 0b7778a8
      Bartlomiej Zolnierkiewicz 提交于
      On some platforms (i.e. EXYNOS ones) more than one idle mode is
      available and we need to distinguish them in firmware do_idle method.
      
      Add mode parameter to do_idle firmware method and AFTR mode support
      to EXYNOS do_idle implementation.
      
      This change is a preparation for adding secure firmware support to
      EXYNOS cpuidle driver.
      
      This patch shouldn't cause any functionality changes.
      Signed-off-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Acked-by: NKyungmin Park <kyungmin.park@samsung.com>
      Acked-by: NThierry Reding <treding@nvidia.com>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      0b7778a8
    • T
      ARM: EXYNOS: Add support for firmware-assisted suspend/resume · 2b9d9c32
      Tomasz Figa 提交于
      On a numer of Exynos-based boards Linux kernel is running in non-secure
      mode under a secure firmware. This means that certain operations need to
      be handled in special way, with firmware assistance. System-wide
      suspend/resume is an example of such operations.
      
      This patch adds support for firmware-assisted suspend/resume by
      leveraging recently introduced suspend and resume firmware operations
      and modifying existing suspend/resume paths to account for presence of
      secure firmware.
      Signed-off-by: NTomasz Figa <t.figa@samsung.com>
      [kgene.kim@samsung.com: rebased]
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      2b9d9c32
    • K
      ARM: EXYNOS: Move code from hotplug.c to platsmp.c · 6f0b7c0c
      Krzysztof Kozlowski 提交于
      Cleanup a little the SMP/hotplug code for Exynos by:
      1. Moving completely all functions from hotplug.c into the platsmp.c;
      2. Deleting the hotplug.c file.
      
      After recent cleanups (e.g. 75ad2ab2 "ARM: EXYNOS: use
      v7_exit_coherency_flush macro for cache disabling") there was only CPU
      power down related code in hotplug.c file.
      
      Rationale behind the code movement and benefits:
      1. The file platsmp.c is the only user of code located in hotplug.c.
         Keeping code in hotplug.c required declaring exynos_cpu_die() in common.h.
         Such dependencies and mentioned exynos_cpu_die() declaration can be
         removed.
      2. In next patches exynos_set_delayed_reset_assertion() will be
         introduced. This function will be called by:
          - cpu_leave_power (hotplug.c),
          - platform_do_lowpower (hotplug.c),
          - exynos_boot_secondary (platsmp.c).
      
      Merging hotplug.c into platsmp.c leads to simpler and cleaner code with
      less dependencies between files.
      
      The commit only moves code around with one additional observable change:
      the hotplug.c was compiled with custom CFLAGS (-march=armv7-a). These
      CFLAGS are not necessary any more.
      Signed-off-by: NKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Reviewed-by: NTomasz Figa <t.figa@samsung.com>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      6f0b7c0c
  9. 23 7月, 2014 1 次提交
    • P
      ARM: EXYNOS: Refactored code for using PMU address via DT · 2e94ac42
      Pankaj Dubey 提交于
      Under "arm/mach-exynos" many files are using PMU register offsets.
      Since we have added support for accessing PMU base address via DT,
      now we can remove PMU mapping from exynosX_iodesc. Let's convert
      all these access using iomapped address.
      This will help us in removing static mapping of PMU base address
      as well as help in reducing dependency over machine header files.
      Thus helping for migration of PMU implementation from machine to
      driver folder which can be reused for ARM64 based SoC.
      
      Also as we have removed static mappings from "regs-pmu.h" it does
      not need map.h anymore. But "platsmp.c" needed this and till now it
      got included indirectly. So lets move header inclusion of
      "mach/map.h" from "regs-pmu.h" to "platsmp.c".
      Signed-off-by: NPankaj Dubey <pankaj.dubey@samsung.com>
      Reviewed-by: NTomasz Figa <t.figa@samsung.com>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      2e94ac42
  10. 15 7月, 2014 3 次提交
  11. 17 6月, 2014 1 次提交
  12. 31 5月, 2014 3 次提交
  13. 30 5月, 2014 1 次提交
  14. 26 5月, 2014 3 次提交
  15. 16 5月, 2014 2 次提交
  16. 15 5月, 2014 1 次提交
  17. 21 3月, 2014 3 次提交
  18. 06 1月, 2014 1 次提交
  19. 21 12月, 2013 1 次提交
  20. 30 9月, 2013 1 次提交
  21. 24 9月, 2013 1 次提交
  22. 24 7月, 2013 2 次提交
    • A
      ARM: SAMSUNG: Add SAMSUNG_PM config option to select pm · 89693016
      Amit Daniel Kachhap 提交于
      This patch enables the selection of samsung pm related stuffs
      when SAMSUNG_PM config is enabled and not just when generic PM
      config is enabled. Power management for s3c64XX and s3c24XX
      is enabled by default and for other platform depends on S5P_PM.
      This patch also fixes the following compilation error's when compiling
      a platform like exynos5440 which does not select pm stuffs.
      
      arch/arm/mach-exynos/built-in.o: In function '__virt_to_phys':
      linux/arch/arm/include/asm/memory.h:175: undefined reference to 's3c_cpu_resume'
      linux/arch/arm/include/asm/memory.h:175: undefined reference to 's3c_cpu_resume'
      linux/arch/arm/include/asm/memory.h:175: undefined reference to 's3c_cpu_resume'
      linux/arch/arm/include/asm/memory.h:175: undefined reference to 's3c_cpu_resume'
      arch/arm/mach-exynos/built-in.o: In function 'exynos5_init_irq':
      linux/arch/arm/mach-exynos/common.c:492: undefined reference to 's3c_irq_wake'
      linux/arch/arm/mach-exynos/common.c:492: undefined reference to 's3c_irq_wake'
      arch/arm/mach-exynos/built-in.o: In function 'exynos4_init_irq':
      linux/arch/arm/mach-exynos/common.c:476: undefined reference to 's3c_irq_wake'
      linux/arch/arm/mach-exynos/common.c:476: undefined reference to 's3c_irq_wake'
      arch/arm/plat-samsung/built-in.o: In function 's3c_irqext_wake':
      linux/arch/arm/plat-samsung/pm.c:144: undefined reference to 's3c_irqwake_eintallow'
      linux/arch/arm/plat-samsung/pm.c:144: undefined reference to 's3c_irqwake_eintallow'
      arch/arm/plat-samsung/built-in.o: In function 's3c_pm_enter':
      linux/arch/arm/plat-samsung/pm.c:263: undefined reference to 's3c_irqwake_intallow'
      linux/arch/arm/plat-samsung/pm.c:263: undefined reference to 's3c_irqwake_intallow'
      linux/arch/arm/plat-samsung/pm.c:264: undefined reference to 's3c_irqwake_eintallow'
      linux/arch/arm/plat-samsung/pm.c:264: undefined reference to 's3c_irqwake_eintallow'
      linux/arch/arm/plat-samsung/pm.c:275: undefined reference to 's3c_pm_save_core'
      linux/arch/arm/plat-samsung/pm.c:279: undefined reference to 's3c_pm_configure_extint'
      linux/arch/arm/plat-samsung/pm.c:310: undefined reference to 's3c_pm_restore_core'
      make: *** [vmlinux] Error 1
      Signed-off-by: NAmit Daniel Kachhap <amit.daniel@samsung.com>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      89693016
    • S
      ARM: EXYNOS: Cleanup common.h file · 95f4c469
      Sachin Kamat 提交于
      Remove unused declarations that got left behind subsequent to
      making Exynos a DT-only platform.
      Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      95f4c469
  23. 10 7月, 2013 1 次提交
  24. 19 6月, 2013 2 次提交
  25. 25 5月, 2013 1 次提交
  26. 20 4月, 2013 1 次提交
    • A
      irqchip: exynos: pass irq_base from platform · 863a08dc
      Arnd Bergmann 提交于
      The platform code knows the IRQ base, while the irqchip driver
      should really not. This is a littly hacky because we still
      hardwire the IRQ base to 160 for the combiner in the DT case,
      when we should really use -1. Removing that line will cause
      a linear IRQ domain to be use, as we should.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      863a08dc