From nobody Sat Feb 7 18:20:27 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 7FE23224B12; Wed, 31 Dec 2025 17:27:27 +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=1767202049; cv=fail; b=IExXM7b3HNxREg6y1/rD8ccoDSNCRleIdZxSxy7tvb5HGtr+DDQ+DVESslR3cR6UCNV3AWmTJMwALcpFEKx7/KvC5cMcvrFncJ1YM0AsOyenrHPfGuChG/S5/pn2HZfyL1jgsvmVZxYrW/xWkxkhkprSwu8evWXStXjklJfEDpg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767202049; c=relaxed/simple; bh=LAkvj+eWQUv7Zy95vxEsC1SqFJtIGTbtx2qAld+LSK4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CV3KwN0sLhJb15dPL4ncR/0evaIPRRypV32xMd7fUwRNn3hG3pC+wvWWd3ETr295p+Cio1vKvHR1hz86wdEuLgxGMSPxhxcoke8KA2StOTEYbq902PjzXHFDdRogFY5dNiNrgkc+GWmre1RvjydgAnEL59nT/MsP4PzysCKeDXY= 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=qbvnAb1F; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=vUUoRhsE; 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="qbvnAb1F"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="vUUoRhsE" 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 5BVF0iaq743550; Wed, 31 Dec 2025 11:27:25 -0600 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=iNylqFesH7TaCQluYqZdJDHjt17xVv/9T+6hZlQWJkw=; b= qbvnAb1FqYAJuiUIndjQWLp/YK1RcG4OEtKYN+ey0iZEDjkdzddr5S7BOnFN8rWp WO8v6PoE5YtDks/4zfLI+Zs+ha2tPud0qLyGCgid/RM9Rr86+84v6ERaX3U5A9yi FOAv2pIQ/7hlNt/GoE7rKT6FN0zp9a8ilLHjUqvffjPC/dcwtLZaqc0o5LgagaSE XubpIyXNqlexDqJP7sMq9w0cm6MMrbkIyexA5Op4ccNrLsysXJh7/x6RWUZXojY7 F1VUOC4M3yEa+nhx2Na3plp7oYn2Ie7l84SpbzCxdbJXdCYhYu1V6KV1Eq6bBd7y d43kOIT05gGmBtEW2+iwuQ== Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11020138.outbound.protection.outlook.com [52.101.61.138]) by mx0a-001ae601.pphosted.com (PPS) with ESMTPS id 4badr3cakp-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 11:27:24 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eKCNivVNyE9cYU2xywcv9Etuup9FXvVhGoe71iGl2qHevpX9nEF8ScnebSh0F0tO1hYf2Pm+D/hhEhWRJic+zo5TmHuK1571u4t7u5WdI2yF7BE5t5yKctNK1f5I45tDOkuBUFCHJwWpZdktXgL2F9I7MbewNxoS5ObTlb0Ee3/UYGHxmbiT46hvMBlZKG9VjOFnP824Zp4bBB7+Yen/VU/pZ6m8KdC9RI8mfPp+dMMf9Ge5MJrauSTYAOsyDzbhWJRfY0f4GZDtWa4FTTiRIj7v3qAm71aJeOZ+K57xJambr4/W8L6N6ZkHfjjevn+zvp0MU5NHwiTdweotpowQeQ== 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=iNylqFesH7TaCQluYqZdJDHjt17xVv/9T+6hZlQWJkw=; b=IYoASSkjEAefbMNP1xdZPHfWszi16g09/ny4Jp/WpHqJJpHlulmmoF7j+lKPED1KbcRkCmnHng30EhL6DNK20VOWBW6DKgwUybNEzXpxc+JYoIxOUg/wfkHvl0PI9NBHJW2HkXxRD9oOp7gUwBtgX4o5ko6llU+Igz864laa7kkLkVBEBoVqy0H5dRFLsqUUxV0yWcQx4Nf/96CRxVhNLQRg0uWam/mu3cDn6fn22FGW3lQRUSeJKYbpm7pPIPNMMnOgv47S1sa9lqC9Ciap925Ny1pzvbsJhlKEqRXZf3WEWnGSKS+22NtULCYTRrcHXDLGjrnyxG+FtQBSmq0uag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (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=iNylqFesH7TaCQluYqZdJDHjt17xVv/9T+6hZlQWJkw=; b=vUUoRhsE4ZOks7S8iEPn1FW2MxQEUYdnOxhH7MRbbLSkN7vjoJ1CHDowR43FECOtyjmDYBm53FcqzY6Gm5PeET2I7ubvuin+KNUN1M6dhpPhwaNwRbS//Da1psziXJzkLGsoPfA0JlYe5rkNGpCwgp104nxNqzyn6O72w8m/63k= Received: from SN6PR16CA0067.namprd16.prod.outlook.com (2603:10b6:805:ca::44) by MN0PR19MB6430.namprd19.prod.outlook.com (2603:10b6:208:3c1::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Wed, 31 Dec 2025 17:27:21 +0000 Received: from SA2PEPF00001506.namprd04.prod.outlook.com (2603:10b6:805:ca:cafe::1) by SN6PR16CA0067.outlook.office365.com (2603:10b6:805:ca::44) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:20 +0000 X-MS-Exchange-Authentication-Results: spf=fail (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: Fail (protection.outlook.com: domain of opensource.cirrus.com does not designate 84.19.233.75 as permitted sender) receiver=protection.outlook.com; client-ip=84.19.233.75; helo=edirelay1.ad.cirrus.com; Received: from edirelay1.ad.cirrus.com (84.19.233.75) by SA2PEPF00001506.mail.protection.outlook.com (10.167.242.38) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:19 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id B6636406543; Wed, 31 Dec 2025 17:27:18 +0000 (UTC) Received: from EDIN4L06LR3.ad.cirrus.com (EDIN4L06LR3.ad.cirrus.com [198.61.69.19]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id 61F3E820249; Wed, 31 Dec 2025 17:27:18 +0000 (UTC) From: Richard Fitzgerald To: broonie@kernel.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH v2 1/8] firmware: cs_dsp: Handle long-offset data blocks Date: Wed, 31 Dec 2025 17:27:04 +0000 Message-ID: <20251231172711.450024-2-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231172711.450024-1-rf@opensource.cirrus.com> References: <20251231172711.450024-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: SA2PEPF00001506:EE_|MN0PR19MB6430:EE_ X-MS-Office365-Filtering-Correlation-Id: efa0365d-83ec-457b-fc5f-08de4891da24 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700013|82310400026|61400799027; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?VsS0IHM8JGjNOLjFZLm9Ecv+g76RubYjlChxrj0Li2YJkGOLgKem03l+VU71?= =?us-ascii?Q?mtBwtLS1VxJs1vgcm93xRe9E6LcYNUPnh2hOgHOXHelxJ1FppgJODbyW/eAb?= =?us-ascii?Q?2VWaLIlNo6iPCKtpi/nJ6/F6Nc+4tj9DfF3WbOR2qA1MvzkDqUzkRPIvvTmC?= =?us-ascii?Q?HC3EIAlT6dtX53JuJVSY1AfLmvVvFbPfY3Srg3iCT8eVwyDaJc5/YlUSlSFG?= =?us-ascii?Q?vy7IDntvaL/esbUpgyF1b+x9dfDaeX4zjxmqBwGictw4HS4ZOxubJEIZYn6s?= =?us-ascii?Q?x8xKfPB/zQEuDaaJVHgEfitxc8iHiCGtpCnJ6PDh90DiZ0h29sU9Yl4aIUFq?= =?us-ascii?Q?KWpTkeJNCFcPMnPwHVbBqutZtt1oPRnvqmZDMNq/bdzz7yGQQe2lCWPxg4we?= =?us-ascii?Q?B7Ydxs1leiEqhubP61UAXHxLjZeR1zuhK0vkMF4ACtsCAIlf17OnOjU2xpF7?= =?us-ascii?Q?CGq3duSEt8Rtq8q7YhrtWsZUYpWnwd8OKXpWGfoS8IK7kwT+HWIhYe2noHJN?= =?us-ascii?Q?hGP8NHF8qtp33TDWFIE6QSrAv62qo2d7tPbV9ZCKrPQsZvZLdQr+kwiQOpmx?= =?us-ascii?Q?NaRVy3OEwnXuHwOuqIMnwnt4pm0+IvCmimfoDuF8VOJTnzRrBAo73GyHmuCU?= =?us-ascii?Q?pjR8rcAo5tGOLPK5HFPpGHxAL6UWTo/su3spLTBFPu5moTc8XKWLUFO7Txm8?= =?us-ascii?Q?p0U7feOySREvhLex7sUrEqfhA5D0DNrpZ8fLiFpvUr9F+L6V/s4D5abUIp3H?= =?us-ascii?Q?mr61CdvNX7Jp5/voGtkPh9CNAiI2uVAq8n4xTw7RvE50blEA+uHReAwBotIg?= =?us-ascii?Q?/PrddXnOPd5Xr1wYLOygA/a0d6qIECbYpOrhFF6gDFZiznXH0jHdmNA2w1Vr?= =?us-ascii?Q?IjPRr/EXO8qUPcXEuoN2+Tg9fETy4OK7+zF3eGwLkn0QhZkbCzok82QJ/sTo?= =?us-ascii?Q?jt4EzbNMa4OqdPbdVR3chNADBfgtV1Vq9dIsj8zFc9TVtCnx9a0PgyEJj19q?= =?us-ascii?Q?WB5BaPkZvKJ64XiQ60jfdD/KOsvSubPSZM0iXqCOdmW9l1u2pdWw5gN39+98?= =?us-ascii?Q?Sr0YST9s4d7ZTXf3v8P/aYWKKIqyqagieKrdAfcgT88M7oWZ/JRarXvj4cuK?= =?us-ascii?Q?xBSG2QkBAXlex75fnbKT2nSmFaHS/98VTZI3ES5HSDxh/jIP7kSGUyF2msrO?= =?us-ascii?Q?Bj4KogiD6x658zoo3DjvDlrNnwbL8oNO8mshnfAhMDieofVRCEimCtmRm7lh?= =?us-ascii?Q?gJMwp3N926J+4nyp7LFQzd9BP9mBPU040Q6hb6wrJvw/2Vm/gnZFMRx5haCu?= =?us-ascii?Q?w81nY+f43Z/ZYI+/U5xW5CFtr0TokKCb06u60tq20Jt9HeHbrilRlZMy8U5C?= =?us-ascii?Q?PbxGEMKFww6Vl2EoS8KExEIQfYMXVZltiUDuDIr/u7iKgN2BPN2A4J68B3c8?= =?us-ascii?Q?pKpaGzIinDTR4wHL4eMIHXlSqxVnifRHq855UFbyzT//yEi3Bm8snwM5WnpG?= =?us-ascii?Q?W/wwQgnOSBj9wyAME+Xil5ZCajtK8AC3MOzsnxt4RUnYGCNs0JlkdIPw4j6O?= =?us-ascii?Q?5NBJJLsMCSFRC6D6meA=3D?= 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)(36860700013)(82310400026)(61400799027);DIR:OUT;SFP:1102; X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2025 17:27:19.7760 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: efa0365d-83ec-457b-fc5f-08de4891da24 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-SA2PEPF00001506.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR19MB6430 X-Proofpoint-GUID: 0jFvsrHj_3sBNXSK0MUYNsu2JUev_Hmj X-Authority-Analysis: v=2.4 cv=Z8Hh3XRA c=1 sm=1 tr=0 ts=69555cfc cx=c_pps a=GFF/Av3140jeC91+tyO9Ig==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=w1d2syhTAAAA:8 a=zNSSUrpu5HfUGby_qDoA:9 X-Proofpoint-ORIG-GUID: 0jFvsrHj_3sBNXSK0MUYNsu2JUev_Hmj X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDE1MyBTYWx0ZWRfX7kA3sOA4b/eI /7e1pNSQeUxMu+uRIoJE+q5SFlZj4Y1Uzb3Dn3jcGnxRxMBQq1N/9M3Gpc/mDYDindvERNKyTpi wHw3MHO80PgNLddyURIjfV2U5nzokVSiJ/DCTtfsAXgVMEwR+SWKC4eNrVEvgB+aH73FjK+gubN 5aEmlc6JLScumWHCZcitvGFCdyBXu+r1jCYEC4Xlgzu6tfkgeahrwwNKfUKE/LnjM+PYzY8MB3j 0OGvaLberQAWuLz4HioT87/64r3Dfe+o2heIPyx7TX1VAy4jCNY08k2e18zz04cIkRTkxD6b+X/ 7s8HZqjLBhZ8xHMHhTrJ2kj9vIX6HB5KGis+z5b2vgQ4vkBj+8vnnH9vyI4JscFBJnh4i1R6fNj lwlBemQcI859nZ8rP9VqWjuOIqKUcxfkqCNDqxtZqEmQPkyHo6XcjrIyqUlng9650RtKzdSMt3o yp1yg2Cmx3LqXKb/c4Q== X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" Handle a new type of data block that has a 32-bit offset. These are identical to the normal blocks except that the offset is now in the 32-bit field that was previously 'sr'. A new file version of 3 indicates that it is mandatory to process the long-offset blocks, so that older code without that support will reject the file. The original 'sr' field was never used by the driver so it has been renamed offset32. Signed-off-by: Richard Fitzgerald --- No changes since V1. drivers/firmware/cirrus/cs_dsp.c | 19 +++++++++++++++---- include/linux/firmware/cirrus/wmfw.h | 7 ++++++- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/drivers/firmware/cirrus/cs_dsp.c b/drivers/firmware/cirrus/cs_= dsp.c index d35d0f5ccaf7..aa6e740f9cd7 100644 --- a/drivers/firmware/cirrus/cs_dsp.c +++ b/drivers/firmware/cirrus/cs_dsp.c @@ -2138,7 +2138,8 @@ static int cs_dsp_load_coeff(struct cs_dsp *dsp, cons= t struct firmware *firmware const struct cs_dsp_region *mem; struct cs_dsp_alg_region *alg_region; const char *region_name; - int ret, pos, blocks, type, offset, reg, version; + int ret, pos, blocks, type, version; + unsigned int offset, reg; u8 *buf =3D NULL; size_t buf_len =3D 0; size_t region_len; @@ -2163,6 +2164,7 @@ static int cs_dsp_load_coeff(struct cs_dsp *dsp, cons= t struct firmware *firmware switch (be32_to_cpu(hdr->rev) & 0xff) { case 1: case 2: + case 3: break; default: cs_dsp_err(dsp, "%s: Unsupported coefficient file format %d\n", @@ -2171,7 +2173,8 @@ static int cs_dsp_load_coeff(struct cs_dsp *dsp, cons= t struct firmware *firmware goto out_fw; } =20 - cs_dsp_info(dsp, "%s: v%d.%d.%d\n", file, + cs_dsp_info(dsp, "%s (v%d): v%d.%d.%d\n", file, + be32_to_cpu(hdr->rev) & 0xff, (le32_to_cpu(hdr->ver) >> 16) & 0xff, (le32_to_cpu(hdr->ver) >> 8) & 0xff, le32_to_cpu(hdr->ver) & 0xff); @@ -2202,8 +2205,9 @@ static int cs_dsp_load_coeff(struct cs_dsp *dsp, cons= t struct firmware *firmware (le32_to_cpu(blk->ver) >> 16) & 0xff, (le32_to_cpu(blk->ver) >> 8) & 0xff, le32_to_cpu(blk->ver) & 0xff); - cs_dsp_dbg(dsp, "%s.%d: %d bytes at 0x%x in %x\n", - file, blocks, le32_to_cpu(blk->len), offset, type); + cs_dsp_dbg(dsp, "%s.%d: %d bytes off:%#x off32:%#x in %#x\n", + file, blocks, le32_to_cpu(blk->len), offset, + le32_to_cpu(blk->offset32), type); =20 reg =3D 0; region_name =3D "Unknown"; @@ -2236,6 +2240,13 @@ static int cs_dsp_load_coeff(struct cs_dsp *dsp, con= st struct firmware *firmware } break; =20 + case WMFW_ADSP2_XM_LONG: + case WMFW_ADSP2_YM_LONG: + case WMFW_HALO_XM_PACKED_LONG: + case WMFW_HALO_YM_PACKED_LONG: + offset =3D le32_to_cpu(blk->offset32); + type &=3D 0xff; /* strip extended block type flags */ + fallthrough; case WMFW_ADSP1_DM: case WMFW_ADSP1_ZM: case WMFW_ADSP2_XM: diff --git a/include/linux/firmware/cirrus/wmfw.h b/include/linux/firmware/= cirrus/wmfw.h index 74e5a4f6c13a..eae24dde9e41 100644 --- a/include/linux/firmware/cirrus/wmfw.h +++ b/include/linux/firmware/cirrus/wmfw.h @@ -172,7 +172,7 @@ struct wmfw_coeff_item { __le16 type; __le32 id; __le32 ver; - __le32 sr; + __le32 offset32; __le32 len; u8 data[]; } __packed; @@ -200,4 +200,9 @@ struct wmfw_coeff_item { #define WMFW_HALO_XM_PACKED 0x11 #define WMFW_HALO_YM_PACKED 0x12 =20 +#define WMFW_ADSP2_XM_LONG 0xf405 +#define WMFW_ADSP2_YM_LONG 0xf406 +#define WMFW_HALO_XM_PACKED_LONG 0xf411 +#define WMFW_HALO_YM_PACKED_LONG 0xf412 + #endif --=20 2.43.0 From nobody Sat Feb 7 18:20:27 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 E3C532BD012; Wed, 31 Dec 2025 17:27:28 +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=1767202050; cv=fail; b=FOhm+S6Uo8ATeVSDr/8/Qk3sw00n4HyBfQUSyLrDPEUex57LzI/Y/AKVLvhqM4be6AIuSpOUZ7RQQiuWFhVFiC0oqawUQn73gLITbv2nDGpD1QM93Yr/bqoovnswkyo4Bdl2WUix7TR1mAJKRpqtoUwWY0T3ZKkNeeEZ32AleRQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767202050; c=relaxed/simple; bh=G9vJtFydobvDbJxp1AP4NFrKYeVPZS4DwiZ8F99A+Rg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fPnoDVOEGcevsBWbm7Dy7pKi66MTwLr3sp5BYevlqrkjQwBTbT8OARxaT3KC0dLq9HlrvjZ9Cs9drOetbw1KzLfjCiH6brvzbsXAN2+S0a+J3pG5ck6naY2R0Ng/RfI5QqxYsgZRcD6OByyRm7t2ec4w5bw5J1SbNo7021v1EM8= 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=hP50Tbpr; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=yH2zW40a; 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="hP50Tbpr"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="yH2zW40a" 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 5BVGglin115042; Wed, 31 Dec 2025 11:27:26 -0600 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=yVtwo/EPXRo6c4VMLUIRAcdcpqn4SUPRLkgcMNzAUK8=; b= hP50TbprniH6OTaDELAy+t2CYr3LCFwHJNggQNcUMyS4xQ1ogQ14xliSOSb+FQpf 6O3lqW1XJTm4gYEdNGAXi/Io1FehQ9wxK+rLKZwyU8+u7NFoJwo0j1tRNWD2Gth5 4a/woPPVPnHXaHT+0hU8dfHKHgX3gccTz+3fXnKtH/UP9ULmIFf7DPb1BKcRn358 2VOXOo+JYe3OVBeDEhoS6PzJT2zKpXFM3xsR3FRWwHuBcJT3RuRQHN7OIHbQczyv 3LB4NVKTJNBenkyvQBaGHHCd4iKEg4qFDAmzUY4dPGI6fWVN/F7ANsnlHsdtPsuu SobTANW8lCP9PpbC6pruaA== Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11023091.outbound.protection.outlook.com [40.93.201.91]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4bacrmvcsn-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 11:27:25 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=r6xXO5M9qmA1j0/bN8xNxHc+804l+bO2vGIhaOStBLKF3tD70l1vINCkMMvoxrf5rZ+iJRtUAuFAivAXJBKXdoJYscEQjON40O2DvABWo6T0lt17a4IHh54cPQZ1yFLS4KD3qqzxxQ6tQnc0Ofki56vqzE10F/KeQ7sdLF4tf/YTr9tlvBMrFDmQg8R5Kv9nkpwOJbokp8PK/DfTjxeU0i4W4KyibCkSIddIZfALYzRK6OPKm0avDekBEWBuQM4n02NcMdER1Xwv7LD2PtIjyDmPo5gUqlns+jr7i/83QZW7REVS+nWTffsLpL7PHEBHu4/NbJzguBf6024aKfNWjA== 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=yVtwo/EPXRo6c4VMLUIRAcdcpqn4SUPRLkgcMNzAUK8=; b=sfGgxS38QY6pvw0uhW+6byhU+tLxqxQaE9q5YsUiN0V/UcAjjmoYzCiAE0Ul2DfHCICojjVNkGnYjNe00h47BGgrUuuLS4ngd6oH/Lt3EXYLRnQXvpe+AM6E0oZOHI7K7cpUPtsVuNQAsXQ1nQ5cdQm2N/gW6N1KQE/SpH+FU8hrBQD59wd3t8hcABxHeYXwkmobyeycZ7qjiUmcZQjamhvrvDxLIB1txWU8djxpGwNMGzEtQ5HeT5t/p8uHSE3LB3HuICuV+mcYdDiNhWvATndqKFNXbbjE+yywhPEJXKtQcFAZxPc1W+GokX0M9TdkfJPjAHq79HmQDl0KeOUrfQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (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=yVtwo/EPXRo6c4VMLUIRAcdcpqn4SUPRLkgcMNzAUK8=; b=yH2zW40awpgXNg9bNVf0WYYfHq86dBrWmfwmEIvE/Rn7GCQDq5u++PfhsgmW8jxqRyoGW6kvfWxg9QfGGMeTBSfJZvaW7mnSBFYC9bwosds7GBdek+6GhyYRQ3deJbGsLj0lgU1CZM65r/ok9RdTjcsRfzho5KcPzdcD9VDu3ds= Received: from SN7PR04CA0203.namprd04.prod.outlook.com (2603:10b6:806:126::28) by IA1PR19MB7253.namprd19.prod.outlook.com (2603:10b6:208:42b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.14; Wed, 31 Dec 2025 17:27:21 +0000 Received: from SA2PEPF00001504.namprd04.prod.outlook.com (2603:10b6:806:126:cafe::27) by SN7PR04CA0203.outlook.office365.com (2603:10b6:806:126::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:19 +0000 X-MS-Exchange-Authentication-Results: spf=fail (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: Fail (protection.outlook.com: domain of opensource.cirrus.com does not designate 84.19.233.75 as permitted sender) receiver=protection.outlook.com; client-ip=84.19.233.75; helo=edirelay1.ad.cirrus.com; Received: from edirelay1.ad.cirrus.com (84.19.233.75) by SA2PEPF00001504.mail.protection.outlook.com (10.167.242.36) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:20 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 2DAC6406544; Wed, 31 Dec 2025 17:27:19 +0000 (UTC) Received: from EDIN4L06LR3.ad.cirrus.com (EDIN4L06LR3.ad.cirrus.com [198.61.69.19]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id CC5C5820249; Wed, 31 Dec 2025 17:27:18 +0000 (UTC) From: Richard Fitzgerald To: broonie@kernel.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH v2 2/8] firmware: cs_dsp: test_bin: Run test cases with v3 file format Date: Wed, 31 Dec 2025 17:27:05 +0000 Message-ID: <20251231172711.450024-3-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231172711.450024-1-rf@opensource.cirrus.com> References: <20251231172711.450024-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: SA2PEPF00001504:EE_|IA1PR19MB7253:EE_ X-MS-Office365-Filtering-Correlation-Id: b6ba2434-a8d3-4025-9ccf-08de4891da94 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700013|82310400026|61400799027; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?TNhtrs9kXXWWnj8v7a+lXB5dtVgTtXThZ/ATWzCTPwAI0579/vxN+K1zTcHc?= =?us-ascii?Q?lc8pjtzKsYg9pmy/iou8Bm4mzVB9TmsDJZON0UuUeknpxemorTpCsZ3M3jYg?= =?us-ascii?Q?p5KSP+ViAHYZMFeLeMboGkcP2+QgE5lEjLJM0kEPh5oYp1YPN3I4Y7f/nccc?= =?us-ascii?Q?I9NJ6a1VS3M71ep/UEOlkgT0u6ceVm+OcM4yfYqAie8BUq9D6ADwbdFfJNZy?= =?us-ascii?Q?WskTHs82t+JCpn6y0ulPGtNoH+7VR4pFcXqNK/M95tRjwo5vjCV4/Cvi4zRa?= =?us-ascii?Q?9r8ty2PYb1UpavG9luQEj+ScHXR28Wc5gPVuXSjmzfXIzAOo9VdOFYS2n8yu?= =?us-ascii?Q?xPc6ey/i0wO6fmEccPCaGWFlw4g2Hu+DL19bA2IPdB/cUGd8TkMyCtBxtttM?= =?us-ascii?Q?NJZ5HSud2ZnmvTweadb9pCztvUsDujrtTujf2mDQyv2U/PLpWW/C9bUDKWmm?= =?us-ascii?Q?wfoUGrXvzEcX3781ZNPw+ihEN90MtmTenLFFcAD86pU97rPcpQHrNh9lOFKm?= =?us-ascii?Q?Xv8TvopkgLcl6CCJqdmddsUxbAeTMDG5YCYiYqKD2+XhB9gGzBzhyXzzDysI?= =?us-ascii?Q?QQ60hKY+pxyR80zCgQwwIIpMURbs50vNGioAofd4VKHZfljxsFpTBbLT3A7v?= =?us-ascii?Q?f59pqnY52E2yOmWfRfdyyi2KEg3PFcU5JoPjlhAox1nzPqOBxrM+OpDHNj7b?= =?us-ascii?Q?DLufu0r2g9SBBw+BI50PCtaTtQMj0WSCEnfm6AqfPxlMlQ573jaqDQCw/Sg3?= =?us-ascii?Q?k6yLCLsKMY5SEyf6j9muVQoCXTn6Uzs77b5S7Jx7qGGt3xJJ7RS+Cvoy30qM?= =?us-ascii?Q?GRDE6HHMQZufX8AUulcOit5QonkKvpD2112dIaWuZmJq7Towzf8Pp/8CvlH4?= =?us-ascii?Q?d8dZvhFZWsPl4lbY4Q23+BTJ1lvSRDk6RAtynvTesdl9K3KUVF+Md8W9Y6st?= =?us-ascii?Q?1JXuZi4xazuvaEf3an26Cf6UZ1FuDrI8SjxR0ki8ke7EysIm5j156xiDlY7y?= =?us-ascii?Q?vFKlt5Qfyr+R+7Rtomr6isPcxigxI41LykAStri6uWL9VqBXUMRrm7tUlblc?= =?us-ascii?Q?2IN6rw5mB89iq0xpH2K9W8HE7uvvEWa4R8NFya9GNuUbHoubPwD2qe1cg7KE?= =?us-ascii?Q?5JLcq+AKYV3d+t1f6t32fzLRuMVB/EodBo9cnGIsaZC1eR3NqKEDkcqBb9Cq?= =?us-ascii?Q?19obVaR1nVcHLtgrRPSfKDnbGPCROL73XocYTMh/+QtK5+gXXcyYxzCfgLMl?= =?us-ascii?Q?XNtImUnqbtsA0Yoi9/cu0t8/ZyADPUIpFyU7CMgXr5m68LW0IqXU2j1T2xBr?= =?us-ascii?Q?TPw/pPkLBED2JwxQ+jP/QaFoV8EEBv0khAhuSyiXczU1R1lpeQkJoKdGH92/?= =?us-ascii?Q?0xdftFUE0htRSDTCB6C8ZBNDV87LY7x1Ja9Otaj2ATq58RZGa3u2oZ4CxlCU?= =?us-ascii?Q?Lkwj50KM3XKUcl/K7pejYYvCHZGKaae+tzzZW/qznGG8s6Bh+PCm0bfULoaK?= =?us-ascii?Q?sZeRNVFW20BjeatPDBqCQQITrZx0TpnlNCayjQQZhP8aA/fVOtdoVoKcrunq?= =?us-ascii?Q?wk3fBKypQqgCf9pLX+A=3D?= 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)(36860700013)(82310400026)(61400799027);DIR:OUT;SFP:1102; X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2025 17:27:20.5051 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b6ba2434-a8d3-4025-9ccf-08de4891da94 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-SA2PEPF00001504.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR19MB7253 X-Proofpoint-GUID: jbqB8UNB-SoVBy9im5qNPOENWXEtPSsR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDE1MyBTYWx0ZWRfX3+wAZ1sLjIQD jORtB6ItSQuB4fGcqn9lzPwLM6z8FyvDlmoyLAgRJRyTIdn5sNUAoXnBo9RxM2n/yYE9q37ihkz OEyh2GuUkiIP8FNR2WTcb35PvgHimf0LLDMjIpwFruBOT1qeVN+JaHAzRVlj3/oIMBu8QJJV/FJ cbLPYCHezJKY0Xmr4ppv8sSPTjL23FW9xJaRtWhMS6hNlrKEtv9LwXecv+N2ImU+OebaiOAbI3e ulrOS+6EFsQKlh2UsjXCzcb7TI5LxOAG+1iJoc6bFG1LYddu6Xk+IHDnKFRNyIvI5138lGg8uDA zdmUqy+pocZz4sZFK2y/IGgl1dE5zyG1NvhsRUEhNDv/1/9Y6zNrmniJu3jNf/2GKv6pGxEAvg1 2qioM7p3pYVS35aAMAdAUPuQwSeqoqRkqhw+/PdId3FNJpN46cbYMEH2ryB0wHKpAhcLeA72GbL aSrdSykfvbSzbDAsDnQ== X-Authority-Analysis: v=2.4 cv=bJgb4f+Z c=1 sm=1 tr=0 ts=69555cfd cx=c_pps a=ASZrmc5qRKQ8mersbOLYOw==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=w1d2syhTAAAA:8 a=513esOqV-sMWdUY0qnAA:9 a=+jEqtf1s3R9VXZ0wqowq2kgwd+I=:19 X-Proofpoint-ORIG-GUID: jbqB8UNB-SoVBy9im5qNPOENWXEtPSsR X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" The new v3 file format has all the same functionality as the earlier formats, so run all the existing test cases with a file type of 3. This is only done for Halo Core because v3 files are not used with the older ADSP cores. Signed-off-by: Richard Fitzgerald --- No changes since V1. .../firmware/cirrus/test/cs_dsp_test_bin.c | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/drivers/firmware/cirrus/test/cs_dsp_test_bin.c b/drivers/firmw= are/cirrus/test/cs_dsp_test_bin.c index 163b7faecff4..4532a7e9833a 100644 --- a/drivers/firmware/cirrus/test/cs_dsp_test_bin.c +++ b/drivers/firmware/cirrus/test/cs_dsp_test_bin.c @@ -2149,7 +2149,8 @@ static void bin_patch_name_and_info(struct kunit *tes= t) KUNIT_EXPECT_EQ(test, reg_val, payload_data); } =20 -static int cs_dsp_bin_test_common_init(struct kunit *test, struct cs_dsp *= dsp) +static int cs_dsp_bin_test_common_init(struct kunit *test, struct cs_dsp *= dsp, + int wmdr_ver) { struct cs_dsp_test *priv; struct cs_dsp_mock_xm_header *xm_hdr; @@ -2197,7 +2198,7 @@ static int cs_dsp_bin_test_common_init(struct kunit *= test, struct cs_dsp *dsp) KUNIT_ASSERT_EQ(test, ret, 0); =20 priv->local->bin_builder =3D - cs_dsp_mock_bin_init(priv, 1, + cs_dsp_mock_bin_init(priv, wmdr_ver, cs_dsp_mock_xm_header_get_fw_version(xm_hdr)); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->local->bin_builder); =20 @@ -2227,7 +2228,7 @@ static int cs_dsp_bin_test_common_init(struct kunit *= test, struct cs_dsp *dsp) return kunit_add_action_or_reset(priv->test, _cs_dsp_remove_wrapper, dsp); } =20 -static int cs_dsp_bin_test_halo_init(struct kunit *test) +static int cs_dsp_bin_test_halo_init_common(struct kunit *test, int wmdr_v= er) { struct cs_dsp *dsp; =20 @@ -2243,7 +2244,17 @@ static int cs_dsp_bin_test_halo_init(struct kunit *t= est) dsp->base =3D cs_dsp_mock_halo_core_base; dsp->base_sysinfo =3D cs_dsp_mock_halo_sysinfo_base; =20 - return cs_dsp_bin_test_common_init(test, dsp); + return cs_dsp_bin_test_common_init(test, dsp, wmdr_ver); +} + +static int cs_dsp_bin_test_halo_init(struct kunit *test) +{ + return cs_dsp_bin_test_halo_init_common(test, 1); +} + +static int cs_dsp_bin_test_halo_wmdr3_init(struct kunit *test) +{ + return cs_dsp_bin_test_halo_init_common(test, 3); } =20 static int cs_dsp_bin_test_adsp2_32bit_init(struct kunit *test) @@ -2262,7 +2273,7 @@ static int cs_dsp_bin_test_adsp2_32bit_init(struct ku= nit *test) dsp->num_mems =3D cs_dsp_mock_count_regions(cs_dsp_mock_adsp2_32bit_dsp1_= region_sizes); dsp->base =3D cs_dsp_mock_adsp2_32bit_sysbase; =20 - return cs_dsp_bin_test_common_init(test, dsp); + return cs_dsp_bin_test_common_init(test, dsp, 1); } =20 static int cs_dsp_bin_test_adsp2_16bit_init(struct kunit *test) @@ -2281,7 +2292,7 @@ static int cs_dsp_bin_test_adsp2_16bit_init(struct ku= nit *test) dsp->num_mems =3D cs_dsp_mock_count_regions(cs_dsp_mock_adsp2_16bit_dsp1_= region_sizes); dsp->base =3D cs_dsp_mock_adsp2_16bit_sysbase; =20 - return cs_dsp_bin_test_common_init(test, dsp); + return cs_dsp_bin_test_common_init(test, dsp, 1); } =20 /* Parameterize on choice of XM or YM with a range of word offsets */ @@ -2539,6 +2550,12 @@ static struct kunit_suite cs_dsp_bin_test_halo =3D { .test_cases =3D cs_dsp_bin_test_cases_halo, }; =20 +static struct kunit_suite cs_dsp_bin_test_halo_wmdr3 =3D { + .name =3D "cs_dsp_bin_halo_wmdr_v3", + .init =3D cs_dsp_bin_test_halo_wmdr3_init, + .test_cases =3D cs_dsp_bin_test_cases_halo, +}; + static struct kunit_suite cs_dsp_bin_test_adsp2_32bit =3D { .name =3D "cs_dsp_bin_adsp2_32bit", .init =3D cs_dsp_bin_test_adsp2_32bit_init, @@ -2552,5 +2569,6 @@ static struct kunit_suite cs_dsp_bin_test_adsp2_16bit= =3D { }; =20 kunit_test_suites(&cs_dsp_bin_test_halo, + &cs_dsp_bin_test_halo_wmdr3, &cs_dsp_bin_test_adsp2_32bit, &cs_dsp_bin_test_adsp2_16bit); --=20 2.43.0 From nobody Sat Feb 7 18:20:27 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 03D0629E0F7; Wed, 31 Dec 2025 17:27:30 +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=1767202054; cv=fail; b=FLZ3XpiCSknE/xdDjUZCWzutyiCLnP6To+I+eDwevt6s/sU5Egyg+5477aYQLapkiVqHwVToRltyX53Aia4Iz89ajhTVVpWMACabwGEHOtLnPg2wTAwSW9cXhgnnHlv4goMci6luqzwmy6Fb/XLv0ytqVR60ueJKA+QdHBUa8M8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767202054; c=relaxed/simple; bh=t/+Og23eRh3txD0FL+oGCfUMVzFHx8rW9IggHe5/d1w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=uzexDFGSGmCb+2jTQ01DCgFUUdlqH5u8vkkhuy9XjSrHG9vHLQXXkggZSjzNhaKeT9sq1DxpKsgr5nlaST9inVyOy3r44uQcTlvO1BIJELaLyHLTMBGaIugDyMCSezfITQ9V1pC6KKHzI29KvKpdFwWXoo5WqAOo80/0U7gXCwU= 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=loP43S6T; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=yNxPZYlZ; 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="loP43S6T"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="yNxPZYlZ" 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 5BVHChvP948448; Wed, 31 Dec 2025 11:27:27 -0600 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=bHbJRu5siMnhVfsDNENVU4fxFuT2av8Ff8qZedsyv8A=; b= loP43S6Twj6JxSifwt8I0vQoIyeYRm8alRnJ/p25Pl17DdXYCXt2Hfxq/A/Z8/iy 7pn2MtvO6T29fk0qeSi4ICxJcpEH6pWoqtEWaU+NbNkYZeyStZ/khoMnz8laLJD6 NZO3iON22wBBrPRmJzz/GNsNq6Sa/QBcNmddi9xt/XK5Lg68HN/IwmsPuGZpSlIg 9ProLt+Hsu4Q5N7rVOjDt0RjkM1lSBRnXm7jC9K9u9zs3T53Iybke2jp5kqg5YrM p2yQ2OSGIg06LU6Sgr/x6PeHD+X/DS6kfW1nCT+XceDsisaMOjr1iTA4+ecNF0qj ThMfI0VcUZnbxMmNK1fDRA== Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11023092.outbound.protection.outlook.com [40.93.201.92]) by mx0a-001ae601.pphosted.com (PPS) with ESMTPS id 4badr3caku-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 11:27:26 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NUfMalpxVlkEtegrqCLL/I2rNn63GTZSVrNXRRGU3B69j9Ick2ZMD6WcUNBFbtjzavD+tBLRDYtlM0XdmpozY3g9X9DurySUzMIGUHC3k2o+UEOmubxfDeSzyci7c9rGx++j91bzT7d9N7+qNH42xLRqaMvZ247kepAJyXlyt6gXnx89QO4L0+/E3yMg9uhLfSwcWKAJ1R1zwVGpp1QbwQwHwSN/4MQFmN3zCE8E8AZfHIcMPic9Bj8/UnEFQMAniKE6wsqFoqMKKMCuhkcuBvPC0W2OWUxo3L6V3XmZbAuYg6aS2h5M+j9AzDUhmyWdhesuTmjYUoUdnricx7szTQ== 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=bHbJRu5siMnhVfsDNENVU4fxFuT2av8Ff8qZedsyv8A=; b=OVzcN/yFHD106dQWfOGn+6HUuMXvzh4G281YOJynXMFtV3HQXBPKCDNOTy5tRnAntorCukuWJii2bATPnaKS+oJtERnHDq7h90HFSBFu8E++giWTPi4CVhm7fdQ7T74dN861RoYDcV8htRdgGFgnydNmXqjIdPj3XGOlhu6maVQLzyNI8AIJsRvltQuLmA/8aOVH5uWTRSzo9bGHNu9TfgHIamX0UNvyCjZia72J+baR0tVtj2+sKC0rbsjtU8iU3WcdMlxrmDt4W715dSvEgmZmU2BB107kBtOAJAjzGmDQlIhi69oa8vc9WsNzarX6KJkn8kBhsuQzPLIjXNAJVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (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=bHbJRu5siMnhVfsDNENVU4fxFuT2av8Ff8qZedsyv8A=; b=yNxPZYlZkDC2MXI7H0kFDVB0qPkEQbitn7dGOAyCxUHg0dio2O/3croPdnCaGXWCXMTZy8BAg8vbhRkNUKcBeDNu/9vl/MCfZIB2tgp5P8/koqmsQYBZOz9BqaMHYCgLAIzD2iT1eMGuNhaYRknohjGMz3WTmIbo9ldYO4KgodM= Received: from SN7PR04CA0182.namprd04.prod.outlook.com (2603:10b6:806:126::7) by DM6PR19MB3979.namprd19.prod.outlook.com (2603:10b6:5:242::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Wed, 31 Dec 2025 17:27:21 +0000 Received: from SA2PEPF00001504.namprd04.prod.outlook.com (2603:10b6:806:126:cafe::87) by SN7PR04CA0182.outlook.office365.com (2603:10b6:806:126::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:17 +0000 X-MS-Exchange-Authentication-Results: spf=fail (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: Fail (protection.outlook.com: domain of opensource.cirrus.com does not designate 84.19.233.75 as permitted sender) receiver=protection.outlook.com; client-ip=84.19.233.75; helo=edirelay1.ad.cirrus.com; Received: from edirelay1.ad.cirrus.com (84.19.233.75) by SA2PEPF00001504.mail.protection.outlook.com (10.167.242.36) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:21 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 44FD840654A; Wed, 31 Dec 2025 17:27:20 +0000 (UTC) Received: from EDIN4L06LR3.ad.cirrus.com (EDIN4L06LR3.ad.cirrus.com [198.61.69.19]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id 3506E820249; Wed, 31 Dec 2025 17:27:19 +0000 (UTC) From: Richard Fitzgerald To: broonie@kernel.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH v2 3/8] firmware: cs_dsp: test_bin: Make patch function a test parameter Date: Wed, 31 Dec 2025 17:27:06 +0000 Message-ID: <20251231172711.450024-4-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231172711.450024-1-rf@opensource.cirrus.com> References: <20251231172711.450024-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: SA2PEPF00001504:EE_|DM6PR19MB3979:EE_ X-MS-Office365-Filtering-Correlation-Id: d60cebbf-25d5-46fc-1306-08de4891db15 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700013|82310400026|61400799027; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?OjkVd1K/OyVfPiE3v9R06uGTWI6EmrXVRTKsZsF2Ha5AYisJgEz0fZls9dWT?= =?us-ascii?Q?oEuVoRe4P71wf7NF8rxW3df8zExZJMJkX99rKxn5q927sJMsatV4+lwp45ym?= =?us-ascii?Q?JtTtLx+A6wQwkQJ3gms8+HYwTcg92Emx2LRsydxeQGLVqVAg1RQQBwxxMOhd?= =?us-ascii?Q?R09cYPqZMXnOz957FGvo77YtnlHGmApVVI0vJuE/6I+dmY+6qt/gLUWCRxAe?= =?us-ascii?Q?ohd2XwaAHo/z6Jf0vplAJbhzp/KBKRaUg4Q6+yFUXvdZfpUvN4P1mqKojbO1?= =?us-ascii?Q?yAeK5yzyctYoWkcYcPxfP8c0z7q158Hmc3FE52BCQSiq9wDKA7Se1LUoVtW3?= =?us-ascii?Q?RYunvUh2wPhQvqFPJEClM7LDhLbvTzixwqD1xQ/GmZqZiq8EIl5le3RficwO?= =?us-ascii?Q?PURJpNcT2vw52QcIOCPloIF4W1IP1h/hX5sJngLFWDL4SKSyW6YrLRkckdo2?= =?us-ascii?Q?lHssPi5OxNUn/P7Xzid8XD1IcQtdkSpgSF3Hp8UtG+IE47DzK6ivgOmokW5h?= =?us-ascii?Q?cdt12RtfzNhcnAbmns7DuOUIQJyZKhDh+oEig2DwIB7Ene9IszaQoDl+ox4E?= =?us-ascii?Q?NHazxlSsqqdVss1JltQ7fYYlt7h5UhNF67mB21P/HlJKwNF2/v+QwobZEOZl?= =?us-ascii?Q?Yf+WV4mS7k3IzEcqq4iT1scCg6LLQXnQW7YezIGp51L8iURoc8e+1PrYWKKg?= =?us-ascii?Q?oq2vg8hHmTmWuSt40TVegDy8XQ90rUPztmxCyzMj+paMx7mnVey6IyVLTiPe?= =?us-ascii?Q?hzw9zYYZqEAKMggQV/RV6rONpLdzfmsH7DM200458vSQNLJmDUtoJ3TaYgAS?= =?us-ascii?Q?YUXzSFNdqNRUUKEyZSX/f03f/DDH9MUcQS4mRGzuD86ua3J9lL5RLN1n2rhj?= =?us-ascii?Q?6FVYWjCfnC9HgdmLUSGOTE75+rQzfAdqv0bW3xaUofBuffvfArFybnLazczG?= =?us-ascii?Q?PYcGbutnqV998z5JA8wlfMA8Yi6s1T78sw7Rxj8zjjY7oOqWz/thhJQ9WAgS?= =?us-ascii?Q?yxi/kK+lS0S7gGK9cSZ8StI+QRNahDXR9CmjeE/fIyrtCd4xJ6nEodemoebS?= =?us-ascii?Q?UA5GKb2d5NeVu9kVh/v200dVqeT2CYkUVHFZRP57TysWNiaQ+Crdjx/k+faM?= =?us-ascii?Q?1Exgq8MNU/QjflpUVbbyBSPi5JDXdeXW/qXhcrvzTH9hbQmhkqFO6/NOFbhU?= =?us-ascii?Q?/5w9i/2XmE35z9dFqIbQg2LcOOCfIyq6GM+ziuBaPU+iS9WL/uH6BB8DM0wY?= =?us-ascii?Q?k0lkznpPhpykWyWOcQz8hy0+PW9AMhzdSaOZhh+EMnALkM3LZ8eKzGRlcEIw?= =?us-ascii?Q?jfKBmoVQkEs0qy0uYoJj4z14yBaLgSaAd4Zj1ox5xEnGoplmBxObV4Wa11Df?= =?us-ascii?Q?KybEp/BUXTgRJmKM9ew+YCH1q8Ju+CwR3jjIGl5riXhtUIGpcWJRnfSursGI?= =?us-ascii?Q?PGsRO3y50A2IlaKaNw1dxGgv/d2XmMcjwoQ9EXX7ncBieYSq+hhiZvLVXtPM?= =?us-ascii?Q?iQvUSrLD+TN5zkQiBi11uQEuyKnQ1tVX+8i0DU3uwI6lLR0nUoKFsGmx/By7?= =?us-ascii?Q?Wrn1T5WFAw5n0qasSlw=3D?= 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)(36860700013)(82310400026)(61400799027);DIR:OUT;SFP:1102; X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2025 17:27:21.3459 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d60cebbf-25d5-46fc-1306-08de4891db15 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-SA2PEPF00001504.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR19MB3979 X-Proofpoint-GUID: IEUopd-9a86QsB8wWt8y4JrrLMn8n98F X-Authority-Analysis: v=2.4 cv=Z8Hh3XRA c=1 sm=1 tr=0 ts=69555cfe cx=c_pps a=Ta0D7379KrHwLEZKU6rhjg==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=w1d2syhTAAAA:8 a=5SG3a8Kso9AvpaViJGUA:9 X-Proofpoint-ORIG-GUID: IEUopd-9a86QsB8wWt8y4JrrLMn8n98F X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDE1MyBTYWx0ZWRfXwPFIJLkYdguE alYsWRXUZig1/VD3bJs0Z2OYpp+nvTQnSLamSiAuoZYxeIrAIKCUW5h8VROK9c0rKdfQfxoQWkX Q1moyNaVsrcYJNdztwAtke3WjsBVs1thhK9bDWonh1QCE0w1AX6ysQEEZBtl8JjdUGrco8fc6/L pTdFVi2GMpNh/+rfhxFHxu7npnYN7ackyqn77g9OtrAZogBTtn22T8dAyhkjwW1Z1q3LU3Rn8Gq FvuiM/aJdjMo+5gNWfwguS2FK8L7yhIuul967/v1H0HwGqklUPCH8sVATLaEIak+2lxNSOjexyY vYjyjoYmylqqGKw5dnV80weO8YRUH48xNJ+3VPMBCHBEe+PhsIXfR9IWKjS7O5UxWh547dTjzqI pZUg2p3DsC4gfSD+5cyPpSb0501v/qRnIunMTym+jKs0wATbf0r+WhzITLlHcZpgUDUu7t03sS5 M4rLz7LJHV08I6WWWrA== X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" Make the call to cs_dsp_mock_bin_add_patch() a function pointer in the test case parameters, instead of calling it directly. This is to allow for future parameterization by which function to call to add a patch. Signed-off-by: Richard Fitzgerald --- No changes since V1. .../firmware/cirrus/test/cs_dsp_test_bin.c | 708 +++++++++--------- 1 file changed, 357 insertions(+), 351 deletions(-) diff --git a/drivers/firmware/cirrus/test/cs_dsp_test_bin.c b/drivers/firmw= are/cirrus/test/cs_dsp_test_bin.c index 4532a7e9833a..7f53fa9964c4 100644 --- a/drivers/firmware/cirrus/test/cs_dsp_test_bin.c +++ b/drivers/firmware/cirrus/test/cs_dsp_test_bin.c @@ -69,6 +69,10 @@ struct bin_test_param { int mem_type; unsigned int offset_words; int alg_idx; + void (*add_patch)(struct cs_dsp_mock_bin_builder *builder, + unsigned int alg_id, unsigned int alg_ver, + int mem_region, unsigned int reg_addr_offset, + const void *payload_data, size_t payload_len_bytes); }; =20 static const struct cs_dsp_mock_alg_def bin_test_mock_algs[] =3D { @@ -128,12 +132,12 @@ static void bin_patch_one_word(struct kunit *test) bin_test_mock_algs[param->alg_idx].id, param->mem_type); =20 - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - param->offset_words * reg_inc_per_word, - &payload_data, sizeof(payload_data)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + param->offset_words * reg_inc_per_word, + &payload_data, sizeof(payload_data)); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -177,12 +181,12 @@ static void bin_patch_one_multiword(struct kunit *tes= t) bin_test_mock_algs[param->alg_idx].id, param->mem_type); =20 - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - param->offset_words * reg_inc_per_word, - payload_data, sizeof(payload_data)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + param->offset_words * reg_inc_per_word, + payload_data, sizeof(payload_data)); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -228,12 +232,12 @@ static void bin_patch_multi_oneword(struct kunit *tes= t) =20 /* Add one payload per word */ for (i =3D 0; i < ARRAY_SIZE(payload_data); ++i) { - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - (param->offset_words + i) * reg_inc_per_word, - &payload_data[i], sizeof(payload_data[i])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + (param->offset_words + i) * reg_inc_per_word, + &payload_data[i], sizeof(payload_data[i])); } =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); @@ -285,13 +289,13 @@ static void bin_patch_multi_oneword_unordered(struct = kunit *test) =20 /* Add one payload per word */ for (i =3D 0; i < ARRAY_SIZE(word_order); ++i) { - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - (param->offset_words + word_order[i]) * - reg_inc_per_word, - &payload_data[word_order[i]], sizeof(payload_data[0])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + (param->offset_words + word_order[i]) * + reg_inc_per_word, + &payload_data[word_order[i]], sizeof(payload_data[0])); } =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); @@ -346,12 +350,12 @@ static void bin_patch_multi_oneword_sparse_unordered(= struct kunit *test) =20 /* Add one payload per word */ for (i =3D 0; i < ARRAY_SIZE(word_offsets); ++i) { - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - word_offsets[i] * reg_inc_per_word, - &payload_data[i], sizeof(payload_data[i])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + word_offsets[i] * reg_inc_per_word, + &payload_data[i], sizeof(payload_data[i])); } =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); @@ -413,27 +417,27 @@ static void bin_patch_one_word_multiple_mems(struct k= unit *test) } =20 /* Add words to XM, YM and ZM */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - WMFW_ADSP2_XM, - param->offset_words * reg_inc_per_word, - &payload_data[0], sizeof(payload_data[0])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + WMFW_ADSP2_XM, + param->offset_words * reg_inc_per_word, + &payload_data[0], sizeof(payload_data[0])); =20 - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - WMFW_ADSP2_YM, - param->offset_words * reg_inc_per_word, - &payload_data[1], sizeof(payload_data[1])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + WMFW_ADSP2_YM, + param->offset_words * reg_inc_per_word, + &payload_data[1], sizeof(payload_data[1])); =20 if (cs_dsp_mock_has_zm(priv)) { - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - WMFW_ADSP2_ZM, - param->offset_words * reg_inc_per_word, - &payload_data[2], sizeof(payload_data[2])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + WMFW_ADSP2_ZM, + param->offset_words * reg_inc_per_word, + &payload_data[2], sizeof(payload_data[2])); } =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); @@ -502,12 +506,12 @@ static void bin_patch_one_word_multiple_algs(struct k= unit *test) for (i =3D 0; i < ARRAY_SIZE(bin_test_mock_algs); ++i) { reg_inc_per_word =3D cs_dsp_mock_reg_addr_inc_per_unpacked_word(priv); =20 - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[i].id, - bin_test_mock_algs[i].ver, - param->mem_type, - param->offset_words * reg_inc_per_word, - &payload_data[i], sizeof(payload_data[i])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[i].id, + bin_test_mock_algs[i].ver, + param->mem_type, + param->offset_words * reg_inc_per_word, + &payload_data[i], sizeof(payload_data[i])); } =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); @@ -565,12 +569,12 @@ static void bin_patch_one_word_multiple_algs_unordere= d(struct kunit *test) alg_idx =3D alg_order[i]; reg_inc_per_word =3D cs_dsp_mock_reg_addr_inc_per_unpacked_word(priv); =20 - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[alg_idx].id, - bin_test_mock_algs[alg_idx].ver, - param->mem_type, - param->offset_words * reg_inc_per_word, - &payload_data[i], sizeof(payload_data[i])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[alg_idx].id, + bin_test_mock_algs[alg_idx].ver, + param->mem_type, + param->offset_words * reg_inc_per_word, + &payload_data[i], sizeof(payload_data[i])); } =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); @@ -628,12 +632,12 @@ static void bin_patch_1_packed(struct kunit *test) patch_pos_words =3D round_up(alg_base_words + param->offset_words, 4); patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(patch_pos_word= s); =20 - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, - packed_payload, sizeof(packed_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, + packed_payload, sizeof(packed_payload)); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -688,20 +692,20 @@ static void bin_patch_1_packed_1_single_trailing(stru= ct kunit *test) patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(patch_pos_word= s); =20 /* Patch packed block */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, - &packed_payload, sizeof(packed_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, + &packed_payload, sizeof(packed_payload)); =20 /* ... and the unpacked word following that */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((patch_pos_words + 4) - alg_base_words) * 4, - unpacked_payload, sizeof(unpacked_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((patch_pos_words + 4) - alg_base_words) * 4, + unpacked_payload, sizeof(unpacked_payload)); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -768,27 +772,27 @@ static void bin_patch_1_packed_2_single_trailing(stru= ct kunit *test) patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(patch_pos_word= s); =20 /* Patch packed block */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, - &packed_payload, sizeof(packed_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, + &packed_payload, sizeof(packed_payload)); =20 /* ... and the unpacked words following that */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((patch_pos_words + 4) - alg_base_words) * 4, - &unpacked_payloads[0], sizeof(unpacked_payloads[0])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((patch_pos_words + 4) - alg_base_words) * 4, + &unpacked_payloads[0], sizeof(unpacked_payloads[0])); =20 - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((patch_pos_words + 5) - alg_base_words) * 4, - &unpacked_payloads[1], sizeof(unpacked_payloads[1])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((patch_pos_words + 5) - alg_base_words) * 4, + &unpacked_payloads[1], sizeof(unpacked_payloads[1])); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -857,34 +861,34 @@ static void bin_patch_1_packed_3_single_trailing(stru= ct kunit *test) patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(patch_pos_word= s); =20 /* Patch packed block */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, - &packed_payload, sizeof(packed_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, + &packed_payload, sizeof(packed_payload)); =20 /* ... and the unpacked words following that */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((patch_pos_words + 4) - alg_base_words) * 4, - &unpacked_payloads[0], sizeof(unpacked_payloads[0])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((patch_pos_words + 4) - alg_base_words) * 4, + &unpacked_payloads[0], sizeof(unpacked_payloads[0])); =20 - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((patch_pos_words + 5) - alg_base_words) * 4, - &unpacked_payloads[1], sizeof(unpacked_payloads[1])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((patch_pos_words + 5) - alg_base_words) * 4, + &unpacked_payloads[1], sizeof(unpacked_payloads[1])); =20 - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((patch_pos_words + 6) - alg_base_words) * 4, - &unpacked_payloads[2], sizeof(unpacked_payloads[2])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((patch_pos_words + 6) - alg_base_words) * 4, + &unpacked_payloads[2], sizeof(unpacked_payloads[2])); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -953,20 +957,20 @@ static void bin_patch_1_packed_2_trailing(struct kuni= t *test) patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(patch_pos_word= s); =20 /* Patch packed block */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, - &packed_payload, sizeof(packed_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, + &packed_payload, sizeof(packed_payload)); =20 /* ... and the unpacked words following that */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((patch_pos_words + 4) - alg_base_words) * 4, - unpacked_payload, sizeof(unpacked_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((patch_pos_words + 4) - alg_base_words) * 4, + unpacked_payload, sizeof(unpacked_payload)); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -1035,20 +1039,20 @@ static void bin_patch_1_packed_3_trailing(struct ku= nit *test) patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(patch_pos_word= s); =20 /* Patch packed block */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, - &packed_payload, sizeof(packed_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, + &packed_payload, sizeof(packed_payload)); =20 /* ... and the unpacked words following that */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((patch_pos_words + 4) - alg_base_words) * 4, - unpacked_payload, sizeof(unpacked_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((patch_pos_words + 4) - alg_base_words) * 4, + unpacked_payload, sizeof(unpacked_payload)); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -1117,20 +1121,20 @@ static void bin_patch_1_single_leading_1_packed(str= uct kunit *test) packed_patch_pos_words =3D round_up(alg_base_words + param->offset_words,= 4) + 4; =20 /* Patch the leading unpacked word */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((packed_patch_pos_words - 1) - alg_base_words) * 4, - unpacked_payload, sizeof(unpacked_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((packed_patch_pos_words - 1) - alg_base_words) * 4, + unpacked_payload, sizeof(unpacked_payload)); /* ... then the packed block */ patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(packed_patch_p= os_words); - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, - &packed_payload, sizeof(packed_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, + &packed_payload, sizeof(packed_payload)); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -1196,26 +1200,26 @@ static void bin_patch_2_single_leading_1_packed(str= uct kunit *test) packed_patch_pos_words =3D round_up(alg_base_words + param->offset_words,= 4) + 4; =20 /* Patch the leading unpacked words */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((packed_patch_pos_words - 2) - alg_base_words) * 4, - &unpacked_payload[0], sizeof(unpacked_payload[0])); - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((packed_patch_pos_words - 1) - alg_base_words) * 4, - &unpacked_payload[1], sizeof(unpacked_payload[1])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((packed_patch_pos_words - 2) - alg_base_words) * 4, + &unpacked_payload[0], sizeof(unpacked_payload[0])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((packed_patch_pos_words - 1) - alg_base_words) * 4, + &unpacked_payload[1], sizeof(unpacked_payload[1])); /* ... then the packed block */ patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(packed_patch_p= os_words); - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, - &packed_payload, sizeof(packed_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, + &packed_payload, sizeof(packed_payload)); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -1283,20 +1287,20 @@ static void bin_patch_2_leading_1_packed(struct kun= it *test) packed_patch_pos_words =3D round_up(alg_base_words + param->offset_words,= 4) + 4; =20 /* Patch the leading unpacked words */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((packed_patch_pos_words - 2) - alg_base_words) * 4, - unpacked_payload, sizeof(unpacked_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((packed_patch_pos_words - 2) - alg_base_words) * 4, + unpacked_payload, sizeof(unpacked_payload)); /* ... then the packed block */ patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(packed_patch_p= os_words); - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, - &packed_payload, sizeof(packed_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, + &packed_payload, sizeof(packed_payload)); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -1364,32 +1368,32 @@ static void bin_patch_3_single_leading_1_packed(str= uct kunit *test) packed_patch_pos_words =3D round_up(alg_base_words + param->offset_words,= 4) + 4; =20 /* Patch the leading unpacked words */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((packed_patch_pos_words - 3) - alg_base_words) * 4, - &unpacked_payload[0], sizeof(unpacked_payload[0])); - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((packed_patch_pos_words - 2) - alg_base_words) * 4, - &unpacked_payload[1], sizeof(unpacked_payload[1])); - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((packed_patch_pos_words - 1) - alg_base_words) * 4, - &unpacked_payload[2], sizeof(unpacked_payload[2])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((packed_patch_pos_words - 3) - alg_base_words) * 4, + &unpacked_payload[0], sizeof(unpacked_payload[0])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((packed_patch_pos_words - 2) - alg_base_words) * 4, + &unpacked_payload[1], sizeof(unpacked_payload[1])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((packed_patch_pos_words - 1) - alg_base_words) * 4, + &unpacked_payload[2], sizeof(unpacked_payload[2])); /* ... then the packed block */ patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(packed_patch_p= os_words); - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, - &packed_payload, sizeof(packed_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, + &packed_payload, sizeof(packed_payload)); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -1457,20 +1461,20 @@ static void bin_patch_3_leading_1_packed(struct kun= it *test) packed_patch_pos_words =3D round_up(alg_base_words + param->offset_words,= 4) + 4; =20 /* Patch the leading unpacked words */ - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - unpacked_mem_type, - ((packed_patch_pos_words - 3) - alg_base_words) * 4, - unpacked_payload, sizeof(unpacked_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + unpacked_mem_type, + ((packed_patch_pos_words - 3) - alg_base_words) * 4, + unpacked_payload, sizeof(unpacked_payload)); /* ... then the packed block */ patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(packed_patch_p= os_words); - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, - &packed_payload, sizeof(packed_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, + &packed_payload, sizeof(packed_payload)); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -1537,12 +1541,12 @@ static void bin_patch_multi_onepacked(struct kunit = *test) for (i =3D 0; i < ARRAY_SIZE(packed_payloads); ++i) { patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(patch_pos_wor= ds + (i * 4)); payload_offset =3D (patch_pos_in_packed_regs - alg_base_in_packed_regs) = * 4; - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - payload_offset, - &packed_payloads[i], sizeof(packed_payloads[i])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + payload_offset, + &packed_payloads[i], sizeof(packed_payloads[i])); } =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); @@ -1602,13 +1606,13 @@ static void bin_patch_multi_onepacked_unordered(str= uct kunit *test) patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(patch_pos_words + (payload_order[i] * 4)); payload_offset =3D (patch_pos_in_packed_regs - alg_base_in_packed_regs) = * 4; - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - payload_offset, - &packed_payloads[payload_order[i]], - sizeof(packed_payloads[0])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + payload_offset, + &packed_payloads[payload_order[i]], + sizeof(packed_payloads[0])); } =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); @@ -1665,13 +1669,13 @@ static void bin_patch_multi_onepacked_sparse_unorde= red(struct kunit *test) patch_pos_words =3D round_up(alg_base_words + word_offsets[i], 4); patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(patch_pos_wor= ds); payload_offset =3D (patch_pos_in_packed_regs - alg_base_in_packed_regs) = * 4; - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - param->mem_type, - payload_offset, - &packed_payloads[i], - sizeof(packed_payloads[0])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + param->mem_type, + payload_offset, + &packed_payloads[i], + sizeof(packed_payloads[0])); } =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); @@ -1737,21 +1741,21 @@ static void bin_patch_1_packed_multiple_mems(struct= kunit *test) /* Add XM and YM patches */ alg_base_in_packed_regs =3D _num_words_to_num_packed_regs(alg_xm_base_wor= ds); patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(xm_patch_pos_w= ords); - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - WMFW_HALO_XM_PACKED, - (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, - packed_xm_payload, sizeof(packed_xm_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + WMFW_HALO_XM_PACKED, + (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, + packed_xm_payload, sizeof(packed_xm_payload)); =20 alg_base_in_packed_regs =3D _num_words_to_num_packed_regs(alg_ym_base_wor= ds); patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(ym_patch_pos_w= ords); - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[param->alg_idx].id, - bin_test_mock_algs[param->alg_idx].ver, - WMFW_HALO_YM_PACKED, - (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, - packed_ym_payload, sizeof(packed_ym_payload)); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[param->alg_idx].id, + bin_test_mock_algs[param->alg_idx].ver, + WMFW_HALO_YM_PACKED, + (patch_pos_in_packed_regs - alg_base_in_packed_regs) * 4, + packed_ym_payload, sizeof(packed_ym_payload)); =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); KUNIT_ASSERT_EQ(test, @@ -1821,12 +1825,12 @@ static void bin_patch_1_packed_multiple_algs(struct= kunit *test) patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(patch_pos_wor= ds); =20 payload_offset =3D (patch_pos_in_packed_regs - alg_base_in_packed_regs) = * 4; - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[i].id, - bin_test_mock_algs[i].ver, - param->mem_type, - payload_offset, - packed_payload[i], sizeof(packed_payload[i])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[i].id, + bin_test_mock_algs[i].ver, + param->mem_type, + payload_offset, + packed_payload[i], sizeof(packed_payload[i])); } =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); @@ -1907,12 +1911,12 @@ static void bin_patch_1_packed_multiple_algs_unorde= red(struct kunit *test) patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(patch_pos_wor= ds); =20 payload_offset =3D (patch_pos_in_packed_regs - alg_base_in_packed_regs) = * 4; - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[alg_idx].id, - bin_test_mock_algs[alg_idx].ver, - param->mem_type, - payload_offset, - packed_payload[i], sizeof(packed_payload[i])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[alg_idx].id, + bin_test_mock_algs[alg_idx].ver, + param->mem_type, + payload_offset, + packed_payload[i], sizeof(packed_payload[i])); } =20 fw =3D cs_dsp_mock_bin_get_firmware(priv->local->bin_builder); @@ -2004,22 +2008,22 @@ static void bin_patch_mixed_packed_unpacked_random(= struct kunit *test) alg_base_in_packed_regs =3D _num_words_to_num_packed_regs(alg_base_word= s); patch_pos_in_packed_regs =3D _num_words_to_num_packed_regs(patch_pos_wo= rds); payload_offset =3D (patch_pos_in_packed_regs - alg_base_in_packed_regs)= * 4; - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[0].id, - bin_test_mock_algs[0].ver, - param->mem_type, - payload_offset, - payload->packed[i], - sizeof(payload->packed[i])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[0].id, + bin_test_mock_algs[0].ver, + param->mem_type, + payload_offset, + payload->packed[i], + sizeof(payload->packed[i])); } else { payload_offset =3D offset_words[i] * 4; - cs_dsp_mock_bin_add_patch(priv->local->bin_builder, - bin_test_mock_algs[0].id, - bin_test_mock_algs[0].ver, - unpacked_mem_type, - payload_offset, - &payload->unpacked[i], - sizeof(payload->unpacked[i])); + param->add_patch(priv->local->bin_builder, + bin_test_mock_algs[0].id, + bin_test_mock_algs[0].ver, + unpacked_mem_type, + payload_offset, + &payload->unpacked[i], + sizeof(payload->unpacked[i])); } } =20 @@ -2295,53 +2299,55 @@ static int cs_dsp_bin_test_adsp2_16bit_init(struct = kunit *test) return cs_dsp_bin_test_common_init(test, dsp, 1); } =20 +#define WMDR_PATCH_SHORT .add_patch =3D cs_dsp_mock_bin_add_patch + /* Parameterize on choice of XM or YM with a range of word offsets */ static const struct bin_test_param x_or_y_and_offset_param_cases[] =3D { - { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 0 }, - { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 1 }, - { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 2 }, - { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 3 }, - { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 4 }, - { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 23 }, - { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 22 }, - { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 21 }, - { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 20 }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 0, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 1, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 2, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 3, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 4, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 23, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 22, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 21, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 20, WMDR_PATCH_SHORT }, =20 - { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 0 }, - { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 1 }, - { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 2 }, - { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 3 }, - { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 4 }, - { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 23 }, - { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 22 }, - { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 21 }, - { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 20 }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 0, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 1, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 2, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 3, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 4, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 23, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 22, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 21, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 20, WMDR_PATCH_SHORT }, }; =20 /* Parameterize on ZM with a range of word offsets */ static const struct bin_test_param z_and_offset_param_cases[] =3D { - { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 0 }, - { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 1 }, - { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 2 }, - { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 3 }, - { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 4 }, - { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 23 }, - { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 22 }, - { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 21 }, - { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 20 }, + { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 0, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 1, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 2, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 3, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 4, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 23, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 22, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 21, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 20, WMDR_PATCH_SHORT }, }; =20 /* Parameterize on choice of packed XM or YM with a range of word offsets = */ static const struct bin_test_param packed_x_or_y_and_offset_param_cases[] = =3D { - { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 0 }, - { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 4 }, - { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 8 }, - { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 12 }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 0, WMDR_PATCH_SHO= RT }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 4, WMDR_PATCH_SHO= RT }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 8, WMDR_PATCH_SHO= RT }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 12, WMDR_PATCH_SHO= RT }, =20 - { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 0 }, - { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 4 }, - { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 8 }, - { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 12 }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 0, WMDR_PATCH_SHO= RT }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 4, WMDR_PATCH_SHO= RT }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 8, WMDR_PATCH_SHO= RT }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 12, WMDR_PATCH_SHO= RT }, }; =20 static void x_or_y_or_z_and_offset_param_desc(const struct bin_test_param = *param, @@ -2366,8 +2372,8 @@ KUNIT_ARRAY_PARAM(packed_x_or_y_and_offset, =20 /* Parameterize on choice of packed XM or YM */ static const struct bin_test_param packed_x_or_y_param_cases[] =3D { - { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 0 }, - { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 0 }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 0, WMDR_PATCH_SHOR= T }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 0, WMDR_PATCH_SHOR= T }, }; =20 static void x_or_y_or_z_param_desc(const struct bin_test_param *param, @@ -2379,15 +2385,15 @@ static void x_or_y_or_z_param_desc(const struct bin= _test_param *param, KUNIT_ARRAY_PARAM(packed_x_or_y, packed_x_or_y_param_cases, x_or_y_or_z_pa= ram_desc); =20 static const struct bin_test_param offset_param_cases[] =3D { - { .offset_words =3D 0 }, - { .offset_words =3D 1 }, - { .offset_words =3D 2 }, - { .offset_words =3D 3 }, - { .offset_words =3D 4 }, - { .offset_words =3D 23 }, - { .offset_words =3D 22 }, - { .offset_words =3D 21 }, - { .offset_words =3D 20 }, + { .offset_words =3D 0, WMDR_PATCH_SHORT }, + { .offset_words =3D 1, WMDR_PATCH_SHORT }, + { .offset_words =3D 2, WMDR_PATCH_SHORT }, + { .offset_words =3D 3, WMDR_PATCH_SHORT }, + { .offset_words =3D 4, WMDR_PATCH_SHORT }, + { .offset_words =3D 23, WMDR_PATCH_SHORT }, + { .offset_words =3D 22, WMDR_PATCH_SHORT }, + { .offset_words =3D 21, WMDR_PATCH_SHORT }, + { .offset_words =3D 20, WMDR_PATCH_SHORT }, }; =20 static void offset_param_desc(const struct bin_test_param *param, char *de= sc) @@ -2398,10 +2404,10 @@ static void offset_param_desc(const struct bin_test= _param *param, char *desc) KUNIT_ARRAY_PARAM(offset, offset_param_cases, offset_param_desc); =20 static const struct bin_test_param alg_param_cases[] =3D { - { .alg_idx =3D 0 }, - { .alg_idx =3D 1 }, - { .alg_idx =3D 2 }, - { .alg_idx =3D 3 }, + { .alg_idx =3D 0, WMDR_PATCH_SHORT }, + { .alg_idx =3D 1, WMDR_PATCH_SHORT }, + { .alg_idx =3D 2, WMDR_PATCH_SHORT }, + { .alg_idx =3D 3, WMDR_PATCH_SHORT }, }; =20 static void alg_param_desc(const struct bin_test_param *param, char *desc) @@ -2415,15 +2421,15 @@ static void alg_param_desc(const struct bin_test_pa= ram *param, char *desc) KUNIT_ARRAY_PARAM(alg, alg_param_cases, alg_param_desc); =20 static const struct bin_test_param x_or_y_and_alg_param_cases[] =3D { - { .mem_type =3D WMFW_ADSP2_XM, .alg_idx =3D 0 }, - { .mem_type =3D WMFW_ADSP2_XM, .alg_idx =3D 1 }, - { .mem_type =3D WMFW_ADSP2_XM, .alg_idx =3D 2 }, - { .mem_type =3D WMFW_ADSP2_XM, .alg_idx =3D 3 }, + { .mem_type =3D WMFW_ADSP2_XM, .alg_idx =3D 0, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_XM, .alg_idx =3D 1, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_XM, .alg_idx =3D 2, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_XM, .alg_idx =3D 3, WMDR_PATCH_SHORT }, =20 - { .mem_type =3D WMFW_ADSP2_YM, .alg_idx =3D 0 }, - { .mem_type =3D WMFW_ADSP2_YM, .alg_idx =3D 1 }, - { .mem_type =3D WMFW_ADSP2_YM, .alg_idx =3D 2 }, - { .mem_type =3D WMFW_ADSP2_YM, .alg_idx =3D 3 }, + { .mem_type =3D WMFW_ADSP2_YM, .alg_idx =3D 0, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_YM, .alg_idx =3D 1, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_YM, .alg_idx =3D 2, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_YM, .alg_idx =3D 3, WMDR_PATCH_SHORT }, }; =20 static void x_or_y_or_z_and_alg_param_desc(const struct bin_test_param *pa= ram, char *desc) @@ -2438,24 +2444,24 @@ static void x_or_y_or_z_and_alg_param_desc(const st= ruct bin_test_param *param, c KUNIT_ARRAY_PARAM(x_or_y_and_alg, x_or_y_and_alg_param_cases, x_or_y_or_z_= and_alg_param_desc); =20 static const struct bin_test_param z_and_alg_param_cases[] =3D { - { .mem_type =3D WMFW_ADSP2_ZM, .alg_idx =3D 0 }, - { .mem_type =3D WMFW_ADSP2_ZM, .alg_idx =3D 1 }, - { .mem_type =3D WMFW_ADSP2_ZM, .alg_idx =3D 2 }, - { .mem_type =3D WMFW_ADSP2_ZM, .alg_idx =3D 3 }, + { .mem_type =3D WMFW_ADSP2_ZM, .alg_idx =3D 0, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_ZM, .alg_idx =3D 1, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_ZM, .alg_idx =3D 2, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_ADSP2_ZM, .alg_idx =3D 3, WMDR_PATCH_SHORT }, }; =20 KUNIT_ARRAY_PARAM(z_and_alg, z_and_alg_param_cases, x_or_y_or_z_and_alg_pa= ram_desc); =20 static const struct bin_test_param packed_x_or_y_and_alg_param_cases[] =3D= { - { .mem_type =3D WMFW_HALO_XM_PACKED, .alg_idx =3D 0 }, - { .mem_type =3D WMFW_HALO_XM_PACKED, .alg_idx =3D 1 }, - { .mem_type =3D WMFW_HALO_XM_PACKED, .alg_idx =3D 2 }, - { .mem_type =3D WMFW_HALO_XM_PACKED, .alg_idx =3D 3 }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .alg_idx =3D 0, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .alg_idx =3D 1, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .alg_idx =3D 2, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .alg_idx =3D 3, WMDR_PATCH_SHORT }, =20 - { .mem_type =3D WMFW_HALO_YM_PACKED, .alg_idx =3D 0 }, - { .mem_type =3D WMFW_HALO_YM_PACKED, .alg_idx =3D 1 }, - { .mem_type =3D WMFW_HALO_YM_PACKED, .alg_idx =3D 2 }, - { .mem_type =3D WMFW_HALO_YM_PACKED, .alg_idx =3D 3 }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .alg_idx =3D 0, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .alg_idx =3D 1, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .alg_idx =3D 2, WMDR_PATCH_SHORT }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .alg_idx =3D 3, WMDR_PATCH_SHORT }, }; =20 KUNIT_ARRAY_PARAM(packed_x_or_y_and_alg, packed_x_or_y_and_alg_param_cases, --=20 2.43.0 From nobody Sat Feb 7 18:20:27 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 563962BDC19; Wed, 31 Dec 2025 17:27:29 +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=1767202052; cv=fail; b=hJsRWxLcVeA5IKmqLYp5UoCeSJTXSgyO7y85I8P0O3OLfd0DiRYBzmkBO8EYxa+cvpddSSoamSrVGXL1trN4udgLXoer00KKWMb/cxWT2fq+AVqJpRa1cpawCLAizgL865nMOlEVVCBLD7P3xaFw71yQptfk332Oi2Ub/vNj3BY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767202052; c=relaxed/simple; bh=ga3KAahCuVLIW66LdCBIlYkuPsmE0N0pCvR3ioynDh4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ohWJecjsW7E7d3bceup2YYyJewxntaN1M3Xl0Gx4zGdjvu/Xjogz/OOvstquIrOtaikh/dLZ+5GgyEKDUDJ4P2A4kySllQI9iZtbirqrZO41NjXSqzB2MqgRRDR/WaPYaZPqz9WuscJXO1tkFhuQWTZ0I4CS32xxYhV+5iCSPWs= 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=C5GP2A7C; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=mr9Y0gTV; 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="C5GP2A7C"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="mr9Y0gTV" 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 5BVF0iar743550; Wed, 31 Dec 2025 11:27:27 -0600 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=hB/SJTUQHN+Wf9qMLEztBFpQ4Rbdx9JaUDlUyhUBTEk=; b= C5GP2A7C6LHW16XwivGDAUfG4GkCRJ3jSHmJQbxobLsWuH4poDC3oOz1PH1E8cWW idGsHCwudXihkzn+ck+XJnn01ItibE7+8cOa/2LAuxRsGM5eryqaub2f8f9CfVvK BAS26Y2aUW8cLwYhjdmJiPnhwbVcvVFyH5ZJDo0d7YdONqovCt6zlgGIxnwZW/Oh AX4+P9blJeV9Fs7BNLZBOk2MyfNsT/2kenDKQozmMrfHVtN+kj+oVK2m1mt97Xtm jez4Z4wkVi+HmTaeB+mht4U2NYVJm0Z1fgM1jYtePiwaB7/kLeRxbezPykBjVTLG lUx8rVoqll++7Ens4CZH7w== Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11021076.outbound.protection.outlook.com [40.107.208.76]) by mx0a-001ae601.pphosted.com (PPS) with ESMTPS id 4badr3cakv-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 11:27:27 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oAj3qNy5drZUruxknLualHHbxniaDVO3xnEQ4YBm9WSvc/qgBPoYjf7EH3JRMw7/vErwMhjkyeiN3B10EVeQNwySUrLi66qw35FAeIzEGjQvTELaSFRDp1gXljMDf98o5TyQPsOuTTsljVIDW35Wub7YGEluvK9q88HZrs1mccF2A0zLJF0h8aOAvoFAfvMPnmJAYIBBwp19VpIuT4lefo08j6pgqSgUC0XTEsgZUisuLlyugtMqeBdukYfGb0pUbY0DIzjs2CZ4d2Mq9F/+uLu0i3B6Tw13qIDRQ+RYLKVXD/2wjg77hQh7FqATYRHZhmv8GutfjkIuPX6gAXIT4A== 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=hB/SJTUQHN+Wf9qMLEztBFpQ4Rbdx9JaUDlUyhUBTEk=; b=hl37f0NKPXzFv0yQ1Kjk64aIvUMIbz1Hs+t+Pby2cSsX+3z2oTho5cpruUHjDm3y/LF8WbybXom0g6/pkxANQzi98zZQIiO7a8sCbzQN/OjetJwq7WnVtPPJUqiqqEZvbByXY+sb6fhAGdEUa823i9wR1+V+CmomTbEaCyZSaqc4mY1nhADVAl1quFj53HzGwiSzrFKB+xn0IjB6+LBgQ2Kt73Z9JGu1focNvXg/GG+0q1apKr3hvRdv6DGp1S8iO8aAFTOlXZpAPW4QkUoEdc1jO63CJdse0p3G1pSmmpgiMfsORBc2bciU1qpFRcxOkiKI5XvfwO2yDbtOQ5WIgA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (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=hB/SJTUQHN+Wf9qMLEztBFpQ4Rbdx9JaUDlUyhUBTEk=; b=mr9Y0gTVnBh2t3gU5eifNLF0mxnMNhAsk22dPXzqIRvwZVGGNdeq2qnAbaYsZ59mmDriz6hBxIzJ9/aqIh/6XswY7qhY5erqeHMC65qVbmTAI7JwVTWS3P8pZYZYkPqN6R37j0p+B+fOOTc4uv95HJveYhMc7BAy8nKQo2VZcSA= Received: from SN7PR04CA0182.namprd04.prod.outlook.com (2603:10b6:806:126::7) by DS7PR19MB8857.namprd19.prod.outlook.com (2603:10b6:8:253::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.14; Wed, 31 Dec 2025 17:27:22 +0000 Received: from SA2PEPF00001504.namprd04.prod.outlook.com (2603:10b6:806:126:cafe::87) by SN7PR04CA0182.outlook.office365.com (2603:10b6:806:126::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:17 +0000 X-MS-Exchange-Authentication-Results: spf=fail (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: Fail (protection.outlook.com: domain of opensource.cirrus.com does not designate 84.19.233.75 as permitted sender) receiver=protection.outlook.com; client-ip=84.19.233.75; helo=edirelay1.ad.cirrus.com; Received: from edirelay1.ad.cirrus.com (84.19.233.75) by SA2PEPF00001504.mail.protection.outlook.com (10.167.242.36) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:21 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id B748B406550; Wed, 31 Dec 2025 17:27:20 +0000 (UTC) Received: from EDIN4L06LR3.ad.cirrus.com (EDIN4L06LR3.ad.cirrus.com [198.61.69.19]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id 5534B820249; Wed, 31 Dec 2025 17:27:20 +0000 (UTC) From: Richard Fitzgerald To: broonie@kernel.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH v2 4/8] firmware: cs_dsp: mock_bin: Pass offset32 to cs_dsp_mock_bin_add_raw_block() Date: Wed, 31 Dec 2025 17:27:07 +0000 Message-ID: <20251231172711.450024-5-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231172711.450024-1-rf@opensource.cirrus.com> References: <20251231172711.450024-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: SA2PEPF00001504:EE_|DS7PR19MB8857:EE_ X-MS-Office365-Filtering-Correlation-Id: f167c27a-8aa9-4be5-eb24-08de4891db59 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|61400799027|376014|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?6BN5ha1s0E/ij1SHJRR6RAbMIw0T1kGteyB5NisAU71ZdJOKh5PNwVRGUHMn?= =?us-ascii?Q?Vj9FCsFrVlccpE+1h1bMioGwzVmW95UlAcBIq8o44R1pehLnT2tohyceoHxo?= =?us-ascii?Q?NwNBz/JcFvxdj/sYyt0MWwNuctO8XSfy3rQkui0ny0nUY+JDSM/QDcIZbLn2?= =?us-ascii?Q?u9AszsgoILZ+MloMcmmEEbkWW8N1XZVqarhet/OWPMXhnfMMwk4oJlW174Y5?= =?us-ascii?Q?E3YukNLujDauBmVG8dH0til93hx6FePk4kBPCYzBl+0N64HNGh+rYWuE/0Q5?= =?us-ascii?Q?E6M1bFejAQxjHNno5HSpRdVx2s6QcJ1bmYt2YKxfZWsZewPDZwqbnRwox9R4?= =?us-ascii?Q?EOtzMJqpF56GTCMrq1SlZgAGKR+zy3QDXD0nylqlXiyKZaZVaJcatA3R8hXV?= =?us-ascii?Q?jqoFMxTgSVdapTQqGCsnUzjVv+J6FmX1pHvas374h3PGkYn3Tun4jdU/59Sn?= =?us-ascii?Q?4IIz5yPC8EWVP0nHkhYzNVmaIASRuCObQqPC695yvk7LlzofrQcKfPvnuf24?= =?us-ascii?Q?0fBBpHYymubsgSmzISTuEHETL9hmq1F0TXqdVCVdMwlWDj9bWhXtcR/xJiYs?= =?us-ascii?Q?8z0MQexVhjEgxkrTD0KKpQTBVGlIixfb7dlItZfexixDfu4MRk+AlwwtWIwz?= =?us-ascii?Q?6EiyFbr9Y+uFdSu/lV2qoTJNiatokcADYl5nYAVegXruseFiQojC92CqtOm/?= =?us-ascii?Q?nl7Uzjwu+kUJ8BIlMB0neOxjtLBDV7sLrGRwkjtZTCM74bvJ3qpnCRvjQ4/z?= =?us-ascii?Q?1VQz5blwnZn1ebIXr/rF6K9wtJDevWb2sxr2Ld2qPHpnxKmJEsjctTe4/RZQ?= =?us-ascii?Q?6QDopG1DmTAx0U3lEXZ4TOBzXDAMztliAHHYomsCu7Pg0PmenzUeAqjSj4QO?= =?us-ascii?Q?1el0N+nMW7ivlckXkN3PSgikWyeyje8lal8Syqas9FvRyHMTTLLsE7t0BfQM?= =?us-ascii?Q?vFZ9wZuBhtc8P9+c4O2Yuvxc9RnkO2WduyHNG0pvZoj2J9TuHj48O4MJl/Uu?= =?us-ascii?Q?XD32OB0yZyjQiona5IUjr9QQXIml8N4/8mqidskq4wB5eT3MZqOcAHJJbtcP?= =?us-ascii?Q?yKXZtJvaYwlrpv8V5yD/ZqN1sHHjjnbtVBznUdOWMRHXEnmc9XZh0c73AhuW?= =?us-ascii?Q?+Vvpetb/7EWlwuUqsJsvCQmCo4kOegWSQgyYZ0wr9qp5JorDBlmbPub8Cn95?= =?us-ascii?Q?fBSeyh7Ot8BEJnU9bHs8gsKnEQ1nfTAcrbxSDj/Cm7V1z4OtlV1KXLFriTjK?= =?us-ascii?Q?RRXieKGkrn44DcrGk8Udy5Z25XUrAbqbPRzHVNOsUdjkwpsxkFK2/DR1Smap?= =?us-ascii?Q?LBm0BhfT/ectn0c+SY2LwhwVPFIG0v87aZdmyL/CEcJT+2DfjAQeMQGVfWo9?= =?us-ascii?Q?/MmRAXxPmUOty5kCaI0ip2N0b956TYE9s7biyUTn5p0sTTrmAJPbcKVcrsTL?= =?us-ascii?Q?oec8bT9ruv3Zna+NykCFt4eq2u4Mt0CRI98eFxEc45XWOlg+OL9vZyTTCbg5?= =?us-ascii?Q?+nFTmuMhfY//SvRtJk46HKwgqaonV+eyHDOVdZMtZQrjztG9ZytG79Xmgjxo?= =?us-ascii?Q?ZUTWyMwHutsxk1czkW8=3D?= 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)(61400799027)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1102; X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2025 17:27:21.7999 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f167c27a-8aa9-4be5-eb24-08de4891db59 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-SA2PEPF00001504.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR19MB8857 X-Proofpoint-GUID: fVslh-EWVkbKpzOFO4USoKRqAUQIW3qJ X-Authority-Analysis: v=2.4 cv=Z8Hh3XRA c=1 sm=1 tr=0 ts=69555cff cx=c_pps a=Jf/U7KFl3YoH1y/TBsSIlw==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=w1d2syhTAAAA:8 a=Ac3_NjksB7D9Vqi9SkkA:9 X-Proofpoint-ORIG-GUID: fVslh-EWVkbKpzOFO4USoKRqAUQIW3qJ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDE1MyBTYWx0ZWRfXzvdoSBzpgiBx vAYcFVi4wgenkObzRLGacHjlHVrz4pP8NUNyjgPp13dnJHYeJypOa1/w+UtntvnXZ9VqT8tGVAL gW4UlJAAH1nh9z3xhPyfQ/YSJA5Hj//1M9zdRkNF7wbTBkvvVfBieoOgBMXtjo94n4Cms0uyj5M t5aaQYMBjI884a9dqNKUJgWY2M2Ju3yp0wxZRK2EzEvBZGg9Fqa7BxlJ5mr4au1USE6B8pKgNhz GTUpN3q208Fic+i07AQqqbsyWq+nGgd92mDqbutHL1XTrjsnWQG6OS5ZVyiN7p8nO6Yphu8Hm8e nlw+GIeQjwz6N4rnc4gOARfj8k4/QnMt8DX1IVojijFcOycUW0KacypysGb7RU23JAjYgIKhBr+ DbFXQjOeiGZ0aIwYtSIvfyQ5u3/0prZLdYg/RhgtImxrcKwIRRZpFKFovCWh9LCeB47xzrySfRC OQSrkhkV5UmssGiEKzg== X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" Add an argument to cs_dsp_mock_bin_add_raw_block() to pass a 32-bit offset, and change the type of the existing offset argument to u16. The cs_dsp_test_bin_error.c test uses cs_dsp_mock_bin_add_raw_block() so it needs corresponding updates to pass 0 as the 32-bit offset. Version 1 and 2 of the bin file format had a 16-bit offset on blocks and the sample rate field of the blocks was not used. Version 3 adds new block types that change the old sample rate field to be a 32-bit offset with the old offset currently unused. cs_dsp_mock_bin_add_raw_block() doesn't attempt to do any magic - its purpose is to create a raw block exactly as specified by the calling test code. So the test case can pass a value for both offset fields. Signed-off-by: Richard Fitzgerald --- No changes since V1. drivers/firmware/cirrus/test/cs_dsp_mock_bin.c | 10 ++++++---- .../firmware/cirrus/test/cs_dsp_test_bin_error.c | 14 +++++++------- include/linux/firmware/cirrus/cs_dsp_test_utils.h | 2 +- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/firmware/cirrus/test/cs_dsp_mock_bin.c b/drivers/firmw= are/cirrus/test/cs_dsp_mock_bin.c index 3f8777ee4dc0..bc6b8651259c 100644 --- a/drivers/firmware/cirrus/test/cs_dsp_mock_bin.c +++ b/drivers/firmware/cirrus/test/cs_dsp_mock_bin.c @@ -56,13 +56,14 @@ EXPORT_SYMBOL_NS_GPL(cs_dsp_mock_bin_get_firmware, "FW_= CS_DSP_KUNIT_TEST_UTILS") * @alg_id: Algorithm ID. * @alg_ver: Algorithm version. * @type: Type of the block. - * @offset: Offset. + * @offset: 16-bit offset. + * @offset32: 32-bit offset (sample rate on V1 and V2 file formats). * @payload_data: Pointer to buffer containing the payload data. * @payload_len_bytes: Length of payload data in bytes. */ void cs_dsp_mock_bin_add_raw_block(struct cs_dsp_mock_bin_builder *builder, unsigned int alg_id, unsigned int alg_ver, - int type, unsigned int offset, + int type, u16 offset, u32 offset32, const void *payload_data, size_t payload_len_bytes) { struct wmfw_coeff_item *item; @@ -75,6 +76,7 @@ void cs_dsp_mock_bin_add_raw_block(struct cs_dsp_mock_bin= _builder *builder, item =3D builder->write_p; =20 item->offset =3D cpu_to_le16(offset); + item->offset32 =3D cpu_to_le32(offset32); item->type =3D cpu_to_le16(type); item->id =3D cpu_to_le32(alg_id); item->ver =3D cpu_to_le32(alg_ver << 8); @@ -104,7 +106,7 @@ static void cs_dsp_mock_bin_add_name_or_info(struct cs_= dsp_mock_bin_builder *bui info =3D tmp; } =20 - cs_dsp_mock_bin_add_raw_block(builder, 0, 0, WMFW_INFO_TEXT, 0, info, inf= o_len); + cs_dsp_mock_bin_add_raw_block(builder, 0, 0, WMFW_INFO_TEXT, 0, 0, info, = info_len); kunit_kfree(builder->test_priv->test, tmp); } =20 @@ -156,7 +158,7 @@ void cs_dsp_mock_bin_add_patch(struct cs_dsp_mock_bin_b= uilder *builder, KUNIT_ASSERT_EQ(builder->test_priv->test, payload_len_bytes % 4, 0); =20 cs_dsp_mock_bin_add_raw_block(builder, alg_id, alg_ver, - mem_region, reg_addr_offset, + mem_region, (u16)reg_addr_offset, 0, payload_data, payload_len_bytes); } EXPORT_SYMBOL_NS_GPL(cs_dsp_mock_bin_add_patch, "FW_CS_DSP_KUNIT_TEST_UTIL= S"); diff --git a/drivers/firmware/cirrus/test/cs_dsp_test_bin_error.c b/drivers= /firmware/cirrus/test/cs_dsp_test_bin_error.c index a7ec956d2724..fe0112dc3077 100644 --- a/drivers/firmware/cirrus/test/cs_dsp_test_bin_error.c +++ b/drivers/firmware/cirrus/test/cs_dsp_test_bin_error.c @@ -66,24 +66,24 @@ static void bin_load_with_unknown_blocks(struct kunit *= test) cs_dsp_mock_bin_add_raw_block(local->bin_builder, cs_dsp_bin_err_test_mock_algs[0].id, cs_dsp_bin_err_test_mock_algs[0].ver, - 0xf5, 0, + 0xf5, 0, 0, random_data, sizeof(random_data)); cs_dsp_mock_bin_add_raw_block(local->bin_builder, cs_dsp_bin_err_test_mock_algs[0].id, cs_dsp_bin_err_test_mock_algs[0].ver, - 0xf500, 0, + 0xf500, 0, 0, random_data, sizeof(random_data)); cs_dsp_mock_bin_add_raw_block(local->bin_builder, cs_dsp_bin_err_test_mock_algs[0].id, cs_dsp_bin_err_test_mock_algs[0].ver, - 0xc300, 0, + 0xc300, 0, 0, random_data, sizeof(random_data)); =20 /* Add a single payload to be written to DSP memory */ cs_dsp_mock_bin_add_raw_block(local->bin_builder, cs_dsp_bin_err_test_mock_algs[0].id, cs_dsp_bin_err_test_mock_algs[0].ver, - WMFW_ADSP2_YM, 0, + WMFW_ADSP2_YM, 0, 0, payload_data, payload_size_bytes); =20 bin =3D cs_dsp_mock_bin_get_firmware(local->bin_builder); @@ -277,7 +277,7 @@ static void bin_too_short_for_block_header(struct kunit= *test) cs_dsp_mock_bin_add_raw_block(local->bin_builder, cs_dsp_bin_err_test_mock_algs[0].id, cs_dsp_bin_err_test_mock_algs[0].ver, - param->block_type, 0, + param->block_type, 0, 0, NULL, 0); =20 bin =3D cs_dsp_mock_bin_get_firmware(local->bin_builder); @@ -309,7 +309,7 @@ static void bin_too_short_for_block_payload(struct kuni= t *test) cs_dsp_mock_bin_add_raw_block(local->bin_builder, cs_dsp_bin_err_test_mock_algs[0].id, cs_dsp_bin_err_test_mock_algs[0].ver, - param->block_type, 0, + param->block_type, 0, 0, payload, sizeof(payload)); =20 bin =3D cs_dsp_mock_bin_get_firmware(local->bin_builder); @@ -341,7 +341,7 @@ static void bin_block_payload_len_garbage(struct kunit = *test) cs_dsp_mock_bin_add_raw_block(local->bin_builder, cs_dsp_bin_err_test_mock_algs[0].id, cs_dsp_bin_err_test_mock_algs[0].ver, - param->block_type, 0, + param->block_type, 0, 0, &payload, sizeof(payload)); =20 bin =3D cs_dsp_mock_bin_get_firmware(local->bin_builder); diff --git a/include/linux/firmware/cirrus/cs_dsp_test_utils.h b/include/li= nux/firmware/cirrus/cs_dsp_test_utils.h index 1f97764fdfd7..877fa4a496dd 100644 --- a/include/linux/firmware/cirrus/cs_dsp_test_utils.h +++ b/include/linux/firmware/cirrus/cs_dsp_test_utils.h @@ -126,7 +126,7 @@ struct cs_dsp_mock_bin_builder *cs_dsp_mock_bin_init(st= ruct cs_dsp_test *priv, unsigned int fw_version); void cs_dsp_mock_bin_add_raw_block(struct cs_dsp_mock_bin_builder *builder, unsigned int alg_id, unsigned int alg_ver, - int type, unsigned int offset, + int type, u16 offset, u32 offset32, const void *payload_data, size_t payload_len_bytes); void cs_dsp_mock_bin_add_info(struct cs_dsp_mock_bin_builder *builder, const char *info); --=20 2.43.0 From nobody Sat Feb 7 18:20:27 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 47B492BD5A8; Wed, 31 Dec 2025 17:27:29 +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=1767202050; cv=fail; b=jbg2SmxvRQsJ8m6gweaBaBr4Wc2Lp60lFvavNJzaq1LtqfhjKsrjU34KJiYgD00+u/FKGBjgpO4zB9XmZUXjYvcZzE04LLsfGakuwq3MavIriOQ53kTlIwF5iY5JSZ1ypwm4pnBE21LQdWjpZjvSBezKL+w8GZWgNWjMzMOkGLY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767202050; c=relaxed/simple; bh=mmQWW2/Zt6gTkvMjDfhQJJIclsFvxB3a443lYWHcnKw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Qknb6iRuYmBeZI/cFNi0WsYYkJh88Haw9x485MUElv2HmCVp4DB5KdB2MVWih9adGK/mhT/Tj3omGSrbq7i3LxoZfjracYLIBPM7vCUsEewjq0LANsCsiFiHPEgvDbKFlg+UL2e3ul9iiHjINUvqn9ETwMvhrm+PnzXmcpUB2g0= 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=WGvlLIYG; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=PN1chWhG; 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="WGvlLIYG"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="PN1chWhG" 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 5BVGfx6O901218; Wed, 31 Dec 2025 11:27:26 -0600 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=4dzoCW/vrQP8M3Jew7qP95vlV55pQUYmFH0d2ssQdL8=; b= WGvlLIYGVD2BbNSjyNpZ9bSsHKMnentHoxnu374yZiD5KaxBCyPGV9LzMvojkghH kVhU+05VCYu1tCOq3nShlC5fpPM0qRv3dPis04dxd9BBeo5vucO73vRL2tyja1wb Ln6TrYeEr2wyRfVLlX1rH0FXpc2/IIWwnGm4Jj8W9GSM4Fgug4BML4UgBrfPiduN thO9A68wMlOeoEoj2dHNzoI7xts1AvVvYvmyZHxzMSq3rXoHRT3pi6hkWdZ+PwVW z0aDqXPPcX1SYNm0/yi7YvORxGaTpfR4switAfpG2JYKy3w3soGCLNOIdk7y9/My FtV6jrmcuvyK5aDM+9JgSw== Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11021141.outbound.protection.outlook.com [40.107.208.141]) by mx0a-001ae601.pphosted.com (PPS) with ESMTPS id 4badr3cakt-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 11:27:26 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YhDwmxA4D9KWp4xBhcvwOjivrqosXgELnTor1/t3AATx6CDyUcb09MJ70xUyjXNFJV1p+VrMTMxmMtDQi60IZrNApOMBv2Ij/GaTV5V5SZw1LseKKcUgMYb1bG96BgFD5AVbHcgB8ZohrKYcdXagWWJn1gAjFYDhAFf8/bPtc7hs4ionoQCDWz44yjKVKJkWsVHDDEMadoji6PGmyDWSOXglA2z+K1/Muxg7DoL2h3F4PAOJvJtKBNoOLxDilupohZEqQOddRQyPs5+JTyw3Wdx76ft4z0CvSdnmGUbDqn14PQetm6AJdYP6PgvdkAOmia3H2TWgQOnxoqs5wE6dyw== 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=4dzoCW/vrQP8M3Jew7qP95vlV55pQUYmFH0d2ssQdL8=; b=ozClgGHXpKulIDpw+BoAXfrTzDtF30mQj0to+twzauxfZu14gS1iRp42Wgd3RqrkjV+vextvyjpqxueHQSVO485qoMPgMMy3L1/pFNl30AlYNRZhDDagxMa2k2VvXGaQwsTcLUr/TIJKKBPbzh+FzfD3potpQpgKtfdLop7SmlQoGG0nanKnZra4aBz8XIDpeiVl4+F6uODXEwaNK2RbKtL/eZUC0go5ih3xNEvr1VeUyuH3OX/1xQiv9RE4Pd1UgoGXKHfaG8y2LbXD12G9qsp99NHUSdXm6oJWyRgxGmMypmNN11xrzatG+SJKAFakUCFkCgUyEfgIHulph6fAVQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (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=4dzoCW/vrQP8M3Jew7qP95vlV55pQUYmFH0d2ssQdL8=; b=PN1chWhGcDOddM9ubYaAdGLN8m4bsFWdckje9Aau0D5BHG0JeI0f8X9z3Rja8XelZkNN3NMTy+H483SbKxwRmYhl2VUTNO/eMzmhDxuf5/u3AlT6vOz4VRjhOUUUf5SifDPJvSo0mTtjHPs2ll52+3tWNZysR2gocjGIEGKrkzU= Received: from MN0PR03CA0012.namprd03.prod.outlook.com (2603:10b6:208:52f::25) by LV5PR19MB9082.namprd19.prod.outlook.com (2603:10b6:408:307::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Wed, 31 Dec 2025 17:27:23 +0000 Received: from BN3PEPF0000B076.namprd04.prod.outlook.com (2603:10b6:208:52f:cafe::ac) by MN0PR03CA0012.outlook.office365.com (2603:10b6:208:52f::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:20 +0000 X-MS-Exchange-Authentication-Results: spf=fail (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: Fail (protection.outlook.com: domain of opensource.cirrus.com does not designate 84.19.233.75 as permitted sender) receiver=protection.outlook.com; client-ip=84.19.233.75; helo=edirelay1.ad.cirrus.com; Received: from edirelay1.ad.cirrus.com (84.19.233.75) by BN3PEPF0000B076.mail.protection.outlook.com (10.167.243.121) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:22 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 1BD4D406541; Wed, 31 Dec 2025 17:27:21 +0000 (UTC) Received: from EDIN4L06LR3.ad.cirrus.com (EDIN4L06LR3.ad.cirrus.com [198.61.69.19]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id C99E9820249; Wed, 31 Dec 2025 17:27:20 +0000 (UTC) From: Richard Fitzgerald To: broonie@kernel.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH v2 5/8] firmware: cs_dsp: mock_bin: Add function to create long-offset patches Date: Wed, 31 Dec 2025 17:27:08 +0000 Message-ID: <20251231172711.450024-6-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231172711.450024-1-rf@opensource.cirrus.com> References: <20251231172711.450024-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: BN3PEPF0000B076:EE_|LV5PR19MB9082:EE_ X-MS-Office365-Filtering-Correlation-Id: f1234bd5-45e9-44b1-2906-08de4891dbb8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|61400799027|376014|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?nIf4FWJTWQrxItiRe09k6+QGWkmB49fH+PETAMq4aew+V5pvk6DVJBJ4w6Ez?= =?us-ascii?Q?NP8mADxdXfZt1mK1hMC8QqrfTR/IlK1L205MiZhGv8+xSMhU5TRrw/W2CDIw?= =?us-ascii?Q?8h3U/Zs0/n6/djaDsk9iEYxDVz+C8Xny+vl7pHgZ9OgusJxU2Bcs+CM+mjPI?= =?us-ascii?Q?sWezH41SYNGMXYUbhccQsm7fMkeBxvfWFPfknD2mmAch3vW3P11qSnYg8s+z?= =?us-ascii?Q?O+w+S4vLmeu4UuHPq7r5Iy/iD8gqoqWDS8bGdQzAyqOkvAvnSwPqK6H2yp+Y?= =?us-ascii?Q?WXkWHKAo/s4hrh2NSr7FFB6h+MuaO2SouID4W/NCLL6oOcqMYpxE6FsLPKo3?= =?us-ascii?Q?otzueKTwt1+Ry/mg1ZpLBoTHupynQBP9hJq13ZdbcSwzXSrXsuxkIDTcci9H?= =?us-ascii?Q?psoFs4ZVUQOoGt9bWnRENa4YOGzfE55WEizdJoRdpX7iXRg0VBtLmhIVetiu?= =?us-ascii?Q?zUrOoIBFnyVtwMtRGbiUF69HGg5MEgViXULGqg1VlCBZlKtxG0ivb9z6wp50?= =?us-ascii?Q?SsE3WsVhm8zHETlwYSIpo7BimyHU2ketHdfeklDN7PnRROEgQ/ps0pFLeDMy?= =?us-ascii?Q?viZCHT8Czd0VPWyRF4Nod6cU8EYqTqYSLiChJx6my3QpLQ8EkoaK6qlumFsu?= =?us-ascii?Q?/5lLW3D71S0Zd6apffUtKASsFUpF9XRt6yEFNezARyx4tEhcA3dSSUaMhiQA?= =?us-ascii?Q?NDquCWkkToaK17JUijr046E98r/P3am4E99HfUZJKs5OxI+ILVDvI5lJB3IB?= =?us-ascii?Q?NkBoj1F1fdMHOvzd8RpjUijzLq+cvoSYMN8ONKY8DlF2pDCQQaYn08setsXs?= =?us-ascii?Q?PN95s2dY6RglAdPZ8AiP3ifkn1oy4skxNYcDdZbSWbE6CGD69ToHUtlXw/uR?= =?us-ascii?Q?eNQQm/u4HU0zvSkkJ5221pr3M+/4SvZ8D5TkcPAJyXuFS1wOr3JyOOjbJzx5?= =?us-ascii?Q?ZqkBZ3YCXH+SLwwWgi12QTDo40yKrEdANy/7U+c5iGpk/ODpHiVyJ4NFkeKV?= =?us-ascii?Q?dSmLTxgpchhnj6koJJ95KEB2zjUrXoZ7/0I/H9tHD0mOlzk5oiriPw3gQFDW?= =?us-ascii?Q?7+asO58uYRm09nkLgJ+g/vC6S4B7nzwJq9NaFli4IQU3NHUtELD3grrD0URN?= =?us-ascii?Q?RAJKG7NvEicYbH3093XilHoFuvol+0SgLWGXooj1Npfio6Aka2jEVsQOMW/r?= =?us-ascii?Q?iLZKM2kxkfnLS0HhKa6qlVQ2JUtHEcLA/UcYlAB5mjsMngz3J9pu/f1McN95?= =?us-ascii?Q?qKuusdRIBKIheZPIeEHH5nScZB8UJSecf/+F3L9dcgQ6W6SgH0TmxIZE2Iq0?= =?us-ascii?Q?rtMFmdAdWdgLiknIewkttpnTbq8u7Yy1fDmwoerSrv54WZMM2owzAmiY4tZH?= =?us-ascii?Q?6xeIxM6p+gmT3GGNP+Ou8rmbrYtQ0/RKj3DATZ8eHZQSCakvHg+di26yUWAw?= =?us-ascii?Q?2e8VLyRAwq46uV22SzKCsbRrEPu+kz51jtak/6dW6cwQNnLXLTqItypaEEaP?= =?us-ascii?Q?vWFlx2fCiK7wO01EI+DmaAWuFscclPDthRXLqulPFiKcaVk9MAWaRmwWqE5E?= =?us-ascii?Q?2C4/NujwPzD4ZCytJ7c=3D?= 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)(61400799027)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1102; X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2025 17:27:22.4797 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f1234bd5-45e9-44b1-2906-08de4891dbb8 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-BN3PEPF0000B076.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV5PR19MB9082 X-Proofpoint-GUID: vT60nyhjBLxDH91Wzm_LaRXfflq02i8U X-Authority-Analysis: v=2.4 cv=Z8Hh3XRA c=1 sm=1 tr=0 ts=69555cfe cx=c_pps a=azlkv/KBQR0ub+Yip4pvTg==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=w1d2syhTAAAA:8 a=E_BJAL8Xh-jSrSI2yN4A:9 X-Proofpoint-ORIG-GUID: vT60nyhjBLxDH91Wzm_LaRXfflq02i8U X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDE1MyBTYWx0ZWRfX9DgMSCgSMTVF zsWWE2Vbi3MtHCa5ReWtuoL632Ts7S6k3g3QZgiLoRDI+cDZ56MfnOnMc2pF055cqQEN3oidPy0 nAV7G9eUmLc4mr1P2FGmi2NOBgExKE8+6ymZ3lvsL7VU6jC7nZFwb7HKWsunk/w3yKE+iH+nlkJ dnNjW+UnB2zPq2m4Ot4bWGLGukI6c/fHIjeSUy6FzElerhCac7EznGz4YPjxJr5oLXDfrX0+27H FvLBfj/9oGO9AUCIDdRQT/UJCiwErt5ITbcb8Q891dkyGPwoJ5+GcoYOsUpqIE99c+j/JVpBcEp kMZgI3/9WYbYRXgQkrKtxlfTbyIJq1u3M2AIKx4g9h1S2LTwbtRm2xWwPs3f9ME1SiZyMASozPK zMJaXyeu4Zfw+aTG33jCNpaNnzzzDyB2mjti6fubhj7FQHDtikIuF2EHUh9QMSMjGeARaHcuuIQ ciaoaCp26kJMuD+mLWw== X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" Add cs_dsp_mock_bin_add_patch_off32(). This is the same as cs_dsp_mock_bin_add_patch() except that it puts the offset in the new 32-bit offset field and modifies the block type to indicate that it uses the long offset. Signed-off-by: Richard Fitzgerald --- No changes since V1. .../firmware/cirrus/test/cs_dsp_mock_bin.c | 28 +++++++++++++++++++ .../linux/firmware/cirrus/cs_dsp_test_utils.h | 4 +++ 2 files changed, 32 insertions(+) diff --git a/drivers/firmware/cirrus/test/cs_dsp_mock_bin.c b/drivers/firmw= are/cirrus/test/cs_dsp_mock_bin.c index bc6b8651259c..635e917e0516 100644 --- a/drivers/firmware/cirrus/test/cs_dsp_mock_bin.c +++ b/drivers/firmware/cirrus/test/cs_dsp_mock_bin.c @@ -163,6 +163,34 @@ void cs_dsp_mock_bin_add_patch(struct cs_dsp_mock_bin_= builder *builder, } EXPORT_SYMBOL_NS_GPL(cs_dsp_mock_bin_add_patch, "FW_CS_DSP_KUNIT_TEST_UTIL= S"); =20 +/** + * cs_dsp_mock_bin_add_patch_off32() - Add a patch data block with 32-bit = offset. + * + * @builder: Pointer to struct cs_dsp_mock_bin_builder. + * @alg_id: Algorithm ID for the patch. + * @alg_ver: Algorithm version for the patch. + * @mem_region: Memory region for the patch. + * @reg_addr_offset: Offset to start of data in register addresses. + * @payload_data: Pointer to buffer containing the payload data. + * @payload_len_bytes: Length of payload data in bytes. + */ +void cs_dsp_mock_bin_add_patch_off32(struct cs_dsp_mock_bin_builder *build= er, + unsigned int alg_id, unsigned int alg_ver, + int mem_region, unsigned int reg_addr_offset, + const void *payload_data, size_t payload_len_bytes) +{ + /* Payload length must be a multiple of 4 */ + KUNIT_ASSERT_EQ(builder->test_priv->test, payload_len_bytes % 4, 0); + + /* Mark the block as using the 32-bit offset */ + mem_region |=3D 0xf400; + + cs_dsp_mock_bin_add_raw_block(builder, alg_id, alg_ver, + mem_region, 0, reg_addr_offset, + payload_data, payload_len_bytes); +} +EXPORT_SYMBOL_NS_GPL(cs_dsp_mock_bin_add_patch_off32, "FW_CS_DSP_KUNIT_TES= T_UTILS"); + /** * cs_dsp_mock_bin_init() - Initialize a struct cs_dsp_mock_bin_builder. * diff --git a/include/linux/firmware/cirrus/cs_dsp_test_utils.h b/include/li= nux/firmware/cirrus/cs_dsp_test_utils.h index 877fa4a496dd..51e99f47e90e 100644 --- a/include/linux/firmware/cirrus/cs_dsp_test_utils.h +++ b/include/linux/firmware/cirrus/cs_dsp_test_utils.h @@ -136,6 +136,10 @@ void cs_dsp_mock_bin_add_patch(struct cs_dsp_mock_bin_= builder *builder, unsigned int alg_id, unsigned int alg_ver, int mem_region, unsigned int reg_addr_offset, const void *payload_data, size_t payload_len_bytes); +void cs_dsp_mock_bin_add_patch_off32(struct cs_dsp_mock_bin_builder *build= er, + unsigned int alg_id, unsigned int alg_ver, + int mem_region, unsigned int reg_addr_offset, + const void *payload_data, size_t payload_len_bytes); struct firmware *cs_dsp_mock_bin_get_firmware(struct cs_dsp_mock_bin_build= er *builder); =20 struct cs_dsp_mock_wmfw_builder *cs_dsp_mock_wmfw_init(struct cs_dsp_test = *priv, --=20 2.43.0 From nobody Sat Feb 7 18:20:27 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 483972BDC3E; Wed, 31 Dec 2025 17:27:30 +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=1767202053; cv=fail; b=Lh6Sy+GAjSQGi0jZ/wCZsOV8WRcaMJFYIMFyERtyb1AYxO8GBfcbWiz3+YjuKa1UvQBEyPFrH6viC3UGMKR45RNPiecmKQYfvVLKFX+5AwSRio59ZUa3NUnIe1cMRYK/YfgtNKbJfuk/xqdXCUw37hyAqUnlwWO5QjCc4K0ndd0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767202053; c=relaxed/simple; bh=SrKhjEEPm0JvM0O70UoT9ZlZyS0Lg6Ugg9EE4VlFPYA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=B16Bp+/HY64yULdoSkibaLjf++6iQ0Y+JKaArOONkj6S5TCSUcEEEI3IAKc5Jx4MDUriAjV9r3bHzNgS06de7ci/4UAB/JVLUGds4UCSsueQ7SVzNh+zOq1SSrhn52Eul5qE3IA9ntLNwax8mrnsWdlTeLmkcC20vXeQ5uhb6LY= 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=jxYPWgJK; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=TE0IqTg0; 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="jxYPWgJK"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="TE0IqTg0" 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 5BVGvqof139094; Wed, 31 Dec 2025 11:27:27 -0600 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=65iO20CLzIE66iN1053wJXMRGgysgU1SoteRju/CD/o=; b= jxYPWgJKsUvztzAWVNpMv5yy+mAieJxk7OtiF3GuQs8qEp0AhPQld0A8qb60vVgZ /JNhMyLZ0A+Z1s2OYt9g09V93dC0m8o72lRrli6hKJeNep9pDT9YcljljjEEDvPA UulXNK1m/i5aB0ZivuVQBIYQoziPs/N16rXmEPMUCvrlXyGKxI+9842L1vGcWUSb VuN93m30GAYtQz4lmsmQH/Jqb/w1SQosrW8iYaHQ8Ukpui/+aoZVMqQpS1+4PKp8 crki9XW3eWg0CUB1xnEYzlxo6bGDhI/YQfxzCfN41J8SU+lHfzytcaOxHxAVhCBO CtOGsRbUhqp5T/hdH1kxTg== Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020134.outbound.protection.outlook.com [52.101.46.134]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4bacrmvcsp-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 11:27:27 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GuBWF4wMd6el2Uj+CkhgONugmzdmiQASZP9x0I5CzKNtWMa8QAUFIz+Ryo3Oos6ktjzRJdCBeRdx/KPpHHy8hVKHDSz1UFgRBEt4lHu1SlpUxIDWTFySCV8pNLQW4cexLFDOg+TCCe/DXuXxVZvfDkuKaHAKkVs32HBlCDIBLYP54AbtZbRrpjFuFmcklOcv/KbAaR+MTe24Ubm4vFEkQH70es1lURPR/dyVDnpq3l8ponh07gJ0L3nN/1nucl0BMTz5r8k+2QGr7eQ7Vy6vg1+abVvsBHKrrCjIgcBn2AV1hBZByvjQZn0EMVqkBTiirxSw1FHVKnaDBTsNIsN3RQ== 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=65iO20CLzIE66iN1053wJXMRGgysgU1SoteRju/CD/o=; b=QzzRmsVmdgBW/Tk2fzxEzH38AHsxJ2eB57YhXP+YuYoO4ZfRsq2xOjly+4Gzc9kdOgKivpM+k7FtsVeQv/1Ba5w5iwc8xmxFHuhla7RJdbccSdmlslNZ7x8bh/ksofXaRoDEPiV4I8QlHqjxdAAUbXy8aBYpEiSaDJhXRMxYqOLgj9k6GftW7gQ0phEi3j5z5TZyQEAG7QTRb0hkOHeTLoaFyumPBKUtU2L6l08wK2oSYiJ+QwnIAT827CciN47FMQlQAfKohXdPBRacp1d3nz+f7ce4zbLIVI6eGdJL/UbDIR0kFNJ8bjiTqAlF2ZAwjKvAun5uLled+34O36NIRA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (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=65iO20CLzIE66iN1053wJXMRGgysgU1SoteRju/CD/o=; b=TE0IqTg0B5z9a79MSG+ZZcGko8z9A/fPOfkFVBL4thDcrFjTJraNZm++MpI0C4ZbGwC3VOQwVy5kycgz+HJ2AorxJXhu3YSw+bHCzfPZTNL0NnGOQspIeX+32YzUpMmMfAdJYFf+EXhscC1vpo+RRNq4Qu3qti+/8M/r6iDHr4w= Received: from DM6PR02CA0106.namprd02.prod.outlook.com (2603:10b6:5:1f4::47) by CO1PR19MB5015.namprd19.prod.outlook.com (2603:10b6:303:f0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Wed, 31 Dec 2025 17:27:23 +0000 Received: from DS3PEPF000099DD.namprd04.prod.outlook.com (2603:10b6:5:1f4:cafe::5e) by DM6PR02CA0106.outlook.office365.com (2603:10b6:5:1f4::47) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:21 +0000 X-MS-Exchange-Authentication-Results: spf=fail (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: Fail (protection.outlook.com: domain of opensource.cirrus.com does not designate 84.19.233.75 as permitted sender) receiver=protection.outlook.com; client-ip=84.19.233.75; helo=edirelay1.ad.cirrus.com; Received: from edirelay1.ad.cirrus.com (84.19.233.75) by DS3PEPF000099DD.mail.protection.outlook.com (10.167.17.199) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:22 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 728FC406543; Wed, 31 Dec 2025 17:27:21 +0000 (UTC) Received: from EDIN4L06LR3.ad.cirrus.com (EDIN4L06LR3.ad.cirrus.com [198.61.69.19]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id 2BF64820249; Wed, 31 Dec 2025 17:27:21 +0000 (UTC) From: Richard Fitzgerald To: broonie@kernel.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH v2 6/8] firmware: cs_dsp: test: Increase size of XM and YM on Halo Core Date: Wed, 31 Dec 2025 17:27:09 +0000 Message-ID: <20251231172711.450024-7-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231172711.450024-1-rf@opensource.cirrus.com> References: <20251231172711.450024-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: DS3PEPF000099DD:EE_|CO1PR19MB5015:EE_ X-MS-Office365-Filtering-Correlation-Id: e4096172-2a86-450b-d928-08de4891dbe0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|61400799027|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?mwsQ1pIwqzYBWYnXkJVKJZ94+ER8GyieUtt5KuKxWUTAzmf+xsgLC2BynaYU?= =?us-ascii?Q?6zbfLJ0K2dDQyNWmU+zB8HfnkSjwZmdSCWxhkbRs7u7IHdivQONjX+SfRCdN?= =?us-ascii?Q?Up2y5ZRnqKfGfZ4zP3eou3omF3IBGNVEtJYWQ2Frqjr40wpRpTgJN2NrX9Zh?= =?us-ascii?Q?5luJM0jvJStGnbNE9tooThoDPED0qwt2ivI2EZTAJpHoofuGlqgZhseZFiK8?= =?us-ascii?Q?UQPnyhNRu37Vr5FkMlGtxAOGlBUZa20i9WdJRJUH4soOxHqf6ogdcyhx1bZk?= =?us-ascii?Q?y7me2wiQy+rF4h9qxEqvAv93XS2etIzhs2HB7rZlkodGdBPLRHLB1oEQXHE8?= =?us-ascii?Q?2k9PtRhSGmAWoUe8mXbjnbywV8UNbYPw3xmnLu5p6CvOR4I+aXsYEXExWd8V?= =?us-ascii?Q?xaRbf2xzEjpSjtEhlJgNNmiUerA1cYuXHpiukfKC1DgyKWWqpDxFuq8gwv5l?= =?us-ascii?Q?17vTIGzKFJpxHwCPIeRATi51/A8JVixGVQiYF6XxVp73246uTuJQW55ea+zi?= =?us-ascii?Q?cRmhLDxtzkZ8VCNpLOHQUmRPs0mtlYvGiOP4Yvq/pvpSiZr8zObw2g84VbFi?= =?us-ascii?Q?ll6JX8Z8Pc6LBVcTxkAJ0Aw1tk8lYyUD/iAJNxhXvMh4kGhJkBYXZckJD2/7?= =?us-ascii?Q?Te7MN3KvsG9blzdr1k16Q91I4n9Vopcu/PrZ4AaGCR7NnGKh0xyx/2cL+h8S?= =?us-ascii?Q?RBmPJGJxpbXlXAqwutXDNuLUMyhLyG4VFPxkehEDeQygSQuUSro+r0u6HzXQ?= =?us-ascii?Q?A38GT+uLNS6JOyntt/vciozXAkZ1RtPchSrX0xZ3o4grczMn3V0KJmRA6of1?= =?us-ascii?Q?oDo/zfANKQ5/yvY2SVCD4xEI0GFKYGI+b+iay2U197QdHAJQJb2LUJ5ZeGUv?= =?us-ascii?Q?k66KXnYGxCgI1M9LUVOP1tf9eJWVLHifcd0pWmcx+yo6BeQuXfi0y1SjqXhn?= =?us-ascii?Q?fVebXOPeJxmgtZRlT7kwm16rbTPGs5/V5gHJD3pIi6gm5LAO/89nSzSq1CAc?= =?us-ascii?Q?TLO0vboyDOAhdfLJTcylkQ7/X0CiUCKtHW7rwlRf5A3H7U1a0lGKlAa43Wi4?= =?us-ascii?Q?SHZoiXLIb3LVMyafC2qKzcy5eq8cpEU7Kv6s5abeUwYPbpwrpKCajHTO2zjW?= =?us-ascii?Q?TOChBOYpRhzpq5h/lkhRv+Tinm3Aaav53qXet4l3CGEAnaRj3a8MmAyrMoih?= =?us-ascii?Q?i1ati6ccWlZ4D03H3m/NWNjym4VChIuOemdHjir7IBwOv/kxZHHtYw7SqOdz?= =?us-ascii?Q?9DOnE6x1tnO9TeLiMtypuThnKulEgbq6RnNcf+7VTJd6qVr5oKi3ZCCO107D?= =?us-ascii?Q?1JFwCfq5uG1iFInul2Vya8x838hKwwM6WX1Kflq7TfOklgLy48J9QJiNLhwW?= =?us-ascii?Q?G/0dCdr42OLtoS28Fel9AoM85mDYX0bRKDLPp1trEAYm38qPxo78H/BEI2ek?= =?us-ascii?Q?NHvleqrHFN1ZJIEW74Cc0PoX6p7eNRxSCRg6NmhTI5dtt6HRKdmALibVq1uH?= =?us-ascii?Q?uTceKliKltUz02P/12Uc/+NSPvgIEV8uQo3GInTUnjngUz/oDMrNe3huC0YF?= =?us-ascii?Q?j2tUfrcda0L7MKCnlcs=3D?= 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)(61400799027)(376014)(36860700013);DIR:OUT;SFP:1102; X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2025 17:27:22.6863 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e4096172-2a86-450b-d928-08de4891dbe0 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-DS3PEPF000099DD.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR19MB5015 X-Proofpoint-GUID: jAw0hcQvCfRKD3CJVqTaU4vnvOLohSys X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDE1MyBTYWx0ZWRfX0cgVZ822PK5/ C7rj7RBsQrQDf+zFGrG7zMSAlibCicuAk40By9kUHIAINRui9mtwRqDZDUYix75bsst5eL7bvvL B1t4ANa2Jc2YA63ejMvg+GjUWS5qT+XL+m33riqqnnf8cT/ThrdRvabzL/tJvhQf1o/WMp8KO/V nL4bWfe2gGrYjHLXcKtGaKqKa6eSt+6MVMIaoiUKP1pnLLAGOB4/T1WwheaSFVr4dN2q4x3opQ7 pj4NGcF0G7/xHe7FKH56ovdEe+cgu5dXKtWnv0pQ3oeEUs/PwqMrPs3n9moOFyF/xGFBpcMtMgB DQd1hBfdMMELG+HW7mlkHvVBtFZK4ZWtpjtuly7u+gIHuXiRXvunLS3te1RBpnKOJaM/J89/+xk /SFLIQrCKhuZWW+MS6dBkXrdIhH5a7gbs60T4OfqkC5mw+/GckOJ+bS/b58F3j0okYk/wYT6Wmg 7sOuU23m4jSWavepEVg== X-Authority-Analysis: v=2.4 cv=bJgb4f+Z c=1 sm=1 tr=0 ts=69555cff cx=c_pps a=1nHe0GVLCxVa2bATzrft2Q==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=w1d2syhTAAAA:8 a=QJCE3FmpgMk_I34YA98A:9 X-Proofpoint-ORIG-GUID: jAw0hcQvCfRKD3CJVqTaU4vnvOLohSys X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" Increase the size of the XM and YM regions in the mock Halo Core register map for testing patch blocks with 32-bit offsets. Signed-off-by: Richard Fitzgerald --- No changes since V1. .../firmware/cirrus/test/cs_dsp_mock_mem_maps.c | 8 ++++---- .../firmware/cirrus/test/cs_dsp_mock_regmap.c | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/firmware/cirrus/test/cs_dsp_mock_mem_maps.c b/drivers/= firmware/cirrus/test/cs_dsp_mock_mem_maps.c index 95946fac5563..7fb404425fd6 100644 --- a/drivers/firmware/cirrus/test/cs_dsp_mock_mem_maps.c +++ b/drivers/firmware/cirrus/test/cs_dsp_mock_mem_maps.c @@ -23,10 +23,10 @@ EXPORT_SYMBOL_NS_GPL(cs_dsp_mock_halo_dsp1_regions, "FW= _CS_DSP_KUNIT_TEST_UTILS" /* List of sizes in bytes, for each entry above */ const unsigned int cs_dsp_mock_halo_dsp1_region_sizes[] =3D { 0x5000, /* PM_PACKED */ - 0x6000, /* XM_PACKED */ - 0x47F4, /* YM_PACKED */ - 0x8000, /* XM_UNPACKED_24 */ - 0x5FF8, /* YM_UNPACKED_24 */ + 0x8fff4, /* XM_PACKED */ + 0x8fff4, /* YM_PACKED */ + 0xbfff8, /* XM_UNPACKED_24 */ + 0xbfff8, /* YM_UNPACKED_24 */ =20 0 /* terminator */ }; diff --git a/drivers/firmware/cirrus/test/cs_dsp_mock_regmap.c b/drivers/fi= rmware/cirrus/test/cs_dsp_mock_regmap.c index fb8e4a5d189a..5167305521cd 100644 --- a/drivers/firmware/cirrus/test/cs_dsp_mock_regmap.c +++ b/drivers/firmware/cirrus/test/cs_dsp_mock_regmap.c @@ -157,22 +157,22 @@ static const struct reg_default halo_register_default= s[] =3D { }; =20 static const struct regmap_range halo_readable_registers[] =3D { - regmap_reg_range(0x2000000, 0x2005fff), /* XM_PACKED */ + regmap_reg_range(0x2000000, 0x208fff0), /* XM_PACKED */ regmap_reg_range(0x25e0000, 0x25e004f), /* SYSINFO */ regmap_reg_range(0x25e2000, 0x25e2047), /* SYSINFO */ - regmap_reg_range(0x2800000, 0x2807fff), /* XM */ + regmap_reg_range(0x2800000, 0x28bfff4), /* XM */ regmap_reg_range(0x2b80000, 0x2bc700b), /* CORE CTRL */ - regmap_reg_range(0x2c00000, 0x2c047f3), /* YM_PACKED */ - regmap_reg_range(0x3400000, 0x3405ff7), /* YM */ + regmap_reg_range(0x2c00000, 0x2c8fff0), /* YM_PACKED */ + regmap_reg_range(0x3400000, 0x34bfff4), /* YM */ regmap_reg_range(0x3800000, 0x3804fff), /* PM_PACKED */ }; =20 static const struct regmap_range halo_writeable_registers[] =3D { - regmap_reg_range(0x2000000, 0x2005fff), /* XM_PACKED */ - regmap_reg_range(0x2800000, 0x2807fff), /* XM */ + regmap_reg_range(0x2000000, 0x208fff0), /* XM_PACKED */ + regmap_reg_range(0x2800000, 0x28bfff4), /* XM */ regmap_reg_range(0x2b80000, 0x2bc700b), /* CORE CTRL */ - regmap_reg_range(0x2c00000, 0x2c047f3), /* YM_PACKED */ - regmap_reg_range(0x3400000, 0x3405ff7), /* YM */ + regmap_reg_range(0x2c00000, 0x2c8fff0), /* YM_PACKED */ + regmap_reg_range(0x3400000, 0x34bfff4), /* YM */ regmap_reg_range(0x3800000, 0x3804fff), /* PM_PACKED */ }; =20 --=20 2.43.0 From nobody Sat Feb 7 18:20:27 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 35EFD2BDC3F; Wed, 31 Dec 2025 17:27:33 +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=1767202057; cv=fail; b=Z76phKmhtbyOjtzHhrrzreg+mgYkHMa06ZKAZJO1kMYCaJdTwvUjKg/OAbP09d10M15iFU5ZCWUevNVNOkvkcEnpN6EZ/hzw1G0jWoWdaisr6ebkROjzoIyfefOp9RlQPgaoQgnKi1k+Ae5w+SM3hIp4z5CJcZLIrVOfHIYTA0Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767202057; c=relaxed/simple; bh=1XKYdUomPW9clm9KBwX3ciyAiBs3G0Fvytvr95S0WeY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nbbvnW9DzbyOXK1EB2xELLwJG6VmcmCy9rnjf39n3DZxJg4DhoIr6xYRMNOTG7hS5uZ9DW2PiGXnWeqTlj2FLF92OIQxvz038ZTlL1S0Brsl8Uj5MhiIaQyqNcO9acO8b+erUp1YDjtC4BuDJ9Gsm61STrF0gBCopKYciQy2PoU= 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=a8huIOAa; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=waEbdQBj; 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="a8huIOAa"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="waEbdQBj" 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 5BVGvqok139094; Wed, 31 Dec 2025 11:27:30 -0600 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=LnxPPMJVjbWGZmCR1NYwWupvftNViJbSIcrB544kV3g=; b= a8huIOAaGfnXrTdd4wUtdcSUxG1E7CvUyKEcC6dkfhbYaHI6Jtb8QCchzWwY96LY Fm/dRiJzn3W0wnP8p+Ob53bb1dYD7ILFusPPwsRdZWCvrHGopJ0Vhatdu1LeS8OA s9zu0gt9o98QCEclK22pugioxM6vYXibLWNazIQB6ssGdOXhaLkpP4ab15+PkH44 r5IZ07ZAdSc9I5Uf9Tdhm8wHT84R2RMJRsO5lO9mkDuueAB+z84UoHsmenISiRfR OBoleQpYN0panbjP2Q2Zl1Ur9D9oGrnOqv9RWzWbJoLkWHR8vNWhUXrgZNS2Tf84 EEiQaNPpujyRyCziT2mNQw== Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11022116.outbound.protection.outlook.com [52.101.48.116]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4bacrmvct7-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 11:27:29 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=la3MIroKxTyuIzjCeLUiG0W3Lb5A6cSwfsYCkeucNcTQo+XJbxHnxFZS6w68xwhqqKodkconRoeG1c8dJ3PHHry9LKXQtr5g1Kv84B7emhgNE/6kLY8sSKFgH/emJQex1O/90smfM+DwCk0QaHI9K8TbOmM7BCtBjZZhYDD+NERmSNmTA3hAb3MOHyZZ7QOp5yxM8aOGojokgMHlbWb1hIHM6QEb9nCs3vGlYKAmSCYn++ifWTnIA7XWcgl8yF2WUQl0R3SZr9E+w+yA6oDsEQIKU1wkusUP39KJILZ+L93fDgLVbckyrYPFT0/iU2OxyvoEXNvRuLAjc2IEO5Ww8Q== 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=LnxPPMJVjbWGZmCR1NYwWupvftNViJbSIcrB544kV3g=; b=j1gcJXyGW1ge+7IpbxdE1w+owXVTjNT0rZy79VPSSwX89dySs9oB4T/ws8PQTnVGnVRmJp0j6WAJTnPMtL/+UAfFG5mULK8UPmUymYNO3ekF7t5l6O5BW+Jo7BDG+lvdOn7TMDJf8G3z4iE7pxLEZeZkYe5IcQOU0IL3DEeHhh+eyoC/rtgVvqzb2i2+8QZAjF+B9X9nom0OHozOZnHzvmD6ySZCkwi1Y25EeOLEXQi8z+wrhcvhvSG4fowHQhotvU6VLrne6s7By/fSyrAQSJzlQRdDcbxMb9sfXjUEgx/fagsg8oiTHh36hY8e8nO2k6Vc6GaERJS8uApOZj8Vbg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (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=LnxPPMJVjbWGZmCR1NYwWupvftNViJbSIcrB544kV3g=; b=waEbdQBjtNlqZi4xkxZjXaUxEGSdXNww46O9KZUAapYPXSg0MacjtgqBloTSe9uhR7WHCYNZ1uQY6UP/+brKq2XTy7mg1F0G+8/MBDh2v2DX0bAwnu75QrCZedd0YwLAh4+Vp319r+WyIB64SdKPWf+TuX0DvV3R0vXov126P4E= Received: from BN9PR03CA0796.namprd03.prod.outlook.com (2603:10b6:408:13f::21) by BN5PR19MB8837.namprd19.prod.outlook.com (2603:10b6:408:2a8::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Wed, 31 Dec 2025 17:27:23 +0000 Received: from BN3PEPF0000B073.namprd04.prod.outlook.com (2603:10b6:408:13f:cafe::f9) by BN9PR03CA0796.outlook.office365.com (2603:10b6:408:13f::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9456.14 via Frontend Transport; Wed, 31 Dec 2025 17:27:23 +0000 X-MS-Exchange-Authentication-Results: spf=fail (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: Fail (protection.outlook.com: domain of opensource.cirrus.com does not designate 84.19.233.75 as permitted sender) receiver=protection.outlook.com; client-ip=84.19.233.75; helo=edirelay1.ad.cirrus.com; Received: from edirelay1.ad.cirrus.com (84.19.233.75) by BN3PEPF0000B073.mail.protection.outlook.com (10.167.243.118) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:22 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 1173B406544; Wed, 31 Dec 2025 17:27:22 +0000 (UTC) Received: from EDIN4L06LR3.ad.cirrus.com (EDIN4L06LR3.ad.cirrus.com [198.61.69.19]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id 834EC820249; Wed, 31 Dec 2025 17:27:21 +0000 (UTC) From: Richard Fitzgerald To: broonie@kernel.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH v2 7/8] firmware: cs_dsp: test_bin: Run test cases on long-offset blocks Date: Wed, 31 Dec 2025 17:27:10 +0000 Message-ID: <20251231172711.450024-8-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231172711.450024-1-rf@opensource.cirrus.com> References: <20251231172711.450024-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: BN3PEPF0000B073:EE_|BN5PR19MB8837:EE_ X-MS-Office365-Filtering-Correlation-Id: 865fd19f-b4cd-4226-e9da-08de4891dbf1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|376014|61400799027; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ICG8b4lAA2OfqEEq3x4xmJHotyx/uJTcSeiMlWgtDOmAnuaPmfh2WfVarxAT?= =?us-ascii?Q?IZrCvTnG300gWvGW2bffEIJOeeS3UltA3NL9sjidHzAip2lL0xBWsYC4kMl3?= =?us-ascii?Q?7nHccvowmYWBznSPefeUMmwM1HiUNzmaD5lfBuxoFMcPfxezmPJb+Dn0jYfx?= =?us-ascii?Q?0LYzt6QOt+SvHzxUzmp2m3sLRTyJ3IpfRgbi3dDFyhbayS/zu8vmgaf+yoAu?= =?us-ascii?Q?IkpQDg5XYp8/uz91CVzdjCrtaGxWusAgJ6Xu3njIbCDrrqdj9AifmXtD1HLd?= =?us-ascii?Q?zdpHOXd5PWCQTWrtrWkr5zu2p0mzzTTSU+DoVY6L5JDNRZT/oNXEe62qzq3x?= =?us-ascii?Q?ai8cPRPCKOfkQnSis5IcYO0e/WFotx++9fqRdVVf+ANuAytor67JTJcaw6Wj?= =?us-ascii?Q?fjHsxSpjGza4gkCMVYZsReOSiLPga16cG5sgytQmlRixKFlcjWqHRaa3s0UG?= =?us-ascii?Q?dovyC+QRRwbi6Mm+m+/KhC8h/eyAFWWlwkZkc84GXBPQ3j6o68uW8MnDJdFP?= =?us-ascii?Q?SlSlqmVSzOJNObGM+c2EFheo4YORDyliJeM5fQrhN+Q616SQVsImMjJhXc1p?= =?us-ascii?Q?/HcoIsrgPfpqof4S0ZbII4nFRZzMxSvwuhDLyA+qk9beBd0Nl6WGAY1qsU4q?= =?us-ascii?Q?iboyngEgYFvc8AZLq0Bwlf6G93bkdgvfRNAYCEGD8VombdG7oOTGkxoORFOi?= =?us-ascii?Q?xAOraF9RsBYonRxrSjLWatz8tu9YrocnYlzBZmPVK0oCtneSpWiBwBTvj46d?= =?us-ascii?Q?Ikt9sSoILuqFPJS67UfRkmZIu+m7BGTDoO5+vGKax+1M3VzasbBi+es7Z5Ly?= =?us-ascii?Q?J9uQmAzUnvrsUiCIbTAmlcNpEa8LC4qBzQajdMU09TuMDFZ0E07DJE1PDlUn?= =?us-ascii?Q?x197QgepjJlM53UQgFQDQ1J0g7bTpIMNXjVuPYFtVQmJBLpATLXkiyJOALu/?= =?us-ascii?Q?06DGedR/9ObYLpLOm5n0eA0vdeS7NNlHGqZOZDVyFuqkBvImXAYTo9+9oz86?= =?us-ascii?Q?x0jKHnyTe/vD24M7R3m3IHqKoCXw06o2tLz+vD5UZ9ZGnaGBGudxcyRpU13b?= =?us-ascii?Q?mCG4lFydc5c8tM7t5SonBYT/CiVcZoRr4rsdQ2cMAFjiH/+k2At2TlqM3iy3?= =?us-ascii?Q?Kc4SO2qiBZgwyJx2u0D/qwiZVklqj5q7O/yH0dS719ovDpjQXnlk+6R0vjoh?= =?us-ascii?Q?kDO5n3KPmlNXKvNulZLKbM2UzX9MV4aw+KtSp7BjU+lcBDeNF+azDlq2D68l?= =?us-ascii?Q?Oed31CCt1U6Lr2FpagsD2CeAf6+6qXcpiYz43Y+HBYjQ2Q0Ck++6X0PtmkCq?= =?us-ascii?Q?hyNWcpUgxEdTeP/fXjJdm06e9Uq+uTIDRreu6KD3UjsKUWinSXtssmfxJmq0?= =?us-ascii?Q?geZnapJW2sN6OZpVxVQa8zXj1cNBqxEsmnCrO91wfnRBtE8CfNpCVteslzoh?= =?us-ascii?Q?U9AUzbjXOHQTVRCFWqiLd1DurXN7GAuAWHRr3efSyhighs+YVXs+S9GkVHa5?= =?us-ascii?Q?b6iRlx0jpN3/7P1SWeqf12SnWHnVJNR+VKBwvPeQVwDSFsVVmZlqyR3XfVnr?= =?us-ascii?Q?cwVnybs4seFO0j6OBMU=3D?= 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)(36860700013)(376014)(61400799027);DIR:OUT;SFP:1102; X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2025 17:27:22.8516 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 865fd19f-b4cd-4226-e9da-08de4891dbf1 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-BN3PEPF0000B073.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN5PR19MB8837 X-Proofpoint-GUID: uCW90WzYLJLb3GVcd9WnjzMXYmxnNAK7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDE1MyBTYWx0ZWRfX37/zCz6zYmWU LW8hqPqFxxTursVmhmhzRzcCCw9Q8GxotJz1oQlOY8v0mPGz5pvN/Rx/N6OoA3s9E8+DdHdl1ji G16M8/I8t3j/OMDef68YxXVGz1HkmWPmJ4ICZXOgvhfDy79GstWWnMgIME9rzVDUCALC3AU/84T wcZ6qtXV4jMyK+Olz6EnaZR0fN92eYSCRMIWoB9uKNiXaEsmp36TN7PFbXzCpBaOBlWYkRxNbgx XZWRpIqJNMGA+MmrTd2T6/3QULjVrk3Potqtv1SOUBhMecufNvzGD2T/H6c4yNaZ4Q7vX3+rGm+ T/u0HRTXFONhBNAOiq2uifwO57sByO9U4SrL3+J4ejp2LLCXDFnUXtnqU1yhpjB39Trd1Ua8Suw d1djPWTd7PnL1ZH7KNy4k3uTravioheAlooU/Hi6/XSbJ//iNvjdNCBXS5iLL4PdcRNOR0y35kU DPU0XOTx5P/T6INyHFw== X-Authority-Analysis: v=2.4 cv=bJgb4f+Z c=1 sm=1 tr=0 ts=69555d01 cx=c_pps a=er6SsJhWVBF8D4+n+SRFpA==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=w1d2syhTAAAA:8 a=9aw_-pf0KlnW5EXjf9MA:9 X-Proofpoint-ORIG-GUID: uCW90WzYLJLb3GVcd9WnjzMXYmxnNAK7 X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" Run the patch block test cases using the new long-offset block type. This adds a new set of parameterization that uses cs_dsp_mock_bin_add_patch_off32() to create the patch blocks in the test bin file. The test cases for Halo Core with V3 file format include another run of the tests with the new parameterization, so that the tests are run on the standard blocks and the long-offset blocks. This commit does not add any new cases for offsets > 0xffff. Signed-off-by: Richard Fitzgerald --- No changes since V1. .../firmware/cirrus/test/cs_dsp_test_bin.c | 229 +++++++++++++++++- 1 file changed, 220 insertions(+), 9 deletions(-) diff --git a/drivers/firmware/cirrus/test/cs_dsp_test_bin.c b/drivers/firmw= are/cirrus/test/cs_dsp_test_bin.c index 7f53fa9964c4..67af7da4f8c1 100644 --- a/drivers/firmware/cirrus/test/cs_dsp_test_bin.c +++ b/drivers/firmware/cirrus/test/cs_dsp_test_bin.c @@ -2300,6 +2300,7 @@ static int cs_dsp_bin_test_adsp2_16bit_init(struct ku= nit *test) } =20 #define WMDR_PATCH_SHORT .add_patch =3D cs_dsp_mock_bin_add_patch +#define WMDR_PATCH_LONG .add_patch =3D cs_dsp_mock_bin_add_patch_off32 =20 /* Parameterize on choice of XM or YM with a range of word offsets */ static const struct bin_test_param x_or_y_and_offset_param_cases[] =3D { @@ -2324,6 +2325,28 @@ static const struct bin_test_param x_or_y_and_offset= _param_cases[] =3D { { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 20, WMDR_PATCH_SHORT }, }; =20 +static const struct bin_test_param x_or_y_and_long_offset_param_cases[] = =3D { + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 0, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 1, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 2, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 3, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 4, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 23, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 22, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 21, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 20, WMDR_PATCH_LONG }, + + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 0, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 1, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 2, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 3, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 4, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 23, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 22, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 21, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 20, WMDR_PATCH_LONG }, +}; + /* Parameterize on ZM with a range of word offsets */ static const struct bin_test_param z_and_offset_param_cases[] =3D { { .mem_type =3D WMFW_ADSP2_ZM, .offset_words =3D 0, WMDR_PATCH_SHORT }, @@ -2350,18 +2373,35 @@ static const struct bin_test_param packed_x_or_y_an= d_offset_param_cases[] =3D { { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 12, WMDR_PATCH_SHO= RT }, }; =20 +static const struct bin_test_param packed_x_or_y_and_long_offset_param_cas= es[] =3D { + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 0, WMDR_PATCH_LON= G }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 4, WMDR_PATCH_LON= G }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 8, WMDR_PATCH_LON= G }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 12, WMDR_PATCH_LON= G }, + + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 0, WMDR_PATCH_LON= G }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 4, WMDR_PATCH_LON= G }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 8, WMDR_PATCH_LON= G }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 12, WMDR_PATCH_LON= G }, +}; + static void x_or_y_or_z_and_offset_param_desc(const struct bin_test_param = *param, char *desc) { - snprintf(desc, KUNIT_PARAM_DESC_SIZE, "%s@%u", + snprintf(desc, KUNIT_PARAM_DESC_SIZE, "%s@%u %s", cs_dsp_mem_region_name(param->mem_type), - param->offset_words); + param->offset_words, + (param->add_patch =3D=3D cs_dsp_mock_bin_add_patch_off32) ? "offs32" : = ""); } =20 KUNIT_ARRAY_PARAM(x_or_y_and_offset, x_or_y_and_offset_param_cases, x_or_y_or_z_and_offset_param_desc); =20 +KUNIT_ARRAY_PARAM(x_or_y_and_long_offset, + x_or_y_and_long_offset_param_cases, + x_or_y_or_z_and_offset_param_desc); + KUNIT_ARRAY_PARAM(z_and_offset, z_and_offset_param_cases, x_or_y_or_z_and_offset_param_desc); @@ -2370,19 +2410,31 @@ KUNIT_ARRAY_PARAM(packed_x_or_y_and_offset, packed_x_or_y_and_offset_param_cases, x_or_y_or_z_and_offset_param_desc); =20 +KUNIT_ARRAY_PARAM(packed_x_or_y_and_long_offset, + packed_x_or_y_and_long_offset_param_cases, + x_or_y_or_z_and_offset_param_desc); + /* Parameterize on choice of packed XM or YM */ static const struct bin_test_param packed_x_or_y_param_cases[] =3D { { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 0, WMDR_PATCH_SHOR= T }, { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 0, WMDR_PATCH_SHOR= T }, }; =20 +static const struct bin_test_param packed_x_or_y_long_param_cases[] =3D { + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 0, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 0, WMDR_PATCH_LONG= }, +}; + static void x_or_y_or_z_param_desc(const struct bin_test_param *param, char *desc) { - snprintf(desc, KUNIT_PARAM_DESC_SIZE, "%s", cs_dsp_mem_region_name(param-= >mem_type)); + snprintf(desc, KUNIT_PARAM_DESC_SIZE, "%s %s", + cs_dsp_mem_region_name(param->mem_type), + (param->add_patch =3D=3D cs_dsp_mock_bin_add_patch_off32) ? "offs32" : = ""); } =20 KUNIT_ARRAY_PARAM(packed_x_or_y, packed_x_or_y_param_cases, x_or_y_or_z_pa= ram_desc); +KUNIT_ARRAY_PARAM(packed_x_or_y_long, packed_x_or_y_long_param_cases, x_or= _y_or_z_param_desc); =20 static const struct bin_test_param offset_param_cases[] =3D { { .offset_words =3D 0, WMDR_PATCH_SHORT }, @@ -2396,12 +2448,27 @@ static const struct bin_test_param offset_param_cas= es[] =3D { { .offset_words =3D 20, WMDR_PATCH_SHORT }, }; =20 +static const struct bin_test_param long_offset_param_cases[] =3D { + { .offset_words =3D 0, WMDR_PATCH_LONG }, + { .offset_words =3D 1, WMDR_PATCH_LONG }, + { .offset_words =3D 2, WMDR_PATCH_LONG }, + { .offset_words =3D 3, WMDR_PATCH_LONG }, + { .offset_words =3D 4, WMDR_PATCH_LONG }, + { .offset_words =3D 23, WMDR_PATCH_LONG }, + { .offset_words =3D 22, WMDR_PATCH_LONG }, + { .offset_words =3D 21, WMDR_PATCH_LONG }, + { .offset_words =3D 20, WMDR_PATCH_LONG }, +}; + static void offset_param_desc(const struct bin_test_param *param, char *de= sc) { - snprintf(desc, KUNIT_PARAM_DESC_SIZE, "@%u", param->offset_words); + snprintf(desc, KUNIT_PARAM_DESC_SIZE, "@%u %s", + param->offset_words, + (param->add_patch =3D=3D cs_dsp_mock_bin_add_patch_off32) ? "offs32" : = ""); } =20 KUNIT_ARRAY_PARAM(offset, offset_param_cases, offset_param_desc); +KUNIT_ARRAY_PARAM(long_offset, long_offset_param_cases, offset_param_desc); =20 static const struct bin_test_param alg_param_cases[] =3D { { .alg_idx =3D 0, WMDR_PATCH_SHORT }, @@ -2410,15 +2477,24 @@ static const struct bin_test_param alg_param_cases[= ] =3D { { .alg_idx =3D 3, WMDR_PATCH_SHORT }, }; =20 +static const struct bin_test_param alg_long_param_cases[] =3D { + { .alg_idx =3D 0, WMDR_PATCH_LONG }, + { .alg_idx =3D 1, WMDR_PATCH_LONG }, + { .alg_idx =3D 2, WMDR_PATCH_LONG }, + { .alg_idx =3D 3, WMDR_PATCH_LONG }, +}; + static void alg_param_desc(const struct bin_test_param *param, char *desc) { WARN_ON(param->alg_idx >=3D ARRAY_SIZE(bin_test_mock_algs)); =20 - snprintf(desc, KUNIT_PARAM_DESC_SIZE, "alg[%u] (%#x)", - param->alg_idx, bin_test_mock_algs[param->alg_idx].id); + snprintf(desc, KUNIT_PARAM_DESC_SIZE, "alg[%u] (%#x) %s", + param->alg_idx, bin_test_mock_algs[param->alg_idx].id, + (param->add_patch =3D=3D cs_dsp_mock_bin_add_patch_off32) ? "offs32" : "= "); } =20 KUNIT_ARRAY_PARAM(alg, alg_param_cases, alg_param_desc); +KUNIT_ARRAY_PARAM(alg_long, alg_long_param_cases, alg_param_desc); =20 static const struct bin_test_param x_or_y_and_alg_param_cases[] =3D { { .mem_type =3D WMFW_ADSP2_XM, .alg_idx =3D 0, WMDR_PATCH_SHORT }, @@ -2432,16 +2508,31 @@ static const struct bin_test_param x_or_y_and_alg_p= aram_cases[] =3D { { .mem_type =3D WMFW_ADSP2_YM, .alg_idx =3D 3, WMDR_PATCH_SHORT }, }; =20 +static const struct bin_test_param x_or_y_and_alg_long_param_cases[] =3D { + { .mem_type =3D WMFW_ADSP2_XM, .alg_idx =3D 0, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_XM, .alg_idx =3D 1, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_XM, .alg_idx =3D 2, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_XM, .alg_idx =3D 3, WMDR_PATCH_LONG }, + + { .mem_type =3D WMFW_ADSP2_YM, .alg_idx =3D 0, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_YM, .alg_idx =3D 1, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_YM, .alg_idx =3D 2, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_ADSP2_YM, .alg_idx =3D 3, WMDR_PATCH_LONG }, +}; + static void x_or_y_or_z_and_alg_param_desc(const struct bin_test_param *pa= ram, char *desc) { WARN_ON(param->alg_idx >=3D ARRAY_SIZE(bin_test_mock_algs)); =20 - snprintf(desc, KUNIT_PARAM_DESC_SIZE, "%s alg[%u] (%#x)", + snprintf(desc, KUNIT_PARAM_DESC_SIZE, "%s alg[%u] (%#x) %s", cs_dsp_mem_region_name(param->mem_type), - param->alg_idx, bin_test_mock_algs[param->alg_idx].id); + param->alg_idx, bin_test_mock_algs[param->alg_idx].id, + (param->add_patch =3D=3D cs_dsp_mock_bin_add_patch_off32) ? "offs32" : = ""); } =20 KUNIT_ARRAY_PARAM(x_or_y_and_alg, x_or_y_and_alg_param_cases, x_or_y_or_z_= and_alg_param_desc); +KUNIT_ARRAY_PARAM(x_or_y_and_alg_long, x_or_y_and_alg_long_param_cases, + x_or_y_or_z_and_alg_param_desc); =20 static const struct bin_test_param z_and_alg_param_cases[] =3D { { .mem_type =3D WMFW_ADSP2_ZM, .alg_idx =3D 0, WMDR_PATCH_SHORT }, @@ -2464,9 +2555,24 @@ static const struct bin_test_param packed_x_or_y_and= _alg_param_cases[] =3D { { .mem_type =3D WMFW_HALO_YM_PACKED, .alg_idx =3D 3, WMDR_PATCH_SHORT }, }; =20 +static const struct bin_test_param packed_x_or_y_and_alg_long_param_cases[= ] =3D { + { .mem_type =3D WMFW_HALO_XM_PACKED, .alg_idx =3D 0, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .alg_idx =3D 1, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .alg_idx =3D 2, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .alg_idx =3D 3, WMDR_PATCH_LONG }, + + { .mem_type =3D WMFW_HALO_YM_PACKED, .alg_idx =3D 0, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .alg_idx =3D 1, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .alg_idx =3D 2, WMDR_PATCH_LONG }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .alg_idx =3D 3, WMDR_PATCH_LONG }, +}; + KUNIT_ARRAY_PARAM(packed_x_or_y_and_alg, packed_x_or_y_and_alg_param_cases, x_or_y_or_z_and_alg_param_desc); =20 +KUNIT_ARRAY_PARAM(packed_x_or_y_and_alg_long, packed_x_or_y_and_alg_long_p= aram_cases, + x_or_y_or_z_and_alg_param_desc); + static struct kunit_case cs_dsp_bin_test_cases_halo[] =3D { /* Unpacked memory */ KUNIT_CASE_PARAM(bin_patch_one_word, x_or_y_and_offset_gen_params), @@ -2522,6 +2628,111 @@ static struct kunit_case cs_dsp_bin_test_cases_halo= [] =3D { { } /* terminator */ }; =20 +static struct kunit_case cs_dsp_bin_test_cases_halo_wmdr3[] =3D { + /* Unpacked memory */ + KUNIT_CASE_PARAM(bin_patch_one_word, x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_one_multiword, x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_multi_oneword, x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_multi_oneword_unordered, x_or_y_and_offset_gen= _params), + KUNIT_CASE_PARAM(bin_patch_one_word_multiple_mems, offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_one_word_multiple_mems, alg_gen_params), + KUNIT_CASE_PARAM(bin_patch_multi_oneword_sparse_unordered, x_or_y_and_alg= _gen_params), + KUNIT_CASE_PARAM(bin_patch_one_word_multiple_algs, x_or_y_and_offset_gen_= params), + KUNIT_CASE_PARAM(bin_patch_one_word_multiple_algs_unordered, x_or_y_and_o= ffset_gen_params), + + /* Packed memory tests */ + KUNIT_CASE_PARAM(bin_patch_1_packed, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_1_single_trailing, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_2_single_trailing, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_3_single_trailing, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_2_trailing, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_3_trailing, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_single_leading_1_packed, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_2_single_leading_1_packed, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_2_leading_1_packed, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_3_single_leading_1_packed, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_3_leading_1_packed, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_multi_onepacked, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_multi_onepacked_unordered, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_multiple_mems, offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_multiple_mems, alg_gen_params), + KUNIT_CASE_PARAM(bin_patch_multi_onepacked_sparse_unordered, + packed_x_or_y_and_alg_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_multiple_algs, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_multiple_algs_unordered, + packed_x_or_y_and_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_mixed_packed_unpacked_random, + packed_x_or_y_gen_params), + + /* Unpacked memory with long-offset blocks */ + KUNIT_CASE_PARAM(bin_patch_one_word, x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_one_multiword, x_or_y_and_long_offset_gen_para= ms), + KUNIT_CASE_PARAM(bin_patch_multi_oneword, x_or_y_and_long_offset_gen_para= ms), + KUNIT_CASE_PARAM(bin_patch_multi_oneword_unordered, x_or_y_and_long_offse= t_gen_params), + KUNIT_CASE_PARAM(bin_patch_one_word_multiple_mems, long_offset_gen_params= ), + KUNIT_CASE_PARAM(bin_patch_one_word_multiple_mems, alg_long_gen_params), + KUNIT_CASE_PARAM(bin_patch_multi_oneword_sparse_unordered, x_or_y_and_alg= _long_gen_params), + KUNIT_CASE_PARAM(bin_patch_one_word_multiple_algs, x_or_y_and_long_offset= _gen_params), + KUNIT_CASE_PARAM(bin_patch_one_word_multiple_algs_unordered, + x_or_y_and_long_offset_gen_params), + + /* Packed memory tests with long offset blocks */ + KUNIT_CASE_PARAM(bin_patch_1_packed, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_1_single_trailing, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_2_single_trailing, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_3_single_trailing, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_2_trailing, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_3_trailing, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_single_leading_1_packed, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_2_single_leading_1_packed, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_2_leading_1_packed, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_3_single_leading_1_packed, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_3_leading_1_packed, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_multi_onepacked, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_multi_onepacked_unordered, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_multiple_mems, long_offset_gen_params= ), + KUNIT_CASE_PARAM(bin_patch_1_packed_multiple_mems, alg_long_gen_params), + KUNIT_CASE_PARAM(bin_patch_multi_onepacked_sparse_unordered, + packed_x_or_y_and_alg_long_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_multiple_algs, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_1_packed_multiple_algs_unordered, + packed_x_or_y_and_long_offset_gen_params), + KUNIT_CASE_PARAM(bin_patch_mixed_packed_unpacked_random, + packed_x_or_y_long_gen_params), + + KUNIT_CASE(bin_patch_name_and_info), + + { } /* terminator */ +}; + static struct kunit_case cs_dsp_bin_test_cases_adsp2[] =3D { /* XM and YM */ KUNIT_CASE_PARAM(bin_patch_one_word, x_or_y_and_offset_gen_params), @@ -2559,7 +2770,7 @@ static struct kunit_suite cs_dsp_bin_test_halo =3D { static struct kunit_suite cs_dsp_bin_test_halo_wmdr3 =3D { .name =3D "cs_dsp_bin_halo_wmdr_v3", .init =3D cs_dsp_bin_test_halo_wmdr3_init, - .test_cases =3D cs_dsp_bin_test_cases_halo, + .test_cases =3D cs_dsp_bin_test_cases_halo_wmdr3, }; =20 static struct kunit_suite cs_dsp_bin_test_adsp2_32bit =3D { --=20 2.43.0 From nobody Sat Feb 7 18:20:27 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 4164A2BE04B; Wed, 31 Dec 2025 17:27:31 +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=1767202055; cv=fail; b=jv9zoihdWLZ1t03lC3epBmiMYA3zifBFL+I1EP3YjuUeTeqDHFPK1ZH1QKoSlytuk7UjgRb6JBxrqkboNWNMbURLFSThLo0G1KVKXe2s9d3pNl54tPhNn7BPjw2Ka9kWWw+6tBkW2kjVXPauUx+V9xPiZGgO1VdMcBF1aVyTfn8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767202055; c=relaxed/simple; bh=XbfaNCkup7la0sCe189cYJxPcZgUXnPoYmuycU5sJ2Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=TFvj7YNhnIWyNy1Nfsgkm4Em/k65/naWsuEbba720iBJPfKxFYHGkScdEjN3Ygk7ZQ6DnP5/BOILPbRHJ6LBtfmHOZsg5NwTMWhYP/wmwRwRufQ1//6IXiOhxBOlDMQmL6xz+A40ZYBSXJFnUv1dZO96O9G1sQPSzQFZvZzjNFw= 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=Q92USz+f; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=jrVGmEy5; 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="Q92USz+f"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="jrVGmEy5" 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 5BVGglio115042; Wed, 31 Dec 2025 11:27:28 -0600 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=SniPlsxUFesQtEaEzWfWSdusBpZY2rqnLbzpTLcD4gU=; b= Q92USz+frxKI2t/tBKqNlHajzEALjp4k21jKjLAXjzJXgC9xkljFG75atFUk/6Jz VK84F1ZOg22EA9emAVFP7Ct5t7sMqWMXd1wVB7fa2MdOE2qpTlQtYoTtOx1zEXdF x4AQU/quG41qFjxYVuxPx5DMJmwGCMlRDbPpwVUblMKyEPTmH7VZ7phRZ8Kpa+ks AurxeSHWLSzj4YlWfMbNQwQW2cYIwG9KBxSN09dROOMhxJxtk/whpxeGOZnadvYe Wck6z3a+su1pSQHYxrsBXQwPXjj6PD85m44fTLgLoG60NTYvJz8827k/jZdyKQQz j4CO01melcZ7+g0Kh92Rog== Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazon11020123.outbound.protection.outlook.com [52.101.85.123]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4bacrmvct6-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 11:27:28 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=x5CVQ1Nd+oa4GgPzzuZpez2WSHK8eQgtuDsSCeZ7fHXtXmWBmnDs23bH5dsHu0TTpStozAt1vyv+TRfKd+nOuCHZ3S2hMz5eagkBSAs032VmcfCBaIq/eBBmBFkDy09UoGQJaxT/EdWl2vGhsx0rz2ppEPwrZ1qBsCQV6Pd2y7K7cygiGIEJAeR78qd9HKnj/J9GYgFzYp+V5QORnMnTQf8RqaNoK1FoF+aP2HTZHrE27vYgDnHPXd2vcTM0xPkuAVZAO4D87JYBy1SjLLCUtlgMjL8NGVymELxm0MFOO0IJIZ2qpTLHsYXVTigR+jRNCJt1dJY8aEhZwwzvrIsKug== 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=SniPlsxUFesQtEaEzWfWSdusBpZY2rqnLbzpTLcD4gU=; b=eC5hXzCEmlkb1sLzuyAYznklb3m2+KbgxEi5nIwgDDA5Adkrp/3e2CpQw/j2rL+DJnbM220iQ2dHpWOmdWqrDCUn0IOp2+ZJqBZDXAaKeecN9YxnlckAE0GD916bCcUA6mDl7NT+D33m2G+6EjWmyldJ5f44t6BxT4O6vaHsXjIerqgjtB2hcL3fA2GpCcpvvUkWut+WqZGGlwQyjDWGeJK8nuR89csNQ7rbT185/6K1NxFSi4GzieEQlRpOsBoxmAL3xrxLOQDdGcSsThQ6Lc84RqQppXgaY7mZG5OWmKS6GHE0JtlBHpZ3z1OSk5HJ1ZbNU0Cn+9HRDuaRAqy4ig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (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=SniPlsxUFesQtEaEzWfWSdusBpZY2rqnLbzpTLcD4gU=; b=jrVGmEy50DgvdPXVZ+e4qcexZVc16guSMA23qZ1Snas0yxyjQMz6FTcDDuP8lnsHGT1tg4q2phzlgF0hmTmz4MIuhpC11JdL1lCwHCcCRclzHp8bKQUz7KFrhUp+ZR6b7VOu4hoE0QsIFxkvU5y/vXdPh2Z5S3d+k0dx7TX+WPQ= Received: from BN0PR10CA0008.namprd10.prod.outlook.com (2603:10b6:408:143::27) by DS3PR19MB9294.namprd19.prod.outlook.com (2603:10b6:8:2db::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Wed, 31 Dec 2025 17:27:24 +0000 Received: from BN2PEPF000044A2.namprd02.prod.outlook.com (2603:10b6:408:143:cafe::9e) by BN0PR10CA0008.outlook.office365.com (2603:10b6:408:143::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:21 +0000 X-MS-Exchange-Authentication-Results: spf=fail (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: Fail (protection.outlook.com: domain of opensource.cirrus.com does not designate 84.19.233.75 as permitted sender) receiver=protection.outlook.com; client-ip=84.19.233.75; helo=edirelay1.ad.cirrus.com; Received: from edirelay1.ad.cirrus.com (84.19.233.75) by BN2PEPF000044A2.mail.protection.outlook.com (10.167.243.153) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.4 via Frontend Transport; Wed, 31 Dec 2025 17:27:23 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 7F64940654A; Wed, 31 Dec 2025 17:27:22 +0000 (UTC) Received: from EDIN4L06LR3.ad.cirrus.com (EDIN4L06LR3.ad.cirrus.com [198.61.69.19]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id 219AC820249; Wed, 31 Dec 2025 17:27:22 +0000 (UTC) From: Richard Fitzgerald To: broonie@kernel.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH v2 8/8] firmware: cs_dsp: test_bin: Add tests for offsets > 0xffff Date: Wed, 31 Dec 2025 17:27:11 +0000 Message-ID: <20251231172711.450024-9-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231172711.450024-1-rf@opensource.cirrus.com> References: <20251231172711.450024-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: BN2PEPF000044A2:EE_|DS3PR19MB9294:EE_ X-MS-Office365-Filtering-Correlation-Id: 89949d68-d912-432b-1b55-08de4891dc6a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|36860700013|61400799027; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?jKtNAW5HjCJB6farm+U/wSXUrA8GnehrI55B9AmyyZpHHLA7r3H+5fkZXYzM?= =?us-ascii?Q?Svzfvewb+DHbUhgtquf52baJ8QcpeaVA+KMYlNJXOsRDpfCu/jaeRQVNY4sM?= =?us-ascii?Q?qRNxME08BvhB4tWnoM0hCDx1vMZhkXbi1PBNPjLvKTEuPpFmsbHob7r+Y97u?= =?us-ascii?Q?OGxxUFAZuZ//LbFkUnjL5l/M2b+Ca5QbYxR7e/LbJsoyz7aROQ6QPo6AqoDC?= =?us-ascii?Q?AohW4b6YZhU31vh6uJNMQS8KpWnVFnWieM3ejqi2C5wzr4VTSYdxgraHEgl3?= =?us-ascii?Q?QvGwxPi7KbBQ2FV1OzuL6Oc/gsaP3JmiKLwxWy993CBNi37AY5KJwdCV6Rfl?= =?us-ascii?Q?NNgxvI8bNEddo+Az+rjM+7NW/Kf9iOM+v22rw8vf+VanfgePGbJ32Vj9PoJJ?= =?us-ascii?Q?rI/l2WtpeY04wCRno/NmO/BaGqgXorxi11eGmHaTkE7lWT2UTfdsomyOw7XT?= =?us-ascii?Q?QqRhhdKHaBwS8Eg/7F6BBRP/BhzM5Uvj5rRZHl8J33itQHD95ldRX0xUy+qs?= =?us-ascii?Q?ARGUG01i2sZOeWWNOT8ZVDBAOSnJS2J1B0qBYCR/WYB/RgopAX/Y4BtDBaIH?= =?us-ascii?Q?SLP93kvLagoKsPe6Kj2T9nlgdbcEw4iLLZ5/plL06XnGkR9+T+OEmopH7z8V?= =?us-ascii?Q?fUPdWoNi3y7EDjE+J9cu5hVpjiB/hcSWFUqN99H9NDC5+2B5T4DXGO7b4Udd?= =?us-ascii?Q?LVgnJY2xv+dvtSg/ITBV368E2KwxJBLcWTTHwleJ7q4DvHZYElg876xfkrRE?= =?us-ascii?Q?qcwMT9cD/DVxk2wD4X1J9ypmj/JV6hKTJAqaHbLp8tVu7V2Ybwyhwjw0m94A?= =?us-ascii?Q?5Oy+waEh8lM3XUY/IPRiJc4dodmCfa0tlK8lt5AdkDQSijnMDTQA9K8I810s?= =?us-ascii?Q?SBkCJoOqudNxzP9TX/txCJTJzt1Zb4p3eASBtrJyZXd7GjCFM7p1ZpKapbmD?= =?us-ascii?Q?E06CRJ8Nj02lUkY/clAvGq57CnGbsFismAiA/T+9tJxVVlotSLxiCDhc29PM?= =?us-ascii?Q?zfxyjyXWKMHmGXHelxT0FMQq6/WlDE8BB4H2wL1BFkpfPgQSTKNGRHnN1rYs?= =?us-ascii?Q?pUvEHbj+NynGLwEwy5FIjfih1GfkbVvTq9lNCWbjjDDmy28xjVbgCQ74CbHV?= =?us-ascii?Q?UyNcDuqS+Ip2asqx030GXI/F5r0jyffMDYRagEUgvcrpR+ZAmtWUUXY/eMZv?= =?us-ascii?Q?bKslielKQkuhqnVdN7VrPKFFn8BhnN75lBXalScYPq/dU7JkO4Nh1qprFbgP?= =?us-ascii?Q?vb13kv5y/MdFaD/EV2/2SUZWwbSn6xpR9d3NE0PJUKAhpXK9YAszg9hQ156z?= =?us-ascii?Q?S9GVvktbyuRpKcI/6wzUUrOOXJRXHY6OeDUhR5gdQYikFDB+d3Tk1Vais37+?= =?us-ascii?Q?ZsJA0V/YblZvUawn8I875ch5yr8uEofxGqOAfHTO1Mi4sfWMTb3XrGRKD55w?= =?us-ascii?Q?srEYkbQXGu0xyic8c+HF2VLnt3evQXfGSAhDVK7BN7hHAndwNmVOb/+rPB2Q?= =?us-ascii?Q?rgtTHdnXcwgs7KvofQKv5SupunlfSuxtDoeB9bSHQNUtvDskS7IVF1w/5vKU?= =?us-ascii?Q?6Xp88RSBPxdC9NbLLvw=3D?= 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)(36860700013)(61400799027);DIR:OUT;SFP:1102; X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2025 17:27:23.6451 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 89949d68-d912-432b-1b55-08de4891dc6a 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-BN2PEPF000044A2.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS3PR19MB9294 X-Proofpoint-GUID: RQRfwHZ0pXQLenllIsz3MqRVRGaYLoK- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDE1MyBTYWx0ZWRfX1ODv/2rYmBtF K0bGpFSadhst9uIc0VqijnqYsl0WPml2MFz7Yoq+bMMEJFS7n6BrUKuV4AD2jAgIEEtdrNc8PVd Uxd1AogiObtkzJiwqUNORi8kmJQrnUhPrB+h8uYkDD/kxFy4hLodm/lffFIDw7tPqxF8Vq1OC93 Yaw4kNw3g9N0is0KWjoZlhE6s6khFiRfxEahrEfVt5XUH9RJOp6UaUExOS90CS8oIAy2ve9Xihk CPJNBo4P5Yr+V1rzIBdT5EwRrJz6YjPKThRRkEZFgtxHSiNi6ZiKxN2a7OGaRhzUTB6cxnlN6ee 7lqtxOx1aOUD3AfSmQf3cErjbljA5qjJ7OD7Uwh9K3TbERRApsXxzoaLc/rxh2qFzP5jL5EBvUD Wwdla3xiwGvi1wdVm9+BmrlEO7lpO1cn7Q7vBFjWuyxceYWmR4syuZeqsHXIemn7FXE6Elgg4dj hJEvkPS2CAQ4+vW3LGw== X-Authority-Analysis: v=2.4 cv=bJgb4f+Z c=1 sm=1 tr=0 ts=69555d00 cx=c_pps a=ERcN8ojmLF2LN6E1fAlUwA==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=wP3pNCr1ah4A:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=w1d2syhTAAAA:8 a=C58FxD2BOZMRnAzTm5kA:9 X-Proofpoint-ORIG-GUID: RQRfwHZ0pXQLenllIsz3MqRVRGaYLoK- X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" Add test cases for using the new long-offset block types to patch memory that is >0xffff from the algorithm base. This is just adding entries to the parameter data that have larger offset values. Signed-off-by: Richard Fitzgerald --- Changes in V2: - Fixed inconsistent commit title prefix .../firmware/cirrus/test/cs_dsp_test_bin.c | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/drivers/firmware/cirrus/test/cs_dsp_test_bin.c b/drivers/firmw= are/cirrus/test/cs_dsp_test_bin.c index 67af7da4f8c1..99148ea22df3 100644 --- a/drivers/firmware/cirrus/test/cs_dsp_test_bin.c +++ b/drivers/firmware/cirrus/test/cs_dsp_test_bin.c @@ -2326,6 +2326,7 @@ static const struct bin_test_param x_or_y_and_offset_= param_cases[] =3D { }; =20 static const struct bin_test_param x_or_y_and_long_offset_param_cases[] = =3D { + /* Offset < 0xffff in long-offset block type */ { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 0, WMDR_PATCH_LONG }, { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 1, WMDR_PATCH_LONG }, { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 2, WMDR_PATCH_LONG }, @@ -2336,6 +2337,7 @@ static const struct bin_test_param x_or_y_and_long_of= fset_param_cases[] =3D { { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 21, WMDR_PATCH_LONG }, { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 20, WMDR_PATCH_LONG }, =20 + /* Offset < 0xffff in long-offset block type */ { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 0, WMDR_PATCH_LONG }, { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 1, WMDR_PATCH_LONG }, { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 2, WMDR_PATCH_LONG }, @@ -2345,6 +2347,28 @@ static const struct bin_test_param x_or_y_and_long_o= ffset_param_cases[] =3D { { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 22, WMDR_PATCH_LONG }, { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 21, WMDR_PATCH_LONG }, { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 20, WMDR_PATCH_LONG }, + + /* Offset > 0xffff in long-offset block type */ + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 0x10000, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 0x10001, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 0x10002, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 0x10003, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 0x10004, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 0x2f003, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 0x2f002, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 0x2f001, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_XM, .offset_words =3D 0x2f000, WMDR_PATCH_LONG= }, + + /* Offset > 0xffff in long-offset block type */ + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 0x10000, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 0x10001, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 0x10002, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 0x10003, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 0x10004, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 0x2f003, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 0x2f002, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 0x2f001, WMDR_PATCH_LONG= }, + { .mem_type =3D WMFW_ADSP2_YM, .offset_words =3D 0x2f000, WMDR_PATCH_LONG= }, }; =20 /* Parameterize on ZM with a range of word offsets */ @@ -2374,15 +2398,31 @@ static const struct bin_test_param packed_x_or_y_an= d_offset_param_cases[] =3D { }; =20 static const struct bin_test_param packed_x_or_y_and_long_offset_param_cas= es[] =3D { + /* Offset < 0xffff in long-offset block type */ { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 0, WMDR_PATCH_LON= G }, { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 4, WMDR_PATCH_LON= G }, { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 8, WMDR_PATCH_LON= G }, { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 12, WMDR_PATCH_LON= G }, =20 + /* Offset < 0xffff in long-offset block type */ { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 0, WMDR_PATCH_LON= G }, { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 4, WMDR_PATCH_LON= G }, { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 8, WMDR_PATCH_LON= G }, { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 12, WMDR_PATCH_LON= G }, + + /* Offset > 0xffff in long-offset block type */ + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 0x10000, WMDR_PATC= H_LONG }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 0x10004, WMDR_PATC= H_LONG }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 0x10008, WMDR_PATC= H_LONG }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 0x2f000, WMDR_PATC= H_LONG }, + { .mem_type =3D WMFW_HALO_XM_PACKED, .offset_words =3D 0x2f004, WMDR_PATC= H_LONG }, + + /* Offset > 0xffff in long-offset block type */ + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 0x10000, WMDR_PATC= H_LONG }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 0x10004, WMDR_PATC= H_LONG }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 0x10008, WMDR_PATC= H_LONG }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 0x2f000, WMDR_PATC= H_LONG }, + { .mem_type =3D WMFW_HALO_YM_PACKED, .offset_words =3D 0x2f004, WMDR_PATC= H_LONG }, }; =20 static void x_or_y_or_z_and_offset_param_desc(const struct bin_test_param = *param, @@ -2449,6 +2489,7 @@ static const struct bin_test_param offset_param_cases= [] =3D { }; =20 static const struct bin_test_param long_offset_param_cases[] =3D { + /* Offset < 0xffff in long-offset block type */ { .offset_words =3D 0, WMDR_PATCH_LONG }, { .offset_words =3D 1, WMDR_PATCH_LONG }, { .offset_words =3D 2, WMDR_PATCH_LONG }, @@ -2458,6 +2499,17 @@ static const struct bin_test_param long_offset_param= _cases[] =3D { { .offset_words =3D 22, WMDR_PATCH_LONG }, { .offset_words =3D 21, WMDR_PATCH_LONG }, { .offset_words =3D 20, WMDR_PATCH_LONG }, + + /* Offset > 0xffff in long-offset block type */ + { .offset_words =3D 0x10000, WMDR_PATCH_LONG }, + { .offset_words =3D 0x10001, WMDR_PATCH_LONG }, + { .offset_words =3D 0x10002, WMDR_PATCH_LONG }, + { .offset_words =3D 0x10003, WMDR_PATCH_LONG }, + { .offset_words =3D 0x10004, WMDR_PATCH_LONG }, + { .offset_words =3D 0x2f000, WMDR_PATCH_LONG }, + { .offset_words =3D 0x2f001, WMDR_PATCH_LONG }, + { .offset_words =3D 0x2f002, WMDR_PATCH_LONG }, + { .offset_words =3D 0x2f003, WMDR_PATCH_LONG }, }; =20 static void offset_param_desc(const struct bin_test_param *param, char *de= sc) --=20 2.43.0