File tree Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change 130
130
131
131
#define ACP_SW0_EN 0x3000
132
132
#define ACP_SW1_EN 0x3C00
133
+ #define ACP70_PME_EN 0x1400
133
134
#endif
Original file line number Diff line number Diff line change @@ -570,9 +570,11 @@ static int acp_dsp_reset(struct snd_sof_dev *sdev)
570
570
571
571
static int acp_init (struct snd_sof_dev * sdev )
572
572
{
573
+ struct acp_dev_data * acp_data ;
573
574
int ret ;
574
575
575
576
/* power on */
577
+ acp_data = sdev -> pdata -> hw_pdata ;
576
578
ret = acp_power_on (sdev );
577
579
if (ret ) {
578
580
dev_err (sdev -> dev , "ACP power on failed\n" );
@@ -581,7 +583,16 @@ static int acp_init(struct snd_sof_dev *sdev)
581
583
582
584
snd_sof_dsp_write (sdev , ACP_DSP_BAR , ACP_CONTROL , 0x01 );
583
585
/* Reset */
584
- return acp_reset (sdev );
586
+ ret = acp_reset (sdev );
587
+ if (ret )
588
+ return ret ;
589
+ switch (acp_data -> pci_rev ) {
590
+ case ACP70_PCI_ID :
591
+ case ACP71_PCI_ID :
592
+ snd_sof_dsp_write (sdev , ACP_DSP_BAR , ACP70_PME_EN , 1 );
593
+ break ;
594
+ }
595
+ return 0 ;
585
596
}
586
597
587
598
static bool check_acp_sdw_enable_status (struct snd_sof_dev * sdev )
@@ -646,6 +657,12 @@ int amd_sof_acp_resume(struct snd_sof_dev *sdev)
646
657
}
647
658
return acp_memory_init (sdev );
648
659
}
660
+ switch (acp_data -> pci_rev ) {
661
+ case ACP70_PCI_ID :
662
+ case ACP71_PCI_ID :
663
+ snd_sof_dsp_write (sdev , ACP_DSP_BAR , ACP70_PME_EN , 1 );
664
+ break ;
665
+ }
649
666
650
667
return acp_dsp_reset (sdev );
651
668
}
You can’t perform that action at this time.
0 commit comments