mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 16:44:58 +02:00
drm/amd/pm: do not expose those APIs used internally only in si_dpm.c
Move them to si_dpm.c instead. Signed-off-by: Evan Quan <evan.quan@amd.com> Reviewed-by: Lijo Lazar <lijo.lazar@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
d448157665
commit
a79110f2dc
|
|
@ -894,31 +894,6 @@ void amdgpu_add_thermal_controller(struct amdgpu_device *adev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
enum amdgpu_pcie_gen amdgpu_get_pcie_gen_support(struct amdgpu_device *adev,
|
|
||||||
u32 sys_mask,
|
|
||||||
enum amdgpu_pcie_gen asic_gen,
|
|
||||||
enum amdgpu_pcie_gen default_gen)
|
|
||||||
{
|
|
||||||
switch (asic_gen) {
|
|
||||||
case AMDGPU_PCIE_GEN1:
|
|
||||||
return AMDGPU_PCIE_GEN1;
|
|
||||||
case AMDGPU_PCIE_GEN2:
|
|
||||||
return AMDGPU_PCIE_GEN2;
|
|
||||||
case AMDGPU_PCIE_GEN3:
|
|
||||||
return AMDGPU_PCIE_GEN3;
|
|
||||||
default:
|
|
||||||
if ((sys_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3) &&
|
|
||||||
(default_gen == AMDGPU_PCIE_GEN3))
|
|
||||||
return AMDGPU_PCIE_GEN3;
|
|
||||||
else if ((sys_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2) &&
|
|
||||||
(default_gen == AMDGPU_PCIE_GEN2))
|
|
||||||
return AMDGPU_PCIE_GEN2;
|
|
||||||
else
|
|
||||||
return AMDGPU_PCIE_GEN1;
|
|
||||||
}
|
|
||||||
return AMDGPU_PCIE_GEN1;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct amd_vce_state*
|
struct amd_vce_state*
|
||||||
amdgpu_get_vce_clock_state(void *handle, u32 idx)
|
amdgpu_get_vce_clock_state(void *handle, u32 idx)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -45,19 +45,6 @@ enum amdgpu_int_thermal_type {
|
||||||
THERMAL_TYPE_KV,
|
THERMAL_TYPE_KV,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum amdgpu_dpm_auto_throttle_src {
|
|
||||||
AMDGPU_DPM_AUTO_THROTTLE_SRC_THERMAL,
|
|
||||||
AMDGPU_DPM_AUTO_THROTTLE_SRC_EXTERNAL
|
|
||||||
};
|
|
||||||
|
|
||||||
enum amdgpu_dpm_event_src {
|
|
||||||
AMDGPU_DPM_EVENT_SRC_ANALOG = 0,
|
|
||||||
AMDGPU_DPM_EVENT_SRC_EXTERNAL = 1,
|
|
||||||
AMDGPU_DPM_EVENT_SRC_DIGITAL = 2,
|
|
||||||
AMDGPU_DPM_EVENT_SRC_ANALOG_OR_EXTERNAL = 3,
|
|
||||||
AMDGPU_DPM_EVENT_SRC_DIGIAL_OR_EXTERNAL = 4
|
|
||||||
};
|
|
||||||
|
|
||||||
struct amdgpu_ps {
|
struct amdgpu_ps {
|
||||||
u32 caps; /* vbios flags */
|
u32 caps; /* vbios flags */
|
||||||
u32 class; /* vbios flags */
|
u32 class; /* vbios flags */
|
||||||
|
|
@ -252,13 +239,6 @@ struct amdgpu_dpm_fan {
|
||||||
bool ucode_fan_control;
|
bool ucode_fan_control;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum amdgpu_pcie_gen {
|
|
||||||
AMDGPU_PCIE_GEN1 = 0,
|
|
||||||
AMDGPU_PCIE_GEN2 = 1,
|
|
||||||
AMDGPU_PCIE_GEN3 = 2,
|
|
||||||
AMDGPU_PCIE_GEN_INVALID = 0xffff
|
|
||||||
};
|
|
||||||
|
|
||||||
#define amdgpu_dpm_reset_power_profile_state(adev, request) \
|
#define amdgpu_dpm_reset_power_profile_state(adev, request) \
|
||||||
((adev)->powerplay.pp_funcs->reset_power_profile_state(\
|
((adev)->powerplay.pp_funcs->reset_power_profile_state(\
|
||||||
(adev)->powerplay.pp_handle, request))
|
(adev)->powerplay.pp_handle, request))
|
||||||
|
|
@ -411,11 +391,6 @@ void amdgpu_free_extended_power_table(struct amdgpu_device *adev);
|
||||||
|
|
||||||
void amdgpu_add_thermal_controller(struct amdgpu_device *adev);
|
void amdgpu_add_thermal_controller(struct amdgpu_device *adev);
|
||||||
|
|
||||||
enum amdgpu_pcie_gen amdgpu_get_pcie_gen_support(struct amdgpu_device *adev,
|
|
||||||
u32 sys_mask,
|
|
||||||
enum amdgpu_pcie_gen asic_gen,
|
|
||||||
enum amdgpu_pcie_gen default_gen);
|
|
||||||
|
|
||||||
struct amd_vce_state*
|
struct amd_vce_state*
|
||||||
amdgpu_get_vce_clock_state(void *handle, u32 idx);
|
amdgpu_get_vce_clock_state(void *handle, u32 idx);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,19 @@ union pplib_clock_info {
|
||||||
struct _ATOM_PPLIB_SI_CLOCK_INFO si;
|
struct _ATOM_PPLIB_SI_CLOCK_INFO si;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum si_dpm_auto_throttle_src {
|
||||||
|
SI_DPM_AUTO_THROTTLE_SRC_THERMAL,
|
||||||
|
SI_DPM_AUTO_THROTTLE_SRC_EXTERNAL
|
||||||
|
};
|
||||||
|
|
||||||
|
enum si_dpm_event_src {
|
||||||
|
SI_DPM_EVENT_SRC_ANALOG = 0,
|
||||||
|
SI_DPM_EVENT_SRC_EXTERNAL = 1,
|
||||||
|
SI_DPM_EVENT_SRC_DIGITAL = 2,
|
||||||
|
SI_DPM_EVENT_SRC_ANALOG_OR_EXTERNAL = 3,
|
||||||
|
SI_DPM_EVENT_SRC_DIGIAL_OR_EXTERNAL = 4
|
||||||
|
};
|
||||||
|
|
||||||
static const u32 r600_utc[R600_PM_NUMBER_OF_TC] =
|
static const u32 r600_utc[R600_PM_NUMBER_OF_TC] =
|
||||||
{
|
{
|
||||||
R600_UTC_DFLT_00,
|
R600_UTC_DFLT_00,
|
||||||
|
|
@ -3718,25 +3731,25 @@ static void si_set_dpm_event_sources(struct amdgpu_device *adev, u32 sources)
|
||||||
{
|
{
|
||||||
struct rv7xx_power_info *pi = rv770_get_pi(adev);
|
struct rv7xx_power_info *pi = rv770_get_pi(adev);
|
||||||
bool want_thermal_protection;
|
bool want_thermal_protection;
|
||||||
enum amdgpu_dpm_event_src dpm_event_src;
|
enum si_dpm_event_src dpm_event_src;
|
||||||
|
|
||||||
switch (sources) {
|
switch (sources) {
|
||||||
case 0:
|
case 0:
|
||||||
default:
|
default:
|
||||||
want_thermal_protection = false;
|
want_thermal_protection = false;
|
||||||
break;
|
break;
|
||||||
case (1 << AMDGPU_DPM_AUTO_THROTTLE_SRC_THERMAL):
|
case (1 << SI_DPM_AUTO_THROTTLE_SRC_THERMAL):
|
||||||
want_thermal_protection = true;
|
want_thermal_protection = true;
|
||||||
dpm_event_src = AMDGPU_DPM_EVENT_SRC_DIGITAL;
|
dpm_event_src = SI_DPM_EVENT_SRC_DIGITAL;
|
||||||
break;
|
break;
|
||||||
case (1 << AMDGPU_DPM_AUTO_THROTTLE_SRC_EXTERNAL):
|
case (1 << SI_DPM_AUTO_THROTTLE_SRC_EXTERNAL):
|
||||||
want_thermal_protection = true;
|
want_thermal_protection = true;
|
||||||
dpm_event_src = AMDGPU_DPM_EVENT_SRC_EXTERNAL;
|
dpm_event_src = SI_DPM_EVENT_SRC_EXTERNAL;
|
||||||
break;
|
break;
|
||||||
case ((1 << AMDGPU_DPM_AUTO_THROTTLE_SRC_EXTERNAL) |
|
case ((1 << SI_DPM_AUTO_THROTTLE_SRC_EXTERNAL) |
|
||||||
(1 << AMDGPU_DPM_AUTO_THROTTLE_SRC_THERMAL)):
|
(1 << SI_DPM_AUTO_THROTTLE_SRC_THERMAL)):
|
||||||
want_thermal_protection = true;
|
want_thermal_protection = true;
|
||||||
dpm_event_src = AMDGPU_DPM_EVENT_SRC_DIGIAL_OR_EXTERNAL;
|
dpm_event_src = SI_DPM_EVENT_SRC_DIGIAL_OR_EXTERNAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3750,7 +3763,7 @@ static void si_set_dpm_event_sources(struct amdgpu_device *adev, u32 sources)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void si_enable_auto_throttle_source(struct amdgpu_device *adev,
|
static void si_enable_auto_throttle_source(struct amdgpu_device *adev,
|
||||||
enum amdgpu_dpm_auto_throttle_src source,
|
enum si_dpm_auto_throttle_src source,
|
||||||
bool enable)
|
bool enable)
|
||||||
{
|
{
|
||||||
struct rv7xx_power_info *pi = rv770_get_pi(adev);
|
struct rv7xx_power_info *pi = rv770_get_pi(adev);
|
||||||
|
|
@ -4927,6 +4940,31 @@ static int si_populate_smc_initial_state(struct amdgpu_device *adev,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static enum si_pcie_gen si_gen_pcie_gen_support(struct amdgpu_device *adev,
|
||||||
|
u32 sys_mask,
|
||||||
|
enum si_pcie_gen asic_gen,
|
||||||
|
enum si_pcie_gen default_gen)
|
||||||
|
{
|
||||||
|
switch (asic_gen) {
|
||||||
|
case SI_PCIE_GEN1:
|
||||||
|
return SI_PCIE_GEN1;
|
||||||
|
case SI_PCIE_GEN2:
|
||||||
|
return SI_PCIE_GEN2;
|
||||||
|
case SI_PCIE_GEN3:
|
||||||
|
return SI_PCIE_GEN3;
|
||||||
|
default:
|
||||||
|
if ((sys_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3) &&
|
||||||
|
(default_gen == SI_PCIE_GEN3))
|
||||||
|
return SI_PCIE_GEN3;
|
||||||
|
else if ((sys_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2) &&
|
||||||
|
(default_gen == SI_PCIE_GEN2))
|
||||||
|
return SI_PCIE_GEN2;
|
||||||
|
else
|
||||||
|
return SI_PCIE_GEN1;
|
||||||
|
}
|
||||||
|
return SI_PCIE_GEN1;
|
||||||
|
}
|
||||||
|
|
||||||
static int si_populate_smc_acpi_state(struct amdgpu_device *adev,
|
static int si_populate_smc_acpi_state(struct amdgpu_device *adev,
|
||||||
SISLANDS_SMC_STATETABLE *table)
|
SISLANDS_SMC_STATETABLE *table)
|
||||||
{
|
{
|
||||||
|
|
@ -4989,10 +5027,10 @@ static int si_populate_smc_acpi_state(struct amdgpu_device *adev,
|
||||||
&table->ACPIState.level.std_vddc);
|
&table->ACPIState.level.std_vddc);
|
||||||
}
|
}
|
||||||
table->ACPIState.level.gen2PCIE =
|
table->ACPIState.level.gen2PCIE =
|
||||||
(u8)amdgpu_get_pcie_gen_support(adev,
|
(u8)si_gen_pcie_gen_support(adev,
|
||||||
si_pi->sys_pcie_mask,
|
si_pi->sys_pcie_mask,
|
||||||
si_pi->boot_pcie_gen,
|
si_pi->boot_pcie_gen,
|
||||||
AMDGPU_PCIE_GEN1);
|
SI_PCIE_GEN1);
|
||||||
|
|
||||||
if (si_pi->vddc_phase_shed_control)
|
if (si_pi->vddc_phase_shed_control)
|
||||||
si_populate_phase_shedding_value(adev,
|
si_populate_phase_shedding_value(adev,
|
||||||
|
|
@ -5430,7 +5468,7 @@ static int si_convert_power_level_to_smc(struct amdgpu_device *adev,
|
||||||
bool gmc_pg = false;
|
bool gmc_pg = false;
|
||||||
|
|
||||||
if (eg_pi->pcie_performance_request &&
|
if (eg_pi->pcie_performance_request &&
|
||||||
(si_pi->force_pcie_gen != AMDGPU_PCIE_GEN_INVALID))
|
(si_pi->force_pcie_gen != SI_PCIE_GEN_INVALID))
|
||||||
level->gen2PCIE = (u8)si_pi->force_pcie_gen;
|
level->gen2PCIE = (u8)si_pi->force_pcie_gen;
|
||||||
else
|
else
|
||||||
level->gen2PCIE = (u8)pl->pcie_gen;
|
level->gen2PCIE = (u8)pl->pcie_gen;
|
||||||
|
|
@ -6147,8 +6185,8 @@ static void si_enable_voltage_control(struct amdgpu_device *adev, bool enable)
|
||||||
WREG32_P(GENERAL_PWRMGT, 0, ~VOLT_PWRMGT_EN);
|
WREG32_P(GENERAL_PWRMGT, 0, ~VOLT_PWRMGT_EN);
|
||||||
}
|
}
|
||||||
|
|
||||||
static enum amdgpu_pcie_gen si_get_maximum_link_speed(struct amdgpu_device *adev,
|
static enum si_pcie_gen si_get_maximum_link_speed(struct amdgpu_device *adev,
|
||||||
struct amdgpu_ps *amdgpu_state)
|
struct amdgpu_ps *amdgpu_state)
|
||||||
{
|
{
|
||||||
struct si_ps *state = si_get_ps(amdgpu_state);
|
struct si_ps *state = si_get_ps(amdgpu_state);
|
||||||
int i;
|
int i;
|
||||||
|
|
@ -6177,27 +6215,27 @@ static void si_request_link_speed_change_before_state_change(struct amdgpu_devic
|
||||||
struct amdgpu_ps *amdgpu_current_state)
|
struct amdgpu_ps *amdgpu_current_state)
|
||||||
{
|
{
|
||||||
struct si_power_info *si_pi = si_get_pi(adev);
|
struct si_power_info *si_pi = si_get_pi(adev);
|
||||||
enum amdgpu_pcie_gen target_link_speed = si_get_maximum_link_speed(adev, amdgpu_new_state);
|
enum si_pcie_gen target_link_speed = si_get_maximum_link_speed(adev, amdgpu_new_state);
|
||||||
enum amdgpu_pcie_gen current_link_speed;
|
enum si_pcie_gen current_link_speed;
|
||||||
|
|
||||||
if (si_pi->force_pcie_gen == AMDGPU_PCIE_GEN_INVALID)
|
if (si_pi->force_pcie_gen == SI_PCIE_GEN_INVALID)
|
||||||
current_link_speed = si_get_maximum_link_speed(adev, amdgpu_current_state);
|
current_link_speed = si_get_maximum_link_speed(adev, amdgpu_current_state);
|
||||||
else
|
else
|
||||||
current_link_speed = si_pi->force_pcie_gen;
|
current_link_speed = si_pi->force_pcie_gen;
|
||||||
|
|
||||||
si_pi->force_pcie_gen = AMDGPU_PCIE_GEN_INVALID;
|
si_pi->force_pcie_gen = SI_PCIE_GEN_INVALID;
|
||||||
si_pi->pspp_notify_required = false;
|
si_pi->pspp_notify_required = false;
|
||||||
if (target_link_speed > current_link_speed) {
|
if (target_link_speed > current_link_speed) {
|
||||||
switch (target_link_speed) {
|
switch (target_link_speed) {
|
||||||
#if defined(CONFIG_ACPI)
|
#if defined(CONFIG_ACPI)
|
||||||
case AMDGPU_PCIE_GEN3:
|
case SI_PCIE_GEN3:
|
||||||
if (amdgpu_acpi_pcie_performance_request(adev, PCIE_PERF_REQ_PECI_GEN3, false) == 0)
|
if (amdgpu_acpi_pcie_performance_request(adev, PCIE_PERF_REQ_PECI_GEN3, false) == 0)
|
||||||
break;
|
break;
|
||||||
si_pi->force_pcie_gen = AMDGPU_PCIE_GEN2;
|
si_pi->force_pcie_gen = SI_PCIE_GEN2;
|
||||||
if (current_link_speed == AMDGPU_PCIE_GEN2)
|
if (current_link_speed == SI_PCIE_GEN2)
|
||||||
break;
|
break;
|
||||||
fallthrough;
|
fallthrough;
|
||||||
case AMDGPU_PCIE_GEN2:
|
case SI_PCIE_GEN2:
|
||||||
if (amdgpu_acpi_pcie_performance_request(adev, PCIE_PERF_REQ_PECI_GEN2, false) == 0)
|
if (amdgpu_acpi_pcie_performance_request(adev, PCIE_PERF_REQ_PECI_GEN2, false) == 0)
|
||||||
break;
|
break;
|
||||||
fallthrough;
|
fallthrough;
|
||||||
|
|
@ -6217,13 +6255,13 @@ static void si_notify_link_speed_change_after_state_change(struct amdgpu_device
|
||||||
struct amdgpu_ps *amdgpu_current_state)
|
struct amdgpu_ps *amdgpu_current_state)
|
||||||
{
|
{
|
||||||
struct si_power_info *si_pi = si_get_pi(adev);
|
struct si_power_info *si_pi = si_get_pi(adev);
|
||||||
enum amdgpu_pcie_gen target_link_speed = si_get_maximum_link_speed(adev, amdgpu_new_state);
|
enum si_pcie_gen target_link_speed = si_get_maximum_link_speed(adev, amdgpu_new_state);
|
||||||
u8 request;
|
u8 request;
|
||||||
|
|
||||||
if (si_pi->pspp_notify_required) {
|
if (si_pi->pspp_notify_required) {
|
||||||
if (target_link_speed == AMDGPU_PCIE_GEN3)
|
if (target_link_speed == SI_PCIE_GEN3)
|
||||||
request = PCIE_PERF_REQ_PECI_GEN3;
|
request = PCIE_PERF_REQ_PECI_GEN3;
|
||||||
else if (target_link_speed == AMDGPU_PCIE_GEN2)
|
else if (target_link_speed == SI_PCIE_GEN2)
|
||||||
request = PCIE_PERF_REQ_PECI_GEN2;
|
request = PCIE_PERF_REQ_PECI_GEN2;
|
||||||
else
|
else
|
||||||
request = PCIE_PERF_REQ_PECI_GEN1;
|
request = PCIE_PERF_REQ_PECI_GEN1;
|
||||||
|
|
@ -6864,7 +6902,7 @@ static int si_dpm_enable(struct amdgpu_device *adev)
|
||||||
si_enable_sclk_control(adev, true);
|
si_enable_sclk_control(adev, true);
|
||||||
si_start_dpm(adev);
|
si_start_dpm(adev);
|
||||||
|
|
||||||
si_enable_auto_throttle_source(adev, AMDGPU_DPM_AUTO_THROTTLE_SRC_THERMAL, true);
|
si_enable_auto_throttle_source(adev, SI_DPM_AUTO_THROTTLE_SRC_THERMAL, true);
|
||||||
si_thermal_start_thermal_controller(adev);
|
si_thermal_start_thermal_controller(adev);
|
||||||
|
|
||||||
ni_update_current_ps(adev, boot_ps);
|
ni_update_current_ps(adev, boot_ps);
|
||||||
|
|
@ -6904,7 +6942,7 @@ static void si_dpm_disable(struct amdgpu_device *adev)
|
||||||
si_enable_power_containment(adev, boot_ps, false);
|
si_enable_power_containment(adev, boot_ps, false);
|
||||||
si_enable_smc_cac(adev, boot_ps, false);
|
si_enable_smc_cac(adev, boot_ps, false);
|
||||||
si_enable_spread_spectrum(adev, false);
|
si_enable_spread_spectrum(adev, false);
|
||||||
si_enable_auto_throttle_source(adev, AMDGPU_DPM_AUTO_THROTTLE_SRC_THERMAL, false);
|
si_enable_auto_throttle_source(adev, SI_DPM_AUTO_THROTTLE_SRC_THERMAL, false);
|
||||||
si_stop_dpm(adev);
|
si_stop_dpm(adev);
|
||||||
si_reset_to_default(adev);
|
si_reset_to_default(adev);
|
||||||
si_dpm_stop_smc(adev);
|
si_dpm_stop_smc(adev);
|
||||||
|
|
@ -7148,10 +7186,10 @@ static void si_parse_pplib_clock_info(struct amdgpu_device *adev,
|
||||||
pl->vddc = le16_to_cpu(clock_info->si.usVDDC);
|
pl->vddc = le16_to_cpu(clock_info->si.usVDDC);
|
||||||
pl->vddci = le16_to_cpu(clock_info->si.usVDDCI);
|
pl->vddci = le16_to_cpu(clock_info->si.usVDDCI);
|
||||||
pl->flags = le32_to_cpu(clock_info->si.ulFlags);
|
pl->flags = le32_to_cpu(clock_info->si.ulFlags);
|
||||||
pl->pcie_gen = amdgpu_get_pcie_gen_support(adev,
|
pl->pcie_gen = si_gen_pcie_gen_support(adev,
|
||||||
si_pi->sys_pcie_mask,
|
si_pi->sys_pcie_mask,
|
||||||
si_pi->boot_pcie_gen,
|
si_pi->boot_pcie_gen,
|
||||||
clock_info->si.ucPCIEGen);
|
clock_info->si.ucPCIEGen);
|
||||||
|
|
||||||
/* patch up vddc if necessary */
|
/* patch up vddc if necessary */
|
||||||
ret = si_get_leakage_voltage_from_leakage_index(adev, pl->vddc,
|
ret = si_get_leakage_voltage_from_leakage_index(adev, pl->vddc,
|
||||||
|
|
@ -7318,7 +7356,7 @@ static int si_dpm_init(struct amdgpu_device *adev)
|
||||||
|
|
||||||
si_pi->sys_pcie_mask =
|
si_pi->sys_pcie_mask =
|
||||||
adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_MASK;
|
adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_MASK;
|
||||||
si_pi->force_pcie_gen = AMDGPU_PCIE_GEN_INVALID;
|
si_pi->force_pcie_gen = SI_PCIE_GEN_INVALID;
|
||||||
si_pi->boot_pcie_gen = si_get_current_pcie_speed(adev);
|
si_pi->boot_pcie_gen = si_get_current_pcie_speed(adev);
|
||||||
|
|
||||||
si_set_max_cu_value(adev);
|
si_set_max_cu_value(adev);
|
||||||
|
|
|
||||||
|
|
@ -595,13 +595,20 @@ struct rv7xx_power_info {
|
||||||
RV770_SMC_STATETABLE smc_statetable;
|
RV770_SMC_STATETABLE smc_statetable;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum si_pcie_gen {
|
||||||
|
SI_PCIE_GEN1 = 0,
|
||||||
|
SI_PCIE_GEN2 = 1,
|
||||||
|
SI_PCIE_GEN3 = 2,
|
||||||
|
SI_PCIE_GEN_INVALID = 0xffff
|
||||||
|
};
|
||||||
|
|
||||||
struct rv7xx_pl {
|
struct rv7xx_pl {
|
||||||
u32 sclk;
|
u32 sclk;
|
||||||
u32 mclk;
|
u32 mclk;
|
||||||
u16 vddc;
|
u16 vddc;
|
||||||
u16 vddci; /* eg+ only */
|
u16 vddci; /* eg+ only */
|
||||||
u32 flags;
|
u32 flags;
|
||||||
enum amdgpu_pcie_gen pcie_gen; /* si+ only */
|
enum si_pcie_gen pcie_gen; /* si+ only */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct rv7xx_ps {
|
struct rv7xx_ps {
|
||||||
|
|
@ -967,9 +974,9 @@ struct si_power_info {
|
||||||
struct si_ulv_param ulv;
|
struct si_ulv_param ulv;
|
||||||
u32 max_cu;
|
u32 max_cu;
|
||||||
/* pcie gen */
|
/* pcie gen */
|
||||||
enum amdgpu_pcie_gen force_pcie_gen;
|
enum si_pcie_gen force_pcie_gen;
|
||||||
enum amdgpu_pcie_gen boot_pcie_gen;
|
enum si_pcie_gen boot_pcie_gen;
|
||||||
enum amdgpu_pcie_gen acpi_pcie_gen;
|
enum si_pcie_gen acpi_pcie_gen;
|
||||||
u32 sys_pcie_mask;
|
u32 sys_pcie_mask;
|
||||||
/* flags */
|
/* flags */
|
||||||
bool enable_dte;
|
bool enable_dte;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user