summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/trinity_dpm.c
Commit message (Collapse)AuthorAgeFilesLines
* drm/radeon: add bapm module parameterAlex Deucher2014-08-151-9/+15
| | | | | | | | | | | | | Add a module paramter to enable bapm on APUs. It's disabled by default on certain APUs due to stability issues. This option makes it easier to test and to enable it on systems that are stable. bug: https://bugzilla.kernel.org/show_bug.cgi?id=81021 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
* drm/radeon/TN: only enable bapm on MSI systemsAlex Deucher2014-07-211-7/+8
| | | | | | | | | There still seem to be stability problems with other systems. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=72921 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: enable bapm by default on desktop TN/RL boardsAlex Deucher2014-07-011-1/+9
| | | | | | | | | | | | | bapm enabled the GPU and CPU to share TDP headroom. It was disabled by default since some laptops hung when it was enabled in conjunction with dpm. It seems to be stable on desktop boards and fixes hangs on boot with dpm enabled on certain boards, so enable it by default on desktop boards. bug: https://bugs.freedesktop.org/show_bug.cgi?id=72921 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: move platform caps fetching to a separate functionAlex Deucher2014-02-181-3/+4
| | | | | | | It's needed by by both the asic specific functions and the extended table parser. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: use the driver state for dpm debugfsAlex Deucher2014-02-061-1/+2
| | | | | | | | For btc and newer, we may modify the power state depending on the circumstances. Use the modified state rather than the base state. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: make some functions static for TNAlex Deucher2014-01-071-2/+2
| | | | | | | | Noticed by Rashika Kheria and cherry-picked from her larger patch set. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: Rashika Kheria <rashika.kheria@gmail.com>
* drm/radeon/dpm: switch on new late_enable callbackAlex Deucher2013-12-241-13/+0
| | | | | | | | | | Right now it's called right after enable, but after reworking the dpm init order, it will get called later to accomodate loading the smc early, but enabling thermal interrupts and block powergating later after the ring tests are complete. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: add late_enable for trinityAlex Deucher2013-12-241-0/+22
| | | | | | | | Need to wait to enable cg and pg until after ring tests. Also make sure interrupts are enabled before we enable thermal interrupts. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: adjust TN dpm parameters for stability (v2)Alex Deucher2013-11-151-3/+3
| | | | | | | | | | | | | | Adjust some of the TN dpm settings for stability. Enabling these features causes hangs and other stability problems on certain boards. v2: leave uvd dpm enabled Bug: https://bugzilla.kernel.org/show_bug.cgi?id=63101 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
* drm/radeon/dpm: disable bapm on TN asicsAlex Deucher2013-10-091-1/+1
| | | | | | | | | Causes hangs on certain boards. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=70053 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: rework auto performance level enableAlex Deucher2013-09-151-1/+0
| | | | | | | | | | | | | Calling force_performance_level() from set_power_state() doesn't work on some asics because the current power state pointer has not been properly updated at that point. Move the calls to force_performance_level() out of the asic specific set_power_state() functions and into the main power state sequence. Fixes dpm resume on SI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: add bapm callback for trinityAlex Deucher2013-09-111-0/+14
| | | | | | This adds the enable_bapm callback for trinity. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: handle bapm on trinityAlex Deucher2013-09-111-0/+2
| | | | | | | | | | | | | | | bapm is a power management feature for handling the power budget between the CPU and GPU on APUs. This patch adds support for enabling or disabling it. For now disable it by default. Enabling it properly requires quite a bit more work and will be addressed in a separate patch. This patch fixes hangs on boot on certain trinity laptops when the system is on battery power. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
* drm/radeon: gcc fixes for trinity dpmAlex Deucher2013-08-301-2/+5
| | | | | | | | | | | | | | Newer versions of gcc seem to wander off into the weeds when dealing with variable sizes arrays in structs. Rather than indexing the arrays, use pointer arithmetic. See bugs: https://bugs.freedesktop.org/show_bug.cgi?id=66932 https://bugs.freedesktop.org/show_bug.cgi?id=66972 https://bugs.freedesktop.org/show_bug.cgi?id=66945 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: implement force performance level for TNAlex Deucher2013-07-051-0/+32
| | | | | | Allows you to force the selected performance level via sysfs. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/tn: disable PG when changing UVD clocksAlex Deucher2013-07-031-0/+8
| | | | | | Causes hangs for some people. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: fix compilation with certain versions of gccMike Lothian2013-07-021-0/+1
| | | | | | Add #include <linux/seq_file.h> to *_dpm.c files Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: add debugfs support for TNAlex Deucher2013-07-011-0/+21
| | | | | | | This allows you to look at the current DPM state via debugfs. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm/trinity: properly catch errors in dpm setupAlex Deucher2013-06-271-1/+6
| | | | | | | We weren't properly catching errors in dpm_enable() and dpm_set_power_state(). Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: remove local sumo_get_xclk()Alex Deucher2013-06-271-3/+3
| | | | | | Use the new asic callback instead. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: add pre/post_set_power_state callback (TN)Alex Deucher2013-06-271-20/+53
| | | | | | | | This properly implemented dynamic state adjustment by using a working copy of the requested and current power states. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm/tn: restructure codeAlex Deucher2013-06-271-41/+52
| | | | | | Needed to properly handle dynamic state adjustment. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: fixup dynamic state adjust for TNAlex Deucher2013-06-271-0/+5
| | | | | | | Use a dedicated copy of the current power state since we may have to adjust it on the fly. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add dpm UVD handling for TN asics (v2)Alex Deucher2013-06-271-0/+220
| | | | | | v2: fix typo noticed by Dan Carpenter Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/kms: add dpm support for trinity asicsAlex Deucher2013-06-271-0/+1613
This adds dpm support for trinity asics. This includes: - clockgating - powergating - dynamic engine clock scaling - dynamic voltage scaling set radeon.dpm=1 to enable it. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
OpenPOWER on IntegriCloud