You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
EQ settings fail to persist in idle due to suspend/resume #328
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.
@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.
Activity
singalsu commentedon Sep 7, 2018
This needs to be addressed in kernel, of course.
lgirdwood commentedon Sep 7, 2018
This needs to be cached and @ranj063 has already created infrastructure to do this. Lets add a generic cache for each binary kcontrol.
ranj063 commentedon Sep 7, 2018
@lgirdwood I will fix the issue with caching the byte controls data for the EQ.
ranj063 commentedon Sep 9, 2018
@singalsu I have sent you a patch for retreiving the cached byte control data after resume. Could you please try it out?
singalsu commentedon Sep 10, 2018
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.
singalsu commentedon Sep 10, 2018
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.
singalsu commentedon Sep 10, 2018
@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.
mengdonglin commentedon Sep 17, 2018
@ranj063 Would you please share the PR# here when it's ready?
Take this as a bug for the moment.
singalsu commentedon Sep 18, 2018
@mengdonglin This bug has been fixed by PR thesofproject/linux#121 . It's OK to close this on my behalf.
mengdonglin commentedon Oct 10, 2018
Okay, I closed it. Sorry for the late reply.