Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82f79cc5 authored by Alex Deucher's avatar Alex Deucher Committed by Christian König
Browse files

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: default avatarAlex Deucher <alexander.deucher@amd.com>
parent b59b7333
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -2601,6 +2601,10 @@ int btc_dpm_init(struct radeon_device *rdev)
	pi->min_vddc_in_table = 0;
	pi->max_vddc_in_table = 0;

	ret = r600_get_platform_caps(rdev);
	if (ret)
		return ret;

	ret = rv7xx_parse_power_table(rdev);
	if (ret)
		return ret;
+6 −3
Original line number Diff line number Diff line
@@ -4959,9 +4959,6 @@ static int ci_parse_power_table(struct radeon_device *rdev)
	if (!rdev->pm.dpm.ps)
		return -ENOMEM;
	power_state_offset = (u8 *)state_array->states;
	rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps);
	rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime);
	rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime);
	for (i = 0; i < state_array->ucNumEntries; i++) {
		u8 *idx;
		power_state = (union pplib_power_state *)power_state_offset;
@@ -5077,6 +5074,12 @@ int ci_dpm_init(struct radeon_device *rdev)
		ci_dpm_fini(rdev);
		return ret;
	}

	ret = r600_get_platform_caps(rdev);
	if (ret) {
		ci_dpm_fini(rdev);
		return ret;
	}
	ret = ci_parse_power_table(rdev);
	if (ret) {
		ci_dpm_fini(rdev);
+4 −0
Original line number Diff line number Diff line
@@ -2036,6 +2036,10 @@ int cypress_dpm_init(struct radeon_device *rdev)
	pi->min_vddc_in_table = 0;
	pi->max_vddc_in_table = 0;

	ret = r600_get_platform_caps(rdev);
	if (ret)
		return ret;

	ret = rv7xx_parse_power_table(rdev);
	if (ret)
		return ret;
+4 −3
Original line number Diff line number Diff line
@@ -2538,9 +2538,6 @@ static int kv_parse_power_table(struct radeon_device *rdev)
	if (!rdev->pm.dpm.ps)
		return -ENOMEM;
	power_state_offset = (u8 *)state_array->states;
	rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps);
	rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime);
	rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime);
	for (i = 0; i < state_array->ucNumEntries; i++) {
		u8 *idx;
		power_state = (union pplib_power_state *)power_state_offset;
@@ -2590,6 +2587,10 @@ int kv_dpm_init(struct radeon_device *rdev)
		return -ENOMEM;
	rdev->pm.dpm.priv = pi;

	ret = r600_get_platform_caps(rdev);
	if (ret)
		return ret;

	ret = r600_parse_extended_power_table(rdev);
	if (ret)
		return ret;
+4 −3
Original line number Diff line number Diff line
@@ -4025,9 +4025,6 @@ static int ni_parse_power_table(struct radeon_device *rdev)
				  power_info->pplib.ucNumStates, GFP_KERNEL);
	if (!rdev->pm.dpm.ps)
		return -ENOMEM;
	rdev->pm.dpm.platform_caps = le32_to_cpu(power_info->pplib.ulPlatformCaps);
	rdev->pm.dpm.backbias_response_time = le16_to_cpu(power_info->pplib.usBackbiasTime);
	rdev->pm.dpm.voltage_response_time = le16_to_cpu(power_info->pplib.usVoltageTime);

	for (i = 0; i < power_info->pplib.ucNumStates; i++) {
		power_state = (union pplib_power_state *)
@@ -4089,6 +4086,10 @@ int ni_dpm_init(struct radeon_device *rdev)
	pi->min_vddc_in_table = 0;
	pi->max_vddc_in_table = 0;

	ret = r600_get_platform_caps(rdev);
	if (ret)
		return ret;

	ret = ni_parse_power_table(rdev);
	if (ret)
		return ret;
Loading