All of lore.kernel.org
 help / color / mirror / Atom feed
From: b_lkasam@codeaurora.org
To: alsa-devel@alsa-project.org
Cc: c_spanic@qti.qualcomm.com, lkasam@qti.qualcomm.com,
	c_smanag@qti.qualcomm.com
Subject: Async ops SOC compress issue
Date: Tue, 29 Jan 2019 12:55:14 +0530	[thread overview]
Message-ID: <2c502243cbd2281fabea150cedb56dc1@codeaurora.org> (raw)

Hi ALSA team,
Need inputs wrt one issue seen with soc-compress code.

Please help check below issue seen in soc-compress file wrt handling 
multiple BEs
with async ops ASYNC_DPCM_SND_SOC_HW_PARAMS set for given FE dailink/BE 
dailinks also.

Issue :
pcm_prepare failure when 2 BE's on same FE enabled during compress 
playback,
seen only when both BE's have SOC_HW_PARAM defined as an async_op.

Analysis:
- With SOC_HW_PARAMS defined as async_op on both BE's,
hw_params api for both of these BE's are scheduled for asynchronous 
execution.

- It is observed that dpcm_be_hw_params_prepare is getting invoked 
twice, but for the same BE.

Below are the issue logs taken for above scenario.

12-21 16:38:32.074     0     0 D SDM660 Compress1: connected new DPCM 
playback path SDM660 Compress1 -> INT4_MI2S_RX
12-21 16:38:32.075     0     0 D SDM660 Compress1: connected new DPCM 
playback path SDM660 Compress1 -> INT0_MI2S_RX

12-21 16:38:32.075     0     0 D INT0_MI2S_RX: ASoC: open playback BE 
INT0_MI2S_RX
12-21 16:38:32.076     0     0 D INT4_MI2S_RX: ASoC: open playback BE 
INT4_MI2S_RX

12-21 16:38:32.077     0     0 E soc_compr_set_params_fe: : async 
schedule hw_params for be INT0_MI2S_RX
12-21 16:38:32.077     0     0 E soc_compr_set_params_fe: : async 
schedule hw_params for be INT4_MI2S_RX

12-21 16:38:32.078     0     0 E dpcm_be_hw_params_prepare: : BE 
INT4_MI2S_RX -> dpcm_fe_dai_hw_params_be
12-21 16:38:32.079     0     0 E msm-dai-q6-mi2s soc: 
qcom,msm-dai-mi2s:qcom,msm-dai-q6-int-mi2s4: msm_dai_q6_mi2s_hw_params: 
dai id 11 dai_data->channels = 1

12-21 16:38:32.143     0     0 E dpcm_be_hw_params_prepare: : BE 
INT4_MI2S_RX -> dpcm_fe_dai_hw_params_be
12-21 16:38:32.173     0     0 E msm-dai-q6-mi2s soc: 
qcom,msm-dai-mi2s:qcom,msm-dai-q6-int-mi2s4: msm_dai_q6_mi2s_hw_params: 
ERROR    dai id 11 dai_data->channels = 1

It is not clear why dpcm_be_hw_params_prepare is happening for same BE 
twice even though async schedule was done for both.

- With async_synchronize call after scheduling of hw_param, the behavior 
is as expected.
hw_param for both BE's are success.


diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index ad3cc68..b0a1995 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -535,6 +535,7 @@ static int soc_compr_set_params_fe(struct 
snd_compr_stream *cstream,
                                 }
                         }
                 }
+               async_synchronize_full_domain(&async_domain); - Adding 
this code fixing the issue, but looks not correct way, please suggest
                 for (i = 0; i < j; i++) {
                         cstream->be = be_list[i];
                         dpcm_be_hw_params_prepare(cstream);



With regards
Laxminath Kasam

             reply	other threads:[~2019-01-29  8:03 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-29  7:25 b_lkasam [this message]
2019-02-08  6:13 ` Async ops SOC compress issue b_lkasam
2019-02-08 10:39   ` Charles Keepax

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2c502243cbd2281fabea150cedb56dc1@codeaurora.org \
    --to=b_lkasam@codeaurora.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=c_smanag@qti.qualcomm.com \
    --cc=c_spanic@qti.qualcomm.com \
    --cc=lkasam@qti.qualcomm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.