ARM: tegra: clock: Add Tegra3 AVP activity monitor support
authorAlex Frid <afrid@nvidia.com>
Thu, 16 Jun 2011 02:03:22 +0000 (19:03 -0700)
committerDan Willemsen <dwillemsen@nvidia.com>
Thu, 1 Dec 2011 05:47:11 +0000 (21:47 -0800)
commit962a04f157cead4c55960f29933393502aeee559
tree876268254ab45b2feaf7cf4ab7679409798b97f4
parent01e3b43a8dcfcf48f8f6fef42c4673194f8fef4b
ARM: tegra: clock: Add Tegra3 AVP activity monitor support

Added AVP clock control using Tegra3 activity monitoring device.
The target AVP frequency floor is set based on average load and
short term boost. Average AVP load time (time when AVP is not
halted by flow controller) is determined by fixed frequency count
provided by monitoring h/w featuring 1st order IIR activity filter.
The boost frequency is calculated by s/w - exponentially increasing/
decreasing when sampled AVP activity has crossed upper/lower boost
watermarks.

The implementation is interrupt driven - periodic sampling is hidden
by h/w. The tune-able debugfs parameters are:

/sys/kernel/debug/tegra_actmon/avp/boost_step - boost rate increase
step (% of max AVP frequency)
/sys/kernel/debug/tegra_actmon/avp/boost_rate_inc - boost rate
increase factor (%)
/sys/kernel/debug/tegra_actmon/avp/boost_rate_dec - boost rate
decrease factor (%)

/sys/kernel/debug/tegra_actmon/avp/boost_threshold_up - upper
activity watermark for boost increase (AVP active time in %)
/sys/kernel/debug/tegra_actmon/avp/boost_threshold_dn - lower
activity watermark for boost decrease (AVP active time in %)

Original-Change-Id: Ia82247176531f2fb67acfc277e63b9f16916a488
Reviewed-on: http://git-master/r/37175
Reviewed-by: Niket Sirsi <nsirsi@nvidia.com>
Tested-by: Niket Sirsi <nsirsi@nvidia.com>

Rebase-Id: R995949fe30f188c16c3fa39e292a2ca56256f2a3
arch/arm/mach-tegra/tegra3_actmon.c
arch/arm/mach-tegra/tegra3_clocks.c