-
Notifications
You must be signed in to change notification settings - Fork 140
ASoC: SOF: Intel: hda: Disable L1 support during capture #1070
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@fredoh9 @keqiaozhang can I please request a test with this PR on GLK/WHL codec and nocodec modes to see if it addresses the pause/release xruns? |
|
CTI server is down, hence there is no devicetest result. I need to take a look why test result is positive. " On-device Test Completed" |
|
I tested on GLK RT7219. pause/resume is working. Update: |
|
thanks @fredoh9. did you verify both codec and nocodec modes? |
fredoh9
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bus is not used anywhere else. You should remove this together.
good point. fixed now. Thanks! |
|
@ranj063 |
keyonjie
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this a recent regression issue? Some doubt about having to disable L1 support.
|
Thanks @keqiaozhang |
a0746eb to
4a35044
Compare
keyonjie
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, looks good.
kv2019i
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we sure we want to just disable this for for all platforms (how about a whitelist of platforms known to be not affected)? And have we tried adjusting the L1 exit threshold insteads (RL1ETT for RIRB and ISL1EXT for input, OSL1EXT for output)?
Sorry, I am not trying to be disrespectful but there is no possible impact of an HDAudio configuration change on Baytrail. It's like reporting a SoundWire issue on Baytrail, it's not possible. |
And a simple way to prove my point would be to compile SOF without HDaudio, you would still see the issues on Baytrail with this patch completely ignored. |
|
thanks for pointing out there is no HDA in BYT @plbossart . I'm confused with Up2 and assume MB has HDMI, too... It may be other issues that are causing the same "input/output error" message in aplay/arecord for BYT. In fact, in the last CI testing result, it did show BYT_5682 still fail with the same error message, but error disappear on other platforms. |
@plbossart yes, this looks good. I will update the PR to add a kernel module param to enable/disable thes feature and update the PR today. Thanks! |
|
Fixes #1222 |
f9b82a3 to
0ca7c94
Compare
|
@plbossart updated. I've also added the config option to disable DMI in the sof-defconfig fragment. |
plbossart
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see below
sound/soc/sof/intel/hda-stream.c
Outdated
| * Workaround to address a known issue with host DMA that results | ||
| * in xruns during pause/release in capture scenarios. | ||
| */ | ||
| if (IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_DISABLE_DMI_L1)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
that doesn't seem quite right to me.
This is not a debug option. You want DMI_L1 disabled by default, UNLESS the user chooses to enable DMI_L1 to e.g. look into power savings.
And this should be an Intel-specific Kconfig.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@plbossart do you mean to say that we disable DMI L1 altogether by default irrespective of whether there is capture or not?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@plbossart I've moved the config to intel Kconfig now. But Im not sure if we should disable DMI L1 altogether. The recommendation from Lech is to only disable it during capture.
338cfc4 to
d0102c7
Compare
plbossart
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comments below. The point is to avoid confusions whether the Kconfig is needed or not.
'Disable L1 DMI' with a default no is a double negative.
sound/soc/sof/intel/Kconfig
Outdated
|
|
||
| config SND_SOC_SOF_HDA_DISABLE_DMI_L1 | ||
| bool "SOF disable DMI Link L1" | ||
| depends on SND_SOC_SOF_HDA_COMMON |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not needed, you are already in the if SND_SOC_SOF_HDA_COMMON
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and when you make it a positive statement, you can do
config SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1
bool "SOF HDAudio always enable DMI Link L1"
help
this option will enable DMI L1 for both playback and capture, and disable known workarounds for specific HDaudio platforms. Only use to look into power optimizations on platforms not affected by DMI L1 issues. This option is not recommended.
sound/soc/sof/intel/hda-stream.c
Outdated
| * Workaround to address a known issue with host DMA that results | ||
| * in xruns during pause/release in capture scenarios. | ||
| */ | ||
| if (IS_ENABLED(SND_SOC_SOF_HDA_DISABLE_DMI_L1)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we make this if (!IS_ENABLED(SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1)) ?
so that if the option is not selected by default we get the workaround. You have to explicit select the option to remove the intelligence and enable DM1_L1 for both playback and capture.
There is a known issue on some Intel platforms which causes pause/release to run into xrun's during capture usecases. The suggested workaround to address the issue is to disable the entry of lower power L1 state in the physical DMI link when there is a capture stream open. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
d0102c7 to
f648e8a
Compare
plbossart
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks @ranj063
Disable L1 Support to address a known issue with Host DMA
that causes xruns during pause/release on certain plaforms.
fixes thesofproject/sof#1578