-
Notifications
You must be signed in to change notification settings - Fork 127
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
SoundWire: rt711-sdca: transfers timed out on component remove/probe #3650
Comments
@shumingfan @bardliao I am not sure what happens here first, I don't understand why the component remove plays with the regcache. static void rt711_sdca_remove(struct snd_soc_component *component)
{
struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component);
regcache_cache_only(rt711->regmap, true);
regcache_cache_only(rt711->mbq_regmap, true);
} Why is this necessary? unfortunately, removing this doesn't seem to solve the problem. I am starting to wonder if there are device timing restrictions here, or something that needs to be turned on before accessing the vendor-specific registers? |
8b527e9 suggests removing those regcache changes, but that doesn't fix the issue. |
Also need thesofproject/sof#5813 with the HDMI commented out @bardliao |
@plbossart I tested it on SKU 0A5E and no issue found. BTW, thesofproject/sof#5813 seems not work for me. I modified it as below. --- a/tools/topology/topology1/sof-icl-rt711-rt1308-rt715-hdmi.m4
+++ b/tools/topology/topology1/sof-icl-rt711-rt1308-rt715-hdmi.m4
@@ -32,7 +32,7 @@ ifdef(`MIC_LINK',`',
`define(MIC_LINK, `3')')
# uncomment to remove HDMI support
-#define(NOHDMI, `1')
+define(NOHDMI, `1')
# UAJ ID: 0, 1
# AMP ID: 2, 3 (if EXT_AMP_REF defined)
I have to remove the HDMI part manually. I also tried with SKU 0A32, but somehow snd_soc_sof_sdw is already in used after bootup. So I can't run the test on my SKU 0A32 device.
|
sorry @bardliao, yes the HDMI part has to be removed manually in the file as you did. This is just for tests, I don't want to have a new topology maintained here, just a quick hook to remove HDMI in one shot. For the tests, I removed pulseaudio, otherwise the card is marked as in use. |
No, sorry, @plbossart I didn't make it clear. I meant the change didn't work for me. I have to remove the HDMI related code from sof-icl-rt711-rt1308-rt715-hdmi.m4 manually. Like
and so on.
I can run the test and found no issue on SKU 0A32, too. |
@bardliao I forgot to push a local change, now fixed with thesofproject/sof@ef9883d |
It works now :) |
@bardliao can you reproduce the issue with the timeout? |
@plbossart If I apply 861d91f and d2e9a6d only, I will see below error.
|
@bardliao the error above happens when you remove the rt1316 driver, right? That's what is reported already in #3531 and is fixed by the commit e850e40 ('soundwire: revisit driver bind/unbind and callbacks'). However I have not seen the error
what sequence did you use to see it? EDIT: sorry, this was just a dev_dbg message |
@bardliao @shumingfan I can reproduce the error, even with #3657 applied on top. The test has to be run in a loop though, it doesn't happen the first time. while true; do bash ./test.sh; done |
@plbossart I run the test.sh in loop with #3642. I got no error in more than one hour. |
@plbossart I also run the test.sh on Dell SKU 0A5D (non-SDCA) with #3642. The 'timed out' messages doesn't happen. |
The test fails only on the SDCA skew @bardliao @shumingfan, it's related to the rt711-sdca codec driver. |
Cannot reproduce this with the changes in #3642 |
Make sure that the bus and codecs are pm_runtime active when the card is registered/created. This avoid timeouts when accessing registers. BugLink: thesofproject#3651 BugLink: thesofproject#3650 Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Make sure that the bus and codecs are pm_runtime active when the card is registered/created. This avoid timeouts when accessing registers. BugLink: thesofproject#3651 BugLink: thesofproject#3650 Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Make sure that the bus and codecs are pm_runtime active when the card is registered/created. This avoid timeouts when accessing registers. BugLink: thesofproject#3651 BugLink: thesofproject#3650 Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Make sure that the bus and codecs are pm_runtime active when the card is registered/created. This avoid timeouts when accessing registers. BugLink: #3651 BugLink: #3650 Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Rander Wang <rander.wang@intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Make sure that the bus and codecs are pm_runtime active when the card is registered/created. This avoid timeouts when accessing registers. BugLink: #3651 BugLink: #3650 Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Rander Wang <rander.wang@intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
In bind/unbind driver tests, the transfers can fail with a timeout during .set_jack_detect
The text was updated successfully, but these errors were encountered: