summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/btc_dpm.h
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2013-04-12 16:42:42 -0400
committerAlex Deucher <alexander.deucher@amd.com>2013-06-27 19:16:10 -0400
commit69e0b57a91adca2e3eb56ed4db39ab90f3ae1043 (patch)
treeaa08ae87050d5e80c883367ce13fabf7bd32a742 /drivers/gpu/drm/radeon/btc_dpm.h
parentd22b7e406a4032f9208207d80c1d515267b73358 (diff)
downloadop-kernel-dev-69e0b57a91adca2e3eb56ed4db39ab90f3ae1043.zip
op-kernel-dev-69e0b57a91adca2e3eb56ed4db39ab90f3ae1043.tar.gz
drm/radeon/kms: add dpm support for cayman (v5)
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>
Diffstat (limited to 'drivers/gpu/drm/radeon/btc_dpm.h')
-rw-r--r--drivers/gpu/drm/radeon/btc_dpm.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/btc_dpm.h b/drivers/gpu/drm/radeon/btc_dpm.h
index 807024d..c22d39f 100644
--- a/drivers/gpu/drm/radeon/btc_dpm.h
+++ b/drivers/gpu/drm/radeon/btc_dpm.h
@@ -33,6 +33,24 @@
#define BTC_CGULVPARAMETER_DFLT 0x00040035
#define BTC_CGULVCONTROL_DFLT 0x00001450
-extern u32 btc_valid_sclk[];
+extern u32 btc_valid_sclk[40];
+
+void btc_read_arb_registers(struct radeon_device *rdev);
+void btc_program_mgcg_hw_sequence(struct radeon_device *rdev,
+ const u32 *sequence, u32 count);
+void btc_skip_blacklist_clocks(struct radeon_device *rdev,
+ const u32 max_sclk, const u32 max_mclk,
+ u32 *sclk, u32 *mclk);
+void btc_adjust_clock_combinations(struct radeon_device *rdev,
+ const struct radeon_clock_and_voltage_limits *max_limits,
+ struct rv7xx_pl *pl);
+void btc_apply_voltage_dependency_rules(struct radeon_clock_voltage_dependency_table *table,
+ u32 clock, u16 max_voltage, u16 *voltage);
+void btc_apply_voltage_delta_rules(struct radeon_device *rdev,
+ u16 max_vddc, u16 max_vddci,
+ u16 *vddc, u16 *vddci);
+bool btc_dpm_enabled(struct radeon_device *rdev);
+int btc_reset_to_default(struct radeon_device *rdev);
+void btc_notify_uvd_to_smc(struct radeon_device *rdev);
#endif
OpenPOWER on IntegriCloud