Skip to content

EQ settings fail to persist in idle due to suspend/resume #328

Closed

Description

@singalsu

The kernel and firmware have been just updated with EQ feature enabling. The topology and binary tool for EQ configuration will be later up-streamed with SOFT.

The DSP suspend-resume cycle currently erases the filter coefficients configuration that has been previously sent from user space to DSP via ASoC ext bytes put feature. Without configuration the EQ switches to bypass configuration. The issue can be heard in playback as "no effect" even if successfully configured.

This issue will impact every component that uses the same ASoC bytes control configuration.

There's need to develop some system to retrieve the COMP_CMD_SET_DATA / SOF_CTRL_CMD_BINARY settings from components before suspend (use COMP_CMD_GET_DATA) and re-send the COMP_CMD_SET_DATA when resuming.

Activity

  1. self-assigned this
    on Sep 7, 2018
  2. singalsu commented on Sep 7, 2018

    @singalsu
    CollaboratorAuthor

    This needs to be addressed in kernel, of course.

  3. lgirdwood commented on Sep 7, 2018

    @lgirdwood
    Member

    This needs to be cached and @ranj063 has already created infrastructure to do this. Lets add a generic cache for each binary kcontrol.

  4. ranj063 commented on Sep 7, 2018

    @ranj063
    Collaborator

    @lgirdwood I will fix the issue with caching the byte controls data for the EQ.

  5. ranj063 commented on Sep 9, 2018

    @ranj063
    Collaborator

    @singalsu I have sent you a patch for retreiving the cached byte control data after resume. Could you please try it out?

  6. singalsu commented on Sep 10, 2018

    @singalsu
    CollaboratorAuthor

    That's wonderful, I'm testing it now! I do see an error with ABI magic and version not set. I'll see if I can fix that.

  7. singalsu commented on Sep 10, 2018

    @singalsu
    CollaboratorAuthor

    The ABI is added and passes but the send IPC looks like zeros. So it seems that the kcontrol data to restore for EQ is not valid.

  8. singalsu commented on Sep 10, 2018

    @singalsu
    CollaboratorAuthor

    @ranj063 I got it working! In the code instead there's need to check that there's a valid IPC message stored to scontrol before sending to DSP. The 1st fail will with component IPC prevent success for later runtime. I'll send a new version patch back to you for check.

  9. mengdonglin commented on Sep 17, 2018

    @mengdonglin
    Collaborator

    @ranj063 Would you please share the PR# here when it's ready?
    Take this as a bug for the moment.

  10. added
    bugSomething isn't working as expected
    and removed
    enhancementNew feature or request
    on Sep 17, 2018
  11. singalsu commented on Sep 18, 2018

    @singalsu
    CollaboratorAuthor

    @mengdonglin This bug has been fixed by PR thesofproject/linux#121 . It's OK to close this on my behalf.

  12. mengdonglin commented on Oct 10, 2018

    @mengdonglin
    Collaborator

    Okay, I closed it. Sorry for the late reply.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

bugSomething isn't working as expectedverifiedQA/Bug reporter verifies solution worked.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions