All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Ravulapati Vishnu vardhan rao  <Vishnuvardhanrao.Ravulapati@amd.com>
Cc: <Alexander.Deucher@amd.com>, Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
	"Takashi Iwai" <tiwai@suse.com>,
	Akshu Agrawal <akshu.agrawal@amd.com>,
	Dan Carpenter <dan.carpenter@oracle.com>,
	Vijendar Mukunda <Vijendar.Mukunda@amd.com>,
	"moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER
	MANAGEM..."  <alsa-devel@alsa-project.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] ASoC: amd:Replacing MSI with Legacy IRQ model
Date: Tue, 22 Dec 2020 15:15:17 +0100	[thread overview]
Message-ID: <s5hmty6dj0q.wl-tiwai@suse.de> (raw)
In-Reply-To: <20201222115929.11222-1-Vishnuvardhanrao.Ravulapati@amd.com>

On Tue, 22 Dec 2020 12:59:18 +0100,
Ravulapati Vishnu vardhan rao wrote:
> 
> When we try to play and capture simultaneously we see that
> interrupts are genrated but our handler is not being acknowledged,
> After investigating further more in detail on this issue we found
> that IRQ delivery via MSI from the ACP IP is unreliable and so sometimes
> interrupt generated will not be acknowledged so MSI model shouldn't be used
> and using legacy IRQs will resolve interrupt handling issue.
> 
> This patch replaces MSI interrupt handling with legacy IRQ model.
> 
> Issue can be reproduced easily by running below python script:
> 
> import subprocess
> import time
> import threading
> 
> def do2():
>   cmd = 'aplay -f dat -D hw:2,1 /dev/zero -d 1'
>     subprocess.call(cmd, stdin=subprocess.PIPE,
> 			stderr=subprocess.PIPE, shell=True)
>     print('Play Done')
> 
> def run():
> 	for i in range(1000):
> 		do2()
> 
> def do(i):
>     cmd = 'arecord -f dat -D hw:2,2 /dev/null -d 1'
>     subprocess.call(cmd, stdout=subprocess.PIPE,
> 			stderr=subprocess.PIPE, shell=True)
>     print(datetime.datetime.now(), i)
> 
> t = threading.Thread(target=run)
> t.start()
> for i in range(1000):
> 	do(i)
> 
> t.join()
> 
> After applying this patch issue is resolved.
> 
> Signed-off-by: Ravulapati Vishnu vardhan rao <Vishnuvardhanrao.Ravulapati@amd.com>

Is this specific to Raven, i.e. Renoir doesn't need the same fix?
If so, it should be mentioned in the patch description.


thanks,

Takashi

WARNING: multiple messages have this Message-ID (diff)
From: Takashi Iwai <tiwai@suse.de>
To: Ravulapati Vishnu vardhan rao <Vishnuvardhanrao.Ravulapati@amd.com>
Cc: "moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER
	MANAGEM..." <alsa-devel@alsa-project.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	open list <linux-kernel@vger.kernel.org>,
	Takashi Iwai <tiwai@suse.com>,
	Akshu Agrawal <akshu.agrawal@amd.com>,
	Mark Brown <broonie@kernel.org>,
	Vijendar Mukunda <Vijendar.Mukunda@amd.com>,
	Alexander.Deucher@amd.com,
	Dan Carpenter <dan.carpenter@oracle.com>
Subject: Re: [PATCH] ASoC: amd:Replacing MSI with Legacy IRQ model
Date: Tue, 22 Dec 2020 15:15:17 +0100	[thread overview]
Message-ID: <s5hmty6dj0q.wl-tiwai@suse.de> (raw)
In-Reply-To: <20201222115929.11222-1-Vishnuvardhanrao.Ravulapati@amd.com>

On Tue, 22 Dec 2020 12:59:18 +0100,
Ravulapati Vishnu vardhan rao wrote:
> 
> When we try to play and capture simultaneously we see that
> interrupts are genrated but our handler is not being acknowledged,
> After investigating further more in detail on this issue we found
> that IRQ delivery via MSI from the ACP IP is unreliable and so sometimes
> interrupt generated will not be acknowledged so MSI model shouldn't be used
> and using legacy IRQs will resolve interrupt handling issue.
> 
> This patch replaces MSI interrupt handling with legacy IRQ model.
> 
> Issue can be reproduced easily by running below python script:
> 
> import subprocess
> import time
> import threading
> 
> def do2():
>   cmd = 'aplay -f dat -D hw:2,1 /dev/zero -d 1'
>     subprocess.call(cmd, stdin=subprocess.PIPE,
> 			stderr=subprocess.PIPE, shell=True)
>     print('Play Done')
> 
> def run():
> 	for i in range(1000):
> 		do2()
> 
> def do(i):
>     cmd = 'arecord -f dat -D hw:2,2 /dev/null -d 1'
>     subprocess.call(cmd, stdout=subprocess.PIPE,
> 			stderr=subprocess.PIPE, shell=True)
>     print(datetime.datetime.now(), i)
> 
> t = threading.Thread(target=run)
> t.start()
> for i in range(1000):
> 	do(i)
> 
> t.join()
> 
> After applying this patch issue is resolved.
> 
> Signed-off-by: Ravulapati Vishnu vardhan rao <Vishnuvardhanrao.Ravulapati@amd.com>

Is this specific to Raven, i.e. Renoir doesn't need the same fix?
If so, it should be mentioned in the patch description.


thanks,

Takashi

  reply	other threads:[~2020-12-22 14:16 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-22 11:59 [PATCH] ASoC: amd:Replacing MSI with Legacy IRQ model Ravulapati Vishnu vardhan rao
2020-12-22 11:59 ` Ravulapati Vishnu vardhan rao
2020-12-22 14:15 ` Takashi Iwai [this message]
2020-12-22 14:15   ` Takashi Iwai
2020-12-25 12:00   ` RAVULAPATI, VISHNU VARDHAN RAO
2020-12-27 18:03 ` Jaroslav Kysela
2020-12-27 18:03   ` Jaroslav Kysela
2020-12-27 18:46   ` Takashi Iwai
2020-12-27 18:46     ` Takashi Iwai
2020-12-28 16:12 ` Mark Brown
2020-12-28 16:12   ` Mark Brown

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=s5hmty6dj0q.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=Alexander.Deucher@amd.com \
    --cc=Vijendar.Mukunda@amd.com \
    --cc=Vishnuvardhanrao.Ravulapati@amd.com \
    --cc=akshu.agrawal@amd.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=dan.carpenter@oracle.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=perex@perex.cz \
    --cc=tiwai@suse.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.