Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp4918170pxu; Tue, 22 Dec 2020 04:11:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJxwdSaha+zG8HbtBMhU6dBMjibO7f9f8ThvNQYrGnoWWmIRsd6CxK5m1b+djPF6PT8f0G9N X-Received: by 2002:a17:907:9d0:: with SMTP id bx16mr20308368ejc.426.1608639100850; Tue, 22 Dec 2020 04:11:40 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1608639100; cv=pass; d=google.com; s=arc-20160816; b=0jlNxwZn8vAIyC9Ev6SlMwYxYMWnqK10chlq3cUNSFKbn6SDmf3odvwPa3Sl4FokTq xZlM2ucZzqLpWoxZyPiscN2fCzBUYW6e7/bUzIfdzc2iTqDx7pHtm3/290lbPc+LXWs4 E1xw4VFtQA57ry8kNckVijgVuEA3dciXdNmSFYxyJpG+fayFBqKOaVZLwVJMuwPKL+hT wqiNlk4pYWeHmS26GkukCfrdrph7mW/nTrGhNiWyFr4mb7/8gXA8gEgvFSH3ev7aAQKQ OL/so8LvAL51wOKTy/R9Frpt0HXYNgwKvsj6pOi3VR6dfK4PRXwfViEyDekHTA/tnldB tNKA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:to:mime-version:message-id:date:subject:cc:from :dkim-signature; bh=XS8GcIQUwIwhTvf6JcQ8VV94yjtp3TFatrbuqvn9cIg=; b=cVnhj/A4VyxrOdVPmDzvfecW2RCrHOR3wgU61eLQOvGKZW4v8UP9mBppsv5FT2lWJh wTqqA0fXZtFg2XV8Zg/XSdJ8Nh0rNNYy9gVxlps9DGeMogJUiNrZTYjTMmjQfjM6BL9s A/nz9zU/lWXpRSoWfcLZTyTTGMDBsJYCRMTG8krXck29cQaHlAYG+L00Obpbulv/ATDL 9HiUQkU7ngHzLEZrjiNRFRhffQQ4x+RXpB9UpiDYOFEzlmgEJ8wPsLcnlPand7Qu/zSs yFu6rKuzMD1izXdt0L7P0xdNhtIM6J6tJBzI9Ca2TAzr7OfmZQJ230WUBWQ7mpTekK8v BEtw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b=YabiQDGY; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=amd.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v7si10196973ejr.236.2020.12.22.04.11.04; Tue, 22 Dec 2020 04:11:40 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b=YabiQDGY; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726554AbgLVMIJ (ORCPT + 99 others); Tue, 22 Dec 2020 07:08:09 -0500 Received: from mail-eopbgr750089.outbound.protection.outlook.com ([40.107.75.89]:40694 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725950AbgLVMII (ORCPT ); Tue, 22 Dec 2020 07:08:08 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h0wRfAAVSYrueR0Z2pFbyz/GnhSYXJSbo6c93vgN5T9g7v6oZUtyDzTwezAjjSCix9QmVYqjBP6b0sYk3ET8iFHzE2Tb/oZviz4Q4ny4fwtJiG02lkAZUI2/cK6jwuc4nZk/+HOx0d+xjWuaSxog2hY8VBNesviaYIVI5E8G0tO8972tpgFfa+XyBCENkrOLbvlTwHbG40lb7KHyNBvJZQZqm9yOVhxR0oli87cTzJTlTOXvqq9sklExgoIKvpbIbW6jbd0pOIJm/Psmk2zR8B0QPeIVTNeFB8MrznrOwlx5NJEfp7iNjjX8QhA/9pPQUcnlCg2XtceKUFg5fsmX2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XS8GcIQUwIwhTvf6JcQ8VV94yjtp3TFatrbuqvn9cIg=; b=lhCj0Tb7DosA8DsHjyB0WBFzpAAc5AEuWxPC3G/iYcO//jZ/GtqTNm9JGJXr5jfxhTU2V0+QooU3V22nT9zka6xbTkdxhSiDyH4p0tPOQ9vPUG3lF8uV1CxIuidbocHNahrJLieCQJnlKo97/vxB5545tT+Vkwle/yxDPmQTxnNMjTNGl8YPnHdp0IDIL3mT3N8dPU2+zmDeg02hfgiMlswXWWiHFEd4LkkkcBBjMZqeCHkVXwoGpfX97/O6CLNntR79C1gJIFYPqqpgoCEu+A4M9riJwjXyuzKxY+efmv8Ko2v2lJdNNCCrU3Hrw9QFA5jEVo1nXSSxqdHriRmyVg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip is 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XS8GcIQUwIwhTvf6JcQ8VV94yjtp3TFatrbuqvn9cIg=; b=YabiQDGY6+Zcm5k4k+T5BqR/pcMich17gvgdhBAGUTg56EtzNQT2P0kzO6weocVvIJGEzuL9rH/G06+uVoWKMKacy/WmAJH2+QOH0+2GzVi5T5tQUCFim/5EG2m90/kv0ladY0NUbyW6yxAxwJ9B8kniHJo8nx1irLQnh6LsZhY= Received: from BN1PR10CA0024.namprd10.prod.outlook.com (2603:10b6:408:e0::29) by CY4PR12MB1799.namprd12.prod.outlook.com (2603:10b6:903:11c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3676.30; Tue, 22 Dec 2020 12:07:19 +0000 Received: from BN8NAM11FT068.eop-nam11.prod.protection.outlook.com (2603:10b6:408:e0:cafe::48) by BN1PR10CA0024.outlook.office365.com (2603:10b6:408:e0::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.27 via Frontend Transport; Tue, 22 Dec 2020 12:07:18 +0000 X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=fail action=none header.from=amd.com; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning amd.com discourages use of 165.204.84.17 as permitted sender) Received: from SATLEXMB01.amd.com (165.204.84.17) by BN8NAM11FT068.mail.protection.outlook.com (10.13.177.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.3676.25 via Frontend Transport; Tue, 22 Dec 2020 12:07:17 +0000 Received: from SATLEXMB02.amd.com (10.181.40.143) by SATLEXMB01.amd.com (10.181.40.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Tue, 22 Dec 2020 06:07:16 -0600 Received: from vishnu-All-Series.amd.com (10.180.168.240) by SATLEXMB02.amd.com (10.181.40.143) with Microsoft SMTP Server id 15.1.1979.3 via Frontend Transport; Tue, 22 Dec 2020 06:07:13 -0600 From: Ravulapati Vishnu vardhan rao CC: , Ravulapati Vishnu vardhan rao , Liam Girdwood , Mark Brown , Jaroslav Kysela , "Takashi Iwai" , Akshu Agrawal , Dan Carpenter , Vijendar Mukunda , "moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH] ASoC: amd:Replacing MSI with Legacy IRQ model Date: Tue, 22 Dec 2020 17:29:18 +0530 Message-ID: <20201222115929.11222-1-Vishnuvardhanrao.Ravulapati@amd.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 166cabef-dc8a-4eaa-c75d-08d8a672207a X-MS-TrafficTypeDiagnostic: CY4PR12MB1799: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: m9Ut5QIfmMhi5THJidDsqJSs1M0YdkjkFFi1reqLOywvPW5h+vf+cKkwWu9WncR5b6EwAPU0aHs+H3Ob5oWvP6wNp8NcmZXGUUW6M0x8Qcv+MGhDJIS9jqeUojHOkIYfUjI2q6k4ZFEF1K1VavVL7PQVdtzuAeMYtxXONsq0fAtMvq6IRU72XQvKl7JzrlFBmaSgCE1SSyw0AXe548O5/lPgVgrh2PmFK2ZRBQgDNc5BXK550HgbbH5LpecSUY2wwuLsAihCHJdxJtYkl+St0zsPfwOoLHn9+n63EKnzPOQyR0wXjL3b9oB8RZ4IaqMBe0g8wUqXPpZfVMbJiUH/EH+fs5+hh6icJuc3bHdO0i7ogLbf7H9hno6LEYoLaykkgpbUAXrXWbq0n2jCMGUEYDva4wLcTAdGEunMvABsPLXisUG0imQ8Mb900LV3HNygB/Ck2ChwprTMbNq21Q9zEfyDk3Y+qrD+KC8dJmOEMJE= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SATLEXMB01.amd.com;PTR:ErrorRetry;CAT:NONE;SFS:(4636009)(39860400002)(136003)(346002)(376002)(396003)(46966005)(336012)(2906002)(70206006)(4326008)(186003)(109986005)(54906003)(81166007)(356005)(2616005)(26005)(478600001)(47076004)(83380400001)(82740400003)(8936002)(426003)(316002)(82310400003)(70586007)(36756003)(5660300002)(7696005)(1076003)(86362001)(8676002)(266003);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Dec 2020 12:07:17.3885 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 166cabef-dc8a-4eaa-c75d-08d8a672207a X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB01.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT068.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1799 To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- sound/soc/amd/raven/pci-acp3x.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/sound/soc/amd/raven/pci-acp3x.c b/sound/soc/amd/raven/pci-acp3x.c index 8c138e490f0c..d3536fd6a124 100644 --- a/sound/soc/amd/raven/pci-acp3x.c +++ b/sound/soc/amd/raven/pci-acp3x.c @@ -140,21 +140,14 @@ static int snd_acp3x_probe(struct pci_dev *pci, goto release_regions; } - /* check for msi interrupt support */ - ret = pci_enable_msi(pci); - if (ret) - /* msi is not enabled */ - irqflags = IRQF_SHARED; - else - /* msi is enabled */ - irqflags = 0; + irqflags = IRQF_SHARED; addr = pci_resource_start(pci, 0); adata->acp3x_base = devm_ioremap(&pci->dev, addr, pci_resource_len(pci, 0)); if (!adata->acp3x_base) { ret = -ENOMEM; - goto disable_msi; + goto release_regions; } pci_set_master(pci); pci_set_drvdata(pci, adata); @@ -162,7 +155,7 @@ static int snd_acp3x_probe(struct pci_dev *pci, adata->pme_en = rv_readl(adata->acp3x_base + mmACP_PME_EN); ret = acp3x_init(adata); if (ret) - goto disable_msi; + goto release_regions; val = rv_readl(adata->acp3x_base + mmACP_I2S_PIN_CONFIG); switch (val) { @@ -251,8 +244,6 @@ static int snd_acp3x_probe(struct pci_dev *pci, de_init: if (acp3x_deinit(adata->acp3x_base)) dev_err(&pci->dev, "ACP de-init failed\n"); -disable_msi: - pci_disable_msi(pci); release_regions: pci_release_regions(pci); disable_pci: @@ -311,7 +302,6 @@ static void snd_acp3x_remove(struct pci_dev *pci) dev_err(&pci->dev, "ACP de-init failed\n"); pm_runtime_forbid(&pci->dev); pm_runtime_get_noresume(&pci->dev); - pci_disable_msi(pci); pci_release_regions(pci); pci_disable_device(pci); } -- 2.17.1