1. 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
  2. 22 11月, 2014 1 次提交
  3. 21 11月, 2014 1 次提交
  4. 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
  5. 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
  6. 15 7月, 2014 3 次提交
  7. 17 6月, 2014 1 次提交
  8. 31 5月, 2014 3 次提交
  9. 30 5月, 2014 1 次提交
  10. 26 5月, 2014 3 次提交
  11. 16 5月, 2014 2 次提交
  12. 15 5月, 2014 1 次提交
  13. 21 3月, 2014 3 次提交
  14. 06 1月, 2014 1 次提交
  15. 21 12月, 2013 1 次提交
  16. 30 9月, 2013 1 次提交
  17. 24 9月, 2013 1 次提交
  18. 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
  19. 10 7月, 2013 1 次提交
  20. 19 6月, 2013 2 次提交
  21. 25 5月, 2013 1 次提交
  22. 20 4月, 2013 4 次提交
    • 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
    • A
      irqchip: exynos: pass max combiner number to combiner_init · 6761dcfe
      Arnd Bergmann 提交于
      We can find out the number of combined IRQs from the device
      tree, but in case of ATAGS boot, the driver currently uses
      hardcoded values based on the SoC type. We can't do that
      in general for a multiplatform kernel, so let's instead pass
      this information from platform code directly in case of
      ATAGS boot.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      6761dcfe
    • A
      clocksource: exynos_mct: remove platform header dependency · 034c097c
      Arnd Bergmann 提交于
      For the non-DT case, the mct_init() function requires access
      to a couple of platform specific constants, but cannot include
      the header files in case we are building for multiplatform.
      
      This changes the interface to the platform so we pass all
      the necessary data as arguments to mct_init.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: John Stultz <john.stultz@linaro.org>
      034c097c
    • A
      clk: exynos: prepare for multiplatform · 25e56eba
      Arnd Bergmann 提交于
      The new common clock drivers for exynos are using compile
      time constants and soc_is_exynos* macros to provide backwards
      compatibility for pre-DT systems, which is not possible with
      multiplatform kernels. This moves all the necessary
      information back into platform code and removes the mach/*
      header inclusions.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Mike Turquette <mturquette@linaro.org>
      25e56eba
  23. 09 4月, 2013 1 次提交