@@ -122,6 +122,7 @@ static struct cmn2asic_msg_mapping smu_v13_0_7_message_map[SMU_MSG_MAX_COUNT] =
122
122
MSG_MAP (PrepareMp1ForUnload , PPSMC_MSG_PrepareMp1ForUnload , 0 ),
123
123
MSG_MAP (SetMGpuFanBoostLimitRpm , PPSMC_MSG_SetMGpuFanBoostLimitRpm , 0 ),
124
124
MSG_MAP (DFCstateControl , PPSMC_MSG_SetExternalClientDfCstateAllow , 0 ),
125
+ MSG_MAP (ArmD3 , PPSMC_MSG_ArmD3 , 0 ),
125
126
};
126
127
127
128
static struct cmn2asic_mapping smu_v13_0_7_clk_map [SMU_CLK_COUNT ] = {
@@ -1578,6 +1579,31 @@ static int smu_v13_0_7_set_mp1_state(struct smu_context *smu,
1578
1579
return ret ;
1579
1580
}
1580
1581
1582
+ static int smu_v13_0_7_baco_enter (struct smu_context * smu )
1583
+ {
1584
+ struct smu_baco_context * smu_baco = & smu -> smu_baco ;
1585
+ struct amdgpu_device * adev = smu -> adev ;
1586
+
1587
+ if (adev -> in_runpm && smu_cmn_is_audio_func_enabled (adev ))
1588
+ return smu_v13_0_baco_set_armd3_sequence (smu ,
1589
+ smu_baco -> maco_support ? BACO_SEQ_BAMACO : BACO_SEQ_BACO );
1590
+ else
1591
+ return smu_v13_0_baco_enter (smu );
1592
+ }
1593
+
1594
+ static int smu_v13_0_7_baco_exit (struct smu_context * smu )
1595
+ {
1596
+ struct amdgpu_device * adev = smu -> adev ;
1597
+
1598
+ if (adev -> in_runpm && smu_cmn_is_audio_func_enabled (adev )) {
1599
+ /* Wait for PMFW handling for the Dstate change */
1600
+ usleep_range (10000 , 11000 );
1601
+ return smu_v13_0_baco_set_armd3_sequence (smu , BACO_SEQ_ULPS );
1602
+ } else {
1603
+ return smu_v13_0_baco_exit (smu );
1604
+ }
1605
+ }
1606
+
1581
1607
static bool smu_v13_0_7_is_mode1_reset_supported (struct smu_context * smu )
1582
1608
{
1583
1609
struct amdgpu_device * adev = smu -> adev ;
@@ -1655,8 +1681,8 @@ static const struct pptable_funcs smu_v13_0_7_ppt_funcs = {
1655
1681
.baco_is_support = smu_v13_0_baco_is_support ,
1656
1682
.baco_get_state = smu_v13_0_baco_get_state ,
1657
1683
.baco_set_state = smu_v13_0_baco_set_state ,
1658
- .baco_enter = smu_v13_0_baco_enter ,
1659
- .baco_exit = smu_v13_0_baco_exit ,
1684
+ .baco_enter = smu_v13_0_7_baco_enter ,
1685
+ .baco_exit = smu_v13_0_7_baco_exit ,
1660
1686
.mode1_reset_is_support = smu_v13_0_7_is_mode1_reset_supported ,
1661
1687
.mode1_reset = smu_v13_0_mode1_reset ,
1662
1688
.set_mp1_state = smu_v13_0_7_set_mp1_state ,
0 commit comments