Subversion Repositories Kolibri OS

Rev

Rev 5078 | Rev 6104 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5078 Rev 5271
Line 22... Line 22...
22
 * Authors: Alex Deucher
22
 * Authors: Alex Deucher
23
 */
23
 */
Line 24... Line 24...
24
 
24
 
25
#include "drmP.h"
25
#include "drmP.h"
-
 
26
#include "radeon.h"
26
#include "radeon.h"
27
#include "radeon_asic.h"
27
#include "btcd.h"
28
#include "btcd.h"
28
#include "r600_dpm.h"
29
#include "r600_dpm.h"
29
#include "cypress_dpm.h"
30
#include "cypress_dpm.h"
30
#include "btc_dpm.h"
31
#include "btc_dpm.h"
Line 2097... Line 2098...
2097
	struct rv7xx_ps *ps = rv770_get_ps(rps);
2098
	struct rv7xx_ps *ps = rv770_get_ps(rps);
2098
	struct radeon_clock_and_voltage_limits *max_limits;
2099
	struct radeon_clock_and_voltage_limits *max_limits;
2099
	bool disable_mclk_switching;
2100
	bool disable_mclk_switching;
2100
	u32 mclk, sclk;
2101
	u32 mclk, sclk;
2101
	u16 vddc, vddci;
2102
	u16 vddc, vddci;
2102
	u32 max_sclk_vddc, max_mclk_vddci, max_mclk_vddc;
-
 
Line 2103... Line 2103...
2103
 
2103
 
2104
	if ((rdev->pm.dpm.new_active_crtc_count > 1) ||
2104
	if ((rdev->pm.dpm.new_active_crtc_count > 1) ||
2105
	    btc_dpm_vblank_too_short(rdev))
2105
	    btc_dpm_vblank_too_short(rdev))
2106
		disable_mclk_switching = true;
2106
		disable_mclk_switching = true;
Line 2139... Line 2139...
2139
			ps->low.vddc = max_limits->vddc;
2139
			ps->low.vddc = max_limits->vddc;
2140
		if (ps->low.vddci > max_limits->vddci)
2140
		if (ps->low.vddci > max_limits->vddci)
2141
			ps->low.vddci = max_limits->vddci;
2141
			ps->low.vddci = max_limits->vddci;
2142
	}
2142
	}
Line 2143... Line -...
2143
 
-
 
2144
	/* limit clocks to max supported clocks based on voltage dependency tables */
-
 
2145
	btc_get_max_clock_from_voltage_dependency_table(&rdev->pm.dpm.dyn_state.vddc_dependency_on_sclk,
-
 
2146
							&max_sclk_vddc);
-
 
2147
	btc_get_max_clock_from_voltage_dependency_table(&rdev->pm.dpm.dyn_state.vddci_dependency_on_mclk,
-
 
2148
							&max_mclk_vddci);
-
 
2149
	btc_get_max_clock_from_voltage_dependency_table(&rdev->pm.dpm.dyn_state.vddc_dependency_on_mclk,
-
 
2150
							&max_mclk_vddc);
-
 
2151
 
-
 
2152
	if (max_sclk_vddc) {
-
 
2153
		if (ps->low.sclk > max_sclk_vddc)
-
 
2154
			ps->low.sclk = max_sclk_vddc;
-
 
2155
		if (ps->medium.sclk > max_sclk_vddc)
-
 
2156
			ps->medium.sclk = max_sclk_vddc;
-
 
2157
		if (ps->high.sclk > max_sclk_vddc)
-
 
2158
			ps->high.sclk = max_sclk_vddc;
-
 
2159
	}
-
 
2160
	if (max_mclk_vddci) {
-
 
2161
		if (ps->low.mclk > max_mclk_vddci)
-
 
2162
			ps->low.mclk = max_mclk_vddci;
-
 
2163
		if (ps->medium.mclk > max_mclk_vddci)
-
 
2164
			ps->medium.mclk = max_mclk_vddci;
-
 
2165
		if (ps->high.mclk > max_mclk_vddci)
-
 
2166
			ps->high.mclk = max_mclk_vddci;
-
 
2167
	}
-
 
2168
	if (max_mclk_vddc) {
-
 
2169
		if (ps->low.mclk > max_mclk_vddc)
-
 
2170
			ps->low.mclk = max_mclk_vddc;
-
 
2171
		if (ps->medium.mclk > max_mclk_vddc)
-
 
2172
			ps->medium.mclk = max_mclk_vddc;
-
 
2173
		if (ps->high.mclk > max_mclk_vddc)
-
 
2174
			ps->high.mclk = max_mclk_vddc;
-
 
2175
	}
-
 
2176
 
2143
 
Line 2177... Line 2144...
2177
	/* XXX validate the min clocks required for display */
2144
	/* XXX validate the min clocks required for display */
2178
 
2145
 
2179
	if (disable_mclk_switching) {
2146
	if (disable_mclk_switching) {