03 Oct, 2014

1 commit

  • The naming convention of this driver was always under the scanner, people
    complained that it should have a more generic name than cpu0, as it manages all
    CPUs that are sharing clock lines.

    Also, in future it will be modified to support any number of clusters with
    separate clock/voltage lines.

    Lets rename it to 'cpufreq_dt' from 'cpufreq_cpu0'.

    Tested-by: Stephen Boyd
    Signed-off-by: Viresh Kumar
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar
     

31 May, 2014

1 commit

  • Currently Exynos cpufreq drivers rely on globally mapped
    clock controller registers to configure frequency of CPU
    cores. This is obviously wrong and will be removed in near
    future, but to enable support for multi-platform builds
    without introducing a regression it needs to be worked
    around.

    This patch hacks the code to look for clock controller node
    in device tree and map its registers using of_iomap(),
    instead of relying on global mapping, so dependencies on
    platform headers are removed and the driver can compile
    again with multiplatform support.

    Signed-off-by: Tomasz Figa
    Acked-by: Viresh Kumar
    Signed-off-by: Kukjin Kim

    Tomasz Figa
     

07 Apr, 2014

1 commit

  • Currently cpufreq frequency table has two fields: frequency and driver_data.
    driver_data is only for drivers' internal use and cpufreq core shouldn't use
    it at all. But with the introduction of BOOST frequencies, this assumption
    was broken and we started using it as a flag instead.

    There are two problems due to this:
    - It is against the description of this field, as driver's data is used by
    the core now.
    - if drivers fill it with -3 for any frequency, then those frequencies are
    never considered by cpufreq core as it is exactly same as value of
    CPUFREQ_BOOST_FREQ, i.e. ~2.

    The best way to get this fixed is by creating another field flags which
    will be used for such flags. This patch does that. Along with that various
    drivers need modifications due to the change of struct cpufreq_frequency_table.

    Reviewed-by: Gautham R Shenoy
    Signed-off-by: Viresh Kumar
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar
     

29 Dec, 2013

1 commit

  • …gene/linux-samsung into next/cleanup

    From Kukjin Kim:
    Samsung cleanup 2nd for v3.14
    - remove <mach/regs-clock.h> for exynos
    - remove <mach/regs-irq.h> for exynos
    - local <mach/regs-pmu.h> into mach-exynos
    - select PM_GENERIC_DOMAINS for ARCH_EXYNOS4
    instead of each SOC_EXYNOS4XXX in Kconfig
    - call pm_genpd_poweroff_unused() instead of via
    exynos_pm_late_initcall() because no need to
    handle whether CONFIG_PM_GENERIC_DOMAINS is enalbed

    * tag 'samsung-cleanup-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
    ARM: EXYNOS: Kill exynos_pm_late_initcall()
    ARM: EXYNOS: Consolidate selection of PM_GENERIC_DOMAINS for Exynos4
    PM / devfreq: use inclusion <mach/map.h> instead of <plat/map-s5p.h>
    ARM: EXYNOS: remove <mach/regs-clock.h> for exynos
    ARM: EXYNOS: local definitions for cpuidle.c into mach-exynos dir
    cpufreq: exynos: move definitions for exynos-cpufreq into drivers/cpufreq/
    ARM: EXYNOS: local definitions for pm.c into mach-exynos dir
    PM / devfreq: move definitions for exynos4_bus into drivers/devfreq
    ARM: EXYNOS: cleanup <mach/regs-clock.h>
    ARM: EXYNOS: cleanup <mach/regs-irq.h>
    ARM: EXYNOS: local regs-pmu.h header file
    ARM: EXYNOS: remove inclusion <mach/regs-pmu.h> into another headers
    ARM: EXYNOS: cleanup <mach/regs-pmu.h>

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

19 Dec, 2013

1 commit


21 Nov, 2013

1 commit


17 Oct, 2013

1 commit

  • In the exynos4210_set_apll() function, the APLL frequency is set with
    direct register manipulation.

    Such approach is not allowed in the common clock framework. The frequency
    is changed, but the corresponding clock value is not updated. This causes
    wrong frequency read from cpufreq's cpuinfo_cur_freq sysfs attribute.

    Also direct manipulation with PLL's S parameter has been removed. It is
    already done at PLL35xx code.

    Tested at:
    - Exynos4210 - Trats board (linux 3.12-rc4)

    Signed-off-by: Lukasz Majewski
    Reviewed-by: Yadwinder Singh Brar
    Signed-off-by: Rafael J. Wysocki

    Lukasz Majewski
     

22 Feb, 2013

1 commit

  • Pull ARM SoC cleanups from Arnd Bergmann:
    "A large number of cleanups, all over the platforms. This is dominated
    largely by the Samsung platforms (s3c, s5p, exynos) and a few of the
    others moving code out of arch/arm into more appropriate subsystems.

    The clocksource and irqchip drivers are now abstracted to the point
    where platforms that are already cleaned up do not need to even
    specify the driver they use, it can all get configured from the device
    tree as we do for normal device drivers. The clocksource changes
    basically touch every single platform in the process.

    We further clean up the use of platform specific header files here,
    with the goal of turning more of the platforms over to being
    "multiplatform" enabled, which implies that they cannot expose their
    headers to architecture independent code any more.

    It is expected that no functional changes are part of the cleanup.
    The overall reduction in total code lines is mostly the result of
    removing broken and obsolete code."

    * tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (133 commits)
    ARM: mvebu: correct gated clock documentation
    ARM: kirkwood: add missing include for nsa310
    ARM: exynos: move exynos4210-combiner to drivers/irqchip
    mfd: db8500-prcmu: update resource passing
    drivers/db8500-cpufreq: delete dangling include
    ARM: at91: remove NEOCORE 926 board
    sunxi: Cleanup the reset code and add meaningful registers defines
    ARM: S3C24XX: header mach/regs-mem.h local
    ARM: S3C24XX: header mach/regs-power.h local
    ARM: S3C24XX: header mach/regs-s3c2412-mem.h local
    ARM: S3C24XX: Remove plat-s3c24xx directory in arch/arm/
    ARM: S3C24XX: transform s3c2443 subirqs into new structure
    ARM: S3C24XX: modify s3c2443 irq init to initialize all irqs
    ARM: S3C24XX: move s3c2443 irq code to irq.c
    ARM: S3C24XX: transform s3c2416 irqs into new structure
    ARM: S3C24XX: modify s3c2416 irq init to initialize all irqs
    ARM: S3C24XX: move s3c2416 irq init to common irq code
    ARM: S3C24XX: Modify s3c_irq_wake to use the hwirq property
    ARM: S3C24XX: Move irq syscore-ops to irq-pm
    clocksource: always define CLOCKSOURCE_OF_DECLARE
    ...

    Linus Torvalds
     

11 Jan, 2013

1 commit


24 Dec, 2012

3 commits


01 Mar, 2012

1 commit


09 Jan, 2012

2 commits


09 Dec, 2011

3 commits


27 Oct, 2011

2 commits

  • We have various bootloaders for Exynos4210 machines. Some of they
    set the ARM core frequency at boot time even when the boot is a resume
    from suspend-to-RAM. Such changes may create inconsistency in the
    data of CPUFREQ driver and have incurred hang issues with suspend-to-RAM.

    This patch enables to save and restore CPU frequencies with pm-notifier and
    sets the frequency at the initial (boot-time) value so that there wouldn't
    be any inconsistency between bootloader and kernel. This patch does not
    use CPUFREQ's suspend/resume callbacks because they are syscore-ops, which
    do not allow to use mutex that is being used by regulators that are used by
    the target function.

    This also prevents any CPUFREQ transitions during suspend-resume context,
    which could be dangerous at noirq-context along with regulator framework.

    Signed-off-by: MyungJoo Ham
    Signed-off-by: Kyungmin Park
    Signed-off-by: Dave Jones

    MyungJoo Ham
     
  • This patch enables 'scaling_available_frequencies' attribute
    showing list of available frequencies.

    Signed-off-by: Donggeun Kim
    Signed-off-by: MyungJoo Ham
    Signed-off-by: KyungMin Park
    Signed-off-by: Dave Jones

    Donggeun Kim
     

14 Jul, 2011

2 commits