Commit b3fac817 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branches 'pm-devfreq' and 'pm-tools'

* pm-devfreq:
  PM / devfreq: tegra30: Separate configurations per-SoC generation
  PM / devfreq: tegra30: Support interconnect and OPPs from device-tree
  PM / devfreq: tegra20: Deprecate in a favor of emc-stat based driver
  PM / devfreq: exynos-bus: Add registration of interconnect child device
  dt-bindings: devfreq: Add documentation for the interconnect properties
  soc/tegra: fuse: Add stub for tegra_sku_info
  soc/tegra: fuse: Export tegra_read_ram_code()
  clk: tegra: Export Tegra20 EMC kernel symbols
  PM / devfreq: tegra30: Silence deferred probe error
  PM / devfreq: tegra20: Relax Kconfig dependency
  PM / devfreq: tegra20: Silence deferred probe error
  PM / devfreq: Remove redundant governor_name from struct devfreq
  PM / devfreq: Add governor attribute flag for specifc sysfs nodes
  PM / devfreq: Add governor feature flag
  PM / devfreq: Add tracepoint for frequency changes
  PM / devfreq: Unify frequency change to devfreq_update_target func
  trace: events: devfreq: Use fixed indentation size to improve readability

* pm-tools:
  pm-graph v5.8
  cpupower: Provide online and offline CPU information
Loading
Loading
Loading
Loading
+32 −22
Original line number Diff line number Diff line
@@ -37,20 +37,6 @@ Description:
		The /sys/class/devfreq/.../target_freq shows the next governor
		predicted target frequency of the corresponding devfreq object.

What:		/sys/class/devfreq/.../polling_interval
Date:		September 2011
Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
Description:
		The /sys/class/devfreq/.../polling_interval shows and sets
		the requested polling interval of the corresponding devfreq
		object. The values are represented in ms. If the value is
		less than 1 jiffy, it is considered to be 0, which means
		no polling. This value is meaningless if the governor is
		not polling; thus. If the governor is not using
		devfreq-provided central polling
		(/sys/class/devfreq/.../central_polling is 0), this value
		may be useless.

What:		/sys/class/devfreq/.../trans_stat
Date:		October 2012
Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
@@ -66,14 +52,6 @@ Description:

			echo 0 > /sys/class/devfreq/.../trans_stat

What:		/sys/class/devfreq/.../userspace/set_freq
Date:		September 2011
Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
Description:
		The /sys/class/devfreq/.../userspace/set_freq shows and
		sets the requested frequency for the devfreq object if
		userspace governor is in effect.

What:		/sys/class/devfreq/.../available_frequencies
Date:		October 2012
Contact:	Nishanth Menon <nm@ti.com>
@@ -110,6 +88,35 @@ Description:
		The max_freq overrides min_freq because max_freq may be
		used to throttle devices to avoid overheating.

What:		/sys/class/devfreq/.../polling_interval
Date:		September 2011
Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
Description:
		The /sys/class/devfreq/.../polling_interval shows and sets
		the requested polling interval of the corresponding devfreq
		object. The values are represented in ms. If the value is
		less than 1 jiffy, it is considered to be 0, which means
		no polling. This value is meaningless if the governor is
		not polling; thus. If the governor is not using
		devfreq-provided central polling
		(/sys/class/devfreq/.../central_polling is 0), this value
		may be useless.

		A list of governors that support the node:
		- simple_ondmenad
		- tegra_actmon

What:		/sys/class/devfreq/.../userspace/set_freq
Date:		September 2011
Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
Description:
		The /sys/class/devfreq/.../userspace/set_freq shows and
		sets the requested frequency for the devfreq object if
		userspace governor is in effect.

		A list of governors that support the node:
		- userspace

What:		/sys/class/devfreq/.../timer
Date:		July 2020
Contact:	Chanwoo Choi <cw00.choi@samsung.com>
@@ -122,3 +129,6 @@ Description:

			echo deferrable > /sys/class/devfreq/.../timer
			echo delayed > /sys/class/devfreq/.../timer

		A list of governors that support the node:
		- simple_ondemand
+69 −2
Original line number Diff line number Diff line
@@ -51,6 +51,19 @@ Optional properties only for parent bus device:
- exynos,saturation-ratio: the percentage value which is used to calibrate
			the performance count against total cycle count.

Optional properties for the interconnect functionality (QoS frequency
constraints):
- #interconnect-cells: should be 0.
- interconnects: as documented in ../interconnect.txt, describes a path at the
  higher level interconnects used by this interconnect provider.
  If this interconnect provider is directly linked to a top level interconnect
  provider the property contains only one phandle. The provider extends
  the interconnect graph by linking its node to a node registered by provider
  pointed to by first phandle in the 'interconnects' property.

- samsung,data-clock-ratio: ratio of the data throughput in B/s to minimum data
   clock frequency in Hz, default value is 8 when this property is missing.

Detailed correlation between sub-blocks and power line according to Exynos SoC:
- In case of Exynos3250, there are two power line as following:
	VDD_MIF |--- DMC
@@ -419,3 +432,57 @@ Example2 :
		devfreq = <&bus_leftbus>;
		status = "okay";
	};

Example 3:
	An interconnect path "bus_display -- bus_leftbus -- bus_dmc" on
	Exynos4412 SoC with video mixer as an interconnect consumer device.

	soc {
		bus_dmc: bus_dmc {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DIV_DMC>;
			clock-names = "bus";
			operating-points-v2 = <&bus_dmc_opp_table>;
			samsung,data-clock-ratio = <4>;
			#interconnect-cells = <0>;
		};

		bus_leftbus: bus_leftbus {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_DIV_GDL>;
			clock-names = "bus";
			operating-points-v2 = <&bus_leftbus_opp_table>;
			#interconnect-cells = <0>;
			interconnects = <&bus_dmc>;
		};

		bus_display: bus_display {
			compatible = "samsung,exynos-bus";
			clocks = <&clock CLK_ACLK160>;
			clock-names = "bus";
			operating-points-v2 = <&bus_display_opp_table>;
			#interconnect-cells = <0>;
			interconnects = <&bus_leftbus &bus_dmc>;
		};

		bus_dmc_opp_table: opp_table1 {
			compatible = "operating-points-v2";
			/* ... */
		}

		bus_leftbus_opp_table: opp_table3 {
			compatible = "operating-points-v2";
			/* ... */
		};

		bus_display_opp_table: opp_table4 {
			compatible = "operating-points-v2";
			/* .. */
		};

		&mixer {
			compatible = "samsung,exynos4212-mixer";
			interconnects = <&bus_display &bus_dmc>;
			/* ... */
		};
	};
+0 −1
Original line number Diff line number Diff line
@@ -11313,7 +11313,6 @@ L: linux-pm@vger.kernel.org
L:	linux-tegra@vger.kernel.org
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git
S:	Maintained
F:	drivers/devfreq/tegra20-devfreq.c
F:	drivers/devfreq/tegra30-devfreq.c
MEMORY MANAGEMENT
+3 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#include <linux/clk-provider.h>
#include <linux/clk/tegra.h>
#include <linux/err.h>
#include <linux/export.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/slab.h>
@@ -235,6 +236,7 @@ void tegra20_clk_set_emc_round_callback(tegra20_clk_emc_round_cb *round_cb,
		emc->cb_arg = cb_arg;
	}
}
EXPORT_SYMBOL_GPL(tegra20_clk_set_emc_round_callback);

bool tegra20_clk_emc_driver_available(struct clk_hw *emc_hw)
{
@@ -291,3 +293,4 @@ int tegra20_clk_prepare_emc_mc_same_freq(struct clk *emc_clk, bool same)

	return 0;
}
EXPORT_SYMBOL_GPL(tegra20_clk_prepare_emc_mc_same_freq);
+0 −10
Original line number Diff line number Diff line
@@ -121,16 +121,6 @@ config ARM_TEGRA_DEVFREQ
	  It reads ACTMON counters of memory controllers and adjusts the
	  operating frequencies and voltages with OPP support.

config ARM_TEGRA20_DEVFREQ
	tristate "NVIDIA Tegra20 DEVFREQ Driver"
	depends on (TEGRA_MC && TEGRA20_EMC) || COMPILE_TEST
	depends on COMMON_CLK
	select DEVFREQ_GOV_SIMPLE_ONDEMAND
	help
	  This adds the DEVFREQ driver for the Tegra20 family of SoCs.
	  It reads Memory Controller counters and adjusts the operating
	  frequencies and voltages with OPP support.

config ARM_RK3399_DMC_DEVFREQ
	tristate "ARM RK3399 DMC DEVFREQ Driver"
	depends on (ARCH_ROCKCHIP && HAVE_ARM_SMCCC) || \
Loading