20 Jan, 2021

1 commit

  • This is the 5.10.8 stable release

    * tag 'v5.10.8': (104 commits)
    Linux 5.10.8
    tools headers UAPI: Sync linux/fscrypt.h with the kernel sources
    drm/panfrost: Remove unused variables in panfrost_job_close()
    ...

    Signed-off-by: Jason Liu

    Jason Liu
     

17 Jan, 2021

1 commit

  • commit 943bdd0cecad06da8392a33093230e30e501eccc upstream.

    Currently there is an unlikely case where cpufreq_cpu_get() returns a
    NULL policy and this will cause a NULL pointer dereference later on.

    Fix this by passing the policy to transition_frequency_fidvid() from
    the caller and hence eliminating the need for the cpufreq_cpu_get()
    and cpufreq_cpu_put().

    Thanks to Viresh Kumar for suggesting the fix.

    Addresses-Coverity: ("Dereference null return")
    Fixes: b43a7ffbf33b ("cpufreq: Notify all policy->cpus in cpufreq_notify_transition()")
    Suggested-by: Viresh Kumar
    Signed-off-by: Colin Ian King
    Acked-by: Viresh Kumar
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Greg Kroah-Hartman

    Colin Ian King
     

04 Jan, 2021

1 commit

  • This is the 5.10.4 stable release

    * tag 'v5.10.4': (717 commits)
    Linux 5.10.4
    x86/CPU/AMD: Save AMD NodeId as cpu_die_id
    drm/edid: fix objtool warning in drm_cvt_modes()
    ...

    Signed-off-by: Jason Liu

    Conflicts:
    drivers/gpu/drm/imx/dcss/dcss-plane.c
    drivers/media/i2c/ov5640.c

    Jason Liu
     

30 Dec, 2020

11 commits

  • commit e40ad84c26b4deeee46666492ec66b9a534b8e59 upstream.

    When turbo has been disabled by the BIOS, but HWP_CAP.GUARANTEED is
    changed later, user space may want to take advantage of this increased
    guaranteed performance.

    HWP_CAP.GUARANTEED is not a static value. It can be adjusted by an
    out-of-band agent or during an Intel Speed Select performance level
    change. The HWP_CAP.MAX is still the maximum achievable performance
    with turbo disabled by the BIOS, so HWP_CAP.GUARANTEED can still
    change as long as it remains less than or equal to HWP_CAP.MAX.

    When HWP_CAP.GUARANTEED is changed, the sysfs base_frequency
    attribute shows the most recent guaranteed frequency value. This
    attribute can be used by user space software to update the scaling
    min/max limits of the CPU.

    Currently, the ->setpolicy() callback already uses the latest
    HWP_CAP values when setting HWP_REQ, but the ->verify() callback will
    restrict the user settings to the to old guaranteed performance value
    which prevents user space from making use of the extra CPU capacity
    theoretically available to it after increasing HWP_CAP.GUARANTEED.

    To address this, read HWP_CAP in intel_pstate_verify_cpu_policy()
    to obtain the maximum P-state that can be used and use that to
    confine the policy max limit instead of using the cached and
    possibly stale pstate.max_freq value for this purpose.

    For consistency, update intel_pstate_update_perf_limits() to use the
    maximum available P-state returned by intel_pstate_get_hwp_max() to
    compute the maximum frequency instead of using the return value of
    intel_pstate_get_max_freq() which, again, may be stale.

    This issue is a side-effect of fixing the scaling frequency limits in
    commit eacc9c5a927e ("cpufreq: intel_pstate: Fix intel_pstate_get_hwp_max()
    for turbo disabled") which corrected the setting of the reduced scaling
    frequency values, but caused stale HWP_CAP.GUARANTEED to be used in
    the case at hand.

    Fixes: eacc9c5a927e ("cpufreq: intel_pstate: Fix intel_pstate_get_hwp_max() for turbo disabled")
    Reported-by: Srinivas Pandruvada
    Tested-by: Srinivas Pandruvada
    Cc: 5.8+ # 5.8+
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Greg Kroah-Hartman

    Rafael J. Wysocki
     
  • [ Upstream commit fc928b901dc68481ba3e524860a641fe13e25dfe ]

    A driver should not 'select' drivers from another subsystem.
    If NVMEM is disabled, this one results in a warning:

    WARNING: unmet direct dependencies detected for NVMEM_IMX_OCOTP
    Depends on [n]: NVMEM [=n] && (ARCH_MXC [=y] || COMPILE_TEST [=y]) && HAS_IOMEM [=y]
    Selected by [y]:
    - ARM_IMX6Q_CPUFREQ [=y] && CPU_FREQ [=y] && (ARM || ARM64 [=y]) && ARCH_MXC [=y] && REGULATOR_ANATOP [=y]

    Change the 'select' to 'depends on' to prevent it from going wrong,
    and allow compile-testing without that driver, since it is only
    a runtime dependency.

    Fixes: 2782ef34ed23 ("cpufreq: imx: Select NVMEM_IMX_OCOTP")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Viresh Kumar
    Signed-off-by: Sasha Levin

    Arnd Bergmann
     
  • [ Upstream commit d15183991c2d53d7cecf27a1555c91b702cef1ea ]

    This patch adds missing MODULE_ALIAS for automatic loading of this cpufreq
    driver when it is compiled as an external module.

    Signed-off-by: Pali Rohár
    Fixes: 47ac9aa165540 ("cpufreq: arm_big_little: add vexpress SPC interface driver")
    Signed-off-by: Viresh Kumar
    Signed-off-by: Sasha Levin

    Pali Rohár
     
  • [ Upstream commit c0382d049d2def37b81e907a8b22661a4a4a6eb5 ]

    This patch adds missing MODULE_ALIAS for automatic loading of this cpufreq
    driver when it is compiled as an external module.

    Signed-off-by: Pali Rohár
    Fixes: 8def31034d033 ("cpufreq: arm_big_little: add SCPI interface driver")
    Signed-off-by: Viresh Kumar
    Signed-off-by: Sasha Levin

    Pali Rohár
     
  • [ Upstream commit b9acab091842ca8b288882798bb809f7abf5408a ]

    This patch adds missing MODULE_ALIAS for automatic loading of this cpufreq
    driver when it is compiled as an external module.

    Signed-off-by: Pali Rohár
    Fixes: a0a22cf14472f ("cpufreq: Loongson1: Add cpufreq driver for Loongson1B")
    Signed-off-by: Viresh Kumar
    Signed-off-by: Sasha Levin

    Pali Rohár
     
  • [ Upstream commit af2096f285077e3339eb835ad06c50bdd59f01b5 ]

    This patch adds missing MODULE_DEVICE_TABLE definition which generates
    correct modalias for automatic loading of this cpufreq driver when it is
    compiled as an external module.

    Signed-off-by: Pali Rohár
    Fixes: f328584f7bff8 ("cpufreq: Add sun50i nvmem based CPU scaling driver")
    Reviewed-by: Yangtao Li
    Signed-off-by: Viresh Kumar
    Signed-off-by: Sasha Levin

    Pali Rohár
     
  • [ Upstream commit 183747ab52654eb406fc6b5bfb40806b75d31811 ]

    This patch adds missing MODULE_DEVICE_TABLE definition which generates
    correct modalias for automatic loading of this cpufreq driver when it is
    compiled as an external module.

    Signed-off-by: Pali Rohár
    Fixes: ab0ea257fc58d ("cpufreq: st: Provide runtime initialised driver for ST's platforms")
    Signed-off-by: Viresh Kumar
    Signed-off-by: Sasha Levin

    Pali Rohár
     
  • [ Upstream commit a5a6031663bc1dd0a10babd49d1bcb3153a8327f ]

    This patch adds missing MODULE_DEVICE_TABLE definition which generates
    correct modalias for automatic loading of this cpufreq driver when it is
    compiled as an external module.

    Signed-off-by: Pali Rohár
    Fixes: 46e2856b8e188 ("cpufreq: Add Kryo CPU scaling driver")
    Signed-off-by: Viresh Kumar
    Signed-off-by: Sasha Levin

    Pali Rohár
     
  • [ Upstream commit af6eca06501118af3e2ad46eee8edab20624b74e ]

    This patch adds missing MODULE_DEVICE_TABLE definition which generates
    correct modalias for automatic loading of this cpufreq driver when it is
    compiled as an external module.

    Signed-off-by: Pali Rohár
    Fixes: 501c574f4e3a5 ("cpufreq: mediatek: Add support of cpufreq to MT2701/MT7623 SoC")
    Signed-off-by: Viresh Kumar
    Signed-off-by: Sasha Levin

    Pali Rohár
     
  • [ Upstream commit 9433777a6e0aae27468d3434b75cd51bb88ff711 ]

    This patch adds missing MODULE_DEVICE_TABLE definition which generates
    correct modalias for automatic loading of this cpufreq driver when it is
    compiled as an external module.

    Signed-off-by: Pali Rohár
    Fixes: 6754f556103be ("cpufreq / highbank: add support for highbank cpufreq")
    Signed-off-by: Viresh Kumar
    Signed-off-by: Sasha Levin

    Pali Rohár
     
  • [ Upstream commit 925a5bcefe105f2790ecbdc252eb2315573f309d ]

    This patch adds missing MODULE_DEVICE_TABLE definition which generates
    correct modalias for automatic loading of this cpufreq driver when it is
    compiled as an external module.

    Signed-off-by: Pali Rohár
    Fixes: f525a670533d9 ("cpufreq: ap806: add cpufreq driver for Armada 8K")
    Signed-off-by: Viresh Kumar
    Signed-off-by: Sasha Levin

    Pali Rohár
     

14 Dec, 2020

4 commits


23 Nov, 2020

2 commits

  • Pull SCMI cpufreq driver fix for 5.10-rc6 from Viresh Kumar:

    "This fixes a build issues with SCMI cpufreq driver in the
    !CONFIG_COMMON_CLK case."

    * 'cpufreq/arm/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm:
    cpufreq: scmi: Fix build for !CONFIG_COMMON_CLK

    Rafael J. Wysocki
     
  • Commit 8410e7f3b31e ("cpufreq: scmi: Fix OPP addition failure with a
    dummy clock provider") registers a dummy clock provider using
    devm_of_clk_add_hw_provider. These *_hw_provider functions are defined
    only when CONFIG_COMMON_CLK=y. One possible fix is to add the Kconfig
    dependency, but since we plan to move away from the clock dependency
    for scmi cpufreq, it is preferrable to avoid that.

    Let us just conditionally compile out the offending call to
    devm_of_clk_add_hw_provider. It also uses the variable 'dev' outside
    of the #ifdef block to avoid build warning.

    Fixes: 8410e7f3b31e ("cpufreq: scmi: Fix OPP addition failure with a dummy clock provider")
    Cc: Rafael J. Wysocki
    Cc: Viresh Kumar
    Signed-off-by: Sudeep Holla
    Signed-off-by: Viresh Kumar

    Sudeep Holla
     

17 Nov, 2020

3 commits

  • Pull cpufreq-arm fixes for 5.10-rc5 from Viresh Kumar:

    "- tegra186: Fix ->get() callback.
    - arm/scmi: Add dummy clock provider to fix failure."

    * 'cpufreq/arm/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm:
    cpufreq: scmi: Fix OPP addition failure with a dummy clock provider
    cpufreq: tegra186: Fix get frequency callback

    Rafael J. Wysocki
     
  • Commit dd461cd9183f ("opp: Allow dev_pm_opp_get_opp_table() to return
    -EPROBE_DEFER") handles -EPROBE_DEFER for the clock/interconnects within
    _allocate_opp_table() which is called from dev_pm_opp_add and it
    now propagates the error back to the caller.

    SCMI performance domain re-used clock bindings to keep it simple. However
    with the above mentioned change, if clock property is present in a device
    node, opps fails to get added with below errors until clk_get succeeds.

    cpu0: failed to add opp 450000000Hz
    cpu0: failed to add opps to the device
    ....(errors on cpu1-cpu4)
    cpu5: failed to add opp 450000000Hz
    cpu5: failed to add opps to the device

    So, in order to fix the issue, we need to register dummy clock provider.
    With the dummy clock provider, clk_get returns NULL(no errors!), then opp
    core proceeds to add OPPs for the CPUs.

    Cc: Rafael J. Wysocki
    Fixes: dd461cd9183f ("opp: Allow dev_pm_opp_get_opp_table() to return -EPROBE_DEFER")
    Signed-off-by: Sudeep Holla
    Signed-off-by: Viresh Kumar

    Sudeep Holla
     
  • Commit b89c01c96051 ("cpufreq: tegra186: Fix initial frequency")
    implemented the CPUFREQ 'get' callback to determine the current
    operating frequency for each CPU. This implementation used a simple
    looked up to determine the current operating frequency. The problem
    with this is that frequency table for different Tegra186 devices may
    vary and so the default boot frequency for Tegra186 device may or may
    not be present in the frequency table. If the default boot frequency is
    not present in the frequency table, this causes the function
    tegra186_cpufreq_get() to return 0 and in turn causes cpufreq_online()
    to fail which prevents CPUFREQ from working.

    Fix this by always calculating the CPU frequency based upon the current
    'ndiv' setting for the CPU. Note that the CPU frequency for Tegra186 is
    calculated by reading the current 'ndiv' setting, multiplying by the
    CPU reference clock and dividing by a constant divisor.

    Fixes: b89c01c96051 ("cpufreq: tegra186: Fix initial frequency")

    Signed-off-by: Jon Hunter
    Signed-off-by: Viresh Kumar

    Jon Hunter
     

11 Nov, 2020

4 commits

  • Make intel_pstate take the new CPUFREQ_GOV_STRICT_TARGET governor
    flag into account when it operates in the passive mode with HWP
    enabled, so as to fix the "powersave" governor behavior in that
    case (currently, HWP is allowed to scale the performance all the
    way up to the policy max limit when the "powersave" governor is
    used, but it should be constrained to the policy min limit then).

    Fixes: f6ebbcf08f37 ("cpufreq: intel_pstate: Implement passive mode with HWP enabled")
    Signed-off-by: Rafael J. Wysocki
    Acked-by: Viresh Kumar
    Cc: 5.9+ # 5.9+: 9a2a9ebc0a75 cpufreq: Introduce governor flags
    Cc: 5.9+ # 5.9+: 218f66870181 cpufreq: Introduce CPUFREQ_GOV_STRICT_TARGET
    Cc: 5.9+ # 5.9+: ea9364bbadf1 cpufreq: Add strict_target to struct cpufreq_policy

    Rafael J. Wysocki
     
  • Add a new field to be set when the CPUFREQ_GOV_STRICT_TARGET flag is
    set for the current governor to struct cpufreq_policy, so that the
    drivers needing to check CPUFREQ_GOV_STRICT_TARGET do not have to
    access the governor object during every frequency transition.

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

    Rafael J. Wysocki
     
  • Introduce a new governor flag, CPUFREQ_GOV_STRICT_TARGET, for the
    governors that want the target frequency to be set exactly to the
    given value without leaving any room for adjustments on the hardware
    side and set this flag for the powersave and performance governors.

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

    Rafael J. Wysocki
     
  • A new cpufreq governor flag will be added subsequently, so replace
    the bool dynamic_switching fleid in struct cpufreq_governor with a
    flags field and introduce CPUFREQ_GOV_DYNAMIC_SWITCHING to set for
    the "dynamic switching" governors instead of it.

    No intentional functional impact.

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

    Rafael J. Wysocki
     

29 Oct, 2020

2 commits


28 Oct, 2020

4 commits

  • If the cpufreq policy max limit is changed when intel_pstate operates
    in the passive mode with HWP enabled and the "powersave" governor is
    used on top of it, the HWP max limit is not updated as appropriate.

    Namely, in the "powersave" governor case, the target P-state
    is always equal to the policy min limit, so if the latter does
    not change, intel_cpufreq_adjust_hwp() is not invoked to update
    the HWP Request MSR due to the "target_pstate != old_pstate" check
    in intel_cpufreq_update_pstate(), so the HWP max limit is not
    updated as a result.

    Also, if the CPUFREQ_NEED_UPDATE_LIMITS flag is not set for the
    driver and the target frequency does not change along with the
    policy max limit, the "target_freq == policy->cur" check in
    __cpufreq_driver_target() prevents the driver's ->target() callback
    from being invoked at all, so the HWP max limit is not updated.

    To prevent that occurring, set the CPUFREQ_NEED_UPDATE_LIMITS flag
    in the intel_cpufreq driver structure if HWP is enabled and modify
    intel_cpufreq_update_pstate() to do the "target_pstate != old_pstate"
    check only in the non-HWP case and let intel_cpufreq_adjust_hwp()
    always run in the HWP case (it will update HWP Request only if the
    cached value of the register is different from the new one including
    the limits, so if neither the target P-state value nor the max limit
    changes, the register write will still be avoided).

    Fixes: f6ebbcf08f37 ("cpufreq: intel_pstate: Implement passive mode with HWP enabled")
    Reported-by: Zhang Rui
    Cc: 5.9+ # 5.9+: 1c534352f47f cpufreq: Introduce CPUFREQ_NEED_UPDATE_LIMITS ...
    Signed-off-by: Rafael J. Wysocki
    Acked-by: Viresh Kumar
    Tested-by: Zhang Rui

    Rafael J. Wysocki
     
  • Generally, a cpufreq driver may need to update some internal upper
    and lower frequency boundaries on policy max and min changes,
    respectively, but currently this does not work if the target
    frequency does not change along with the policy limit.

    Namely, if the target frequency does not change along with the
    policy min or max, the "target_freq == policy->cur" check in
    __cpufreq_driver_target() prevents driver callbacks from being
    invoked and they do not even have a chance to update the
    corresponding internal boundary.

    This particularly affects the "powersave" and "performance"
    governors that always set the target frequency to one of the
    policy limits and it never changes when the other limit is updated.

    To allow cpufreq the drivers needing to update internal frequency
    boundaries on policy limits changes to avoid this issue, introduce
    a new driver flag, CPUFREQ_NEED_UPDATE_LIMITS, that (when set) will
    neutralize the check mentioned above.

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

    Rafael J. Wysocki
     
  • Commit 33aa46f252c7 ("cpufreq: intel_pstate: Use passive mode by
    default without HWP") was meant to cause intel_pstate to be used
    in the passive mode with the schedutil governor on top of it, but
    it missed the case in which either "ondemand" or "conservative"
    was selected as the default governor in the existing kernel config,
    in which case the previous old governor configuration would be used,
    causing the default legacy governor to be used on top of intel_pstate
    instead of schedutil.

    Address this by preventing "ondemand" and "conservative" from being
    configured as the default cpufreq governor in the case when schedutil
    is the default choice for the default governor setting.

    [Note that the default cpufreq governor can still be set via the
    kernel command line if need be and that choice is not limited,
    so if anyone really wants to use one of the legacy governors by
    default, it can be achieved this way.]

    Fixes: 33aa46f252c7 ("cpufreq: intel_pstate: Use passive mode by default without HWP")
    Reported-by: Julia Lawall
    Cc: 5.8+ # 5.8+
    Signed-off-by: Rafael J. Wysocki
    Acked-by: Viresh Kumar

    Rafael J. Wysocki
     
  • A 'break' following a 'return' statement is pointless, so remove it.

    Signed-off-by: Zhang Qilong
    Acked-by: Viresh Kumar
    [ rjw: Subject and changelog edits ]
    Signed-off-by: Rafael J. Wysocki

    Zhang Qilong
     

25 Oct, 2020

2 commits

  • Pull ARM SoC-related driver updates from Olof Johansson:
    "Various driver updates for platforms. A bulk of this is smaller fixes
    or cleanups, but some of the new material this time around is:

    - Support for Nvidia Tegra234 SoC

    - Ring accelerator support for TI AM65x

    - PRUSS driver for TI platforms

    - Renesas support for R-Car V3U SoC

    - Reset support for Cortex-M4 processor on i.MX8MQ

    There are also new socinfo entries for a handful of different SoCs and
    platforms"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (131 commits)
    drm/mediatek: reduce clear event
    soc: mediatek: cmdq: add clear option in cmdq_pkt_wfe api
    soc: mediatek: cmdq: add jump function
    soc: mediatek: cmdq: add write_s_mask value function
    soc: mediatek: cmdq: add write_s value function
    soc: mediatek: cmdq: add read_s function
    soc: mediatek: cmdq: add write_s_mask function
    soc: mediatek: cmdq: add write_s function
    soc: mediatek: cmdq: add address shift in jump
    soc: mediatek: mtk-infracfg: Fix kerneldoc
    soc: amlogic: pm-domains: use always-on flag
    reset: sti: reset-syscfg: fix struct description warnings
    reset: imx7: add the cm4 reset for i.MX8MQ
    dt-bindings: reset: imx8mq: add m4 reset
    reset: Fix and extend kerneldoc
    reset: reset-zynqmp: Added support for Versal platform
    dt-bindings: reset: Updated binding for Versal reset driver
    reset: imx7: Support module build
    soc: fsl: qe: Remove unnessesary check in ucc_set_tdm_rxtx_clk
    soc: fsl: qman: convert to use be32_add_cpu()
    ...

    Linus Torvalds
     
  • Pull ARM SoC platform updates from Olof Johansson:
    "SoC changes, a substantial part of this is cleanup of some of the
    older platforms that used to have a bunch of board files.

    In particular:

    - Remove non-DT i.MX platforms that haven't seen activity in years,
    it's time to remove them.

    - A bunch of cleanup and removal of platform data for TI/OMAP
    platforms, moving over to genpd for power/reset control (yay!)

    - Major cleanup of Samsung S3C24xx and S3C64xx platforms, moving them
    closer to multiplatform support (not quite there yet, but getting
    close).

    There are a few other changes too, smaller fixlets, etc. For new
    platform support, the primary ones are:

    - New SoC: Hisilicon SD5203, ARM926EJ-S platform.

    - Cpufreq support for i.MX7ULP"

    * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (121 commits)
    ARM: mstar: Select MStar intc
    ARM: stm32: Replace HTTP links with HTTPS ones
    ARM: debug: add UART early console support for SD5203
    ARM: hisi: add support for SD5203 SoC
    ARM: omap3: enable off mode automatically
    clk: imx: imx35: Remove mx35_clocks_init()
    clk: imx: imx31: Remove mx31_clocks_init()
    clk: imx: imx27: Remove mx27_clocks_init()
    ARM: imx: Remove unused definitions
    ARM: imx35: Retrieve the IIM base address from devicetree
    ARM: imx3: Retrieve the AVIC base address from devicetree
    ARM: imx3: Retrieve the CCM base address from devicetree
    ARM: imx31: Retrieve the IIM base address from devicetree
    ARM: imx27: Retrieve the CCM base address from devicetree
    ARM: imx27: Retrieve the SYSCTRL base address from devicetree
    ARM: s3c64xx: bring back notes from removed debug-macro.S
    ARM: s3c24xx: fix Wunused-variable warning on !MMU
    ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
    MAINTAINERS: mark linux-samsung-soc list non-moderated
    ARM: imx: Remove remnant board file support pieces
    ...

    Linus Torvalds
     

24 Oct, 2020

1 commit

  • Pull more power management updates from Rafael Wysocki:
    "First of all, the adaptive voltage scaling (AVS) drivers go to new
    platform-specific locations as planned (this part was reported to have
    merge conflicts against the new arm-soc updates in linux-next).

    In addition to that, there are some fixes (intel_idle, intel_pstate,
    RAPL, acpi_cpufreq), the addition of on/off notifiers and idle state
    accounting support to the generic power domains (genpd) code and some
    janitorial changes all over.

    Specifics:

    - Move the AVS drivers to new platform-specific locations and get rid
    of the drivers/power/avs directory (Ulf Hansson).

    - Add on/off notifiers and idle state accounting support to the
    generic power domains (genpd) framework (Ulf Hansson, Lina Iyer).

    - Ulf will maintain the PM domain part of cpuidle-psci (Ulf Hansson).

    - Make intel_idle disregard ACPI _CST if it cannot use the data
    returned by that method (Mel Gorman).

    - Modify intel_pstate to avoid leaving useless sysfs directory
    structure behind if it cannot be registered (Chen Yu).

    - Fix domain detection in the RAPL power capping driver and prevent
    it from failing to enumerate the Psys RAPL domain (Zhang Rui).

    - Allow acpi-cpufreq to use ACPI _PSD information with Family 19 and
    later AMD chips (Wei Huang).

    - Update the driver assumptions comment in intel_idle and fix a
    kerneldoc comment in the runtime PM framework (Alexander Monakov,
    Bean Huo).

    - Avoid unnecessary resets of the cached frequency in the schedutil
    cpufreq governor to reduce overhead (Wei Wang).

    - Clean up the cpufreq core a bit (Viresh Kumar).

    - Make assorted minor janitorial changes (Daniel Lezcano, Geert
    Uytterhoeven, Hubert Jasudowicz, Tom Rix).

    - Clean up and optimize the cpupower utility somewhat (Colin Ian
    King, Martin Kaistra)"

    * tag 'pm-5.10-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (23 commits)
    PM: sleep: remove unreachable break
    PM: AVS: Drop the avs directory and the corresponding Kconfig
    PM: AVS: qcom-cpr: Move the driver to the qcom specific drivers
    PM: runtime: Fix typo in pm_runtime_set_active() helper comment
    PM: domains: Fix build error for genpd notifiers
    powercap: Fix typo in Kconfig "Plance" -> "Plane"
    cpufreq: schedutil: restore cached freq when next_f is not changed
    acpi-cpufreq: Honor _PSD table setting on new AMD CPUs
    PM: AVS: smartreflex Move driver to soc specific drivers
    PM: AVS: rockchip-io: Move the driver to the rockchip specific drivers
    PM: domains: enable domain idle state accounting
    PM: domains: Add curly braces to delimit comment + statement block
    PM: domains: Add support for PM domain on/off notifiers for genpd
    powercap/intel_rapl: enumerate Psys RAPL domain together with package RAPL domain
    powercap/intel_rapl: Fix domain detection
    intel_idle: Ignore _CST if control cannot be taken from the platform
    cpuidle: Remove pointless stub
    intel_idle: mention assumption that WBINVD is not needed
    MAINTAINERS: Add section for cpuidle-psci PM domain
    cpufreq: intel_pstate: Delete intel_pstate sysfs if failed to register the driver
    ...

    Linus Torvalds
     

19 Oct, 2020

1 commit

  • acpi-cpufreq has a old quirk that overrides the _PSD table supplied by
    BIOS on AMD CPUs. However the _PSD table of new AMD CPUs (Family 19h+)
    now accurately reports the P-state dependency of CPU cores. Hence this
    quirk needs to be fixed in order to support new CPUs' frequency control.

    Fixes: acd316248205 ("acpi-cpufreq: Add quirk to disable _PSD usage on all AMD CPUs")
    Signed-off-by: Wei Huang
    [ rjw: Subject edit ]
    Cc: 3.10+ # 3.10+
    Signed-off-by: Rafael J. Wysocki

    Wei Huang
     

17 Oct, 2020

1 commit

  • Pull powerpc updates from Michael Ellerman:

    - A series from Nick adding ARCH_WANT_IRQS_OFF_ACTIVATE_MM & selecting
    it for powerpc, as well as a related fix for sparc.

    - Remove support for PowerPC 601.

    - Some fixes for watchpoints & addition of a new ptrace flag for
    detecting ISA v3.1 (Power10) watchpoint features.

    - A fix for kernels using 4K pages and the hash MMU on bare metal
    Power9 systems with > 16TB of RAM, or RAM on the 2nd node.

    - A basic idle driver for shallow stop states on Power10.

    - Tweaks to our sched domains code to better inform the scheduler about
    the hardware topology on Power9/10, where two SMT4 cores can be
    presented by firmware as an SMT8 core.

    - A series doing further reworks & cleanups of our EEH code.

    - Addition of a filter for RTAS (firmware) calls done via sys_rtas(),
    to prevent root from overwriting kernel memory.

    - Other smaller features, fixes & cleanups.

    Thanks to: Alexey Kardashevskiy, Andrew Donnellan, Aneesh Kumar K.V,
    Athira Rajeev, Biwen Li, Cameron Berkenpas, Cédric Le Goater, Christophe
    Leroy, Christoph Hellwig, Colin Ian King, Daniel Axtens, David Dai, Finn
    Thain, Frederic Barrat, Gautham R. Shenoy, Greg Kurz, Gustavo Romero,
    Ira Weiny, Jason Yan, Joel Stanley, Jordan Niethe, Kajol Jain, Konrad
    Rzeszutek Wilk, Laurent Dufour, Leonardo Bras, Liu Shixin, Luca
    Ceresoli, Madhavan Srinivasan, Mahesh Salgaonkar, Nathan Lynch, Nicholas
    Mc Guire, Nicholas Piggin, Nick Desaulniers, Oliver O'Halloran, Pedro
    Miraglia Franco de Carvalho, Pratik Rajesh Sampat, Qian Cai, Qinglang
    Miao, Ravi Bangoria, Russell Currey, Satheesh Rajendran, Scott Cheloha,
    Segher Boessenkool, Srikar Dronamraju, Stan Johnson, Stephen Kitt,
    Stephen Rothwell, Thiago Jung Bauermann, Tyrel Datwyler, Vaibhav Jain,
    Vaidyanathan Srinivasan, Vasant Hegde, Wang Wensheng, Wolfram Sang, Yang
    Yingliang, zhengbin.

    * tag 'powerpc-5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (228 commits)
    Revert "powerpc/pci: unmap legacy INTx interrupts when a PHB is removed"
    selftests/powerpc: Fix eeh-basic.sh exit codes
    cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_reboot_notifier
    powerpc/time: Make get_tb() common to PPC32 and PPC64
    powerpc/time: Make get_tbl() common to PPC32 and PPC64
    powerpc/time: Remove get_tbu()
    powerpc/time: Avoid using get_tbl() and get_tbu() internally
    powerpc/time: Make mftb() common to PPC32 and PPC64
    powerpc/time: Rename mftbl() to mftb()
    powerpc/32s: Remove #ifdef CONFIG_PPC_BOOK3S_32 in head_book3s_32.S
    powerpc/32s: Rename head_32.S to head_book3s_32.S
    powerpc/32s: Setup the early hash table at all time.
    powerpc/time: Remove ifdef in get_dec() and set_dec()
    powerpc: Remove get_tb_or_rtc()
    powerpc: Remove __USE_RTC()
    powerpc: Tidy up a bit after removal of PowerPC 601.
    powerpc: Remove support for PowerPC 601
    powerpc: Remove PowerPC 601
    powerpc: Drop SYNC_601() ISYNC_601() and SYNC()
    powerpc: Remove CONFIG_PPC601_SYNC_FIX
    ...

    Linus Torvalds
     

16 Oct, 2020

2 commits

  • There is a corner case that if the intel_pstate driver fails to be
    registered (might be due to invalid MSR access) and acpi_cpufreq
    takse over, the intel_pstate sysfs interface is still populated
    which may confuse user space (turbostat for example):

    grep . /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
    acpi-cpufreq

    grep . /sys/devices/system/cpu/intel_pstate/*
    /sys/devices/system/cpu/intel_pstate/max_perf_pct:0
    /sys/devices/system/cpu/intel_pstate/min_perf_pct:0
    grep: /sys/devices/system/cpu/intel_pstate/no_turbo: Resource temporarily unavailable
    grep: /sys/devices/system/cpu/intel_pstate/num_pstates: Resource temporarily unavailable
    /sys/devices/system/cpu/intel_pstate/status:off
    grep: /sys/devices/system/cpu/intel_pstate/turbo_pct: Resource temporarily unavailable

    The mere presence of the intel_pstate sysfs interface does not mean
    that intel_pstate is in use (for example, echo "off" to "status"),
    but it should not be created in the failing case.

    Fix this issue by deleting the intel_pstate sysfs if the driver
    registration fails.

    Reported-by: Wendy Wang
    Suggested-by: Zhang Rui
    Signed-off-by: Chen Yu
    Acked-by: Srinivas Pandruvada

    Chen Yu
     
  • The cpufreq core checks if the frequency programmed by the bootloaders
    is not listed in the freq table and programs one from the table in such
    a case. This is done only if the driver has set the
    CPUFREQ_NEED_INITIAL_FREQ_CHECK flag.

    Currently we print two separate messages, with almost the same content,
    and do this with a pr_warn() which may be a bit too much as the driver
    only asked us to check this as it expected this to be the case. Lower
    down the severity of the print message by switching to pr_info() instead
    and print a single message only.

    Reported-by: Sumit Gupta
    Signed-off-by: Viresh Kumar
    Reviewed-by: Sumit Gupta
    Tested-by: Sumit Gupta
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar