17 Mar, 2016

1 commit


23 Feb, 2016

1 commit

  • As per the documentation of the devfreq_dev_profile.target callback, set
    the freq argument to the new frequency before returning.

    This caused endless messages like this after recent changes in the core:

    devfreq 6000c800.actmon: Couldn't update frequency transition information.

    Signed-off-by: Tomeu Vizoso
    Reported-by: Tyler Baker
    Tested-by: Thierry Reding
    Acked-by: Thierry Reding
    Signed-off-by: MyungJoo Ham

    Tomeu Vizoso
     

13 Jan, 2016

6 commits

  • Before this patch for a device without statistics support,

    $ cat trans_stat
    From : To
    : time(ms)
    Total transitions : 0
    $

    After this patch applied for such a device,

    $ cat trans_stat
    Not Supported.
    $

    Signed-off-by: MyungJoo Ham

    MyungJoo Ham
     
  • This patch modifies the indentation of 'trans_stat' sysfs to improve readability.
    The 1GHz is 1000,000,000. So it needs the least 10 position to show the GHz unit.

    - Before apply this patch,
    -sh-3.2# cat trans_stat
    From : To
    :50000000100000000133000000200000000400000000 time(ms)
    *50000000: 0 0 0 0 7 1817635
    100000000: 4 0 0 0 4 1590
    133000000: 1 4 0 0 7 975
    200000000: 2 2 7 0 1 2655
    400000000: 0 2 5 12 0 1860
    Total transition : 58

    - After apply this patch,
    -sh-3.2# cat trans_stat
    From : To
    : 50000000 100000000 133000000 200000000 400000000 time(ms)
    * 50000000: 0 0 0 0 7 14405
    100000000: 4 0 0 0 3 2015
    133000000: 2 3 0 0 7 1020
    200000000: 1 2 7 0 0 2970
    400000000: 0 2 5 10 0 1575
    Total transition : 53

    Signed-off-by: Chanwoo Choi
    Signed-off-by: MyungJoo Ham

    Chanwoo Choi
     
  • This patch initialize the freq_table array of each devfreq device by using
    the devfreq_set_freq_table(). If freq_table is NULL, the devfreq framework
    is not able to support the frequency transtion information through sysfs.

    The OPP core uses the integer type for the number of opps in the opp list
    and uses the 'unsigned long' type for each frequency. So, this patch
    modifies the type of some variable as following:
    - the type of freq_table : unsigned int -> unsigned long
    - the type of max_state : unsigned int -> int

    - Corrected types, format strings, mutex usages by MyungJoo

    Signed-off-by: Chanwoo Choi
    Signed-off-by: MyungJoo Ham

    Chanwoo Choi
     
  • This patch adds the 'show_one' macro to simplify the duplicate code
    of both max_freq_show() and min_freq_show().

    Signed-off-by: Chanwoo Choi
    Signed-off-by: MyungJoo Ham

    Chanwoo Choi
     
  • This patch just fixes following error and warning by using
    scripts/checkpatch.pl.

    - Follwoing issue from checkpatch.pl:
    ERROR: space prohibited before that close parenthesis ')'
    + if (count < 0 ) {

    WARNING: line over 80 characters
    + ptr = devres_alloc(devm_devfreq_event_release, sizeof(*ptr), GFP_KERNEL);

    Signed-off-by: Chanwoo Choi
    Signed-off-by: MyungJoo Ham

    Chanwoo Choi
     
  • This patch just removes the error log when
    devfreq_event_get_edev_by_phandle() fail to get the instance of
    devfreq-event device. It is related to sequence of the probe() of each
    driver. So, this error log might show the always during kernel booting.
    Each driver using this function can show the appropriate error log.

    Signed-off-by: Chanwoo Choi
    Signed-off-by: MyungJoo Ham

    Chanwoo Choi
     

02 Oct, 2015

1 commit

  • When device_register() fails, kfree(devfreq) is called already in
    devfreq_dev_release(), hence there is no need to call kfree(devfreq)
    in err_dev again.

    Signed-off-by: Geliang Tang
    Signed-off-by: MyungJoo Ham

    Geliang Tang
     

30 Sep, 2015

1 commit


11 Sep, 2015

7 commits


31 Mar, 2015

6 commits


30 Mar, 2015

2 commits


14 Feb, 2015

1 commit

  • * pm-cpufreq:
    cpufreq: speedstep-smi: enable interrupts when waiting

    * pm-cpuidle:
    intel_idle: support additional Broadwell model

    * pm-devfreq:
    PM / devfreq: event: testing the wrong variable

    * pm-opp:
    PM / OPP / clk: Remove unnecessary OOM message

    * pm-tools:
    tools/power turbostat: support additional Broadwell model
    tools/power turbostat: update parameters, documentation
    tools/power turbostat: Skip printing disabled package C-states

    Rafael J. Wysocki
     

12 Feb, 2015

1 commit


11 Feb, 2015

1 commit

  • Pull ACPI and power management updates from Rafael Wysocki:
    "We have a few new features this time, including a new SFI-based
    cpufreq driver, a new devfreq driver for Tegra Activity Monitor, a new
    devfreq class for providing its governors with raw utilization data
    and a new ACPI driver for AMD SoCs.

    Still, the majority of changes here are reworks of existing code to
    make it more straightforward or to prepare it for implementing new
    features on top of it. The primary example is the rework of ACPI
    resources handling from Jiang Liu, Thomas Gleixner and Lv Zheng with
    support for IOAPIC hotplug implemented on top of it, but there is
    quite a number of changes of this kind in the cpufreq core, ACPICA,
    ACPI EC driver, ACPI processor driver and the generic power domains
    core code too.

    The most active developer is Viresh Kumar with his cpufreq changes.

    Specifics:

    - Rework of the core ACPI resources parsing code to fix issues in it
    and make using resource offsets more convenient and consolidation
    of some resource-handing code in a couple of places that have grown
    analagous data structures and code to cover the the same gap in the
    core (Jiang Liu, Thomas Gleixner, Lv Zheng).

    - ACPI-based IOAPIC hotplug support on top of the resources handling
    rework (Jiang Liu, Yinghai Lu).

    - ACPICA update to upstream release 20150204 including an interrupt
    handling rework that allows drivers to install raw handlers for
    ACPI GPEs which then become entirely responsible for the given GPE
    and the ACPICA core code won't touch it (Lv Zheng, David E Box,
    Octavian Purdila).

    - ACPI EC driver rework to fix several concurrency issues and other
    problems related to events handling on top of the ACPICA's new
    support for raw GPE handlers (Lv Zheng).

    - New ACPI driver for AMD SoCs analogous to the LPSS (Low-Power
    Subsystem) driver for Intel chips (Ken Xue).

    - Two minor fixes of the ACPI LPSS driver (Heikki Krogerus, Jarkko
    Nikula).

    - Two new blacklist entries for machines (Samsung 730U3E/740U3E and
    510R) where the native backlight interface doesn't work correctly
    while the ACPI one does (Hans de Goede).

    - Rework of the ACPI processor driver's handling of idle states to
    make the code more straightforward and less bloated overall (Rafael
    J Wysocki).

    - Assorted minor fixes related to ACPI and SFI (Andreas Ruprecht,
    Andy Shevchenko, Hanjun Guo, Jan Beulich, Rafael J Wysocki, Yaowei
    Bai).

    - PCI core power management modification to avoid resuming (some)
    runtime-suspended devices during system suspend if they are in the
    right states already (Rafael J Wysocki).

    - New SFI-based cpufreq driver for Intel platforms using SFI
    (Srinidhi Kasagar).

    - cpufreq core fixes, cleanups and simplifications (Viresh Kumar,
    Doug Anderson, Wolfram Sang).

    - SkyLake CPU support and other updates for the intel_pstate driver
    (Kristen Carlson Accardi, Srinivas Pandruvada).

    - cpufreq-dt driver cleanup (Markus Elfring).

    - Init fix for the ARM big.LITTLE cpuidle driver (Sudeep Holla).

    - Generic power domains core code fixes and cleanups (Ulf Hansson).

    - Operating Performance Points (OPP) core code cleanups and kernel
    documentation update (Nishanth Menon).

    - New dabugfs interface to make the list of PM QoS constraints
    available to user space (Nishanth Menon).

    - New devfreq driver for Tegra Activity Monitor (Tomeu Vizoso).

    - New devfreq class (devfreq_event) to provide raw utilization data
    to devfreq governors (Chanwoo Choi).

    - Assorted minor fixes and cleanups related to power management
    (Andreas Ruprecht, Krzysztof Kozlowski, Rickard Strandqvist, Pavel
    Machek, Todd E Brandt, Wonhong Kwon).

    - turbostat updates (Len Brown) and cpupower Makefile improvement
    (Sriram Raghunathan)"

    * tag 'pm+acpi-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (151 commits)
    tools/power turbostat: relax dependency on APERF_MSR
    tools/power turbostat: relax dependency on invariant TSC
    Merge branch 'pci/host-generic' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci into acpi-resources
    tools/power turbostat: decode MSR_*_PERF_LIMIT_REASONS
    tools/power turbostat: relax dependency on root permission
    ACPI / video: Add disable_native_backlight quirk for Samsung 510R
    ACPI / PM: Remove unneeded nested #ifdef
    USB / PM: Remove unneeded #ifdef and associated dead code
    intel_pstate: provide option to only use intel_pstate with HWP
    ACPI / EC: Add GPE reference counting debugging messages
    ACPI / EC: Add query flushing support
    ACPI / EC: Refine command storm prevention support
    ACPI / EC: Add command flushing support.
    ACPI / EC: Introduce STARTED/STOPPED flags to replace BLOCKED flag
    ACPI: add AMD ACPI2Platform device support for x86 system
    ACPI / table: remove duplicate NULL check for the handler of acpi_table_parse()
    ACPI / EC: Update revision due to raw handler mode.
    ACPI / EC: Reduce ec_poll() by referencing the last register access timestamp.
    ACPI / EC: Fix several GPE handling issues by deploying ACPI_GPE_DISPATCH_RAW_HANDLER mode.
    ACPICA: Events: Enable APIs to allow interrupt/polling adaptive request based GPE handling model
    ...

    Linus Torvalds
     

30 Jan, 2015

2 commits

  • This patch fixes the build break of the exynos-ppmu driver because Makefile
    in drivers/devfreq don't include the entry of devfreq-event.c driver.

    The original patch[1] includes the entry to build devfreq-event.c without
    the build break. This build break is generated in the process of merging the
    patch.
    [1] https://lkml.org/lkml/2015/1/25/579
    - [PATCH v10 1/7] devfreq: event: Add new devfreq_event class to provide basic
    data for devfreq governor

    CC init/version.o
    LD init/built-in.o
    drivers/built-in.o: In function `exynos_ppmu_probe':
    binder.c:(.text+0x4447ec): undefined reference to `devm_devfreq_event_add_edev'
    make: *** [vmlinux] Error 1

    Cc: Rafael J. Wysocki
    Cc: MyungJoo Ham
    Signed-off-by: Chanwoo Choi

    Chanwoo Choi
     
  • This patch adds a new class in devfreq, devfreq_event, which provides
    raw data (e.g., memory bus utilization, GPU utilization) for devfreq
    governors.

    - devfreq_event device : Provides raw data for a governor of a devfreq device
    - devfreq device : Monitors device state and changes frequency/voltage
    of the device using the raw data from its
    devfreq_event device.

    A devfreq device dertermines performance states (normally the frequency
    and the voltage vlues) based on the results its designtated devfreq governor:
    e.g., ondemand, performance, powersave.

    In order to give such results required by a devfreq device, the devfreq
    governor requires data that indicates the performance requirement given
    to the devfreq device. The conventional (previous) implementatino of
    devfreq subsystem requires a devfreq device driver to implement its own
    mechanism to acquire performance requirement for its governor. However,
    there had been issues with such requirements:

    1. Although performance requirement of such devices is usually acquired
    from common devices (PMU/PPMU), we do not have any abstract structure to
    represent them properly.
    2. Such performance requirement devices (PMU/PPMU) are actual hardware
    pieces that may be represented by Device Tree directly while devfreq device
    itself is a virtual entity that are not considered to be represented by
    Device Tree according to Device Tree folks.

    In order to address such issues, a devferq_event device (represented by
    this patch) provides a template for device drivers representing
    performance monitoring unit, which gives the basic or raw data for
    preformance requirement, which in turn, is required by devfreq governors.

    The following description explains the feature of two kind of devfreq class:
    - devfreq class (existing)
    : devfreq consumer device use raw data from devfreq_event device for
    determining proper current system state and change voltage/frequency
    dynamically using various governors.

    - devfreq_event class (new)
    : Provide measured raw data to devfreq device for governor

    Cc: MyungJoo Ham
    Cc: Kyungmin Park
    Signed-off-by: Chanwoo Choi
    [Commit message rewritten & conflict resolved by MyungJoo]
    Signed-off-by: MyungJoo Ham

    Chanwoo Choi
     

29 Jan, 2015

1 commit

  • The ACTMON block can monitor several counters, providing averaging and firing
    interrupts based on watermarking configuration. This implementation monitors
    the MCALL and MCCPU counters to choose an appropriate frequency for the
    external memory clock.

    This patch is based on work by Alex Frid and Mikko
    Perttunen .

    Signed-off-by: Tomeu Vizoso
    Signed-off-by: MyungJoo Ham

    Tomeu Vizoso
     

07 Jan, 2015

1 commit

  • SRCU is not necessary to be compiled by default in all cases. For tinification
    efforts not compiling SRCU unless necessary is desirable.

    The current patch tries to make compiling SRCU optional by introducing a new
    Kconfig option CONFIG_SRCU which is selected when any of the components making
    use of SRCU are selected.

    If we do not select CONFIG_SRCU, srcu.o will not be compiled at all.

    text data bss dec hex filename
    2007 0 0 2007 7d7 kernel/rcu/srcu.o

    Size of arch/powerpc/boot/zImage changes from

    text data bss dec hex filename
    831552 64180 23944 919676 e087c arch/powerpc/boot/zImage : before
    829504 64180 23952 917636 e0084 arch/powerpc/boot/zImage : after

    so the savings are about ~2000 bytes.

    Signed-off-by: Pranith Kumar
    CC: Paul E. McKenney
    CC: Josh Triplett
    CC: Lai Jiangshan
    Signed-off-by: Paul E. McKenney
    [ paulmck: resolve conflict due to removal of arch/ia64/kvm/Kconfig. ]

    Pranith Kumar
     

20 Oct, 2014

1 commit


29 Sep, 2014

3 commits

  • Export symbols from the PPMU driver needed to build the exynos bus
    driver as a module.

    Cc: MyungJoo Ham
    Cc: Kyungmin Park
    Cc: Kukjin Kim
    Cc: Bartlomiej Zolnierkiewicz
    Signed-off-by: Punit Agrawal
    Signed-off-by: MyungJoo Ham

    Punit Agrawal
     
  • These functions are indended for use by drivers and should be available
    also when the driver is built as a module.

    Cc: MyungJoo Ham
    Cc: Kyungmin Park
    Signed-off-by: Ãrjan Eide
    Signed-off-by: MyungJoo Ham

    Ãrjan Eide
     
  • The Kconfig symbol ARCH_HAS_OPP became redundant in v3.16: commit
    049d595a4db3 ("PM / OPP: Make OPP invisible to users in Kconfig")
    removed the only dependency that used it. Setting it had no effect
    anymore.

    So commit 78c5e0bb145d ("PM / OPP: Remove ARCH_HAS_OPP") removed it. For
    some reason that commit did not remove all select statements for that
    symbol. These statements are now useless. Remove one from devfreq too.

    Signed-off-by: Paul Bolle
    Signed-off-by: MyungJoo Ham

    Paul Bolle
     

23 Jul, 2014

1 commit

  • Since the OPP layer is a kernel library which has been converted to be
    directly selectable by its callers rather than user selectable and
    requiring architectures to enable it explicitly the ARCH_HAS_OPP symbol
    has become redundant and can be removed. Do so.

    Signed-off-by: Mark Brown
    Reviewed-by: Viresh Kumar
    Acked-by: Nishanth Menon
    Acked-by: Rob Herring
    Acked-by: Shawn Guo
    Acked-by: Simon Horman
    Signed-off-by: Rafael J. Wysocki

    Mark Brown
     

24 May, 2014

3 commits