@@ -499,6 +499,7 @@ static int amd_sdw_port_params(struct sdw_bus *bus, struct sdw_port_params *p_pa
499499 break ;
500500 case ACP70_PCI_REV_ID :
501501 case ACP71_PCI_REV_ID :
502+ case ACP72_PCI_REV_ID :
502503 frame_fmt_reg = acp70_sdw_dp_reg [p_params -> num ].frame_fmt_reg ;
503504 break ;
504505 default :
@@ -551,6 +552,7 @@ static int amd_sdw_transport_params(struct sdw_bus *bus,
551552 break ;
552553 case ACP70_PCI_REV_ID :
553554 case ACP71_PCI_REV_ID :
555+ case ACP72_PCI_REV_ID :
554556 frame_fmt_reg = acp70_sdw_dp_reg [params -> port_num ].frame_fmt_reg ;
555557 sample_int_reg = acp70_sdw_dp_reg [params -> port_num ].sample_int_reg ;
556558 hctrl_dp0_reg = acp70_sdw_dp_reg [params -> port_num ].hctrl_dp0_reg ;
@@ -614,6 +616,7 @@ static int amd_sdw_port_enable(struct sdw_bus *bus,
614616 break ;
615617 case ACP70_PCI_REV_ID :
616618 case ACP71_PCI_REV_ID :
619+ case ACP72_PCI_REV_ID :
617620 lane_ctrl_ch_en_reg = acp70_sdw_dp_reg [enable_ch -> port_num ].lane_ctrl_ch_en_reg ;
618621 break ;
619622 default :
@@ -931,6 +934,9 @@ static void amd_sdw_irq_thread(struct work_struct *work)
931934
932935 status_change_8to11 = readl (amd_manager -> mmio + ACP_SW_STATE_CHANGE_STATUS_8TO11 );
933936 status_change_0to7 = readl (amd_manager -> mmio + ACP_SW_STATE_CHANGE_STATUS_0TO7 );
937+ if (!status_change_0to7 && !status_change_8to11 )
938+ return ;
939+
934940 dev_dbg (amd_manager -> dev , "[SDW%d] SDW INT: 0to7=0x%x, 8to11=0x%x\n" ,
935941 amd_manager -> instance , status_change_0to7 , status_change_8to11 );
936942 if (status_change_8to11 & AMD_SDW_WAKE_STAT_MASK )
@@ -1035,6 +1041,7 @@ static int amd_sdw_manager_probe(struct platform_device *pdev)
10351041 break ;
10361042 case ACP70_PCI_REV_ID :
10371043 case ACP71_PCI_REV_ID :
1044+ case ACP72_PCI_REV_ID :
10381045 amd_manager -> num_dout_ports = AMD_ACP70_SDW_MAX_TX_PORTS ;
10391046 amd_manager -> num_din_ports = AMD_ACP70_SDW_MAX_RX_PORTS ;
10401047 break ;
@@ -1074,6 +1081,7 @@ static void amd_sdw_manager_remove(struct platform_device *pdev)
10741081 int ret ;
10751082
10761083 pm_runtime_disable (& pdev -> dev );
1084+ cancel_work_sync (& amd_manager -> amd_sdw_work );
10771085 amd_disable_sdw_interrupts (amd_manager );
10781086 sdw_bus_master_delete (& amd_manager -> bus );
10791087 ret = amd_disable_sdw_manager (amd_manager );
@@ -1178,10 +1186,10 @@ static int __maybe_unused amd_pm_prepare(struct device *dev)
11781186 * device is not in runtime suspend state, observed that device alerts are missing
11791187 * without pm_prepare on AMD platforms in clockstop mode0.
11801188 */
1181- if (amd_manager -> power_mode_mask & AMD_SDW_CLK_STOP_MODE ) {
1182- ret = pm_request_resume (dev );
1189+ if (amd_manager -> power_mode_mask ) {
1190+ ret = pm_runtime_resume (dev );
11831191 if (ret < 0 ) {
1184- dev_err (bus -> dev , "pm_request_resume failed: %d\n" , ret );
1192+ dev_err (bus -> dev , "pm_runtime_resume failed: %d\n" , ret );
11851193 return 0 ;
11861194 }
11871195 }
0 commit comments