20 Mar, 2018

5 commits

  • Add i.MX8MQ cpufreq support, current version of
    EVK board does NOT support voltage scale, but next
    version will add this support, so this driver only
    supports cpu frequency scale, voltage scale will
    be added later once new board available.

    A53 CPU clock normally is from ARM_PLL, but during
    ARM_PLL relock window, it will be switched to
    SYS1_PLL_800M to avoid clock missing, and after
    arm pll relock done, it will be switched back.

    Signed-off-by: Anson Huang

    Anson Huang
     
  • Add multi-clusters cpu-freq driver support for i.MX8,
    only support cpu-freq get now.

    Signed-off-by: Anson Huang

    Anson Huang
     
  • According to the i.MX7ULP RM & datasheet, when A7 is in RUN mode,
    the max CPU frequency it can run at is 500MHz, if we want to increase
    the A7 CPU frequency to 800MHz, we need to change the A7 from RUN mode
    to HSRUN mode. And only when A7 is in RUN mode, we can enter STOP mode
    and VLLS mode.

    Signed-off-by: Bai Ping

    Bai Ping
     
  • Interactive governor has lived in Android sources for a very long time
    and this commit is based on the code present in following branch:

    https://android.googlesource.com/kernel/common android-4.4

    The Interactive governor is designed for latency-sensitive workloads,
    such as interactive user interfaces like the mobile phones and tablets.
    The interactive governor aims to be significantly more responsive to
    ramp CPU quickly up when CPU-intensive activity begins.

    Existing governors sample CPU load at a particular rate, typically every
    X ms and then update the frequency from a work-handler. This can lead
    to under-powering UI threads for the period of time during which the
    user begins interacting with a previously-idle system until the next
    sample period happens.

    The 'interactive' governor uses a different approach.

    A real-time thread is used for scaling up, giving the remaining tasks
    the CPU performance benefit, unlike existing governors which are more
    likely to schedule ramp-up work to occur after your performance starved
    tasks have completed.

    The Android version of interactive governor also checks whether to scale
    the CPU frequency up soon after coming out of idle. When the CPU comes
    out of idle, the governor check if the CPU sampling is overdue or not.
    If yes, it immediately starts the sampling. Otherwise, the utilization
    hooks from the scheduler handle the sampling later. If the CPU is very
    busy from exiting idle to when the evaluation happens, then it assumes
    that the CPU is under-powered and ramps it to MAX speed.

    If the CPU was not sufficiently busy to immediately ramp to MAX speed,
    then the governor evaluates the CPU load since the last speed
    adjustment, choosing the highest value between that longer-term load or
    the short-term load since idle exit to determine the CPU speed to ramp
    to.

    Idle notifiers will be be handled later and are not included for now.

    The core of this code is written and maintained (in Android
    repositories) by Mike Chan and Todd Poyner over a long period of time.

    Vireshk has made changes to to the governor to align it with the current
    practices followed with mainline governors, like using utilization hooks
    from the scheduler and handling kobject (for governor's sysfs directory)
    in a race free manner. And of course this included general cleanup of
    the governor as well.

    Signed-off-by: Mike Chan
    Signed-off-by: Todd Poynor
    Signed-off-by: Viresh Kumar

    ---
    V1->V2:
    - Changes to fix compilation issues with updated mainline
    - Timer APIs got updated
    - s/mod_timer_pinned/mod_timer
    - s/init_timer/init_timer_pinned
    - Updated prototypes of cpufreq_frequency_table_target() and
    update_util_handler()

    Viresh Kumar
     
  • Add the basic cpufreq driver for imx7.

    Signed-off-by: Bai Ping
    (cherry picked from commit db765324267a7c3b93aaf798cefd6a775cf46b1a)

    Bai Ping
     

20 May, 2016

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "This is the main pull request for MIPS for 4.7. Here's the summary of
    the changes:

    - ATH79: Support for DTB passuing using the UHI boot protocol
    - ATH79: Remove support for builtin DTB.
    - ATH79: Add zboot debug serial support.
    - ATH79: Add initial support for Dragino MS14 (Dragine 2), Onion Omega
    and DPT-Module.
    - ATH79: Update devicetree clock support for AR9132 and AR9331.
    - ATH79: Cleanup the DT code.
    - ATH79: Support newer SOCs in ath79_ddr_ctrl_init.
    - ATH79: Fix regression in PCI window initialization.
    - BCM47xx: Move SPROM driver to drivers/firmware/
    - BCM63xx: Enable partition parser in defconfig.
    - BMIPS: BMIPS5000 has I cache filing from D cache
    - BMIPS: BMIPS: Add cpu-feature-overrides.h
    - BMIPS: Add Whirlwind support
    - BMIPS: Adjust mips-hpt-frequency for BCM7435
    - BMIPS: Remove maxcpus from BCM97435SVMB DTS
    - BMIPS: Add missing 7038 L1 register cells to BCM7435
    - BMIPS: Various tweaks to initialization code.
    - BMIPS: Enable partition parser in defconfig.
    - BMIPS: Cache tweaks.
    - BMIPS: Add UART, I2C and SATA devices to DT.
    - BMIPS: Add BCM6358 and BCM63268support
    - BMIPS: Add device tree example for BCM6358.
    - BMIPS: Improve Improve BCM6328 and BCM6368 device trees
    - Lantiq: Add support for device tree file from boot loader
    - Lantiq: Allow build with no built-in DT.
    - Loongson 3: Reserve 32MB for RS780E integrated GPU.
    - Loongson 3: Fix build error after ld-version.sh modification
    - Loongson 3: Move chipset ACPI code from drivers to arch.
    - Loongson 3: Speedup irq processing.
    - Loongson 3: Add basic Loongson 3A support.
    - Loongson 3: Set cache flush handlers to nop.
    - Loongson 3: Invalidate special TLBs when needed.
    - Loongson 3: Fast TLB refill handler.
    - MT7620: Fallback strategy for invalid syscfg0.
    - Netlogic: Fix CP0_EBASE redefinition warnings
    - Octeon: Initialization fixes
    - Octeon: Add DTS files for the D-Link DSR-1000N and EdgeRouter Lite
    - Octeon: Enable add Octeon-drivers in cavium_octeon_defconfig
    - Octeon: Correctly handle endian-swapped initramfs images.
    - Octeon: Support CN73xx, CN75xx and CN78xx.
    - Octeon: Remove dead code from cvmx-sysinfo.
    - Octeon: Extend number of supported CPUs past 32.
    - Octeon: Remove some code limiting NR_IRQS to 255.
    - Octeon: Simplify octeon_irq_ciu_gpio_set_type.
    - Octeon: Mark some functions __init in smp.c
    - Octeon: Octeon: Add Octeon III CN7xxx interface detection
    - PIC32: Add serial driver and bindings for it.
    - PIC32: Add PIC32 deadman timer driver and bindings.
    - PIC32: Add PIC32 clock timer driver and bindings.
    - Pistachio: Determine SoC revision during boot
    - Sibyte: Fix Kconfig dependencies of SIBYTE_BUS_WATCHER.
    - Sibyte: Strip redundant comments from bcm1480_regs.h.
    - Panic immediately if panic_on_oops is set.
    - module: fix incorrect IS_ERR_VALUE macro usage.
    - module: Make consistent use of pr_*
    - Remove no longer needed work_on_cpu() call.
    - Remove CONFIG_IPV6_PRIVACY from defconfigs.
    - Fix registers of non-crashing CPUs in dumps.
    - Handle MIPSisms in new vmcore_elf32_check_arch.
    - Select CONFIG_HANDLE_DOMAIN_IRQ and make it work.
    - Allow RIXI to be used on non-R2 or R6 cores.
    - Reserve nosave data for hibernation
    - Fix siginfo.h to use strict POSIX types.
    - Don't unwind user mode with EVA.
    - Fix watchpoint restoration
    - Ptrace watchpoints for R6.
    - Sync icache when it fills from dcache
    - I6400 I-cache fills from dcache.
    - Various MSA fixes.
    - Cleanup MIPS_CPU_* definitions.
    - Signal: Move generic copy_siginfo to signal.h
    - Signal: Fix uapi include in exported asm/siginfo.h
    - Timer fixes for sake of KVM.
    - XPA TLB refill fixes.
    - Treat perf counter feature
    - Update John Crispin's email address
    - Add PIC32 watchdog and bindings.
    - Handle R10000 LL/SC bug in set_pte()
    - cpufreq: Various fixes for Longson1.
    - R6: Fix R2 emulation.
    - mathemu: Cosmetic fix to ADDIUPC emulation, plenty of other small fixes
    - ELF: ABI and FP fixes.
    - Allow for relocatable kernel and use that to support KASLR.
    - Fix CPC_BASE_ADDR mask
    - Plenty fo smp-cps, CM, R6 and M6250 fixes.
    - Make reset_control_ops const.
    - Fix kernel command line handling of leading whitespace.
    - Cleanups to cache handling.
    - Add brcm, bcm6345-l1-intc device tree bindings.
    - Use generic clkdev.h header
    - Remove CLK_IS_ROOT usage.
    - Misc small cleanups.
    - CM: Fix compilation error when !MIPS_CM
    - oprofile: Fix a preemption issue
    - Detect DSP ASE v3 support:1"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (275 commits)
    MIPS: pic32mzda: fix getting timer clock rate.
    MIPS: ath79: fix regression in PCI window initialization
    MIPS: ath79: make ath79_ddr_ctrl_init() compatible for newer SoCs
    MIPS: Fix VZ probe gas errors with binutils of MSA context in non-MSA kernels
    MIPS: cevt-r4k: Dynamically calculate min_delta_ns
    MIPS: malta-time: Take seconds into account
    MIPS: malta-time: Start GIC count before syncing to RTC
    MIPS: Force CPUs to lose FP context during mode switches
    ...

    Linus Torvalds
     

13 May, 2016

1 commit

  • This patch renames the file to loongson1-cpufreq.c,
    and also includes some minor updates.

    Signed-off-by: Kelvin Cheung
    Acked-by: Viresh Kumar
    Cc: Rafael J. Wysocki
    Cc: linux-pm@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/13052/
    Signed-off-by: Ralf Baechle

    Kelvin Cheung
     

28 Apr, 2016

1 commit


25 Apr, 2016

1 commit


09 Apr, 2016

1 commit

  • Multiple platforms are using the generic cpufreq-dt driver now, and all
    of them are required to create a platform device with name "cpufreq-dt",
    in order to get the cpufreq-dt probed.

    Many of them do it from platform code, others have special drivers just
    to do that.

    It would be more sensible to do this at a generic place, where all such
    platform can mark their entries.

    This patch adds a separate file to get this device created. Currently
    the compat list of platforms that we support is empty, and will be
    filled in as and when we move platforms to use it.

    It always compiles as part of the kernel and so doesn't need a
    module-exit operation.

    Signed-off-by: Viresh Kumar
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar
     

02 Apr, 2016

1 commit


12 Dec, 2015

1 commit

  • The bootloader is charged with the responsibility to provide platform
    specific Dynamic Voltage and Frequency Scaling (DVFS) information via
    Device Tree. This driver takes the supplied configuration and
    registers it with the new generic OPP framework, to then be used with
    CPUFreq.

    Acked-by: Viresh Kumar
    Signed-off-by: Lee Jones
    Signed-off-by: Rafael J. Wysocki

    Lee Jones
     

11 Nov, 2015

1 commit

  • Pull ARM SoC driver updates from Olof Johansson:
    "As we've enabled multiplatform kernels on ARM, and greatly done away
    with the contents under arch/arm/mach-*, there's still need for
    SoC-related drivers to go somewhere.

    Many of them go in through other driver trees, but we still have
    drivers/soc to hold some of the "doesn't fit anywhere" lowlevel code
    that might be shared between ARM and ARM64 (or just in general makes
    sense to not have under the architecture directory).

    This branch contains mostly such code:

    - Drivers for qualcomm SoCs for SMEM, SMD and SMD-RPM, used to
    communicate with power management blocks on these SoCs for use by
    clock, regulator and bus frequency drivers.

    - Allwinner Reduced Serial Bus driver, again used to communicate with
    PMICs.

    - Drivers for ARM's SCPI (System Control Processor). Not to be
    confused with PSCI (Power State Coordination Interface). SCPI is
    used to communicate with the assistant embedded cores doing power
    management, and we have yet to see how many of them will implement
    this for their hardware vs abstracting in other ways (or not at all
    like in the past).

    - To make confusion between SCPI and PSCI more likely, this release
    also includes an update of PSCI to interface version 1.0.

    - Rockchip support for power domains.

    - A driver to talk to the firmware on Raspberry Pi"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (57 commits)
    soc: qcom: smd-rpm: Correct size of outgoing message
    bus: sunxi-rsb: Add driver for Allwinner Reduced Serial Bus
    bus: sunxi-rsb: Add Allwinner Reduced Serial Bus (RSB) controller bindings
    ARM: bcm2835: add mutual inclusion protection
    drivers: psci: make PSCI 1.0 functions initialization version dependent
    dt-bindings: Correct paths in Rockchip power domains binding document
    soc: rockchip: power-domain: don't try to print the clock name in error case
    soc: qcom/smem: add HWSPINLOCK dependency
    clk: berlin: add cpuclk
    ARM: berlin: dts: add CLKID_CPU for BG2Q
    ARM: bcm2835: Add the Raspberry Pi firmware driver
    soc: qcom: smem: Move RPM message ram out of smem DT node
    soc: qcom: smd-rpm: Correct the active vs sleep state flagging
    soc: qcom: smd: delete unneeded of_node_put
    firmware: qcom-scm: build for correct architecture level
    soc: qcom: smd: Correct SMEM items for upper channels
    qcom-scm: add missing prototype for qcom_scm_is_available()
    qcom-scm: fix endianess issue in __qcom_scm_is_call_available
    soc: qcom: smd: Reject send of too big packets
    soc: qcom: smd: Handle big endian CPUs
    ...

    Linus Torvalds
     

02 Nov, 2015

1 commit

  • * pm-opp:
    PM / OPP: passing NULL to PTR_ERR()
    PM / OPP: Move cpu specific code to opp/cpu.c
    PM / OPP: Move opp core to its own directory
    PM / OPP: Prefix exported opp routines with dev_pm_opp_
    PM / OPP: Rename opp init/free table routines
    PM / OPP: reuse of_parse_phandle()

    Rafael J. Wysocki
     

13 Oct, 2015

1 commit


28 Sep, 2015

1 commit

  • On some ARM based systems, a separate Cortex-M based System Control
    Processor(SCP) provides the overall power, clock, reset and system
    control including CPU DVFS. SCPI Message Protocol is used to
    communicate with the SCPI.

    This patch adds a interface driver for adding OPPs and registering
    the arm_big_little cpufreq driver for such systems.

    Signed-off-by: Sudeep Holla
    Acked-by: Viresh Kumar
    Cc: "Rafael J. Wysocki"
    Cc: linux-pm@vger.kernel.org

    Sudeep Holla
     

15 Sep, 2015

1 commit

  • OPP code is expanding and is already present in multiple directories
    (cpufreq and power). Lets move it to its own directory, to manage it
    better.

    This also moves/renames the cpufreq_opp file to cpu.c, as it will
    contain helpers for cpu device. Its not just about cpufreq, other
    frameworks can use OPPs as well.

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

    Viresh Kumar
     

11 Sep, 2015

1 commit

  • Pull late ARM SoC updates from Kevin Hilman:
    "This is a collection of a few late fixes and other misc stuff that had
    dependencies on things being merged from other trees.

    The bulk of the changes are for samsung/exynos SoCs for some changes
    that needed a few minor reworks so ended up a bit late. The others
    are mainly for qcom SoCs: a couple fixes and some DTS updates"

    * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (37 commits)
    ARM: multi_v7_defconfig: Enable PBIAS regulator
    soc: qcom: smd: Correct fBLOCKREADINTR handling
    soc: qcom: smd: Use correct remote processor ID
    soc: qcom: smem: Fix errant private access
    ARM: dts: qcom: msm8974-sony-xperia-honami: Use stdout-path
    ARM: dts: qcom: msm8960-cdp: Use stdout-path
    ARM: dts: qcom: msm8660-surf: Use stdout-path
    ARM: dts: qcom: ipq8064-ap148: Use stdout-path
    ARM: dts: qcom: apq8084-mtp: Use stdout-path
    ARM: dts: qcom: apq8084-ifc6540: Use stdout-path
    ARM: dts: qcom: apq8074-dragonboard: Use stdout-path
    ARM: dts: qcom: apq8064-ifc6410: Use stdout-path
    ARM: dts: qcom: apq8064-cm-qs600: Use stdout-path
    ARM: dts: qcom: Label serial nodes for aliasing and stdout-path
    reset: ath79: Fix missing spin_lock_init
    reset: Add (devm_)reset_control_get stub functions
    ARM: EXYNOS: switch to using generic cpufreq driver for exynos4x12
    cpufreq: exynos: Remove unselectable rule for arm-exynos-cpufreq.o
    ARM: dts: add iommu property to JPEG device for exynos4
    ARM: dts: enable SPI1 for exynos4412-odroidu3
    ...

    Linus Torvalds
     

02 Sep, 2015

1 commit

  • Pull power management and ACPI updates from Rafael Wysocki:
    "From the number of commits perspective, the biggest items are ACPICA
    and cpufreq changes with the latter taking the lead (over 50 commits).

    On the cpufreq front, there are many cleanups and minor fixes in the
    core and governors, driver updates etc. We also have a new cpufreq
    driver for Mediatek MT8173 chips.

    ACPICA mostly updates its debug infrastructure and adds a number of
    fixes and cleanups for a good measure.

    The Operating Performance Points (OPP) framework is updated with new
    DT bindings and support for them among other things.

    We have a few updates of the generic power domains framework and a
    reorganization of the ACPI device enumeration code and bus type
    operations.

    And a lot of fixes and cleanups all over.

    Included is one branch from the MFD tree as it contains some
    PM-related driver core and ACPI PM changes a few other commits are
    based on.

    Specifics:

    - ACPICA update to upstream revision 20150818 including method
    tracing extensions to allow more in-depth AML debugging in the
    kernel and a number of assorted fixes and cleanups (Bob Moore, Lv
    Zheng, Markus Elfring).

    - ACPI sysfs code updates and a documentation update related to AML
    method tracing (Lv Zheng).

    - ACPI EC driver fix related to serialized evaluations of _Qxx
    methods and ACPI tools updates allowing the EC userspace tool to be
    built from the kernel source (Lv Zheng).

    - ACPI processor driver updates preparing it for future introduction
    of CPPC support and ACPI PCC mailbox driver updates (Ashwin
    Chaugule).

    - ACPI interrupts enumeration fix for a regression related to the
    handling of IRQ attribute conflicts between MADT and the ACPI
    namespace (Jiang Liu).

    - Fixes related to ACPI device PM (Mika Westerberg, Srinidhi
    Kasagar).

    - ACPI device registration code reorganization to separate the
    sysfs-related code and bus type operations from the rest (Rafael J
    Wysocki).

    - Assorted cleanups in the ACPI core (Jarkko Nikula, Mathias Krause,
    Andy Shevchenko, Rafael J Wysocki, Nicolas Iooss).

    - ACPI cpufreq driver and ia64 cpufreq driver fixes and cleanups (Pan
    Xinhui, Rafael J Wysocki).

    - cpufreq core cleanups on top of the previous changes allowing it to
    preseve its sysfs directories over system suspend/resume (Viresh
    Kumar, Rafael J Wysocki, Sebastian Andrzej Siewior).

    - cpufreq fixes and cleanups related to governors (Viresh Kumar).

    - cpufreq updates (core and the cpufreq-dt driver) related to the
    turbo/boost mode support (Viresh Kumar, Bartlomiej Zolnierkiewicz).

    - New DT bindings for Operating Performance Points (OPP), support for
    them in the OPP framework and in the cpufreq-dt driver plus related
    OPP framework fixes and cleanups (Viresh Kumar).

    - cpufreq powernv driver updates (Shilpasri G Bhat).

    - New cpufreq driver for Mediatek MT8173 (Pi-Cheng Chen).

    - Assorted cpufreq driver (speedstep-lib, sfi, integrator) cleanups
    and fixes (Abhilash Jindal, Andrzej Hajda, Cristian Ardelean).

    - intel_pstate driver updates including Skylake-S support, support
    for enabling HW P-states per CPU and an additional vendor bypass
    list entry (Kristen Carlson Accardi, Chen Yu, Ethan Zhao).

    - cpuidle core fixes related to the handling of coupled idle states
    (Xunlei Pang).

    - intel_idle driver updates including Skylake Client support and
    support for freeze-mode-specific idle states (Len Brown).

    - Driver core updates related to power management (Andy Shevchenko,
    Rafael J Wysocki).

    - Generic power domains framework fixes and cleanups (Jon Hunter,
    Geert Uytterhoeven, Rajendra Nayak, Ulf Hansson).

    - Device PM QoS framework update to allow the latency tolerance
    setting to be exposed to user space via sysfs (Mika Westerberg).

    - devfreq support for PPMUv2 in Exynos5433 and a fix for an incorrect
    exynos-ppmu DT binding (Chanwoo Choi, Javier Martinez Canillas).

    - System sleep support updates (Alan Stern, Len Brown, SungEun Kim).

    - rockchip-io AVS support updates (Heiko Stuebner).

    - PM core clocks support fixup (Colin Ian King).

    - Power capping RAPL driver update including support for Skylake H/S
    and Broadwell-H (Radivoje Jovanovic, Seiichi Ikarashi).

    - Generic device properties framework fixes related to the handling
    of static (driver-provided) property sets (Andy Shevchenko).

    - turbostat and cpupower updates (Len Brown, Shilpasri G Bhat,
    Shreyas B Prabhu)"

    * tag 'pm+acpi-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (180 commits)
    cpufreq: speedstep-lib: Use monotonic clock
    cpufreq: powernv: Increase the verbosity of OCC console messages
    cpufreq: sfi: use kmemdup rather than duplicating its implementation
    cpufreq: drop !cpufreq_driver check from cpufreq_parse_governor()
    cpufreq: rename cpufreq_real_policy as cpufreq_user_policy
    cpufreq: remove redundant 'policy' field from user_policy
    cpufreq: remove redundant 'governor' field from user_policy
    cpufreq: update user_policy.* on success
    cpufreq: use memcpy() to copy policy
    cpufreq: remove redundant CPUFREQ_INCOMPATIBLE notifier event
    cpufreq: mediatek: Add MT8173 cpufreq driver
    dt-bindings: mediatek: Add MT8173 CPU DVFS clock bindings
    PM / Domains: Fix typo in description of genpd_dev_pm_detach()
    PM / Domains: Remove unusable governor dummies
    PM / Domains: Make pm_genpd_init() available to modules
    PM / domains: Align column headers and data in pm_genpd_summary output
    powercap / RAPL: disable the 2nd power limit properly
    tools: cpupower: Fix error when running cpupower monitor
    PM / OPP: Drop unlikely before IS_ERR(_OR_NULL)
    PM / OPP: Fix static checker warning (broken 64bit big endian systems)
    ...

    Linus Torvalds
     

01 Sep, 2015

1 commit

  • Mediatek MT8173 is an ARMv8 based quad-core (2*Cortex-A53 and
    2*Cortex-A72) SoC with duall clusters. For each cluster, two voltage
    inputs, Vproc and Vsram are supplied by two regulators. For the big
    cluster, two regulators come from different PMICs. In this case, when
    scaling voltage inputs of the cluster, the voltages of two regulator
    inputs need to be controlled by software explicitly under the SoC
    specific limitation:

    100mV < Vsram - Vproc < 200mV

    which is called 'voltage tracking' mechanism. And when scaling the
    frequency of cluster clock input, the input MUX need to be parented to
    another "intermediate" stable PLL first and reparented to the original
    PLL once the original PLL is stable at the target frequency. This patch
    implements those mechanisms to enable CPU DVFS support for Mediatek
    MT8173 SoC.

    Signed-off-by: Pi-Cheng Chen
    Acked-by: Viresh Kumar
    Signed-off-by: Rafael J. Wysocki

    Pi-Cheng Chen
     

14 Aug, 2015

2 commits

  • Commit 966f2a71a92d ("cpufreq: exynos: remove Exynos4x12 specific
    cpufreq driver support") deleted option ARM_EXYNOS_CPUFREQ but missed
    to delete a rule in drivers/cpufreq/Makefile which depends on that
    option.

    Remove unselectable rule for arm-exynos-cpufreq.o
    from drivers/cpufreq/Makefile.

    Signed-off-by: Jonas Rabenstein
    Acked-by: Viresh Kumar
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Kukjin Kim

    Jonas Rabenstein
     
  • Exynos4x12 based platforms have switched over to use generic
    cpufreq driver for cpufreq functionality. So the Exynos
    specific cpufreq support for these platforms can be removed.

    Also once Exynos4x12 based platforms support have been removed
    the shared exynos-cpufreq driver is no longer needed and can
    be deleted.

    Based on the earlier work by Thomas Abraham.

    Cc: Viresh Kumar
    Cc: Thomas Abraham
    Reviewed-by: Javier Martinez Canillas
    Reviewed-by: Krzysztof Kozlowski
    Acked-by: Viresh Kumar
    Tested-by: Tobias Jakobi
    Signed-off-by: Bartlomiej Zolnierkiewicz
    Tested-by: Krzysztof Kozlowski
    Signed-off-by: Kukjin Kim

    Bartlomiej Zolnierkiewicz
     

24 Jul, 2015

1 commit

  • Exynos5250 based platforms have switched over to use generic
    cpufreq driver for cpufreq functionality. So the Exynos
    specific cpufreq support for these platforms can be removed.

    Cc: Thomas Abraham
    Signed-off-by: Bartlomiej Zolnierkiewicz
    Reviewed-by: Javier Martinez Canillas
    Tested-by: Javier Martinez Canillas
    Acked-by: Viresh Kumar
    [k.kozlowski: Rebased the patch around exynos-cpufreq.c]
    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Kukjin Kim

    Bartlomiej Zolnierkiewicz
     

16 Jul, 2015

2 commits

  • Add a new cpufreq driver for Tegra124. Instead of using the PLLX as
    the CPU clocksource, switch immediately to the DFLL. It allows the use
    of higher clock rates, and will automatically scale the CPU voltage as
    well. Besides the CPU clocksource switch, we let the cpufreq-dt driver
    for all the cpufreq operations.

    This driver also relies on the DFLL driver to fill the OPP table for the
    CPU0 device, so that the cpufreq-dt driver knows what frequencies to
    use.

    Signed-off-by: Tuomas Tynkkynen
    Signed-off-by: Mikko Perttunen
    Acked-by: Viresh Kumar
    Signed-off-by: Thierry Reding

    Tuomas Tynkkynen
     
  • The Tegra124 will use a different driver for frequency scaling, so
    rename the old driver (which handles only Tegra20) appropriately.

    Signed-off-by: Tuomas Tynkkynen
    Signed-off-by: Mikko Perttunen
    Acked-by: Viresh Kumar
    Signed-off-by: Thierry Reding

    Tuomas Tynkkynen
     

21 Jun, 2015

1 commit

  • Exynos4210 based platforms have switched over to use generic
    cpufreq driver for cpufreq functionality. So the Exynos
    specific cpufreq support for these platforms can be removed.

    Changes by Bartlomiej:
    - dropped Exynos5250 support removal for now
    - updated exynos-cpufreq.[c,h]

    Cc: Javier Martinez Canillas
    Acked-by: Viresh Kumar
    Signed-off-by: Thomas Abraham
    Signed-off-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: Michael Turquette

    Thomas Abraham
     

02 Apr, 2015

1 commit

  • Add acpu driver for hisilicon SoC, acpu is application processor
    subsystem. Currently the acpu has the coupled clock domain for two
    clusters, so this driver will directly use cpufreq-dt driver as
    backend.

    Signed-off-by: Leo Yan
    Acked-by: Viresh Kumar
    Signed-off-by: Rafael J. Wysocki

    Leo Yan
     

19 Mar, 2015

1 commit


20 Feb, 2015

1 commit

  • Pull more thermal managament updates from Zhang Rui:
    "Specifics:

    - Exynos thermal driver refactoring. Several cleanups, code
    optimization, unused symbols removal, and unused feature removal in
    Exynos thermal driver. Thanks Lukasz for this effort.

    - Exynos thermal driver support to OF thermal. After the code
    refactoring, the driver earned the support to OF thermal. Chip
    thermal data were moved from driver code to DTS, reducing the code
    footprint. Thanks Lukasz for this.

    - After receiving the OF thermal support, the exynos thermal driver
    now must allow modular build. Thanks Arnd for detecting, reporting
    and fixing this.

    - Exynos thermal driver support to Exynos 7 SoC. Thanks Abhilash for
    this.

    - Accurate temperature reporting on Rockchip thermal driver, thanks
    to Caesar.

    - Fix on how OF thermal enables its zones, thanks Lukasz for fixing.

    - Fixes in OF thermal examples under Documentation/. Thanks Srinivas
    for fixing"

    * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal:
    thermal: exynos: Add TMU support for Exynos7 SoC
    dts: Documentation: Add documentation for Exynos7 SoC thermal bindings
    cpufreq: exynos: allow modular build
    thermal: Fix examples in DT documentation
    thermal: exynos: Correct sanity check at exynos_report_trigger() function
    thermal: Kconfig: Remove config for not used EXYNOS_THERMAL_CORE
    thermal: exynos: Remove exynos_tmu_data.c file
    thermal: rockchip: make temperature reporting much more accurate
    thermal: exynos: Remove exynos_thermal_common.[c|h] files
    thermal: samsung: core: Exynos TMU rework to use device tree for configuration
    dts: Documentation: Update exynos-thermal.txt example for Exynos5440
    dts: Documentation: Extending documentation entry for exynos-thermal
    cpufreq: exynos: Use device tree to determine if cpufreq cooling should be registered
    thermal: exynos: Modify exynos thermal code to use device tree for cpu cooling configuration
    thermal: exynos: Provide thermal_exynos.h file to be included in device tree files
    thermal: exynos: cosmetic: Correct comment format
    thermal: of: Enable thermal_zoneX when sensor is correctly added

    Linus Torvalds
     

10 Feb, 2015

1 commit


01 Feb, 2015

1 commit

  • The exynos cpufreq driver code recently gained a dependency on the
    cooling code, which may be a loadable module. This breaks an ARM
    allmodconfig build:

    drivers/built-in.o: In function `exynos_cpufreq_probe':
    :(.text+0x1748e8): undefined reference to `of_cpufreq_cooling_register'

    To avoid this problem, change cpufreq Kconfig to allow the drivers
    to be loadable modules as well and enforce a dependency on the
    thermal module.

    This change, in order to allow module builds on this cpufreq
    driver, properly constructs the driver into a single module,
    instead of several modules. The change also keeps the proper
    platform dependency, and therefore, it wont load in platforms
    that are not supposed to be loaded. The user will be able to
    build the support for all platforms, or select which platforms
    (s)he wants (as originally), except that now it can be a module,
    instead.

    Besides, it will still keep the driver only on those configs
    that expect it to be on. And it won't compile/load on platforms
    that it is not supposed to. It brings the config ARM_EXYNOS_CPU_FREQ_BOOST_SW
    closer to this driver, so it looks better in the menuconfig.

    We intentionally change ARM_EXYNOS5440_CPUFREQ to be tristate too, to
    avoid future troubles.

    Cc: Viresh Kumar
    Cc: Kukjin Kim
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-pm@vger.kernel.org
    Cc: linux-samsung-soc@vger.kernel.org
    Fixes: e725d26c4857 ("cpufreq: exynos: Use device tree to determine if cpufreq cooling should be registered")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Eduardo Valentin

    Arnd Bergmann
     

21 Dec, 2014

1 commit


27 Nov, 2014

1 commit


06 Nov, 2014

1 commit


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
     

09 Jul, 2014

1 commit

  • Since commtit 8a7b1227e303 (cpufreq: davinci: move cpufreq driver to
    drivers/cpufreq) this added dependancy only for CONFIG_ARCH_DAVINCI_DA850
    where as davinci_cpufreq_init() call is used by all davinci platform.

    This patch fixes following build error:

    arch/arm/mach-davinci/built-in.o: In function `davinci_init_late':
    :(.init.text+0x928): undefined reference to `davinci_cpufreq_init'
    make: *** [vmlinux] Error 1

    Fixes: 8a7b1227e303 (cpufreq: davinci: move cpufreq driver to drivers/cpufreq)
    Signed-off-by: Lad, Prabhakar
    Acked-by: Viresh Kumar
    Cc: 3.10+ # 3.10+
    Signed-off-by: Rafael J. Wysocki

    Prabhakar Lad
     

07 May, 2014

1 commit

  • CPUFreq specific helper functions for OPP (Operating Performance Points)
    now use generic OPP functions that allow CPUFreq to be be moved back
    into CPUFreq framework. This allows for independent modifications
    or future enhancements as needed isolated to just CPUFreq framework
    alone.

    Here, we just move relevant code and documentation to make this part of
    CPUFreq infrastructure.

    Cc: Kevin Hilman
    Signed-off-by: Nishanth Menon
    Acked-by: Viresh Kumar
    Signed-off-by: Rafael J. Wysocki

    Nishanth Menon
     

07 Apr, 2014

1 commit

  • Backend driver to dynamically set voltage and frequency on
    IBM POWER non-virtualized platforms. Power management SPRs
    are used to set the required PState.

    This driver works in conjunction with cpufreq governors
    like 'ondemand' to provide a demand based frequency and
    voltage setting on IBM POWER non-virtualized platforms.

    PState table is obtained from OPAL v3 firmware through device
    tree.

    powernv_cpufreq back-end driver would parse the relevant device-tree
    nodes and initialise the cpufreq subsystem on powernv platform.

    The code was originally written by svaidy@linux.vnet.ibm.com. Over
    time it was modified to accomodate bug-fixes as well as updates to the
    the cpu-freq core. Relevant portions of the change logs corresponding
    to those modifications are noted below:

    * The policy->cpus needs to be populated in a hotplug-invariant
    manner instead of using cpu_sibling_mask() which varies with
    cpu-hotplug. This is because the cpufreq core code copies this
    content into policy->related_cpus mask which should not vary on
    cpu-hotplug. [Authored by srivatsa.bhat@linux.vnet.ibm.com]

    * Create a helper routine that can return the cpu-frequency for the
    corresponding pstate_id. Also, cache the values of the pstate_max,
    pstate_min and pstate_nominal and nr_pstates in a static structure
    so that they can be reused in the future to perform any
    validations. [Authored by ego@linux.vnet.ibm.com]

    * Create a driver attribute named cpuinfo_nominal_freq which creates
    a sysfs read-only file named cpuinfo_nominal_freq. Export the
    frequency corresponding to the nominal_pstate through this
    interface.

    Nominal frequency is the highest non-turbo frequency for the
    platform. This is generally used for setting governor policies
    from user space for optimal energy efficiency. [Authored by
    ego@linux.vnet.ibm.com]

    * Implement a powernv_cpufreq_get(unsigned int cpu) method which will
    return the current operating frequency. Export this via the sysfs
    interface cpuinfo_cur_freq by setting powernv_cpufreq_driver.get to
    powernv_cpufreq_get(). [Authored by ego@linux.vnet.ibm.com]

    [Change log updated by ego@linux.vnet.ibm.com]

    Reviewed-by: Preeti U Murthy
    Signed-off-by: Vaidyanathan Srinivasan
    Signed-off-by: Srivatsa S. Bhat
    Signed-off-by: Anton Blanchard
    Signed-off-by: Gautham R. Shenoy
    Signed-off-by: Rafael J. Wysocki

    Vaidyanathan Srinivasan
     

30 Oct, 2013

1 commit

  • The TC2(i.e. CA15_A7) Versatile Express has external Cortex M3 based
    power controller which is responsible for CPU DVFS and SPC provides
    the interface for the same.

    This patch adds a tiny interface driver to check if OPPs are
    initialised by SPC platform code and register the arm_big_little
    cpufreq driver.

    Signed-off-by: Sudeep KarkadaNagesha
    Acked-by: Nicolas Pitre
    Acked-by: Viresh Kumar
    Signed-off-by: Rafael J. Wysocki

    Sudeep KarkadaNagesha
     

16 Oct, 2013

1 commit

  • CONFIG_CPU_FREQ_TABLE will be always enabled when cpufreq framework is used, as
    cpufreq core depends on it. So, we don't need this CONFIG option anymore as it
    is not configurable. Remove CONFIG_CPU_FREQ_TABLE and update its users.

    Signed-off-by: Viresh Kumar
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar