Alex Deucher
3ed9a335cf
drm/radeon/pm: don't walk the crtc list before it has been initialized (v2)
...
Avoids a crash in certain cases when thermal irqs are generated
before the display structures have been initialized.
v2: fix the vblank and vrefresh helpers as well
bug:
https://bugzilla.kernel.org/show_bug.cgi?id=73931
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
2014-04-22 16:51:19 +02:00
Alex Deucher
58bd2a88fa
drm/radeon/dpm: fetch vce states from the vbios
...
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2014-02-18 16:11:33 +01:00
Alex Deucher
82f79cc54b
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>
2014-02-18 16:11:30 +01:00
Alex Deucher
e14cd2bbcb
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>
2013-12-24 17:56:50 -05:00
Alex Deucher
a4643ba340
drm/radeon/dpm: add late_enable for rs780/rs880/rv6xx
...
Make sure interrupts are enabled before we enable
thermal interrupts.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-12-24 17:55:12 -05:00
Alex Deucher
142a4e9079
drm/radeon: fix missed variable sized access
...
I missed this when I fixed up this file.
Noticed-by: Mathias Fröhlich <Mathias.Froehlich@gmx.net>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-09-23 10:29:50 -04:00
Dan Carpenter
41cd0b3b78
drm/radeon: clean up r600_free_extended_power_table()
...
kfree() can accept NULL pointers so I have removed the checks. Also
I've used a pointer to shorten the lines.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-09-11 11:44:26 -04:00
Alex Deucher
5b7d245009
drm/radeon: gcc fixes for extended dpm tables
...
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>
2013-08-30 16:31:23 -04:00
Alex Deucher
6bb5c0d74c
drm/radeon/dpm: add helper to fetch the vrefresh of the current mode
...
Needed for DPM on CI.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-08-30 16:30:27 -04:00
Alex Deucher
61fb192a1c
drm/radeon/dpm: add a helper to encode pcie lane setting
...
convert from number of lanes to register setting.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-08-30 16:30:26 -04:00
Alex Deucher
4df5ac2652
drm/radeon: add r600_get_pcie_lane_support helper
...
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-08-30 16:30:25 -04:00
Alex Deucher
96d2af2150
drm/radeon: parse the acp clock voltage deps table
...
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-08-30 16:30:24 -04:00
Alex Deucher
3cb928ff1e
drm/radeon: parse the samu clock voltage deps table
...
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-08-30 16:30:23 -04:00
Alex Deucher
becfa6989b
drm/radeon/dpm: clean up the extended table error pathes
...
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-08-30 16:30:22 -04:00
Alex Deucher
018042b15b
drm/radeon: parse the uvd clock voltage deps table
...
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-08-30 16:30:22 -04:00
Alex Deucher
57ff476171
drm/radeon: parse the vce clock voltage deps table
...
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-08-30 16:30:21 -04:00
Alex Deucher
dd621a22cf
drm/radeon/dpm: grab mvdd_dependency_on_mclk info from vbios
...
Required for dpm on CI.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-08-30 16:30:19 -04:00
Alex Deucher
58cb7632df
drm/radeon/dpm: add support for parsing the atom powertune table
...
Needed for DPM on CI.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-08-30 16:30:18 -04:00
Alex Deucher
ef976ec4e2
drm/radeon/dpm: update cac leakage table parsing for CI
...
Uses a different table format if the board supports EVV.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-08-30 16:30:17 -04:00
Alex Deucher
12262906b1
drm/radeon: add KB/KV to r600_is_internal_thermal_sensor
...
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-08-30 16:30:15 -04:00
Alex Deucher
2aacd48fa7
drm/radeon: add CI to r600_is_internal_thermal_sensor()
...
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-08-30 16:30:14 -04:00
Alex Deucher
f5d9b7f0f9
drm/radeon/dpm: fix r600_enable_sclk_control()
...
Actually program the correct register to enable
engine clock scaling control.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-07-25 21:46:21 -04:00
Alex Deucher
66edc1c95d
drm/radeon/dpm: add helper to calculate vblank time
...
Required for checking vblank time for mclk changes.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-07-08 17:40:09 -04:00
Alex Deucher
a9e6141092
drm/radeon/kms: add dpm support for SI (v7)
...
This adds dpm support for SI asics. This includes:
- dynamic engine clock scaling
- dynamic memory clock scaling
- dynamic voltage scaling
- dynamic pcie gen1/gen2/gen3 switching
- power containment
- shader power scaling
Set radeon.dpm=1 to enable.
v2: enable hainan support, rebase
v3: guard acpi stuff
v4: fix 64 bit math
v5: fix 64 bit div harder
v6: fix thermal interrupt check noticed by Jerome
v7: attempt fix state enable
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-06-27 19:40:05 -04:00
Alex Deucher
ac1633876f
drm/radeon: add SI to r600_is_internal_thermal_sensor()
...
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-06-27 19:16:52 -04:00
Alex Deucher
4bd9f516f6
drm/radeon/dpm: add pcie gen helper function
...
Add a helper function to determine the preferred
pcie gen based on the card, system, and circumstance.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-06-27 19:16:40 -04:00
Alex Deucher
f907eec036
drm/radeon: fix some memory leaks in extended table parsing
...
Forgot to free some structs when allocation fails for some
tables.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-06-27 19:16:38 -04:00
Alex Deucher
a5cb318e3f
drm/radeon/dpm: pull in ppm info from atom
...
Used by SI dpm.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-06-27 19:16:35 -04:00
Alex Deucher
9985318b7f
drm/radeon/dpm: endian fixes for extended power tables
...
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-06-27 19:16:34 -04:00
Alex Deucher
929ee7a8b3
drm/radeon/dpm: pull in phase shedding limits from atom
...
Required for dpm on SI.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-06-27 19:16:34 -04:00
Alex Deucher
98243917d7
drm/radeon/dpm: add pre/post_set_power_state callbacks (6xx-eg)
...
For r6xx-evergreen, they are no-ops as they don't support
any dynamic state adjustment.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-06-27 19:16:17 -04:00
Alex Deucher
61b7d60110
drm/radeon/dpm: add helpers for extended power tables (v2)
...
This data will be needed for dpm on newer asics.
v2: fix typo in rebase
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-06-27 19:15:50 -04:00
Alex Deucher
4a6369e993
drm/radeon/kms: add dpm support for rv6xx (v3)
...
This adds dpm support for rv6xx 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: remove duplicate line
v3: fix thermal interrupt check noticed by Jerome
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
2013-06-27 10:50:08 -04:00
Alex Deucher
2e9d4c05a1
drm/radeon/kms: add common r600 dpm functions
...
These are shared by rs780/rs880, rv6xx, and newer chips.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2013-06-27 10:49:24 -04:00