File tree Expand file tree Collapse file tree 3 files changed +18
-3
lines changed Expand file tree Collapse file tree 3 files changed +18
-3
lines changed Original file line number Diff line number Diff line change @@ -209,6 +209,19 @@ bool hda_dsp_core_is_enabled(struct snd_sof_dev *sdev,
209209 return is_enable ;
210210}
211211
212+ int hda_dsp_core_stall_reset_skl (struct snd_sof_dev * sdev ,
213+ unsigned int core_mask )
214+ {
215+ /* stall core */
216+ snd_sof_dsp_update_bits_unlocked (sdev , HDA_DSP_BAR ,
217+ HDA_DSP_REG_ADSPCS ,
218+ HDA_DSP_ADSPCS_CSTALL_MASK (core_mask ),
219+ HDA_DSP_ADSPCS_CSTALL_MASK (core_mask ));
220+
221+ /* set reset state */
222+ return hda_dsp_core_reset_enter (sdev , core_mask );
223+ }
224+
212225int hda_dsp_enable_core (struct snd_sof_dev * sdev , unsigned int core_mask )
213226{
214227 int ret ;
Original file line number Diff line number Diff line change @@ -468,9 +468,9 @@ int hda_dsp_cl_boot_firmware_skl(struct snd_sof_dev *sdev)
468468irq_err :
469469 hda_dsp_dump (sdev , SOF_DBG_REGS | SOF_DBG_PCI | SOF_DBG_MBOX );
470470
471- /* disable DSP */
472- snd_sof_dsp_update_bits (sdev , HDA_DSP_PP_BAR , SOF_HDA_REG_PP_PPCTL ,
473- SOF_HDA_PPCTL_GPROCEN , 0 );
471+ /* power down DSP */
472+ hda_dsp_core_reset_power_down (sdev , HDA_DSP_CORE_MASK ( 0 ));
473+
474474 dev_err (sdev -> dev , "error: load fw failed err: %d\n" , ret );
475475 return ret ;
476476}
Original file line number Diff line number Diff line change @@ -384,6 +384,8 @@ int hda_dsp_core_reset_enter(struct snd_sof_dev *sdev,
384384int hda_dsp_core_reset_leave (struct snd_sof_dev * sdev ,
385385 unsigned int core_mask );
386386int hda_dsp_core_stall_reset (struct snd_sof_dev * sdev , unsigned int core_mask );
387+ int hda_dsp_core_stall_reset_skl (struct snd_sof_dev * sdev ,
388+ unsigned int core_mask );
387389int hda_dsp_core_run (struct snd_sof_dev * sdev , unsigned int core_mask );
388390int hda_dsp_core_power_up (struct snd_sof_dev * sdev , unsigned int core_mask );
389391int hda_dsp_enable_core (struct snd_sof_dev * sdev , unsigned int core_mask );
You can’t perform that action at this time.
0 commit comments