summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm (follow)
Commit message (Collapse)AuthorAgeFilesLines
* drm/radeon: fix typo in atom voltage table handling (si+)Alex Deucher2013-06-281-2/+2
| | | | Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: fix typo in atom voltage table handling (6xx-ni)Alex Deucher2013-06-281-4/+4
| | | | Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: add pcie gen helper functionAlex Deucher2013-06-282-0/+28
| | | | | | | 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>
* drm/radeon: update radeon_atombios_get_default_voltages for mvddAlex Deucher2013-06-285-11/+14
| | | | | | Add a way to look up the bootup mvdd. Required for DPM on SI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: validate voltages against dispclk requirementsAlex Deucher2013-06-284-4/+48
| | | | | | | | | Validate the voltages against the voltage requirements of the dispclk. We currently don't adjust the disp clock so it never changes, but we need to filter out voltage levels that are too low none the less. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: fix some memory leaks in extended table parsingAlex Deucher2013-06-281-2/+11
| | | | | | | Forgot to free some structs when allocation fails for some tables. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm/cayman: use new fixed point functions (v2)Alex Deucher2013-06-281-35/+11
| | | | | | | | | Use the new fixed point functions for leakage calculations on cayman. v2: fix up 64 bit math Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: minor sid.h cleanupAlex Deucher2013-06-281-18/+18
| | | | | | Consolidate the non-register defines. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: save some display parameters for DPMAlex Deucher2013-06-283-0/+12
| | | | | | Required for SI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: pull in ppm info from atomAlex Deucher2013-06-282-0/+61
| | | | | | Used by SI dpm. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: endian fixes for extended power tablesAlex Deucher2013-06-281-3/+6
| | | | Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: pull in phase shedding limits from atomAlex Deucher2013-06-282-1/+41
| | | | | | Required for dpm on SI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: add an enum for pcie gen selectionAlex Deucher2013-06-282-9/+20
| | | | | | | This makes it easier the understand what the code is doing. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: implement clock and power gating for SIAlex Deucher2013-06-282-42/+549
| | | | | | Only Cape Verde supports power gating. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add clearstate init for verde power gatingAlex Deucher2013-06-282-5/+1004
| | | | Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: initialize save/restore buffer for pg on verdeAlex Deucher2013-06-281-2/+241
| | | | Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add indirect accessors for UVD CTX registersAlex Deucher2013-06-282-0/+20
| | | | | | These are needed for certain UVD power saving features. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add atom get leakage vddc functionAlex Deucher2013-06-282-0/+10
| | | | | | Required for DPM on SI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: update rlc programming sequence on SIAlex Deucher2013-06-282-0/+99
| | | | | | This is required for certain power management features. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: enable additional power gating features on trinityAlex Deucher2013-06-284-6/+54
| | | | | | | TN has some additional powergating features beyond what is supported on ON/LN. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add support for ASPM on SI asics (v2)Alex Deucher2013-06-282-0/+314
| | | | | | | | | Enables PCIE ASPM (Active State Power Management) on SI asics. v2: fix typo Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add support for ASPM on evergreen asicsAlex Deucher2013-06-283-1/+198
| | | | | | | Enables PCIE ASPM (Active State Power Management) on evergreen-cayman asics. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add accessors of pif_phy indirect register spaceAlex Deucher2013-06-282-0/+39
| | | | | | Required for accessing certain pcie related registers. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: implement pcie gen2/3 support for SIAlex Deucher2013-06-282-0/+212
| | | | | | | | If both the motherboard and GPU support pcie gen2 or 3, enable it. PCIE gen2 and 3 offer more bandwidth than pcie gen1. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: update radeon_atom_get_voltage_table() for SIAlex Deucher2013-06-284-28/+69
| | | | | | SI uses a new atom table revision. Required for DPM on SI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: update radeon_atom_is_voltage_gpio() for SIAlex Deucher2013-06-287-34/+64
| | | | | | SI uses a new atom table. Required for DPM on SI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/atom: add helper to calcuate mpll paramsAlex Deucher2013-06-283-0/+79
| | | | | | | There's a new table for calculating the memory pll parameters on SI. Required for SI DPM support. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: implement apci perf requestAlex Deucher2013-06-282-21/+143
| | | | | | | These functions use acpi methods to adjust the pcie gen speed. Used by DPM. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: remove local sumo_get_xclk()Alex Deucher2013-06-284-17/+11
| | | | | | Use the new asic callback instead. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: add missing UVD clock set in cayman dpm codeAlex Deucher2013-06-281-0/+3
| | | | Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: remove broken dyn state remnantsAlex Deucher2013-06-282-20/+5
| | | | | | | Now that the proper fix has been implemented I can remove the last remnants of the initial implementation. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: add pre/post_set_power_state callback (cayman)Alex Deucher2013-06-284-12/+60
| | | | | | | | 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: add pre/post_set_power_state callback (BTC)Alex Deucher2013-06-284-13/+83
| | | | | | | | 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: add pre/post_set_power_state callback (TN)Alex Deucher2013-06-284-22/+61
| | | | | | | | 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: add pre/post_set_power_state callback (sumo)Alex Deucher2013-06-284-22/+62
| | | | | | | | 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: add pre/post_set_power_state callbacks (6xx-eg)Alex Deucher2013-06-283-0/+20
| | | | | | | 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>
* drm/radeon/dpm: add new pre/post_set_power_state callbacksAlex Deucher2013-06-282-0/+15
| | | | | | Needed to properly handle dynamic state adjustment. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm/tn: restructure codeAlex Deucher2013-06-281-41/+52
| | | | | | Needed to properly handle dynamic state adjustment. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm/sumo: restructure codeAlex Deucher2013-06-281-62/+81
| | | | | | Needed to properly handle dynamic state adjustment. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm/cayman: restructure codeAlex Deucher2013-06-281-33/+36
| | | | | | Needed to properly handle dynamic state adjustment. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm/btc: restructure codeAlex Deucher2013-06-283-17/+19
| | | | | | Needed to properly handle dynamic state adjustment. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm/evergreen: restructure codeAlex Deucher2013-06-283-42/+53
| | | | | | Needed to properly handle dynamic state adjustment. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm/rv7xx: restructure codeAlex Deucher2013-06-285-43/+55
| | | | | | Needed to properly handle dynamic state adjustment. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm/rv6xx: restructure codeAlex Deucher2013-06-281-46/+69
| | | | | | Needed to properly handle dynamic state adjustment. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm/rs780: restructure codeAlex Deucher2013-06-281-20/+32
| | | | | | Needed to properly handle dynamic state adjustment. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/kms: add dpm support for cayman (v5)Alex Deucher2013-06-2816-28/+5344
| | | | | | | | | | | | | | | | | | | | | This adds dpm support for cayman asics. This includes: - clockgating - dynamic engine clock scaling - dynamic memory clock scaling - dynamic voltage scaling - dynamic pcie gen1/gen2 switching (requires additional acpi support) - power containment - shader power scaling Set radeon.dpm=1 to enable. v2: fold in tdp fix v3: fix indentation v4: fix 64 bit div v5: attempt to fix state enable Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com>
* drm/radeon/dpm: fixup dynamic state adjust for btc (v2)Alex Deucher2013-06-286-9/+400
| | | | | | | | | 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>
* drm/radeon/dpm: fixup dynamic state adjust for TNAlex Deucher2013-06-282-0/+6
| | | | | | | 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/dpm: fixup dynamic state adjust for sumoAlex Deucher2013-06-284-1/+19
| | | | | | | 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/dpm: track whether we are on AC or batteryAlex Deucher2013-06-282-0/+8
| | | | | | Driver needs this information to validate power states. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>