Skip to content

[APL][GLK] harden: delays after programming registers (and/or loops to check status changes) #777

Closed

Description

@wenqingfu

No.5 sub-task of #87

Activity

  1. self-assigned this
    on Apr 24, 2019
  2. zhuyingjiang commented on May 17, 2019

    @zhuyingjiang

    need to be checked:

    1. hda_suspend/skl_suspend_dsp=>(skl_dsp_sleep)=>(skl_dsp_put_core)
    2. hda_resume/skl_resume_dsp
    3. hda_dsp_probe and hda_dsp_remove never called snd_hdac_bus_stop_chip only hda_suspend call that.
    4. the skl_dsp_put_core

    the functions below in hda-dsp.c are all checked with same read/write sequence:
    hda_dsp_core_reset_enter,hda_dsp_core_reset_leave /skl_dsp_core_set_reset_state
    hda_dsp_core_stall_reset/skl_dsp_reset_core
    hda_dsp_core_run/skl_dsp_start_core
    hda_dsp_core_power_up/skl_dsp_core_power_up
    hda_dsp_core_power_down/skl_dsp_core_power_down
    hda_dsp_core_is_enabled/is_skl_dsp_core_enable
    hda_dsp_enable_core/skl_dsp_enable_core
    hda_dsp_core_reset_power_down/skl_dsp_disable_core
    hda_dsp_ipc_int_enable/skl_ipc_op_int_enable,skl_ipc_int_enable

  3. zhuyingjiang commented on May 27, 2019

    @zhuyingjiang

    #975 to fix :

    1. Use the SOF defined ppcap functions in hda_suspend/hda_resume.
    2. Define a SOF hda_dsp_ctrl_stop_chip instead of using snd_hdac_
    3. use hda_dsp_ctrl_stop_chip in hda_suspend, so the disable and clear HDA irq and stream irqs steps all called during the suspend

    #1020 to fix;
    Use hda_dsp_ctrl_init_chip as common code for hda_resume. the HDA stream/interrupt will be clear/reset as needed.

    Additional as checked in ML:
    #997 to fix:

    1. Make sure DMA is stopped by reading back the RUN bit
    2. Make sure DMA is started by reading back the RUN bit
    1. log HDA Hardware related errors
    2. Mark dma buffers as un-cacheble
    3. set DUM bit on device power up
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions