Skip to content

Commit 49e78c8

Browse files
Evan Quanalexdeucher
authored andcommitted
drm/amd/powerplay: move the ASIC specific nbio operation out of smu_v11_0.c
This is ASIC specific and should be placed in _ppt.c of each ASIC. Signed-off-by: Evan Quan <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent e4295ad commit 49e78c8

File tree

4 files changed

+44
-13
lines changed

4 files changed

+44
-13
lines changed

drivers/gpu/drm/amd/powerplay/arcturus_ppt.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include "arcturus_ppt.h"
3636
#include "smu_v11_0_pptable.h"
3737
#include "arcturus_ppsmc.h"
38+
#include "nbio/nbio_7_4_offset.h"
3839
#include "nbio/nbio_7_4_sh_mask.h"
3940
#include "amdgpu_xgmi.h"
4041
#include <linux/i2c.h>
@@ -2210,6 +2211,18 @@ static void arcturus_i2c_eeprom_control_fini(struct i2c_adapter *control)
22102211
i2c_del_adapter(control);
22112212
}
22122213

2214+
static bool arcturus_is_baco_supported(struct smu_context *smu)
2215+
{
2216+
struct amdgpu_device *adev = smu->adev;
2217+
uint32_t val;
2218+
2219+
if (!smu_v11_0_baco_is_support(smu))
2220+
return false;
2221+
2222+
val = RREG32_SOC15(NBIO, 0, mmRCC_BIF_STRAP0);
2223+
return (val & RCC_BIF_STRAP0__STRAP_PX_CAPABLE_MASK) ? true : false;
2224+
}
2225+
22132226
static uint32_t arcturus_get_pptable_power_limit(struct smu_context *smu)
22142227
{
22152228
PPTable_t *pptable = smu->smu_table.driver_pptable;
@@ -2321,7 +2334,7 @@ static const struct pptable_funcs arcturus_ppt_funcs = {
23212334
.register_irq_handler = smu_v11_0_register_irq_handler,
23222335
.set_azalia_d3_pme = smu_v11_0_set_azalia_d3_pme,
23232336
.get_max_sustainable_clocks_by_dc = smu_v11_0_get_max_sustainable_clocks_by_dc,
2324-
.baco_is_support= smu_v11_0_baco_is_support,
2337+
.baco_is_support= arcturus_is_baco_supported,
23252338
.baco_get_state = smu_v11_0_baco_get_state,
23262339
.baco_set_state = smu_v11_0_baco_set_state,
23272340
.baco_enter = smu_v11_0_baco_enter,

drivers/gpu/drm/amd/powerplay/navi10_ppt.c

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,15 @@
2828
#include "smu_internal.h"
2929
#include "atomfirmware.h"
3030
#include "amdgpu_atomfirmware.h"
31+
#include "soc15_common.h"
3132
#include "smu_v11_0.h"
3233
#include "smu11_driver_if_navi10.h"
3334
#include "atom.h"
3435
#include "navi10_ppt.h"
3536
#include "smu_v11_0_pptable.h"
3637
#include "smu_v11_0_ppsmc.h"
37-
#include "nbio/nbio_7_4_sh_mask.h"
38+
#include "nbio/nbio_2_3_offset.h"
39+
#include "nbio/nbio_2_3_sh_mask.h"
3840

3941
#include "asic_reg/mp/mp_11_0_sh_mask.h"
4042

@@ -1985,6 +1987,18 @@ static int navi10_setup_od_limits(struct smu_context *smu) {
19851987
return 0;
19861988
}
19871989

1990+
static bool navi10_is_baco_supported(struct smu_context *smu)
1991+
{
1992+
struct amdgpu_device *adev = smu->adev;
1993+
uint32_t val;
1994+
1995+
if (!smu_v11_0_baco_is_support(smu))
1996+
return false;
1997+
1998+
val = RREG32_SOC15(NBIO, 0, mmRCC_BIF_STRAP0);
1999+
return (val & RCC_BIF_STRAP0__STRAP_PX_CAPABLE_MASK) ? true : false;
2000+
}
2001+
19882002
static int navi10_set_default_od_settings(struct smu_context *smu, bool initialize) {
19892003
OverDriveTable_t *od_table, *boot_od_table;
19902004
int ret = 0;
@@ -2361,7 +2375,7 @@ static const struct pptable_funcs navi10_ppt_funcs = {
23612375
.register_irq_handler = smu_v11_0_register_irq_handler,
23622376
.set_azalia_d3_pme = smu_v11_0_set_azalia_d3_pme,
23632377
.get_max_sustainable_clocks_by_dc = smu_v11_0_get_max_sustainable_clocks_by_dc,
2364-
.baco_is_support= smu_v11_0_baco_is_support,
2378+
.baco_is_support= navi10_is_baco_supported,
23652379
.baco_get_state = smu_v11_0_baco_get_state,
23662380
.baco_set_state = smu_v11_0_baco_set_state,
23672381
.baco_enter = smu_v11_0_baco_enter,

drivers/gpu/drm/amd/powerplay/smu_v11_0.c

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@
4242
#include "asic_reg/thm/thm_11_0_2_sh_mask.h"
4343
#include "asic_reg/mp/mp_11_0_offset.h"
4444
#include "asic_reg/mp/mp_11_0_sh_mask.h"
45-
#include "asic_reg/nbio/nbio_7_4_offset.h"
46-
#include "asic_reg/nbio/nbio_7_4_sh_mask.h"
4745
#include "asic_reg/smuio/smuio_11_0_0_offset.h"
4846
#include "asic_reg/smuio/smuio_11_0_0_sh_mask.h"
4947

@@ -1662,9 +1660,7 @@ static int smu_v11_0_baco_set_armd3_sequence(struct smu_context *smu, enum smu_v
16621660

16631661
bool smu_v11_0_baco_is_support(struct smu_context *smu)
16641662
{
1665-
struct amdgpu_device *adev = smu->adev;
16661663
struct smu_baco_context *smu_baco = &smu->smu_baco;
1667-
uint32_t val;
16681664
bool baco_support;
16691665

16701666
mutex_lock(&smu_baco->mutex);
@@ -1679,11 +1675,7 @@ bool smu_v11_0_baco_is_support(struct smu_context *smu)
16791675
!smu_feature_is_enabled(smu, SMU_FEATURE_BACO_BIT))
16801676
return false;
16811677

1682-
val = RREG32_SOC15(NBIO, 0, mmRCC_BIF_STRAP0);
1683-
if (val & RCC_BIF_STRAP0__STRAP_PX_CAPABLE_MASK)
1684-
return true;
1685-
1686-
return false;
1678+
return true;
16871679
}
16881680

16891681
enum smu_baco_state smu_v11_0_baco_get_state(struct smu_context *smu)

drivers/gpu/drm/amd/powerplay/vega20_ppt.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include "vega20_ppt.h"
3636
#include "vega20_pptable.h"
3737
#include "vega20_ppsmc.h"
38+
#include "nbio/nbio_7_4_offset.h"
3839
#include "nbio/nbio_7_4_sh_mask.h"
3940
#include "asic_reg/thm/thm_11_0_2_offset.h"
4041
#include "asic_reg/thm/thm_11_0_2_sh_mask.h"
@@ -3174,6 +3175,17 @@ static int vega20_update_pcie_parameters(struct smu_context *smu,
31743175
return ret;
31753176
}
31763177

3178+
static bool vega20_is_baco_supported(struct smu_context *smu)
3179+
{
3180+
struct amdgpu_device *adev = smu->adev;
3181+
uint32_t val;
3182+
3183+
if (!smu_v11_0_baco_is_support(smu))
3184+
return false;
3185+
3186+
val = RREG32_SOC15(NBIO, 0, mmRCC_BIF_STRAP0);
3187+
return (val & RCC_BIF_STRAP0__STRAP_PX_CAPABLE_MASK) ? true : false;
3188+
}
31773189

31783190
static const struct pptable_funcs vega20_ppt_funcs = {
31793191
.tables_init = vega20_tables_init,
@@ -3262,7 +3274,7 @@ static const struct pptable_funcs vega20_ppt_funcs = {
32623274
.register_irq_handler = smu_v11_0_register_irq_handler,
32633275
.set_azalia_d3_pme = smu_v11_0_set_azalia_d3_pme,
32643276
.get_max_sustainable_clocks_by_dc = smu_v11_0_get_max_sustainable_clocks_by_dc,
3265-
.baco_is_support= smu_v11_0_baco_is_support,
3277+
.baco_is_support= vega20_is_baco_supported,
32663278
.baco_get_state = smu_v11_0_baco_get_state,
32673279
.baco_set_state = smu_v11_0_baco_set_state,
32683280
.baco_enter = smu_v11_0_baco_enter,

0 commit comments

Comments
 (0)