From nobody Tue Sep 29 09:08:29 2026 Received: from mx0b-001ae601.pphosted.com (mx0b-001ae601.pphosted.com [67.231.152.168]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 42D553B8D40; Mon, 10 Aug 2026 11:01:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=67.231.152.168 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786359664; cv=fail; b=g6+fcrEDt+opm8lF2qE+Wz1ilPBswuNWgv+NFRjofFvHa+6rG8py7f90rXnvaluevC90ijbMdbBzBqnsl5Kp1Sp56NQGVKZSzyXCTKmbv3NwuDf3O9t6DZlhXZewwRiCkxIVtNE9XFiJauGWarSj+vpIhivlMOHpF7Qw6ukb43w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786359664; c=relaxed/simple; bh=gQl97cugqc8iZlPVWjzNSL0ASQMvV8LncPIOwOvpGNs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gtW2sEQPhOSjCwgA5BBO5r8Hj3KOeViApH7xH9WWdbpNduSXePRbuZ+vTwRLQEvZN1/3Y596fObNWZx/rAxUMtaV1NLJnoYRjql2NulcljFHhuTuCCmbnhJuLHdytzYFfpgItmie2pMj7tmz1lGqDVgpf/X4R+l3XVB9tDQ1LBM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com; spf=pass smtp.mailfrom=opensource.cirrus.com; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b=HVnSRki4; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=eA9shto9; arc=fail smtp.client-ip=67.231.152.168 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b="HVnSRki4"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="eA9shto9" Received: from pps.filterd (m0077474.ppops.net [127.0.0.1]) by mx0b-001ae601.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67A5Bvx32119648; Mon, 10 Aug 2026 05:40:56 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= PODMain02222019; bh=9wrVwvNP2k2NFyJ6Irrm7cieHRgLKNPmvoWbOHfCsLw=; b= HVnSRki46EEQViXSciNJPCxE1UU7kohwRhm59ZpD2IFnpuJmoHhtWPFkDYVolhJH CirMWW3n8pz2JdRyF5vs6D1B/7PLXm2hdE3Q3SidAsh9ybriFgQa6H3mGoPeqxmF s/g5FftukIM9WtHD8i/moDqoLK1fJ/M1KMTuTUITB+EPfGdUuWdOnuk8bpoVV5Wy 3MFZ5CA+l3FLlNGsFjAYcQyhumOKlsV72Cx7lEvsYUEKTgjghAlU0TsELDeXqaY1 SQCoybJkaz8pecrDsNzXXm69eFFPT8CD3/hUFxGzsbn8JnsVdPLloEa5TfNbxg41 fnD0XP8fHZiz6o/DAgKGMg== Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazon11020074.outbound.protection.outlook.com [52.101.85.74]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4fx0vg2ect-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 10 Aug 2026 05:40:55 -0500 (CDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=A5TlX0J1dlx0xI63st1cCavRuYCH16LRnR5q/XHVW6NDA+MKpG4w5EP+MJcQYpka93VCyl5KPDkavqXFDCVjcs8oxuF7BmeW1Il3786beVbEk7lyzjPqkyaxlNbjgV5OWusqGVTB9HDOdojibqMB1+Zv32VGhXaLM1nhV7md869QTcuO1aQ+oqrC8PtUSDMekWM38hOuOufgB7GKVrEZwFHGLCiK2DwBIhF8z1UGEAfsbPROoU8tPBDxaMKyEXpkyuAu2U6EMdXEDxVpOFmdB6L5PJ9+chfbV5fIpAjZhucn//ozxA29ygr6b3owVXvez/zKQZAwwtzZFaeo7YrBVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9wrVwvNP2k2NFyJ6Irrm7cieHRgLKNPmvoWbOHfCsLw=; b=CotsgNQfhLUiYEMBAofM47tHLbVvAHYxrJvYyUUExvtRwdu6c6/REFykcbkCgCkgN2a8BGxR6UmiWyjr4c7aFqYU5g1zMQJXzR2bbQ757dIJg4TKcxywJAt9VDOF3JR8LWT6sPeH/Gb06aoqtkKHqMgecFYOmT+rV08b0dvTO4ImQtP1ewvZ3ZeIUQ7wGqDuGIhunnvfHl3SZTEVVbGffo6Ousgaa0R1I+2pn0WAQErZm2isYy9TfHCyAjBVaEpUVDfdH3Xw3YiyYxA4Sj1yLURyB8WWx+VsQgzx+nVUdYubV43DIM7HHMj2JEmpax83XR41e06fZsPNu28rJ/86/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip is 84.19.233.75) smtp.rcpttodomain=cirrus.com smtp.mailfrom=opensource.cirrus.com; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=opensource.cirrus.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus4.onmicrosoft.com; s=selector2-cirrus4-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9wrVwvNP2k2NFyJ6Irrm7cieHRgLKNPmvoWbOHfCsLw=; b=eA9shto945ht2gpFc1vG50fmJT9HGbgemjB5z81jTAr3Dc0mFIKeMg0+T3WrNp4LCwcBS+TNISYEJhuaZVtqAip3NrHM1JJrsQFxfwNAcqyaIxrOl2rFgwowtHIzK+4t0snmhnlDZKT9WGVjhsJyzpsjP8K1D5bLywHH5Yp6yJU= Received: from PH8P220CA0028.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:348::6) by BL1PR19MB5867.namprd19.prod.outlook.com (2603:10b6:208:397::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.25; Mon, 10 Aug 2026 10:40:48 +0000 Received: from SA2PEPF0000150B.namprd04.prod.outlook.com (2603:10b6:510:348:cafe::a1) by PH8P220CA0028.outlook.office365.com (2603:10b6:510:348::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.292.25 via Frontend Transport; Mon, 10 Aug 2026 10:40:48 +0000 X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is 84.19.233.75) smtp.mailfrom=opensource.cirrus.com; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=opensource.cirrus.com; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning opensource.cirrus.com discourages use of 84.19.233.75 as permitted sender) Received: from edirelay1.ad.cirrus.com (84.19.233.75) by SA2PEPF0000150B.mail.protection.outlook.com (10.167.242.43) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.315.6 via Frontend Transport; Mon, 10 Aug 2026 10:40:47 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id C113A40654B; Mon, 10 Aug 2026 10:40:45 +0000 (UTC) Received: from ediswws06.ad.cirrus.com (ediswws06.ad.cirrus.com [198.90.208.11]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id 9ED27822542; Mon, 10 Aug 2026 10:40:45 +0000 (UTC) From: Richard Fitzgerald To: broonie@kernel.org, vkoul@kernel.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 1/4] ASoC: cs35l56: Request IRQ in cs35l56_common_probe() Date: Mon, 10 Aug 2026 11:40:42 +0100 Message-ID: <20260810104045.60701-2-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260810104045.60701-1-rf@opensource.cirrus.com> References: <20260810104045.60701-1-rf@opensource.cirrus.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF0000150B:EE_|BL1PR19MB5867:EE_ X-MS-Office365-Filtering-Correlation-Id: e65f2571-34be-46e0-6b2f-08def6cbd6bd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|61400799027|23010399003|82310400026|376014|10067099003|11063799006|56012099006|3023799007|16102099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: dN6XOTaTfYrimTTbC/VohLM7pvsnV4LHcPOM9ot2wSfyd4sIZwaolwR5QLp+TSJKWuijmv6rI4+PQyF25zXwA1vKZRQ50hXPPPkKt+pWyklGlpFaosq9P4UrxlUlIWtF7klskoM1gqiiHNEd6jnmRfW5EHowp2E0RXO9AAUCk4jsv5E4P7jTuDJB2wQ45A99wzGDm4ysPf7av8+2wL4xoG/4bzxJFG1dArw2DhWJaD3IAhIxqQsgK1OloXZOdmgkeVNltZ0m75syAGp5oAa2McdQ/SR5ZQSUX/eaV0bWyW5PaD4583DsiLI8Bz9HaPyZ9vNxbSW81upe64HbIP1f7BOTiYgKvlg9cvmyPe5s2QdvTZ6HMT6R0iJH2Dwf80DtHoQcNuklF2AwYZtXSdxdaIxtmRhhna5QMuZ3xJd3g17ziYLbaBagjAiEdeCFvAFeamcZ8xqlRfwX7++L1eng9ek5EYnD2B71JCa+nQjyJgAqZOHsECGL4/nxFTz2RXEgbGt0unL8K5UgpItJhvfTQrplVUDr+zPdyv8XNLGMpDBQTy6Cc8JH1LLHRh88MTKAoIXZ6Hon3jLtgXeaVA5zg/k5ww247Ceqy7Snarni87Ft6ERd/OKPsYwcNUfk35yS892eZAX6S15jOttXzTMdsGAT8WX1UgXRnldknnj6/It18RtQX2g2FvduhwIWM6DzNb/t47qOEyzTzyjmX39PYQ== X-Forefront-Antispam-Report: CIP:84.19.233.75;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:edirelay1.ad.cirrus.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(61400799027)(23010399003)(82310400026)(376014)(10067099003)(11063799006)(56012099006)(3023799007)(16102099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: JRsjeCWhbJg2mouulQ1h1dMwpms2GA6yLiZ9SDfdGgSXLhLipiyctUPwfyYk8aDS2qYb/uiEA+58YCL0FFMw0pIpYb6nOAYoXJAjW4669d+r3t2UkOHFSN0TijSsQ/prnXLK8WiGNlu24ppZChB4U1wB02LpgIEhtkEBAECnNRiU7KaDK+BTduREm3ASWvI/JRA+olO/ui+tAfFPdHdbK/sBhiZzZsaTt8p6g/4zS1pOQcWWdeyq5CzXpVQXBjBVC21UqD4lQpt/8kTMlmswxV2i+9gBSihjcmnPrJHMIYCXUBj8GgzqlHzNXvA1/M5WFtmPZgxdHntlUSRJIJEqdUb5bh1D9rvoHQqtODrDRROCeXoNNOYlaMxSaRH+dO808JhzXfksYEnUstYFjdHttUXOYViWyuGrGlALprVtgGTixiFv3DaCi3KGpfAbw0U1 X-Exchange-RoutingPolicyChecked: EqF+iiHc/AWqdhFcB0QPG7XxJW5cfDM+42OB+2ZjBnfAauSTbZItwjKLpMRdqe1vSnFWxk+3bcmVNuA6zplNLzDo2J9uw9YPz9kc49/eQlQkXfx3G+xaSeV2BapBMCpbHqlXbpTNg1bMKoH0F/Xkgjz12SeM4JFAsKD5kmxsvdaeaEKeRMi4l3CtOvNjJO5YiR6ZwaqsmbT1RzctWU5KaSbOT9WyzyVhBPt5SzRGfR3Z0MQnmZVgfdFOPZWxAWSGB/DIGmlM4lBOZXRf9oRry7f5qxK1CN1kE7H43IIViiIlU00tFohHsD0IoBOvzK4pj5QW/VuzAQy7IB7Gc3Pmkw== X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Aug 2026 10:40:47.2017 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e65f2571-34be-46e0-6b2f-08def6cbd6bd X-MS-Exchange-CrossTenant-Id: bec09025-e5bc-40d1-a355-8e955c307de8 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bec09025-e5bc-40d1-a355-8e955c307de8;Ip=[84.19.233.75];Helo=[edirelay1.ad.cirrus.com] X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TreatMessagesAsInternal-SA2PEPF0000150B.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR19MB5867 X-Proofpoint-GUID: HOU5kwfiztuhj-2NVwYmpd6BsqccDBC8 X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDA5MiBTYWx0ZWRfX/Or/WcrQwuO1 IBkuVof8I32pWoDf/QfLWMyNyefYsSBVXWERJ1/F4AWJcAZimdxtY7LEYmKJhHPd1YZYuEgz+rP dTSq2beejIwecVbmlvuRokJTx/CMUsc= X-Authority-Analysis: v=2.4 cv=KaLidwYD c=1 sm=1 tr=0 ts=6a79aab7 cx=c_pps a=BkzQgYdJoksvgi0GI1zv2w==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=Sv0fKeRqtYgA:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=iX4cTi3TZMoOKdANLEfx:22 a=KfkQE9S9VqCBgivYGm0O:22 a=w1d2syhTAAAA:8 a=jG_iBcyMVqCeCAGu60AA:9 X-Proofpoint-ORIG-GUID: HOU5kwfiztuhj-2NVwYmpd6BsqccDBC8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDA5MiBTYWx0ZWRfX+GlOUw2MwoWi 96UXBHC9LcUgOt3uRCWBQmyrLBBEIADOXvG4Ym0nJHYSf+uLFAehrTGrTzi5ru+A/MsoNg26HSg kHiVZ4y9o7M0b7N/z6xU9nsP1Kxvb3M2PqfhlXfhKOOxVVupuqf8WGAtEAFKd04vIT003Ov60GT Gc7L2pihi/3ZR8Rzi8nU5oZz+av+Dh37lh/ASML2b0dKYy9g6kughUVDODP+xKixcZbcZjKnYOp uctGHFtdgQLvyC48SnGBGxTe8mVWXh3O1zkegHwBlrJo5FTg9uICLwAb4gZvjp80/LocjKPq4es 1/k/o6PZWdm7n9BPF3XyP9H+XdfoFFkEVe7lekhOu4puoUdaooemQRN5Pmx22fao4gBhxn1TgEa 4uxQb8x5SHgxjRz+PjeSrhPvOzQiVPugVcckg1YMjkMtCyMp8XM+40nQCM2Sp6J25eb8+0aKRkc tZi3Ei1gMCbjxoEUTEA== X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" Call cs35l56_irq_request() in cs35l56_common_probe() instead of calling it afterwards in the probe() for each bus type. Calling cs35l56_irq_request() in each bus probe() is a legacy of dealing with the oddities of the SoundWire framework. It's no longer serving any useful purpose to do it outside of the main cs35l56_common_probe(). Signed-off-by: Richard Fitzgerald --- sound/soc/codecs/cs35l56-i2c.c | 10 +--------- sound/soc/codecs/cs35l56-sdw.c | 6 +----- sound/soc/codecs/cs35l56-spi.c | 10 +--------- sound/soc/codecs/cs35l56.c | 12 ++++++++++-- sound/soc/codecs/cs35l56.h | 2 +- 5 files changed, 14 insertions(+), 26 deletions(-) diff --git a/sound/soc/codecs/cs35l56-i2c.c b/sound/soc/codecs/cs35l56-i2c.c index 4f6ddf1c5a3f6..5e69ddbe342a1 100644 --- a/sound/soc/codecs/cs35l56-i2c.c +++ b/sound/soc/codecs/cs35l56-i2c.c @@ -51,15 +51,7 @@ static int cs35l56_i2c_probe(struct i2c_client *client) return dev_err_probe(cs35l56->base.dev, ret, "Failed to allocate registe= r map\n"); } =20 - ret =3D cs35l56_common_probe(cs35l56); - if (ret !=3D 0) - return ret; - - ret =3D cs35l56_irq_request(&cs35l56->base, client->irq); - if (ret < 0) - cs35l56_remove(cs35l56); - - return ret; + return cs35l56_common_probe(cs35l56, client->irq); } =20 static void cs35l56_i2c_remove(struct i2c_client *client) diff --git a/sound/soc/codecs/cs35l56-sdw.c b/sound/soc/codecs/cs35l56-sdw.c index 303d37e7d0bfd..14bb5d1793d33 100644 --- a/sound/soc/codecs/cs35l56-sdw.c +++ b/sound/soc/codecs/cs35l56-sdw.c @@ -484,11 +484,7 @@ static int cs35l56_sdw_probe(struct sdw_slave *periphe= ral, const struct sdw_devi /* Start in cache-only until device is enumerated */ regcache_cache_only(cs35l56->base.regmap, true); =20 - ret =3D cs35l56_common_probe(cs35l56); - if (ret !=3D 0) - return ret; - - return 0; + return cs35l56_common_probe(cs35l56, -EINVAL); } =20 static void cs35l56_sdw_remove(struct sdw_slave *peripheral) diff --git a/sound/soc/codecs/cs35l56-spi.c b/sound/soc/codecs/cs35l56-spi.c index b1eb924a5b6cc..21b18da9e73d1 100644 --- a/sound/soc/codecs/cs35l56-spi.c +++ b/sound/soc/codecs/cs35l56-spi.c @@ -40,15 +40,7 @@ static int cs35l56_spi_probe(struct spi_device *spi) if (ret) return ret; =20 - ret =3D cs35l56_common_probe(cs35l56); - if (ret !=3D 0) - return ret; - - ret =3D cs35l56_irq_request(&cs35l56->base, spi->irq); - if (ret < 0) - cs35l56_remove(cs35l56); - - return ret; + return cs35l56_common_probe(cs35l56, spi->irq); } =20 static void cs35l56_spi_remove(struct spi_device *spi) diff --git a/sound/soc/codecs/cs35l56.c b/sound/soc/codecs/cs35l56.c index 0b7b080939a18..619be47060a43 100644 --- a/sound/soc/codecs/cs35l56.c +++ b/sound/soc/codecs/cs35l56.c @@ -1942,7 +1942,7 @@ static int cs35l56_try_get_broken_sdca_spkid_gpio(str= uct cs35l56_private *cs35l5 return ret; } =20 -int cs35l56_common_probe(struct cs35l56_private *cs35l56) +int cs35l56_common_probe(struct cs35l56_private *cs35l56, int irq) { int ret; =20 @@ -2019,16 +2019,24 @@ int cs35l56_common_probe(struct cs35l56_private *cs= 35l56) goto err_remove_wm_adsp; } =20 + ret =3D cs35l56_irq_request(&cs35l56->base, irq); + if (ret) + goto err_remove_wm_adsp; + ret =3D snd_soc_register_component(cs35l56->base.dev, &soc_component_dev_cs35l56, cs35l56_dai, ARRAY_SIZE(cs35l56_dai)); if (ret < 0) { dev_err_probe(cs35l56->base.dev, ret, "Register codec failed\n"); - goto err_remove_wm_adsp; + goto err_free_irq; } =20 return 0; =20 +err_free_irq: + if (cs35l56->base.irq) + devm_free_irq(cs35l56->base.dev, cs35l56->base.irq, &cs35l56->base); + err_remove_wm_adsp: wm_adsp2_remove(&cs35l56->dsp); =20 diff --git a/sound/soc/codecs/cs35l56.h b/sound/soc/codecs/cs35l56.h index 9acd2e7e17c93..1ddee9ab6a876 100644 --- a/sound/soc/codecs/cs35l56.h +++ b/sound/soc/codecs/cs35l56.h @@ -78,7 +78,7 @@ int cs35l56_system_resume_early(struct device *dev); int cs35l56_system_resume(struct device *dev); irqreturn_t cs35l56_irq(int irq, void *data); int cs35l56_irq_request(struct cs35l56_base *cs35l56_base, int irq); -int cs35l56_common_probe(struct cs35l56_private *cs35l56); +int cs35l56_common_probe(struct cs35l56_private *cs35l56, int irq); int cs35l56_init(struct cs35l56_private *cs35l56); void cs35l56_remove(struct cs35l56_private *cs35l56); =20 --=20 2.47.3 From nobody Tue Sep 29 09:08:29 2026 Received: from mx0b-001ae601.pphosted.com (mx0b-001ae601.pphosted.com [67.231.152.168]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 21A7E3BBFB3; Mon, 10 Aug 2026 11:11:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=67.231.152.168 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786360265; cv=fail; b=DKqXC85vfewx39DL7a8Z+O/KueuziR418G2pnUym60KMN6BQQnygyL+c6fiYtPAubqkj2tP9T+uzd8ayR/gzgXwfQ51YjY+JZKt6NeL6LVelTIqo+fssqLbsQQ0U10CoTdodQk8Dw/erSFkthdU1mlpbs+OFUFtPBnRPNrvRODk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786360265; c=relaxed/simple; bh=jZZql+1IVO+G+gs7hujFYeKabFyAHTZJGF2sdAom/tE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=RfX1dDPODiu6Ich3r2wNZQj4oHyhKDeiyM+ceVdW7uWNUl+Ad/rHkvyOiqsByzdqRAnusjWS8shTCMRCGFTgtZAtPaLCm2ljC5JXwdxnyC94KtWpxi8ki+ewIbuz7UbsDYaCPhyR5ek3nygNDJljNPb8q7AKRGqASAfRqZ8Spjo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com; spf=pass smtp.mailfrom=opensource.cirrus.com; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b=oLFJgSfU; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=jFbCYKzx; arc=fail smtp.client-ip=67.231.152.168 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b="oLFJgSfU"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="jFbCYKzx" Received: from pps.filterd (m0077474.ppops.net [127.0.0.1]) by mx0b-001ae601.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67A4lRUr2078003; Mon, 10 Aug 2026 05:40:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= PODMain02222019; bh=7nIO0/d0AeLkPG40iTPQtIvIuWkR/mtCb4GK3k6P+/A=; b= oLFJgSfUDFYw2C6a4yrxe8K7HELb+8dnGoqlUn6K5oJWgHUs9A5KVpCUzQ7M4XxN yAl9H0aDNj5fBuPPoYAS1FXItmSGxSwnRxObV74K9ls+OyBa7faLVIlO0WW3SqMT mfPC52tAW1qHqS/85aqQqvFFwvD67emZtgYB5Bz/0KSJGtut+l27VmitB2IWIAVN xCfjmyKOafIqyToyBCqik+kHhfELXPbuenEY4NE6JbzSIY1yjiAssnGdMn84Eo8V AHPx8UMPEVrGBU/TadHVWswhfrXYGG2tbYzSXErxITTThZFZFijhk6VODsoUvCId mVtb25xtBIymRLJC/OpLiQ== Received: from bn8pr05cu002.outbound.protection.outlook.com (mail-eastus2azon11021076.outbound.protection.outlook.com [52.101.57.76]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4fx0vg2ecq-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 10 Aug 2026 05:40:53 -0500 (CDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lPk5mN7MBiqS+/WFrnX/TszvaCtSLPrL1AiAwC3tmQ31zutMI/Kga3GIetQz/FdY5MZo12pavuKxuoVQ8AwFQIxMhBQeVVDBlMkSM1CDTtas2Kc9FopS6Edj0/s50tMoem5uhtknaKQ8y9Q1D9UKHoZOQFwOrk2WeRL1i7i2ATc3ky1cPGKbp3boPSaGMdcxITInlgPNba6Ekjo9+6yMhu2TOHb5x8UiqjOClVqRvOxDM2fedcKnvS7ha3dgFZAHqxRvfUtNJmguNG26Cv/HGqBAcD2cUU5dzoz7vml9DmFscX3qvWYPtFLYwLzl9/PO1yedmi0FeiSZ0E28vlpqJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7nIO0/d0AeLkPG40iTPQtIvIuWkR/mtCb4GK3k6P+/A=; b=Mu81HPZPn80e4BtNvUdYQfF27Pec3+wXszgvANOAwbl4df89+uf4H9q2LoVEwwFWvObWm3ZDOowye5tFq5gXgy18ZF8E8vokWiDtR+rIOrD7Eqxo3KhQGw98adhyFxI4eSJLe5ykYDpEwCEIOOXtoZlikQBz+OlPtjtsPFO9QJYj/ZCrpznSQplKqwcDtuoI35PDPMaP+ZohHFwo1ec0pNwsLBwqZ+Dm51u0en8C/p0kwYFA7XofHINtqirEv7WlhstRNi1c+O2L5g/j9zZiwZpiO3uwO9p7REv346XBdntR/QYqCmQ6awJMy6f9m7AXCzBow1OFpul/m2A+cDE5jg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip is 84.19.233.75) smtp.rcpttodomain=cirrus.com smtp.mailfrom=opensource.cirrus.com; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=opensource.cirrus.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus4.onmicrosoft.com; s=selector2-cirrus4-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7nIO0/d0AeLkPG40iTPQtIvIuWkR/mtCb4GK3k6P+/A=; b=jFbCYKzxY62Cz6eNiwHZZRu69Gj7N/9XHHvbK56DjDj7Rdtof6xFdtFnkjor8yBLceUnGvfSes+7QXHFiRrhxt3Az+Cp1kVO58i04DOsD3Vz8Al2FrJnOT5jXzS6M0MwDOtVn/ivw4/J4Glbo3jg/jnp0k013bkmuRp0laGPI+0= Received: from CH0PR03CA0392.namprd03.prod.outlook.com (2603:10b6:610:11b::31) by CY8PR19MB6986.namprd19.prod.outlook.com (2603:10b6:930:5d::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.25; Mon, 10 Aug 2026 10:40:48 +0000 Received: from CH1PEPF0000AD80.namprd04.prod.outlook.com (2603:10b6:610:11b:cafe::89) by CH0PR03CA0392.outlook.office365.com (2603:10b6:610:11b::31) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.292.25 via Frontend Transport; Mon, 10 Aug 2026 10:40:47 +0000 X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is 84.19.233.75) smtp.mailfrom=opensource.cirrus.com; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=opensource.cirrus.com; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning opensource.cirrus.com discourages use of 84.19.233.75 as permitted sender) Received: from edirelay1.ad.cirrus.com (84.19.233.75) by CH1PEPF0000AD80.mail.protection.outlook.com (10.167.244.90) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.315.6 via Frontend Transport; Mon, 10 Aug 2026 10:40:46 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id CAEEF406550; Mon, 10 Aug 2026 10:40:45 +0000 (UTC) Received: from ediswws06.ad.cirrus.com (ediswws06.ad.cirrus.com [198.90.208.11]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id A2AE6822544; Mon, 10 Aug 2026 10:40:45 +0000 (UTC) From: Richard Fitzgerald To: broonie@kernel.org, vkoul@kernel.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 2/4] ASoC: cs35l56: Move cs35l56_irq_request() after cs35l56_irq() Date: Mon, 10 Aug 2026 11:40:43 +0100 Message-ID: <20260810104045.60701-3-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260810104045.60701-1-rf@opensource.cirrus.com> References: <20260810104045.60701-1-rf@opensource.cirrus.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD80:EE_|CY8PR19MB6986:EE_ X-MS-Office365-Filtering-Correlation-Id: 41b78dae-ddae-4e4a-7476-08def6cbd676 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700016|23010399003|82310400026|61400799027|18002099003|16102099003|22082099003|11063799006|56012099006|6133799003|10067099003; X-Microsoft-Antispam-Message-Info: zBmCjOAdjURj4/hnCdXVxfm4UQ83HRgPoZN26xS8gMZMIj3ewq8RSxhhHZUBAyK8R15iuBnVk3ynMdPVI6D9KoagBeSgsJB5w51N3wENrPggX93gRy4ZVHikXzDY8G+XSBK5JX7TTyQw7DsnJ5Ph3CvoLiFmuLUEwy3SPfDaQOb671v77G7nwa2PzOurRpkiEcKh+/5r46i3a5DqQizRVE0GNgHQb8A2YmNuVJvlFqEBWJVkGtZF7HJurjj1StANPmebB/NxfjzVT+X8j70A20HO+zLPHinZULTKy4ah7irC+UB4n/hcYZVx0WlfcysCiOBClX8mNmiYQF+VNBMlfoWQktrHRyQMZIkuecKBiF8WwrEBeRl4hokTrQmOkrfCJsuYBXaCDeI8dPPbyDV2nhtPaTYuV6M4VNhwJ+E3aZh9tMnrWyiz/uSGAzTM/ptJU0N2WYcPCRFcNGH1rH3lrQ71lR3JRMKjXH/hJwl1b2etBO3MrOFlyROSZpi2ToDXX0BJ0XZXdGWjtpMsY3ahvK5r1MDFuFF8+DHMeRaPvJToGnE1vhf/AR2LXF26Y1QiZywrgcMFyUWTajWf0x576hA+Np6cIO/m5QYrXskOlCoZpMlksJJBYJs5pQZfK/Sn4aq3wVP18Ftuh5QnQSIgXWJ8YMyF6CKSwszcHNoO5I08ywrxMXViKCwujWRECvPB8DW/rDtn3dmu6lNTeWf4lQ== X-Forefront-Antispam-Report: CIP:84.19.233.75;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:edirelay1.ad.cirrus.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(23010399003)(82310400026)(61400799027)(18002099003)(16102099003)(22082099003)(11063799006)(56012099006)(6133799003)(10067099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: x6/DlALjMuEcnEC6DmaIWHVv9SXFMYrMsLaax8BdUf+CGz7ISyv8UOkT4Pu25yl1lCu0lsUtvKvM33JEEd0bkbZ73k3EsOPegjutWFOjojwlpORMmXL/cAEZOLCl1a86WhBKiFLjUjLOm38lsMnXd3Bv/cvR47fSevta8+CdKgAT1Dyjtc9/npe5m84ZzwdydS+PI5QJZ6Ri35ZORTn6dH0bCEvV7FQQDFIIkhw5KEanOtvqsIatMh3dkGJ2jDPDVXJcJqumfdDQhlY6bnnl4c2CvAIvgpi+YfrXc7Ahf+DULBdCMcwaXCJisso2nOlQZb4HueGodGR68ZbyuMsdV5RllfP/K706MzD59gnzaiXaHTtgOCAN9xyfiSOMOYCVvk92mK17hs4zPuyBqqwEW/6eHuMEeptrksxh56XYQbNj6gSly/uUZ+Ym4Kd2FrNH X-Exchange-RoutingPolicyChecked: RiX/4rIC0zTAp5GNFAHyZuHG1ixZgeZDpHAu0hn512rTBJe6ra5xOF+8HjatC82sCVNvEzhSwcCAjwrsLC4+Hw5Wiu1yiVn0SMDcMR5NMwEwZKqf+KDnMA3zszR+Ma4YhchY4fXbgDmNBVrlqU/a7iM4jlyQqq501MsOhzHNcSCe3pVh4f1SVVq2ols74+fV9KYe6JAGKDP/6v885QHmsk5SqJaWIaYJ/LaPecPyWKZ2cr9GqVQSxtvr5gBpt+DtSZQJ9E406uJf4KrBldnm7753DZo9c2Too2b9hI0LWr6TSwy21sy4eRTmph8Bi7wlEZMU2bM46mxQQoIGczofAw== X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Aug 2026 10:40:46.7706 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 41b78dae-ddae-4e4a-7476-08def6cbd676 X-MS-Exchange-CrossTenant-Id: bec09025-e5bc-40d1-a355-8e955c307de8 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bec09025-e5bc-40d1-a355-8e955c307de8;Ip=[84.19.233.75];Helo=[edirelay1.ad.cirrus.com] X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TreatMessagesAsInternal-CH1PEPF0000AD80.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR19MB6986 X-Proofpoint-GUID: 07gLHc2Fkgt0KRPMMQRobJgFadkb2bH_ X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDA5MiBTYWx0ZWRfX16jauKdfDH9m A5AiVovE0REbf+MAgp+T2KtvVoq7PQU9AmEmUhX4kqQ7rVjMO43dDj4bLzMIIG3c40fQzpOSonf SQ0ZtIbzMnjNFhHZHGiGyn5cMkawgx4= X-Authority-Analysis: v=2.4 cv=KaLidwYD c=1 sm=1 tr=0 ts=6a79aab5 cx=c_pps a=A1ZJ2ZpE7ptU6E6UTMl5DA==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=Sv0fKeRqtYgA:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=iX4cTi3TZMoOKdANLEfx:22 a=KfkQE9S9VqCBgivYGm0O:22 a=w1d2syhTAAAA:8 a=JFt9YoiO9metZEpqVLYA:9 X-Proofpoint-ORIG-GUID: 07gLHc2Fkgt0KRPMMQRobJgFadkb2bH_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDA5MiBTYWx0ZWRfX7nK7pWkisDhv 6NjVnqCTsf0/UJumVUiDBRG0o+Zy9gbGpAlfWdf5MXmWkRBkF1NHA64gbnPjfMG9Gmv4ALukntE TVLDAug+5Ys2/HIZ80k2zc5HmnksWvpkgo8929/r4B0fRN/MDpppWqFTxWyn1yL17de+vOkdzeV 5PDx2DAwGjGLj86Cv2eaIJzt5i0JRZLvVTdFTJXVtbqN0arSRvpbJOtBwLR7FzNMnry6S3cduPS 105/gJH+4plTdbJkpMpEMvf/zlIb6AMyx8A1JbpeMiilbOKQ2xqKk6hvvfEreLTC7zt8jjbumRS yLLoOJ32tVCCfK615SJwQ39bG0wabGWCNw7ftPZssSaSTaT/Scx7lCTfQikMl0VGpJbX8QeyuJN fD7vR/wJHgfXhGLe6RyGC0rO28k60HB2GtQ2PLSEsN+yMiiHRGA+SVJkOTiRuebFy4SLmCFmnR1 WVWEHg0EwBzGXe3tlig== X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" cs35l56_irq_request() references cs35l56_irq() but was above it in the source (although they are in the other order in the header file). Switch to convertional C ordering. This is preparation for a future patch that will stop exporting cs35l56_irq() and make it static. Signed-off-by: Richard Fitzgerald --- sound/soc/codecs/cs35l56-shared.c | 38 +++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/sound/soc/codecs/cs35l56-shared.c b/sound/soc/codecs/cs35l56-s= hared.c index b40bd3a8d27b9..0880b6a02247c 100644 --- a/sound/soc/codecs/cs35l56-shared.c +++ b/sound/soc/codecs/cs35l56-shared.c @@ -616,25 +616,6 @@ void cs35l56_system_reset(struct cs35l56_base *cs35l56= _base, bool is_soundwire) } EXPORT_SYMBOL_NS_GPL(cs35l56_system_reset, "SND_SOC_CS35L56_SHARED"); =20 -int cs35l56_irq_request(struct cs35l56_base *cs35l56_base, int irq) -{ - int ret; - - if (irq < 1) - return 0; - - ret =3D devm_request_threaded_irq(cs35l56_base->dev, irq, NULL, cs35l56_i= rq, - IRQF_ONESHOT | IRQF_SHARED | IRQF_TRIGGER_LOW, - "cs35l56", cs35l56_base); - if (!ret) - cs35l56_base->irq =3D irq; - else - dev_err(cs35l56_base->dev, "Failed to get IRQ: %d\n", ret); - - return ret; -} -EXPORT_SYMBOL_NS_GPL(cs35l56_irq_request, "SND_SOC_CS35L56_SHARED"); - irqreturn_t cs35l56_irq(int irq, void *data) { struct cs35l56_base *cs35l56_base =3D data; @@ -694,6 +675,25 @@ irqreturn_t cs35l56_irq(int irq, void *data) } EXPORT_SYMBOL_NS_GPL(cs35l56_irq, "SND_SOC_CS35L56_SHARED"); =20 +int cs35l56_irq_request(struct cs35l56_base *cs35l56_base, int irq) +{ + int ret; + + if (irq < 1) + return 0; + + ret =3D devm_request_threaded_irq(cs35l56_base->dev, irq, NULL, cs35l56_i= rq, + IRQF_ONESHOT | IRQF_SHARED | IRQF_TRIGGER_LOW, + "cs35l56", cs35l56_base); + if (!ret) + cs35l56_base->irq =3D irq; + else + dev_err(cs35l56_base->dev, "Failed to get IRQ: %d\n", ret); + + return ret; +} +EXPORT_SYMBOL_NS_GPL(cs35l56_irq_request, "SND_SOC_CS35L56_SHARED"); + int cs35l56_is_fw_reload_needed(struct cs35l56_base *cs35l56_base) { unsigned int val; --=20 2.47.3 From nobody Tue Sep 29 09:08:29 2026 Received: from mx0b-001ae601.pphosted.com (mx0a-001ae601.pphosted.com [67.231.149.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 082FF3B813F; Mon, 10 Aug 2026 10:41:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=67.231.149.25 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786358467; cv=fail; b=kFj3QyUE4TrX0KSEYZ6n4C3OLmfqpyrK6G5KUMnKraMoBABXXt7WnyRmg+NDrA9VLjeaHhxCj7VBtp/I7pkgMyCp6u1I5F+3C3X1g6z9DudspVci/PF61lS4sz1Aa+D2vZF+wJXWxBijDgK7E9YSpyK793Hs3y6uk7vUwoEYgio= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786358467; c=relaxed/simple; bh=Ahs66vytiMg4eLQbow57JyuyzF3h7QebpinKs/Gloo0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pYgtQEqEvUEURiykVywdUhheusTvpdGhrkl0Fl+iGemUZ8TOFmuGuOJPulHU0cypkhivqAZAb1Ur+JwTxWHAMJ6SowX1SbRhII+AIQvMjFmkrGEGUvSZTVTV5jfWtXtOxbUDXODhetOedEHPHFJfxQGVxV4VIrkDUbdzp19dvck= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com; spf=pass smtp.mailfrom=opensource.cirrus.com; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b=aixSbaxt; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=azTmPVgh; arc=fail smtp.client-ip=67.231.149.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b="aixSbaxt"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="azTmPVgh" Received: from pps.filterd (m0077473.ppops.net [127.0.0.1]) by mx0a-001ae601.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67A4bbbR2527591; Mon, 10 Aug 2026 05:40:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= PODMain02222019; bh=ru+bxVzt3rEfKExTgcOwgnkoi1yxEPP8rMWkpQwnO5A=; b= aixSbaxty3pc4n7Qe8wXh45pAxvh4HjgqN7Orsdb+B97oSooabwisgm2OTetDmyh WjoDMtzupoZ418SymiVGzAa01YwKog+WCXPXlO4iAz26z50UHxZRLWj1GqjZKGyS krYEksd0HgoTV4Ua+FW1J23ExSF+1R9wX0fqWuQOukuxwxKXRxIKgBVjk69qym4N QyL1McuwKOhtwsJKn0ZJVDwyDRyHNoRo+/4RxXxmue2LaAk4E0l/FbylDoKSe+uy 86bQGI+KDEKXk7WqddtxgKE6JvOI6zvJdya5nvuZuQ9HFv0EupArShYwGBK/1CdM ZICriMnB5G0KQwSi/ZdWxw== Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11021133.outbound.protection.outlook.com [40.107.208.133]) by mx0a-001ae601.pphosted.com (PPS) with ESMTPS id 4fx1v0tbmp-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 10 Aug 2026 05:40:51 -0500 (CDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EPnwxY5CYjLgvmIVTAPFQHuE2XAwKY262wO0IDYcrgc5zmgv+yLKvQuUU8uQP9FOUhJKdlZwBvf3s2xpno48Z5XQLe8wQ+zN4WzgmiIzYT5KwdjeVUclz+Tha4PCGM+WvavRtVo2YwMkEpLaq10Z9Z+lJMOuWHI0rikhEH5dWBeTqaUncbinqL3GYhwZiuOJRohQfuP4J4OIJCgn8raDD+AsEeogueCqQ7xQ0wg42bE98PHDyXovJDitjhdoaagTEpjCXuzGllLPYkpl0KD2uzhgQ4/ElUPNe5JuqAtrF77I726NRAWxWuVkdOl9Nndq2SVqw1fM+bDUAMd5o3hHww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ru+bxVzt3rEfKExTgcOwgnkoi1yxEPP8rMWkpQwnO5A=; b=pOxOyn1wasKekQkhwzdYTMIbEItTnqdP6Yz2fNUN3ZQSt90IsnGWUkVVFwdgk3yR6q1XLiWMoVfyzIpq8o4+QfnxzFJkKvPAD28+ai8TcSVwuuozvvaBLHvmzbsNwXCC8aK0ih9xYCJnOt/1m8zhdaosKmxJARaAXyePQzFxPlOvELJB2vkb0jRv7PYpSVrxm0oDMpjokmCYAYlREteNqr2rnqcG4jqs4utzXwfKKbcUI7mTR4miMModqf0D4vgz9FVhH1J7evs8Ve4bPlErZ0ACyH2vlAm8YTkCxi7DSXw3a8jKytbfsipqoe8cKxnJwGoR7RxllQf22mcoER1qwA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip is 84.19.233.75) smtp.rcpttodomain=cirrus.com smtp.mailfrom=opensource.cirrus.com; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=opensource.cirrus.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus4.onmicrosoft.com; s=selector2-cirrus4-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ru+bxVzt3rEfKExTgcOwgnkoi1yxEPP8rMWkpQwnO5A=; b=azTmPVghfqXFWCW4IRUTre0AMxB1GmxRkVIZBhrFeJH5Gb/TvQyIni8duSxOWpnXZ2nwmH0AxNQDdtxk/dpUT1xQSt/OyIPZP414qa7GqtkzgbMYdPNjztfekhfms2AYcAna/BszX1PRFecO/U2D8oKiMK0fUQSEZPuG84HTJdg= Received: from PH8PR21CA0006.namprd21.prod.outlook.com (2603:10b6:510:2ce::18) by CY8PR19MB7641.namprd19.prod.outlook.com (2603:10b6:930:72::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.25; Mon, 10 Aug 2026 10:40:48 +0000 Received: from CY4PEPF0000EDD0.namprd03.prod.outlook.com (2603:10b6:510:2ce:cafe::5e) by PH8PR21CA0006.outlook.office365.com (2603:10b6:510:2ce::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.339.1 via Frontend Transport; Mon, 10 Aug 2026 10:40:47 +0000 X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is 84.19.233.75) smtp.mailfrom=opensource.cirrus.com; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=opensource.cirrus.com; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning opensource.cirrus.com discourages use of 84.19.233.75 as permitted sender) Received: from edirelay1.ad.cirrus.com (84.19.233.75) by CY4PEPF0000EDD0.mail.protection.outlook.com (10.167.241.196) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.315.6 via Frontend Transport; Mon, 10 Aug 2026 10:40:47 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id CC566406552; Mon, 10 Aug 2026 10:40:45 +0000 (UTC) Received: from ediswws06.ad.cirrus.com (ediswws06.ad.cirrus.com [198.90.208.11]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id AF34882025A; Mon, 10 Aug 2026 10:40:45 +0000 (UTC) From: Richard Fitzgerald To: broonie@kernel.org, vkoul@kernel.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 3/4] soundwire: bus_type: Create IRQ mapping before calling driver probe() Date: Mon, 10 Aug 2026 11:40:44 +0100 Message-ID: <20260810104045.60701-4-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260810104045.60701-1-rf@opensource.cirrus.com> References: <20260810104045.60701-1-rf@opensource.cirrus.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD0:EE_|CY8PR19MB7641:EE_ X-MS-Office365-Filtering-Correlation-Id: 1cc197e7-6ef2-4684-63cf-08def6cbd6a5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|61400799027|82310400026|36860700016|16102099003|22082099003|18002099003|56012099006|10067099003|11063799006; X-Microsoft-Antispam-Message-Info: 7BX8lztzEBv3WHcgDKjZwwRKO1ZgzP7PdeyASlCVDwcvv8/+1om6+Xl6GZuPe55V+lNdJZyGEAQF+hOna5bQTmM95aLNT9dkQIOmt6G29VRuXLXy8cOJHfPesBrO9LHNbK3JpCvOQ5pGHLuZuEAFF/p2sJcMvarBtatmptRFA+7EZZ4dj+nJ/VE4lLeCdjF59WmJOmkpXj4LoK9RlTcaLcIOqp9SpRiLBdTqeUaqLY97wiB03ipBFX5fzJr9iQKry5reDUQ0n7gp+RgO52ueMIXG6iQTancTjYfIFk/TlPpc8O+/qg8I/0uSkTRcnDAq7YtNTPeGUyXxcFTLUyt7W2/acBXweNroUr6Rr1mmijKQe32bLmBXT6WUe8c5UWk1sBjtAJm8VlGcmCjEm9bDvO9tOvOXY8cqieh+28HNtgq3TvvqQFeUZF2gbiypsupVzpUlZthFKrcizwWKEFioUYg5St1dCpgglD+2hy6zSqAXpg86ug6Q775NoTg2uJAkYvC6/zdcaUygRJKoH1V0g5F+IcDSewghVu/WETX8hwR0wS9CfOUEam/mu07ZYJlKYSt26tWzGjSDklizPhV1Euqx/7KRYXWj0trPp8DxIjxJuNkzosIxxStk/5+zawasOniE3SZ+Dh5r4YD328tGgbsroCw5ZzmWnIq6hXM036CkqOm9V8lQXQTUFIycXAXAJzIlIoWCj06CZpAbOvmJqA== X-Forefront-Antispam-Report: CIP:84.19.233.75;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:edirelay1.ad.cirrus.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(23010399003)(61400799027)(82310400026)(36860700016)(16102099003)(22082099003)(18002099003)(56012099006)(10067099003)(11063799006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1ngDx5ijjcSz4lqbZ8qffThpI7BaqZJvOy6Mjscrt/WQGqrBVixQp9icZhStAirqEjzXxnqyT1F7bqJRJWe/l+MvWJd1iZKDUFvazp/6yDeIYUHJ/rjvqiDArsfZAhljvLw6qjRP6mgjebTsOwsoSfxN2nkcdqaRUFbOCUPjPRUcEHaQVtDZ5i8BDSlD9dMYaCBgm9OLevqbBqWxQaQdt7wDADHr7ayam4Rx8Z7aqGqnk8+82LDVqQldMS4ZRBMwcNhpxtpyFgdsqoKHyJ8l2+s7NUlBdzfx3i5ItuROJlPMZvSiZd49WurFy65GyFtuQAPv7JZLbZGCZQPrafROtBEstKyTpLFJcHlNHbl3KLMn1kM6UUM3+OxDjx6LDRuzUQ585SeyKAzTl5lZhPRX+NaX4VIw6m+RCYcVQjwOhBd03DJGtrGZog4+vvL4y9A/ X-Exchange-RoutingPolicyChecked: iqMbcS/BnzUfuS4du8Ws+oYjA4+H0Bhj49t/nDLPmkILOGnxITNIBRSRWGCPw02X+iIDb1QkvkBMrSTCHE7FKdCg9Gpen0rMy5qqsh3BB9fGgOCY3GxLnA7GIndTBbrPqctWZuDdOcuKL+1ChjQhGC+DzpyTYydZafWxrCG4bORC+vmirfSp8hR9f0bLoZsptNPuC7hLANCM6DxOMeyK/UNBL3/UYkAw1rkSkAZg+jTKvftNdiTXrqnxruJF8Ia4+JdzggDAz8rk8sB24Zr+0GN4b+n47GwvzHsh8JDROhErLNdx65eg8x2JXBrApKYQcE+bMJkEQrldBIGrf6WnEA== X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Aug 2026 10:40:47.0183 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1cc197e7-6ef2-4684-63cf-08def6cbd6a5 X-MS-Exchange-CrossTenant-Id: bec09025-e5bc-40d1-a355-8e955c307de8 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bec09025-e5bc-40d1-a355-8e955c307de8;Ip=[84.19.233.75];Helo=[edirelay1.ad.cirrus.com] X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TreatMessagesAsInternal-CY4PEPF0000EDD0.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR19MB7641 X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDA5MiBTYWx0ZWRfX5ppJptfizbNR U2gqV7SBV51i5MH38ZnOz1eaGXtxuM/e48zycU5WUlLsWqfuNrI4wiKz88ROmCCAjiJ4KfnWldO kKrX6d99TMxxkMt2IMQXdwtvmOGzb7k= X-Proofpoint-ORIG-GUID: 8LaksrrJkFZ2wPP-e0JKhBPLuBT55viO X-Proofpoint-GUID: 8LaksrrJkFZ2wPP-e0JKhBPLuBT55viO X-Authority-Analysis: v=2.4 cv=ZMrnX37b c=1 sm=1 tr=0 ts=6a79aab4 cx=c_pps a=oB12z6Vl+/cAOQgROE5n3g==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=Sv0fKeRqtYgA:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=iX4cTi3TZMoOKdANLEfx:22 a=Dj2-6B8FqX4mGL0U3gbX:22 a=w1d2syhTAAAA:8 a=3CxaJLL3Bhqc2n9QydMA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDA5MiBTYWx0ZWRfX1K1yZST/NKV8 hKg9DAzmwl8D2kzP2K65nzTNz3iD7g2+c4JlVLVy1cADAPqo99b0fHqysthQS74KuOnyPvib8aX SGXk3NpINCtl29SCKYP3bs6TW4WB7/Hat9OJDkomukf1cH8Ttb6FaHU3s55ZN4h/QndalyuqXw9 HQ6D/IPizozmnMwm3BABP9gHQPgOlmmEXidPO+fBWoScUBPP15iVpgde+5ZU9N59UMHwJwC74PI CIvUDAfO5Wy7N9x/EKKEg0xQ9bQjpgLrQ6JpZNyA0GUERV4lKXwhTFN6H89zDY2qBnI4HyaX60X RxplrlKf3T/KhdRXKvz/IIZrC1nejqvI/t279CkooiNeIiCGe4KVHQS67l+nLVU8TcRP260qG2e U+8k3Il6QS1D0gAfbyXqT2AGDsRodfx1qFy7ZoW7frKPOdCJDb1qdrISGKKGS1d6kEEQT77rqnm uUXnZMwSjYkLKiWHo/g== X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" Call sdw_irq_create_mapping() before calling the peripheral driver probe() so that it is possible to request the IRQ during probe(). Previously creation of the mapping was conditional on the use_domain_irq flag in the driver properties. But these are filled in after probe(), which meant it wasn't possible to request the IRQ during probe(). This was ok for MFD drivers where only children requested the IRQ. But for normal drivers it led to the non-standard behavior of having to defer requesting the IRQ until after probe(). Signed-off-by: Richard Fitzgerald Acked-by: Vinod Koul --- drivers/soundwire/bus_type.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/soundwire/bus_type.c b/drivers/soundwire/bus_type.c index e73c1bea90593..d61a97c5b41ef 100644 --- a/drivers/soundwire/bus_type.c +++ b/drivers/soundwire/bus_type.c @@ -105,6 +105,9 @@ static int sdw_bus_probe(struct device *dev) } slave->index =3D ret; =20 + /* Create IRQ mapping now so the driver can get it in probe() */ + sdw_irq_create_mapping(slave); + ret =3D drv->probe(slave, id); if (ret) { ida_free(&slave->bus->slave_ida, slave->index); @@ -117,9 +120,6 @@ static int sdw_bus_probe(struct device *dev) if (drv->ops && drv->ops->read_prop) drv->ops->read_prop(slave); =20 - if (slave->prop.use_domain_irq) - sdw_irq_create_mapping(slave); - /* init the dynamic sysfs attributes we need */ ret =3D sdw_slave_sysfs_dpn_init(slave); if (ret < 0) --=20 2.47.3 From nobody Tue Sep 29 09:08:29 2026 Received: from mx0b-001ae601.pphosted.com (mx0b-001ae601.pphosted.com [67.231.152.168]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8FC40356778; Mon, 10 Aug 2026 11:02:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=67.231.152.168 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786359769; cv=fail; b=AKQnOaa/FG1GTL3f1Fqae0VcMAbYAESS5L8UK8oNYSZE7FHxM/opuLXr0NgTydiSt6Iqphu79hanZcEN5ZbEjUSzdmdCvwg1KKIg1xdohHv+ItuKI59saua3tIbYdgdXgW5BQ6oQvmMuuxFBkmmCsB5hVL9PrMqu6uqWnCwwf4k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786359769; c=relaxed/simple; bh=Gk0lBeTiXyFtv4RaefeME31L+gsVG5BD+xRIfsDZgJE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VtO0y+3KxjuzjBN12tREArL+8PrYB2VLPuDtgoacPXcXaJ6RIrv/6MNUEURZsQ/oTYQRlNC0B+K1piAss+fkZpTsKfzvivozXBYf+tNjR4affQuRf915kvJgs/hACCpkorgg6aFjUBa4ETLK3REGZ6TC9+U1prQmQKiBLCFUlkk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com; spf=pass smtp.mailfrom=opensource.cirrus.com; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b=LFCjR1kj; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=phRC87jl; arc=fail smtp.client-ip=67.231.152.168 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b="LFCjR1kj"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="phRC87jl" Received: from pps.filterd (m0077474.ppops.net [127.0.0.1]) by mx0b-001ae601.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67A6In5F2231598; Mon, 10 Aug 2026 05:40:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= PODMain02222019; bh=QQyQuAltcqnjbQ/spx9IeFjoBCEflBwjd5Bj0oicACI=; b= LFCjR1kjmF8MHo3lyB9ta2qIBvu89SB2GqDpQ8sNEHwZX8OY1YNXovBBrZm6dj9U shaNI7XJ2cgkjueWBde8m9MmzsPdy3Uc0sz1XRv6l3kfU8h5F1VbeHCxd+rvFr+3 LyRYCPmnfmyZmLGZ9WT6+yzP+BpqPtObMEZsDvGtlqxw8+5PXGQe/O/txKFKBKuN DSfQ1rWCrC6Y1lToiXdDD7NWh5YrIpNijkceRbP5UpbteN5TA9QfMUbGXaHO0TGu lIDAmXqijcrU7OwuK3o3mIPCEvuJ/tG5Q+MHPU/KcaqDVCXpfIzLoXThbKBjx6m+ wq6gPGVALJSSdvu+VIqO9A== Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11023098.outbound.protection.outlook.com [40.93.201.98]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4fx0vg2ecn-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 10 Aug 2026 05:40:52 -0500 (CDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=W42/W4RInTiiovd8HIAe/xvZO6sX7wi3M/6FmsVkfUIoMkEQBclytn0Ve3CMUZYYgg2pQ6StgL1pRWwCdvPthmAmK8yGHkipTbx+VI5g6eVuHZabx4ElhuxybpaRf5yb0u7ukVFHgD56Aaz4CoujqsddNMHqOvJDryutKPefu3w4DIdAHBpWuhPsNZ6A3sF6qm3oguX0WfxACAwY1Aba5X+czyWTj9rrSySsdGlreenIR/O6GPKxz84/mPbjYi/hosKsR6hmc6O0d2nRgP9xyvbOzDaXErhVitd39NQAi1fZAILzTTefvbYrdpyrQ6kV69yw7YQbmE51J9jVdc88gA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QQyQuAltcqnjbQ/spx9IeFjoBCEflBwjd5Bj0oicACI=; b=Sr/TFUqcVQPWBhtWZktA4YVCzOD+f7XR8HFuwBSigS5cwgJXQopXuz8vcxY2LxY/JaciJNVAfjZvfIeBQwfmFxaBdJsMKj9hzpcwvhZnmVGps53xSE/emD9ET5xzrkQXtIJ13kX1GzDulnQJfYpXfFkGUlOdHrZrOi4S/UGijs68TR9EYnAayK4xCT9oHaeUe8HDGFGuZLipJWEgELxcs7yHbJw8JQgBXDkx34qhmi4oIGOyl4EYENOTm+Hz5Jo3vR7YsY+1JS9rB/TTU+Oj9HnZ1fNDwz1uE5JRcsyvR1lxdlNjuulMTVeSRdDSr80EyuN1mAIg5M8z4nu/MB4OOg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip is 84.19.233.75) smtp.rcpttodomain=cirrus.com smtp.mailfrom=opensource.cirrus.com; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=opensource.cirrus.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus4.onmicrosoft.com; s=selector2-cirrus4-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QQyQuAltcqnjbQ/spx9IeFjoBCEflBwjd5Bj0oicACI=; b=phRC87jl8yloERJSuptYkNw6sabTFG/Lr3FqweuNPmuzB6fCjUO7VLiIcOSrRCKV8mdli7Gm/LohhrVpPlZT1Jl3bDmiVCDyPEEHiQzqe2ctTsw9WIkpIDleawljcPmchaxwOslzmFDCWwvszVoh3+XhnuJv96u+eBnk+XnmSYo= Received: from CY8PR12CA0040.namprd12.prod.outlook.com (2603:10b6:930:49::7) by MWHPR19MB997638.namprd19.prod.outlook.com (2603:10b6:303:2a0::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.25; Mon, 10 Aug 2026 10:40:47 +0000 Received: from CY4PEPF0000EDD6.namprd03.prod.outlook.com (2603:10b6:930:49:cafe::7b) by CY8PR12CA0040.outlook.office365.com (2603:10b6:930:49::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.292.25 via Frontend Transport; Mon, 10 Aug 2026 10:40:47 +0000 X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is 84.19.233.75) smtp.mailfrom=opensource.cirrus.com; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=opensource.cirrus.com; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning opensource.cirrus.com discourages use of 84.19.233.75 as permitted sender) Received: from edirelay1.ad.cirrus.com (84.19.233.75) by CY4PEPF0000EDD6.mail.protection.outlook.com (10.167.241.202) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.315.6 via Frontend Transport; Mon, 10 Aug 2026 10:40:46 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id C4D5A40654E; Mon, 10 Aug 2026 10:40:45 +0000 (UTC) Received: from ediswws06.ad.cirrus.com (ediswws06.ad.cirrus.com [198.90.208.11]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id B19E5822545; Mon, 10 Aug 2026 10:40:45 +0000 (UTC) From: Richard Fitzgerald To: broonie@kernel.org, vkoul@kernel.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 4/4] ASoC: cs35l56: Use IRQ provided by the SoundWire core Date: Mon, 10 Aug 2026 11:40:45 +0100 Message-ID: <20260810104045.60701-5-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260810104045.60701-1-rf@opensource.cirrus.com> References: <20260810104045.60701-1-rf@opensource.cirrus.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD6:EE_|MWHPR19MB997638:EE_ X-MS-Office365-Filtering-Correlation-Id: 6a080a12-8138-4d8e-8e7e-08def6cbd699 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|23010399003|36860700016|61400799027|16102099003|22082099003|18002099003|10067099003|56012099006|11063799006|6133799003|3023799007; X-Microsoft-Antispam-Message-Info: 4UMR5Fsu5eq/OmF5WrrdjCc+FdHA12bnevcsov8phhjgXOn+C5AO5efiBuBXRlt+PDYH4a4q8DpvBh84teY6SSZY5KW26waP9Rf+02DOcARlmEBlXZhFQcuF3dOjPe/1ugg9u3ZllHoVz4Dor5WGE1RJQWfBYU6zPVyMW6BhPjoNhha70pj3Q3O4hb7RzBtmKtMwzxW6fegnTdI0Y52z9Mkpxad76x4rge6zW6cVgW5XDzkXJ/T/GmUV+FQkNFGDlmaqtQZ2nUEizG6IOpCe+qvtDzWmazoApE3cwv6OZBAwt+QTL37ZQV3u/u1fqW/02z+NwpZ+z1Wpom45osz6uk6/sbOKo29Almv9XyfCjOhQQyK14OVgw8khzXKZ4w20crJ977V5NpDgvfIk7gJwYAANYpV+8t6hfL37faXJqMLHiKTvPMuMG9yF+5PAaCM37UOOiyQdUz7bsR/MCVIwkkWde0kG+vd5uBynlmkYlyrtyAYhcIx+kBXygSgh8Edioyaf+twJEKi+QB6CYEbTe1EiTaYy5gDicGs3dYyeePHpCjwY9iwGOPlGuVLC6S5SIWKlg67Lw9Ky3QeXT3KYAVkkvG1ArEXttpzgrva3OJ0OAB9u9cf4V4oHkWXGN8cUwG+lTyL3pweAs7E8rb9RC5bNp3EzniLwWevb7i50/JJlFtOM/N7Bs0WJ8dyWYcPoSEay/CtqD9qoBZ5WUvWa0g== X-Forefront-Antispam-Report: CIP:84.19.233.75;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:edirelay1.ad.cirrus.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(23010399003)(36860700016)(61400799027)(16102099003)(22082099003)(18002099003)(10067099003)(56012099006)(11063799006)(6133799003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: JV+31wPm446OUgNxYHoojsS2ftTd925QwyH80LO6wl1zjzKP2OBcHiAn3yaemG0v8KeXw0RSMHLbT4d6aZkZwDyNa+uJccMGYXjPqzCE1oapYOzq2r6J8LgjtZd7cEAGRW5xTS7bev+8pikSzsKBNiNbqMQoWBZFkR15IzwqjETJRFrLm8MEP4RBelarG1SGnPFuorDPDTJBJ2Do0DIhMQNlNk54hNCWXM1NAHe+mXLQk+9gWQl88iPKTuvnFpFUal0U0DLEYtqekIr9Zgmfe04GRaezaxEQ0PkD+dqvXBWb0FmySL68TKOdJWPjA95Z/kLHlmWyg7xGleFFX8fmhOqCLIGpiyPIJvVyvwPHJ+iKeTEzYwvSqT5zvjVAGt43ihKGbNG5g+zrNio9Onp4Wm5aZSlUJTRjaFjQTePOFiA8CTxDd87PhtE3LkoqqskL X-Exchange-RoutingPolicyChecked: NdnKVwZyw1gIzdIujy6w6D9fJtWjXo/br5R8Hyr0ulub4+bZTR9TmNRVxaQTlGVkgIjBiiArO2a7FKsckQzmjtRSG836gpyW2BW5YetomeTknoPFtZD8Fw+jEajr0WaYR3HInvkRpE1t0ehdWA8vkso/O2m5fh2Y/ky1FNCFUTYjBPBLYFaa5xFeTxJaEmkqozLh5xUbEP5UQD6awJoJhTpvRC2JLv35XMYwRQL2CrG/igHX0TvSG18e/DVdss/6CzPDuAlpjaqrIgMtnG3CD9+cStneFo41UCxHw1ZBm/sua+hSBo7h3eL6iQbLupM2nTfGKIp3JvhZu9r402rs9g== X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Aug 2026 10:40:46.9502 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6a080a12-8138-4d8e-8e7e-08def6cbd699 X-MS-Exchange-CrossTenant-Id: bec09025-e5bc-40d1-a355-8e955c307de8 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bec09025-e5bc-40d1-a355-8e955c307de8;Ip=[84.19.233.75];Helo=[edirelay1.ad.cirrus.com] X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TreatMessagesAsInternal-CY4PEPF0000EDD6.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR19MB997638 X-Proofpoint-GUID: syPUEuOPoFr8Ca_eBR1VQ0REVhTdxzXB X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDA5MiBTYWx0ZWRfX1R7H3BrnzXjp UkEFg4k41ak02XSYLY8RGYF+3CR1kngH+zA3nDL2PzxypOZxlC9LwNP5YMC3TMEiz7q/ZkhhzpU HIXSC2grc7LK1Pzi6E0pZu8p/jY+noI= X-Authority-Analysis: v=2.4 cv=KaLidwYD c=1 sm=1 tr=0 ts=6a79aab4 cx=c_pps a=NqdEbQKaF7DYfWX/hQHPrw==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=Sv0fKeRqtYgA:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=iX4cTi3TZMoOKdANLEfx:22 a=KfkQE9S9VqCBgivYGm0O:22 a=w1d2syhTAAAA:8 a=KaUpwP_fG2_SX3DymbAA:9 X-Proofpoint-ORIG-GUID: syPUEuOPoFr8Ca_eBR1VQ0REVhTdxzXB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDA5MiBTYWx0ZWRfX+Qrs6zJNWpq8 +t0JWgVcz0NtaoPwiJi1iPtOERX0m2rMotMU/YLlbwHHE3va6euNQqlmNWyCONzgoQsNGS/RF8B gTKlK5sJWgoLXHlTlYD3NM2tUm9fAPuqN7IQtoZeEZRVFqZeYAySiLppbr/9LLlc1Z3OwIMC6Yv T9V2UXFyKDZYLIsO06lIZ7xyy9n5FRogsMdx3h99AxMykVjQ9LpR3HiBRIomXNftOCyWTeI9v9c XgVPt+fpHbSIAds3+gKNxOTAhi9MmKo8stowiQp+dYu4NziiG0utOoPNOS1tQypA3ku5+wb3AGm 9qbfMi27BGd68F2FOwK03JYXmhPqyCjkVdts56RLwlR7o68tKyvajHWB35BBnM7FCMZz+iBTiOd dRlE9XdMy19ytirQmWXY0ANpcIyKgvTN0EjxesfvoWRCOjipRiQTBBoly37Jj8fDWru9WHcYPJ7 Lbv86rn4K1eRmZqxPUQ== X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" Replace the custom SoundWire IRQ handling with the generic nested IRQ provided by the SoundWire core. This removes the local IRQ work function and the convoluted IRQ masking and pm_runtime management around it. We still need the local functions to mask/disable and unmask/enable the SoundWire interrupts because the devices handled by the cs35l56 driver don't have the generic mask bit for the ImpDef1 interrupt so masking and unmasking has to use a custom mask bit. cs35l56_sdw_remove() doesn't need to call cs35l56_disable_sdw_interrupts() now that there isn't a local work function to be flushed. It only masks the custom interrupt mask bit and the rest of the handler cleanup will be done the normal way by devm_free_irq() in cs35l56_remove(). Similar applies to cs35l56_sdw_system_suspend() - it is enough to write the custom mask bits. cs35l56_irq() doesn't need to be exported because cs35l56_sdw.c isn't calling it. Signed-off-by: Richard Fitzgerald --- include/sound/cs35l56.h | 1 - sound/soc/codecs/Kconfig | 1 + sound/soc/codecs/cs35l56-sdw.c | 65 +++++++------------------------ sound/soc/codecs/cs35l56-shared.c | 3 +- sound/soc/codecs/cs35l56.c | 45 ++++++++++----------- sound/soc/codecs/cs35l56.h | 9 +---- 6 files changed, 38 insertions(+), 86 deletions(-) diff --git a/include/sound/cs35l56.h b/include/sound/cs35l56.h index 2490b72c0a7a8..45a5df574aa6d 100644 --- a/include/sound/cs35l56.h +++ b/include/sound/cs35l56.h @@ -417,7 +417,6 @@ void cs35l56_wait_control_port_ready(void); void cs35l56_wait_min_reset_pulse(void); void cs35l56_system_reset(struct cs35l56_base *cs35l56_base, bool is_sound= wire); int cs35l56_irq_request(struct cs35l56_base *cs35l56_base, int irq); -irqreturn_t cs35l56_irq(int irq, void *data); int cs35l56_is_fw_reload_needed(struct cs35l56_base *cs35l56_base); int cs35l56_runtime_suspend_common(struct cs35l56_base *cs35l56_base); int cs35l56_runtime_resume_common(struct cs35l56_base *cs35l56_base, bool = is_soundwire); diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index 6af0247781ad1..ba47adb92a251 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -896,6 +896,7 @@ config SND_SOC_CS35L56_SDW tristate "Cirrus Logic CS35L56 CODEC (SDW)" depends on SOUNDWIRE select REGMAP_SOUNDWIRE + select IRQ_DOMAIN select SND_SOC_CS35L56 select SND_SOC_CS35L56_SHARED help diff --git a/sound/soc/codecs/cs35l56-sdw.c b/sound/soc/codecs/cs35l56-sdw.c index 14bb5d1793d33..4fba59e80c37e 100644 --- a/sound/soc/codecs/cs35l56-sdw.c +++ b/sound/soc/codecs/cs35l56-sdw.c @@ -231,7 +231,7 @@ static void cs35l56_sdw_init(struct sdw_slave *peripher= al) * a soft reset. */ if (cs35l56->base.init_done) - cs35l56_unmask_soundwire_interrupts(cs35l56->sdw_peripheral); + cs35l56_unmask_soundwire_interrupts(cs35l56); =20 out: pm_runtime_put_autosuspend(cs35l56->base.dev); @@ -240,47 +240,17 @@ static void cs35l56_sdw_init(struct sdw_slave *periph= eral) static int cs35l56_sdw_interrupt(struct sdw_slave *peripheral, struct sdw_slave_intr_status *status) { - struct cs35l56_private *cs35l56 =3D dev_get_drvdata(&peripheral->dev); - - /* SoundWire core holds our pm_runtime when calling this function. */ - - dev_dbg(cs35l56->base.dev, "int control_port=3D%#x\n", status->control_po= rt); - - if ((status->control_port & SDW_SCP_INT1_IMPL_DEF) =3D=3D 0) - return 0; - /* - * Prevent bus manager suspending and possibly issuing a - * bus-reset before the queued work has run. + * The IRQ itself was handled through the regmap_irq handler, this is + * just clearing up the additional Cirrus SoundWire registers that are + * not covered by the SoundWire framework or the IRQ handler itself. */ - pm_runtime_get_noresume(cs35l56->base.dev); - - /* - * Mask and clear until it has been handled. - * None of the interrupts are time-critical so use the - * power-efficient queue. - */ - cs35l56_mask_soundwire_interrupts(peripheral); - queue_work(system_power_efficient_wq, &cs35l56->sdw_irq_work); + sdw_read_no_pm(peripheral, CS35L56_SDW_GEN_INT_STAT_1); + sdw_write_no_pm(peripheral, CS35L56_SDW_GEN_INT_STAT_1, 0xFF); =20 return 0; } =20 -static void cs35l56_sdw_irq_work(struct work_struct *work) -{ - struct cs35l56_private *cs35l56 =3D container_of(work, - struct cs35l56_private, - sdw_irq_work); - - cs35l56_irq(-1, &cs35l56->base); - - /* unmask interrupts */ - if (!cs35l56->sdw_irq_no_unmask) - cs35l56_unmask_soundwire_interrupts(cs35l56->sdw_peripheral); - - pm_runtime_put_autosuspend(cs35l56->base.dev); -} - static int cs35l56_sdw_read_prop(struct sdw_slave *peripheral) { struct cs35l56_private *cs35l56 =3D dev_get_drvdata(&peripheral->dev); @@ -302,6 +272,7 @@ static int cs35l56_sdw_read_prop(struct sdw_slave *peri= pheral) prop->source_ports =3D BIT(CS35L56_SDW1_CAPTURE_PORT); prop->sink_ports =3D BIT(CS35L56_SDW1_PLAYBACK_PORT); prop->paging_support =3D true; + prop->use_domain_irq =3D true; prop->quirks =3D SDW_SLAVE_QUIRKS_INVALID_INITIAL_PARITY; prop->scp_int1_mask =3D SDW_SCP_INT1_BUS_CLASH | SDW_SCP_INT1_PARITY | SD= W_SCP_INT1_IMPL_DEF; =20 @@ -406,7 +377,7 @@ static int __maybe_unused cs35l56_sdw_runtime_resume(st= ruct device *dev) if (ret) return ret; =20 - cs35l56_unmask_soundwire_interrupts(cs35l56->sdw_peripheral); + cs35l56_unmask_soundwire_interrupts(cs35l56); =20 return 0; } @@ -418,21 +389,12 @@ static int __maybe_unused cs35l56_sdw_system_suspend(= struct device *dev) if (!cs35l56->base.init_done) return 0; =20 - cs35l56_disable_sdw_interrupts(cs35l56); + /* runtime_resume unmasks the interrupt */ + cs35l56_mask_soundwire_interrupts(cs35l56); =20 return cs35l56_system_suspend(dev); } =20 -static int __maybe_unused cs35l56_sdw_system_resume(struct device *dev) -{ - struct cs35l56_private *cs35l56 =3D dev_get_drvdata(dev); - - cs35l56->sdw_irq_no_unmask =3D false; - /* runtime_resume re-enables the interrupt */ - - return cs35l56_system_resume(dev); -} - static int cs35l56_sdw_probe(struct sdw_slave *peripheral, const struct sd= w_device_id *id) { struct device *dev =3D &peripheral->dev; @@ -447,7 +409,6 @@ static int cs35l56_sdw_probe(struct sdw_slave *peripher= al, const struct sdw_devi cs35l56->base.dev =3D dev; cs35l56->sdw_peripheral =3D peripheral; cs35l56->sdw_link_num =3D peripheral->bus->link_id; - INIT_WORK(&cs35l56->sdw_irq_work, cs35l56_sdw_irq_work); =20 dev_set_drvdata(dev, cs35l56); =20 @@ -484,21 +445,21 @@ static int cs35l56_sdw_probe(struct sdw_slave *periph= eral, const struct sdw_devi /* Start in cache-only until device is enumerated */ regcache_cache_only(cs35l56->base.regmap, true); =20 - return cs35l56_common_probe(cs35l56, -EINVAL); + return cs35l56_common_probe(cs35l56, peripheral->irq); } =20 static void cs35l56_sdw_remove(struct sdw_slave *peripheral) { struct cs35l56_private *cs35l56 =3D dev_get_drvdata(&peripheral->dev); =20 - cs35l56_disable_sdw_interrupts(cs35l56); + cs35l56_mask_soundwire_interrupts(cs35l56); =20 cs35l56_remove(cs35l56); } =20 static const struct dev_pm_ops cs35l56_sdw_pm =3D { SET_RUNTIME_PM_OPS(cs35l56_sdw_runtime_suspend, cs35l56_sdw_runtime_resum= e, NULL) - SYSTEM_SLEEP_PM_OPS(cs35l56_sdw_system_suspend, cs35l56_sdw_system_resume) + SYSTEM_SLEEP_PM_OPS(cs35l56_sdw_system_suspend, cs35l56_system_resume) LATE_SYSTEM_SLEEP_PM_OPS(cs35l56_system_suspend_late, cs35l56_system_resu= me_early) /* NOIRQ stage not needed, SoundWire doesn't use a hard IRQ */ }; diff --git a/sound/soc/codecs/cs35l56-shared.c b/sound/soc/codecs/cs35l56-s= hared.c index 0880b6a02247c..7b3e37d462d61 100644 --- a/sound/soc/codecs/cs35l56-shared.c +++ b/sound/soc/codecs/cs35l56-shared.c @@ -616,7 +616,7 @@ void cs35l56_system_reset(struct cs35l56_base *cs35l56_= base, bool is_soundwire) } EXPORT_SYMBOL_NS_GPL(cs35l56_system_reset, "SND_SOC_CS35L56_SHARED"); =20 -irqreturn_t cs35l56_irq(int irq, void *data) +static irqreturn_t cs35l56_irq(int irq, void *data) { struct cs35l56_base *cs35l56_base =3D data; unsigned int status1 =3D 0, status8 =3D 0, status20 =3D 0; @@ -673,7 +673,6 @@ irqreturn_t cs35l56_irq(int irq, void *data) =20 return IRQ_HANDLED; } -EXPORT_SYMBOL_NS_GPL(cs35l56_irq, "SND_SOC_CS35L56_SHARED"); =20 int cs35l56_irq_request(struct cs35l56_base *cs35l56_base, int irq) { diff --git a/sound/soc/codecs/cs35l56.c b/sound/soc/codecs/cs35l56.c index 619be47060a43..b9118ad8fab54 100644 --- a/sound/soc/codecs/cs35l56.c +++ b/sound/soc/codecs/cs35l56.c @@ -37,48 +37,49 @@ #include "wm_adsp.h" #include "cs35l56.h" =20 -void cs35l56_mask_soundwire_interrupts(struct sdw_slave *peripheral) +void cs35l56_mask_soundwire_interrupts(struct cs35l56_private *cs35l56) { /* + * Mask unconditionally. + * * The read of GEN_INT_STAT_1 is required as per the SoundWire spec * for interrupt status bits to clear. * GEN_INT_MASK_1 masks the _inputs_ to GEN_INT_STAT1. */ - sdw_write_no_pm(peripheral, CS35L56_SDW_GEN_INT_MASK_1, 0); - sdw_read_no_pm(peripheral, CS35L56_SDW_GEN_INT_STAT_1); - sdw_write_no_pm(peripheral, CS35L56_SDW_GEN_INT_STAT_1, 0xFF); + sdw_write_no_pm(cs35l56->sdw_peripheral, CS35L56_SDW_GEN_INT_MASK_1, 0); + sdw_read_no_pm(cs35l56->sdw_peripheral, CS35L56_SDW_GEN_INT_STAT_1); + sdw_write_no_pm(cs35l56->sdw_peripheral, CS35L56_SDW_GEN_INT_STAT_1, 0xFF= ); } EXPORT_SYMBOL_NS_GPL(cs35l56_mask_soundwire_interrupts, "SND_SOC_CS35L56_C= ORE"); =20 -void cs35l56_unmask_soundwire_interrupts(struct sdw_slave *peripheral) +void cs35l56_unmask_soundwire_interrupts(struct cs35l56_private *cs35l56) { - sdw_write_no_pm(peripheral, CS35L56_SDW_GEN_INT_MASK_1, CS35L56_SDW_INT_M= ASK_CODEC_IRQ); + if (!cs35l56->base.irq) + return; + + sdw_write_no_pm(cs35l56->sdw_peripheral, CS35L56_SDW_GEN_INT_MASK_1, + CS35L56_SDW_INT_MASK_CODEC_IRQ); } EXPORT_SYMBOL_NS_GPL(cs35l56_unmask_soundwire_interrupts, "SND_SOC_CS35L56= _CORE"); =20 -void cs35l56_disable_sdw_interrupts(struct cs35l56_private *cs35l56) +static void cs35l56_disable_sdw_interrupts(struct cs35l56_private *cs35l56) { if (!cs35l56->sdw_peripheral) return; =20 - cs35l56->sdw_irq_no_unmask =3D true; - flush_work(&cs35l56->sdw_irq_work); - - /* Mask interrupts and flush in case sdw_irq_work was queued again */ - cs35l56_mask_soundwire_interrupts(cs35l56->sdw_peripheral); - flush_work(&cs35l56->sdw_irq_work); + cs35l56_mask_soundwire_interrupts(cs35l56); + if (cs35l56->base.irq) + disable_irq(cs35l56->base.irq); } -EXPORT_SYMBOL_NS_GPL(cs35l56_disable_sdw_interrupts, "SND_SOC_CS35L56_CORE= "); =20 -void cs35l56_enable_sdw_interrupts(struct cs35l56_private *cs35l56) +static void cs35l56_enable_sdw_interrupts(struct cs35l56_private *cs35l56) { - if (!cs35l56->sdw_peripheral) + if (!cs35l56->sdw_peripheral || !cs35l56->base.irq) return; =20 - cs35l56->sdw_irq_no_unmask =3D false; - cs35l56_unmask_soundwire_interrupts(cs35l56->sdw_peripheral); + enable_irq(cs35l56->base.irq); + cs35l56_unmask_soundwire_interrupts(cs35l56); } -EXPORT_SYMBOL_NS_GPL(cs35l56_enable_sdw_interrupts, "SND_SOC_CS35L56_CORE"= ); =20 static int cs35l56_dsp_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event); @@ -828,11 +829,7 @@ static void cs35l56_patch(struct cs35l56_private *cs35= l56, bool firmware_missing { int ret; =20 - /* - * Disable SoundWire interrupts to prevent race with IRQ work. - * Setting sdw_irq_no_unmask prevents the handler re-enabling - * the SoundWire interrupt. - */ + /* Disable SoundWire interrupts to prevent race with IRQ handler thread */ cs35l56_disable_sdw_interrupts(cs35l56); =20 ret =3D cs35l56_firmware_shutdown(&cs35l56->base); diff --git a/sound/soc/codecs/cs35l56.h b/sound/soc/codecs/cs35l56.h index 1ddee9ab6a876..35c02ae17de3d 100644 --- a/sound/soc/codecs/cs35l56.h +++ b/sound/soc/codecs/cs35l56.h @@ -39,8 +39,6 @@ struct cs35l56_private { struct sdw_slave *sdw_peripheral; struct regmap *sdw_bus_regmap; const char *fallback_fw_suffix; - struct work_struct sdw_irq_work; - bool sdw_irq_no_unmask; bool soft_resetting; bool sdw_attached; struct completion init_completion; @@ -65,10 +63,8 @@ static inline struct cs35l56_private *cs35l56_private_fr= om_base(struct cs35l56_b =20 extern const struct dev_pm_ops cs35l56_pm_ops_i2c_spi; =20 -void cs35l56_mask_soundwire_interrupts(struct sdw_slave *peripheral); -void cs35l56_unmask_soundwire_interrupts(struct sdw_slave *peripheral); -void cs35l56_disable_sdw_interrupts(struct cs35l56_private *cs35l56); -void cs35l56_enable_sdw_interrupts(struct cs35l56_private *cs35l56); +void cs35l56_mask_soundwire_interrupts(struct cs35l56_private *cs35l56); +void cs35l56_unmask_soundwire_interrupts(struct cs35l56_private *cs35l56); =20 int cs35l56_system_suspend(struct device *dev); int cs35l56_system_suspend_late(struct device *dev); @@ -76,7 +72,6 @@ int cs35l56_system_suspend_no_irq(struct device *dev); int cs35l56_system_resume_no_irq(struct device *dev); int cs35l56_system_resume_early(struct device *dev); int cs35l56_system_resume(struct device *dev); -irqreturn_t cs35l56_irq(int irq, void *data); int cs35l56_irq_request(struct cs35l56_base *cs35l56_base, int irq); int cs35l56_common_probe(struct cs35l56_private *cs35l56, int irq); int cs35l56_init(struct cs35l56_private *cs35l56); --=20 2.47.3