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@xxxxxxx> 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