Rev 5078 | Rev 5179 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5078 | Rev 5139 | ||
---|---|---|---|
Line 31... | Line 31... | ||
31 | 31 | ||
32 | #define KV_MAX_DEEPSLEEP_DIVIDER_ID 5 |
32 | #define KV_MAX_DEEPSLEEP_DIVIDER_ID 5 |
33 | #define KV_MINIMUM_ENGINE_CLOCK 800 |
33 | #define KV_MINIMUM_ENGINE_CLOCK 800 |
Line -... | Line 34... | ||
- | 34 | #define SMC_RAM_END 0x40000 |
|
- | 35 | ||
34 | #define SMC_RAM_END 0x40000 |
36 | static int kv_enable_nb_dpm(struct radeon_device *rdev, |
35 | 37 | bool enable); |
|
36 | static void kv_init_graphics_levels(struct radeon_device *rdev); |
38 | static void kv_init_graphics_levels(struct radeon_device *rdev); |
37 | static int kv_calculate_ds_divider(struct radeon_device *rdev); |
39 | static int kv_calculate_ds_divider(struct radeon_device *rdev); |
38 | static int kv_calculate_nbps_level_settings(struct radeon_device *rdev); |
40 | static int kv_calculate_nbps_level_settings(struct radeon_device *rdev); |
Line 1293... | Line 1295... | ||
1293 | 1295 | ||
1294 | void kv_dpm_disable(struct radeon_device *rdev) |
1296 | void kv_dpm_disable(struct radeon_device *rdev) |
1295 | { |
1297 | { |
Line -... | Line 1298... | ||
- | 1298 | kv_smc_bapm_enable(rdev, false); |
|
- | 1299 | ||
- | 1300 | if (rdev->family == CHIP_MULLINS) |
|
1296 | kv_smc_bapm_enable(rdev, false); |
1301 | kv_enable_nb_dpm(rdev, false); |
1297 | 1302 | ||
1298 | /* powerup blocks */ |
1303 | /* powerup blocks */ |
1299 | kv_dpm_powergate_acp(rdev, false); |
1304 | kv_dpm_powergate_acp(rdev, false); |
1300 | kv_dpm_powergate_samu(rdev, false); |
1305 | kv_dpm_powergate_samu(rdev, false); |
Line 1767... | Line 1772... | ||
1767 | } |
1772 | } |
Line 1768... | Line 1773... | ||
1768 | 1773 | ||
1769 | return ret; |
1774 | return ret; |
Line 1770... | Line 1775... | ||
1770 | } |
1775 | } |
- | 1776 | ||
1771 | 1777 | static int kv_enable_nb_dpm(struct radeon_device *rdev, |
|
1772 | static int kv_enable_nb_dpm(struct radeon_device *rdev) |
1778 | bool enable) |
1773 | { |
1779 | { |
Line -... | Line 1780... | ||
- | 1780 | struct kv_power_info *pi = kv_get_pi(rdev); |
|
1774 | struct kv_power_info *pi = kv_get_pi(rdev); |
1781 | int ret = 0; |
1775 | int ret = 0; |
1782 | |
1776 | 1783 | if (enable) { |
|
1777 | if (pi->enable_nb_dpm && !pi->nb_dpm_enabled) { |
1784 | if (pi->enable_nb_dpm && !pi->nb_dpm_enabled) { |
1778 | ret = kv_notify_message_to_smu(rdev, PPSMC_MSG_NBDPM_Enable); |
1785 | ret = kv_notify_message_to_smu(rdev, PPSMC_MSG_NBDPM_Enable); |
- | 1786 | if (ret == 0) |
|
- | 1787 | pi->nb_dpm_enabled = true; |
|
- | 1788 | } |
|
- | 1789 | } else { |
|
- | 1790 | if (pi->enable_nb_dpm && pi->nb_dpm_enabled) { |
|
- | 1791 | ret = kv_notify_message_to_smu(rdev, PPSMC_MSG_NBDPM_Disable); |
|
- | 1792 | if (ret == 0) |
|
Line 1779... | Line 1793... | ||
1779 | if (ret == 0) |
1793 | pi->nb_dpm_enabled = false; |
1780 | pi->nb_dpm_enabled = true; |
1794 | } |
Line 1781... | Line 1795... | ||
1781 | } |
1795 | } |
Line 1862... | Line 1876... | ||
1862 | DRM_ERROR("kv_update_vce_dpm failed\n"); |
1876 | DRM_ERROR("kv_update_vce_dpm failed\n"); |
1863 | return ret; |
1877 | return ret; |
1864 | } |
1878 | } |
1865 | kv_update_sclk_t(rdev); |
1879 | kv_update_sclk_t(rdev); |
1866 | if (rdev->family == CHIP_MULLINS) |
1880 | if (rdev->family == CHIP_MULLINS) |
1867 | kv_enable_nb_dpm(rdev); |
1881 | kv_enable_nb_dpm(rdev, true); |
1868 | } |
1882 | } |
1869 | } else { |
1883 | } else { |
1870 | if (pi->enable_dpm) { |
1884 | if (pi->enable_dpm) { |
1871 | kv_set_valid_clock_range(rdev, new_ps); |
1885 | kv_set_valid_clock_range(rdev, new_ps); |
1872 | kv_update_dfs_bypass_settings(rdev, new_ps); |
1886 | kv_update_dfs_bypass_settings(rdev, new_ps); |
Line 1887... | Line 1901... | ||
1887 | DRM_ERROR("kv_update_vce_dpm failed\n"); |
1901 | DRM_ERROR("kv_update_vce_dpm failed\n"); |
1888 | return ret; |
1902 | return ret; |
1889 | } |
1903 | } |
1890 | kv_update_acp_boot_level(rdev); |
1904 | kv_update_acp_boot_level(rdev); |
1891 | kv_update_sclk_t(rdev); |
1905 | kv_update_sclk_t(rdev); |
1892 | kv_enable_nb_dpm(rdev); |
1906 | kv_enable_nb_dpm(rdev, true); |
1893 | } |
1907 | } |
1894 | } |
1908 | } |
Line 1895... | Line 1909... | ||
1895 | 1909 | ||
1896 | return 0; |
1910 | return 0; |