History log of /drivers/gpu/drm/radeon/rv770_dpm.c
Revision Date Author Comments
01467a9b5e7ec7b9e30768bee16ea5861665015b 14-Oct-2014 Michele Curti <michele.curti@gmail.com> drm/radeon: reduce sparse false positive warnings

include radeon_asic.h header file in the various xxx_dpm.c files
to reduce sparse false positive warnings. Not so great patch
in itself, but reducing warning count from 391 to 258 may help
to see real problems..

Signed-off-by: Michele Curti <michele.curti@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
41959341ac7e33dd360c7a881d13566f9eca37b2 09-Jul-2014 Alexandre Demers <alexandre.f.demers@gmail.com> drm/radeon/dpm: Reenabling SS on Cayman

It reverts commit c745fe611ca42295c9d91d8e305d27983e9132ef now that
Cayman is stable since VDDCI fix. Spread spectrum was not the culprit.

This depends on b0880e87c1fd038b84498944f52e52c3e86ebe59
(drm/radeon/dpm: fix vddci setup typo on cayman).

Signed-off-by: Alexandre Demers <alexandre.f.demers@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
78b035101999d8d071781778c019c387dc8bebb2 17-Feb-2014 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: reduce r7xx vblank mclk threshold to 200

Most laptops seems to have a vblank period of less than
300 and mclk switching works fine. Drop the quirk and
set the default threshold to 200.

bug:
https://bugzilla.kernel.org/show_bug.cgi?id=70701

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
82f79cc54b6a67c0b17aff4fb5ed43155ff3f0ea 21-Aug-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: move platform caps fetching to a separate function

It's needed by by both the asic specific functions and the
extended table parser.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
299302294e109aec5e7f54ea61a9816c555c2106 30-Jan-2014 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: use stored max_vddc rather than looking it up

When we parse the power tables use the stored mac_vddc value
rather than lookig it up manually each time.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8097d94116d0c17e774ba4c8256e774018dc2a46 07-Jan-2014 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: disable mclk switching on desktop RV770

Mclk switching doesn't seem to work reliably on these
cards. Most RV770 boards specify the same mclk for all
performance levels anyway so in most cases, this has
no affect.

Bug:
https://bugs.freedesktop.org/show_bug.cgi?id=73067

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
f5f1f897c892cbff6135cd743df9989ca7bc29e4 21-Jan-2014 Alex Deucher <alexander.deucher@amd.com> drm/radeon: add query to fetch the max engine clock (v2)

This is needed for reporting the max GPU engine clock
in OpenCL. This just reports the max possible engine
clock, it does not take into account current conditions
that may limit that clock.

v2: fix query number for merge with 3.13

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
e14cd2bbcb98541e199b7223f38d61527dfe45c9 19-Dec-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: switch on new late_enable callback

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>
a3f112451567546feece4c3513a42478bfaae3f2 19-Dec-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: add late_enable for rv7xx-NI

Make sure interrupts are enabled
before we enable thermal interrupts.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
c745fe611ca42295c9d91d8e305d27983e9132ef 09-Dec-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: disable ss on Cayman

Spread spectrum seems to cause hangs when dynamic clock
switching is enabled. Disable it for now. This does not
affect performance or the amount of power saved. Tracked
down by Martin Andersson.

bug:
https://bugs.freedesktop.org/show_bug.cgi?id=69723

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
1cd8b21aa22c4fe8835abe614da5fa989c66dca9 13-Sep-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: rework auto performance level enable

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>
84f3d9f7b4781dea6e11dcaf7f81367c1b39fef0 10-Sep-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: fix fallback for empty UVD clocks

Some older 6xx-7xx boards didn't always fill in the
UVD clocks properly in the UVD power states. This
leads to the driver trying to set a 0 clock which
results in slow or broken UVD playback.

Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=69120

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
bdcc031bc7c2d0f1986237c8cea6871cfebf0853 21-Aug-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeonn: gcc fixes for rv7xx/eg/btc dpm

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>
f75195cac32bfd2ef07764bd370d3b788bd8b003 12-Aug-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: add reclocking quirk for ASUS K70AF

The LCD has a relatively short vblank time (216us), but
the card is able to reclock memory fine in that time.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Reported-by: normalrawr@gmail.com
b841ce7b41ffbecf84285b381b3ac23f05256d31 01-Aug-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: fix spread spectrum setup (v2)

Need to check for engine and memory clock ss separately
and only enable dynamic ss if either of them are found.

This should fix systems which have a ss table, but do
not have entries for engine or memory. On those systems
we may enable dynamic spread spectrum without enabling
it on the engine or memory clocks which can lead to a
hang in some cases.

fixes some systems reported here:
https://bugs.freedesktop.org/show_bug.cgi?id=66963

v2: fix typo

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
fda837241f3680e5dc554c26e178c2deec7a039c 31-Jul-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: adjust thermal protection requirements

On rv770 and newer, clock gating is not required
for thermal protection. The only requirement is that
the design utilizes a thermal sensor.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1294d4a36d1e0dacfc37c1f269d78ff58f0cd8bc 16-Jul-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon: add a module parameter to disable aspm

Can cause hangs when enabled in certain motherboards.
Set radeon.aspm=0 to disable aspm.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
b06195d9943d561273939e866b4bfc87beba18bc 08-Jul-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: implement vblank_too_short callback for 7xx

Check if we can switch the mclk during the vblank time otherwise
we may get artifacts on the screen when the mclk changes.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
222dc9a072e27b5069a7c03738e360eafdc2fdf5 08-Jul-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: fix display_gap programming on rv7xx

Check the driver state rather than the register as the
crtc registers may not be enabled yet.

Should fix:
https://bugzilla.kernel.org/show_bug.cgi?id=60510
https://bugs.freedesktop.org/show_bug.cgi?id=66651

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8b5e6b7f0ec81f237d87cf9632309db9481c6fb5 03-Jul-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: implement force performance levels for 7xx/eg/btc

Allows you to limit the selected power levels via sysfs.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
bf0936e196ec21b604106578043d4c14831f99e7 02-Jul-2013 Mike Lothian <mike@fireburn.co.uk> drm/radeon/dpm: fix compilation with certain versions of gcc

Add #include <linux/seq_file.h> to *_dpm.c files

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
bd210d11cd37bee3da729e56288b5b4a038f88bd 28-Jun-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: add debugfs support for 7xx/evergreen/btc

This allows you to look at the current DPM state via
debugfs.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
e38bb5aeef0d864313b4070ae6e35edff53e2790 03-Apr-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: fix typo in setting uvd clock

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
173dbb0ef6568f1da666ae846ecd5ce622076dbc 28-Jun-2013 Alex Deucher <alexander.deucher@amd.com> add dpm_set_power_state failure output (7xx-ni)

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
72dd2c54ee630701608c08fd85e0eaf75336e31c 28-Mar-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: add dpm_set_power_state failure output (7xx-ni)

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
fa4b5471bd6231d293a2de9ad016e39eb2c9c70e 28-Mar-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: add dpm_enable failure output (7xx-ni)

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
b97721f311c68440144a95e345955284c25b69a2 27-Mar-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm/r7xx: properly catch errors in dpm setup

We weren't properly catching errors in dpm_enable()
and dpm_set_power_state().

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2abba66e7af70825734eaf9fdea37c97f9e7b6ff 25-Mar-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon: update radeon_atombios_get_default_voltages for mvdd

Add a way to look up the bootup mvdd. Required for DPM on SI.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
58653abdd22427f2b4f2ec9930cadcbeb8832a73 13-Feb-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon: update radeon_atom_is_voltage_gpio() for SI

SI uses a new atom table. Required for DPM on SI.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
5d77d776416a8881e49d42a30e0eaa919fc98ba5 28-Jun-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm/rv7xx: restructure code

Needed to properly handle dynamic state adjustment.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
d22b7e406a4032f9208207d80c1d515267b73358 30-Nov-2012 Alex Deucher <alexander.deucher@amd.com> drm/radeon/dpm: fixup dynamic state adjust for btc (v2)

Use a dedicated copy of the current power state since
we may have to adjust it on the fly.

v2: fix up redundant state sets

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
f85392bcf94c5ae8bf55852827dcfa46f86502dc 26-Jun-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon: add dpm UVD handling for evergreen/btc asics

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
7c464f68b361aa05f964e22f7a8be4e7a7698a70 28-Jun-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon: add dpm UVD handling for r7xx asics

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
dc50ba7f9a6d9a920409892c7f30bce266067345 26-Jun-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/kms: add dpm support for evergreen (v4)

This adds dpm support for evergreen asics. This includes:
- clockgating
- dynamic engine clock scaling
- dynamic memory clock scaling
- dynamic voltage scaling
- dynamic pcie gen1/gen2 switching (requires additional acpi support)

Set radeon.dpm=1 to enable.

v2: reduce stack usage, rename ulv struct
v3: fix thermal interrupt check notices by Jerome
v4: fix state enable

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
66229b200598a3b66b839d1759ff3f5b17ac5639 26-Jun-2013 Alex Deucher <alexander.deucher@amd.com> drm/radeon/kms: add dpm support for rv7xx (v4)

This adds dpm support for rv7xx asics. This includes:
- clockgating
- dynamic engine clock scaling
- dynamic memory clock scaling
- dynamic voltage scaling
- dynamic pcie gen1/gen2 switching

Set radeon.dpm=1 to enable.

v2: reduce stack usage
v3: fix 64 bit div
v4: fix state enable

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>