From nobody Sun Feb 8 17:37:35 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 1520F2C0298; Wed, 31 Dec 2025 11:16:49 +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=1767179812; cv=fail; b=q+SUImRZDZEq7STnYSMxqBX8uWTCOqe3H1TCeSQVXn0QQJASBOZymENUki7ftUKdqcPCdGKgtYo2yoLo+d5grRC0RZwmOk6X66dVKKxanXqweGfy0JnslTfFxYXCeBOsnGI7dOjSRqcRZ8e/TgkMKbedKgmFRIosIKxTdAPS7IU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767179812; c=relaxed/simple; bh=dDRakJLoLzbjI+Gzcvab0QgkrbbD5QC2SsFvnukedmY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Hs1A5uNEOIFgpfOHaJ5aaAqpEHnyzyTQ3ofMldEXaU6Y3yzeHI5bJJz46FdX3+QgRnp8tEtu/hP8I6v+CBg1Mu/fxOwnYSQNTrK0H4TmzT9HfIW6wdO6DfF75ChBP/5ojkgqBU5yoWluxEmKsrTMHeZMcj2HQdzT5aNQZkD7b2c= 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=fmzUlDxb; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=U9CMCFr8; 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="fmzUlDxb"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="U9CMCFr8" 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 5BVAg2uY3726978; Wed, 31 Dec 2025 04:50:09 -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=zEhXrm9f/Zwepm4UfVhCwfjHwSEf/AwgI2g1GE01bHA=; b= fmzUlDxbEB+2dr4N08oAzntv+1XoC7V41tQXESQhmbWFjxBseX2v58EB5MguPvTa JLoHklFVy699Jy4w5YlK5HGgytwhG7eVdydG8mick/pp42F32m4AAFMebXY+u1m1 IRCOxTh3nQCldgeqbj8YSFT80xVNh9y2xYoJzLQtYcdqkNNJqU7nyUSaV7SbQa6a RWf1bznEe15Rw6o3LpyFLOvu+4YII8B89XQ2RXKcuL8x3tvvU8vhGRkq/Mcoma4y X1MB3UogREPjfgLZUabccW1keOWHCx1qM3mg+uIWUZSEv5CcKX4Xk4b89TQEm1ns RuSdbfvckgXj03nP8d8gzg== Received: from sn4pr2101cu001.outbound.protection.outlook.com (mail-southcentralusazon11022100.outbound.protection.outlook.com [40.93.195.100]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4bacrmv3yq-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 04:50:08 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wsFAvm6zYZpfm+3Whu8NmzkVxEyhy5Ql7F3MPjxJ6cwG57H8P3l+FQkNNqekLBFwPhx7s0y1z7wun3GQIfs8ZLcpt8jqvuMPfzlpFtoES9gUhoZBTwBhiFoBPXcKKDrIoRandrOSK9h9smQMw2yt5GfvAteJ+zn2XF52nci21ejd3AZVREUv2cTKJ5vRkx/LaqTHQytQH9ZVFrcZffkYvUYIeYcFEwN9+NtnA3uTFUTH2hWlqfBM+PMXPVE6idtoPrto/jXNZ44Z5stevLQ0mJsa4DGq6vxj8nE8ThDFh7bir0D6ZLjN+NFIelJaLHd2a8QliqGCW+pJTIdRR7mymQ== 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=zEhXrm9f/Zwepm4UfVhCwfjHwSEf/AwgI2g1GE01bHA=; b=YA87QVyWKZOkap8jbbjSwiMlb45+DL3qMXgv6rLT0VGeqFM0KaGRhc9IyEn/2Txci/pUYcs3xzc4Id3uafNCrNAyY4hMYP6V8gybHCIgUkxIl8H4oxqWSeRbQWN0pmc5nNJ1ntBRjvg+uJAsEgqk6JOK7wsqSFUypPRObAFWENhKiwBgsneifVVIU9XmAmNJ3z4tXTv0iT4rVLZyMdpW38ZNO7JY/KamTyd+peZ/zPr60PfeWbwkeyVmcCwZqctR07+S4jbkZ731zSjsoAQcRp1tmhZvDK8cOI1RCBy8BpcZb3GGLhxBZpLgo5O4bWUctHGQYUPzRAZOsQhvmv7Rqw== 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=zEhXrm9f/Zwepm4UfVhCwfjHwSEf/AwgI2g1GE01bHA=; b=U9CMCFr8SjrnO5mQGvDud1KLGmjq+in4aGK8blTFCarE77v2ovgD9QyKnzK9zgWHC95SEq8OXlL+hjgm0ZPbckW2Duy/JC7FUw5TOhhenhMyBsFnpVoAC74pNNp8PhSrguMMiIb8+C6o4X/TYFj7qIjWYR9EiOi5aeW5bEit78o= Received: from CY8P220CA0016.NAMP220.PROD.OUTLOOK.COM (2603:10b6:930:46::20) by SN7PR19MB4831.namprd19.prod.outlook.com (2603:10b6:806:10c::22) 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 10:50:05 +0000 Received: from CY4PEPF0000EE39.namprd03.prod.outlook.com (2603:10b6:930:46:cafe::b2) by CY8P220CA0016.outlook.office365.com (2603:10b6:930:46::20) 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 10:50:10 +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 CY4PEPF0000EE39.mail.protection.outlook.com (10.167.242.11) 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 10:50:04 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 33F24406543; Wed, 31 Dec 2025 10:50:03 +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 DC2A3820249; Wed, 31 Dec 2025 10:50:02 +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 1/8] firmware: cs_dsp: Handle long-offset data blocks Date: Wed, 31 Dec 2025 10:49:49 +0000 Message-ID: <20251231104956.449696-2-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231104956.449696-1-rf@opensource.cirrus.com> References: <20251231104956.449696-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: CY4PEPF0000EE39:EE_|SN7PR19MB4831:EE_ X-MS-Office365-Filtering-Correlation-Id: 7978a754-5bd0-445b-511b-08de485a5b4b 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?XCYnCVnbAh2STlO1WJbmW6j2dlhflrlpjoxSD5yeiq92RA6vboUKwTdIe6uX?= =?us-ascii?Q?thHx0fpYQZP3IR33C5njhNJxRY1fO56og6TzhbduEQBpPydJvRTG7XtR9LCn?= =?us-ascii?Q?onMJDwAFVqUR4omP/cMV8IGN3tNetxDeRsMudMN6WeF5cf7O8Ky08iLbE2Jj?= =?us-ascii?Q?xXCMnhjX0pRLGmzgzeYxE7EPleRY/EBmc1/4syj4H/ke3ImcOJjX7dDOSsvn?= =?us-ascii?Q?E3MLudQgfLSLPd4K8f4CZZIU90WQvvbx8vcK/zMFrRtvFfialsU7cWWXkdxI?= =?us-ascii?Q?ZXsKDyz30ZOX6aVT0wR5XBw3WXGjKH3gBQJ7vlnmzGqeHHaMdsOAfWfYu4Bf?= =?us-ascii?Q?NNnsaZruHX6GAKF1a5715Cd1KG7VQwr1quzct7av3P+t/aD1dPbizk2FTtRY?= =?us-ascii?Q?M1gXetYItyHW84B7c4xemWHOOKEaFM+esjPYsubZDixuT9/6vF+26Ka1H12G?= =?us-ascii?Q?a82Dg6mhZOIXWizvK2O7Y8CLQ8WIMi+H/2q05QmwNKRTqSymMMSMDRgizqZU?= =?us-ascii?Q?FOwl9YHQFo6/qmi2IVqVJb1NTPlJNjY0f6yLrbBOBFve1cuwe8nSYFJndPNJ?= =?us-ascii?Q?9fR+VKX+ChhMb6cwEJa0nyEm67Pv90E/dDqxi4ZJW3pDfSlERPNbNivVTUty?= =?us-ascii?Q?Z3fCMjwshvNjqTg2zrZPBuajCfr9eE3HsCJmnKuL/UY9UE8wuMC2M5bnWbRR?= =?us-ascii?Q?lpeAGpjq63iGApBq7p5b6efdAxjlU0+LZRaTm0/MlcsMomufaDHNRSosdA0n?= =?us-ascii?Q?Y34spjGqX2JBDv3465gjANI10HnUU6lGShlWf8oH+HUW8PQZD+pUH+eipptu?= =?us-ascii?Q?1R56WE+z6jm/lulST3N/jG5sWQcys8jOVPZp/6SmotkgttCA7Hk/ivL/I1zp?= =?us-ascii?Q?4BJYRTMewGYEIn8FOIpiVr4xQlM7cIYt8Bhbu4a9+BrqdcgqRVVFzawnKFqU?= =?us-ascii?Q?Z+/HfSrr0WfaC5ubQ8EKsmGOfsf4R8GdBDX3h50Y8SMJRRM/VacMuL7z3Q5Y?= =?us-ascii?Q?+5LMfmlEOLkDLaUfblNyxA6WgGc5uyTiwMUkey4MGwLzhif+kM2k80Qz54NX?= =?us-ascii?Q?i6ca/COGsghMwSWK9gT8S5uLGckccBBujOQUvAvV+PWw82hcr5zHop6NU/b+?= =?us-ascii?Q?SRPVysrGuhbDEekkf31v6xriW/Nui3Ywtc+wxKdvdl5b8BVTNmpHoBEUjFPY?= =?us-ascii?Q?f7337sP0XfSDRVlwaPY3ew3R6YZZ0hSXbzjoQGWMi2QaNYpQHooJvFakrT6j?= =?us-ascii?Q?JwKotqLSaulLh0n74yP+kUfucQE4XsQmIO1f4HRmWsMZVhj0+borDpdapCic?= =?us-ascii?Q?H6u4PnWuRxUCyB7pPe+J9nX2wyLjHzkf5CEkjSShvD3uhx0Y6ifApt+jj1m+?= =?us-ascii?Q?tJQYsCEkHsskMZe9Aw7upJZN/y1dI08dVTl/a2DfO/Y66EI6jBKolEbdvBKa?= =?us-ascii?Q?87iQiU+3kgFPSBPiCnS56oWIqBnp9j77P4G3dITB1B1Vc8pM6xpyTQxCzhrq?= =?us-ascii?Q?d9eZfKRcfTwESmih/T+R06n1oVDYW2aRukXVjys5V825SnWd9f9yUlxr+K9v?= =?us-ascii?Q?OLp9rYAxSxVf4FFBjDk=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 10:50:04.6146 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7978a754-5bd0-445b-511b-08de485a5b4b 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-CY4PEPF0000EE39.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR19MB4831 X-Proofpoint-GUID: V3GZuBvGXn-KHqoFHlwCb_GhbdEGkoHP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDA5NSBTYWx0ZWRfX/2t3z/rHbBgi bZ+jz2UWdZoPyqiwHsIlxZEVm5P1JsJntdbgUkzonzvpmsSpwRMx0isWhcaEWvSaDkyz9gHAVBL Qdb12z16gxdmpZeDp7BT7kUGmZoTd09qhZs+Blc9E+8Rbv2ZkFffQDBCvqdpjbQ6YMYNgqbFCyK pBle/QUfph49jP6rC70irOyG/L6Qq+A/46zwPH3ozNnAqfmmRv9VxgIXNfs+QHfe+ILARhWmw59 Vz4OyDbviVPOZ0ongX/ZkhqFq//yIEGSNZx3ZNPsm/8VDb6P9s3wDlhKndq8LWzZy0SdblKDFBR xYwBTXkiDtvYOEZBd5u/1SLY+0bzxRTd50Un0/zjdeHbvejX2JIKNKrEXuosR/ulWlawlppzA62 6AOUgzcAX36r9RSICV+Z9qeYF1151XwTbNktUBwuVfoc3FCxFjPTf+NGnKFOD/CsHk9uKvGTcbS VxbQqwUxzLW+PPhx/Vg== X-Authority-Analysis: v=2.4 cv=bJgb4f+Z c=1 sm=1 tr=0 ts=6954ffe0 cx=c_pps a=NdJUlaw63gEkhoowhPQriw==: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: V3GZuBvGXn-KHqoFHlwCb_GhbdEGkoHP 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 --- 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 Sun Feb 8 17:37:35 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 151AC2BE646; Wed, 31 Dec 2025 11:16:49 +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=1767179812; cv=fail; b=LyhI9Dq2bvuZzTVGnGmABm9Mhp0sDMX1ib+eoft9qVNt3eIor5kRF8t7yXhLu/dFWj4GFSZ9oF4lrlewASRNAq6jaDaiiKZweO80J5OkFqJGa+V2qKi4yi7vx9gvVbFSacg3eFXGtHTKT8eC5C8doKwHe/uidiXU0s1qTxX0zG4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767179812; c=relaxed/simple; bh=/teI4ceD9KkexaTFQtObmeNft0krtwnHRv0eQh0KtF0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=LrUsUoeH5W5VnxU7d62+VUkq4fvGxaYcTLp8RypVZ1qw1XEa3D4DmdFhwKCTPfwKg0zO15LJbBRWlp1K4/wZhTL2Wib+qGFLg1px5FvDq6MwdFP036iIH8J4ZxAatUhWT3KOXhfVHwfP2qPDUv15EEOoEGBaAuLlLik2ru75MKs= 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=nVxmU/Cv; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=RwGiMY/p; 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="nVxmU/Cv"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="RwGiMY/p" 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 5BVAhApu3728370; Wed, 31 Dec 2025 04:50:09 -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=SXtzgS6gkk/eAPpyJE8++5OZSVnkZAns86cgQ2gpJnU=; b= nVxmU/CvV6j5aH+25FFwSkBQMsNORNlx8BEFbzR+i1EeGwIJ/1SL6mo1ruvedvkC 7HWZvaJs1Ox3vaoFTeXllUFREDWtsfYjqqQDF1DXJtL82B1HiwgSIxWzmEjg70JI LSZTk54wY28wRdRmpZemLoJ+R87C9J6bCvwgpgDsVSN7mlBk/kpfpzw0Y6/YER7W 62WZ9GDcYQwf+NBjF2afpitY/6dHeJbj3T1bhi7rXXYEyYXWnGK1NU5IAxdCgb05 3DnB9jnpDqob8JeBZpVMl8nO7Vk6cgMuxyxyJEP0CHsA8y80sKbFcOJ61GH1ujEX qqK0cIsLtba7gnUzyzkHWg== Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11020087.outbound.protection.outlook.com [52.101.61.87]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4bacrmv3yp-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 04:50:09 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aNKeVszPowwbnz2csvviJ9xCAIa7COBi6M9t0+SVNJas3ZqAS8cUFF2unltBYEkstEoiTWuVs97zoOT1VN1AP6C39/ogyPpJT1kAVWIpG6LNec2QpYF/TYu8mA6hjycf1hobTH2hBF1BMnUXRddGd1hHDVsvG3X18xnhRlrIlMyAZcBR0w/VkElJE9UmC7p/DscRd+83E6y6+FB+dWCb00uh6wASyXgg03FYWFvNfEksZLpHXo+SLKW7WMs9QuRSA4u64+K+SfkeKujD+36o09MWkdsz2rBd8wvFubuzjXa2UciwOksQDR1IAEguvFkNP83v7qOiLVGzK3nFJaG3EQ== 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=SXtzgS6gkk/eAPpyJE8++5OZSVnkZAns86cgQ2gpJnU=; b=FT//KP4473i+JSWN2RsBWcoUud9WLgvsZxcd9wrZRZCYRs/gS3Kxp/13Rn7VACAo/u5JicXmmFpkA/dIKjDmE8HcFAzb8GVPJEeMk1RfyC2/Pmid5fgLKV10h46CbcSo09WLdlJyLtQ0L4XWhXfqLV4+5JHDFjiloOEKCYogThYcN4Ric5gZBfGszPu+dMqIUobEqdkNZ6QP3Lm54EN4JfdJq6DU+XYmhhuAbZFV7lqJkkCH3AzROowp+2EfsoBM3Dh3E/DD7fxftloCXBz3IkTq5WT22xbL+simlxGpNOlWWybHQASCw3mGz1OjDkSulMuBKNhHi0FoTUCJrjdwLw== 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=SXtzgS6gkk/eAPpyJE8++5OZSVnkZAns86cgQ2gpJnU=; b=RwGiMY/pjMXwa7PGW3DSs5t8COjaUo9jL24wwhYkYnIs2xguiFHFJQTSpDOnnWkOcLhOl/eoJ54vqKMcyDVy5HsIhQOfKSEObI4xp3VOBBHLYK9LwwMZPpzx3o9M8oxdkcbXrpjYOWTiFH0YkGEuweaIq2/9S6oDEmmDdG+3chM= Received: from DS7PR06CA0052.namprd06.prod.outlook.com (2603:10b6:8:54::30) by PH0PR19MB5194.namprd19.prod.outlook.com (2603:10b6:510:97::18) 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 10:50:05 +0000 Received: from CY4PEPF0000FCC0.namprd03.prod.outlook.com (2603:10b6:8:54:cafe::91) by DS7PR06CA0052.outlook.office365.com (2603:10b6:8:54::30) 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 10:50:00 +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 CY4PEPF0000FCC0.mail.protection.outlook.com (10.167.242.102) 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 10:50:04 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 96C53406544; Wed, 31 Dec 2025 10:50:03 +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 40EAA820249; Wed, 31 Dec 2025 10:50:03 +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 2/8] firmware: cs_dsp: test_bin: Run test cases with v3 file format Date: Wed, 31 Dec 2025 10:49:50 +0000 Message-ID: <20251231104956.449696-3-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231104956.449696-1-rf@opensource.cirrus.com> References: <20251231104956.449696-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: CY4PEPF0000FCC0:EE_|PH0PR19MB5194:EE_ X-MS-Office365-Filtering-Correlation-Id: e34f667f-54d4-4dcf-ec94-08de485a5b6b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|82310400026|61400799027; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?XfVNTbUZg8zMJWfjlmm3T+CfcOYGug6pHvvnkauMgZYfLvzELd/Cx/bu7VBd?= =?us-ascii?Q?7U6UwXTk3skyARbA6Htt+ncpjMk78Jljs1SJct2QzcwsfOe5aOqkyQwBoCou?= =?us-ascii?Q?/ZNvGwa0u63Dvp3+BZERzyYLe14SPRAoq13pYpDk3OiRAMEhNVr4Ba9C2gq/?= =?us-ascii?Q?KxI2+0YBePwLLYTEWdvQO0APTtTy5Ey5BBxjwFGzP3w+EEFdwS2z/lpD0lTJ?= =?us-ascii?Q?uIwyqftgIOBBfCNzhFRtsRkF/FHXJNB7sfoNAKhQPZMXaTbRk+0q1EGdnmmI?= =?us-ascii?Q?1/SezyC0s6PQScYfmGpkfydHQKT91QlLVVKGNcGgnr0OUqPCwdmjdQgrHxFd?= =?us-ascii?Q?YKPa2dDZLkG/YfZO344pP5rIVY34yuoBUg2nJtgg/W2R/EwCnI7ky5EBr3JP?= =?us-ascii?Q?fRZ/RwQdBtFC1fWbMNwpn82s5pq0C2MpWFLdVpccav1EL4G157kVzuu74tM0?= =?us-ascii?Q?EY8+lV0BwhQThcul2yzrOkRP/pUc1CLpn+oaDTxQb2ERBr2VHGjCM1ienlLN?= =?us-ascii?Q?P+2j8euUvOnX5DDlTqHclpNIXq21K+cP2S6jBZ7052gRO6nciLMAwnoJkjEs?= =?us-ascii?Q?i5V5Y/HzBgCKH0t7P71ZlkTqu9rm5u50Dc5+ENbzeKX7PeMMlaHo002UyY/C?= =?us-ascii?Q?rtHc7JZwkkrJIrbbJLtiWEFAvhLBMQYqUZrZVImsYqhJuuKT2YRBecLi3b1W?= =?us-ascii?Q?l3LEG356kx5LG5IyYijvGtaM6eG7uQe+IAuMg0n3d1uY0RAyE5RHl92Ax0P3?= =?us-ascii?Q?i6cNnDGRbFGS8wEGZvYHV3SGf7AJNQC4EclBMMT0oMZxGeXiuTywD2cl2Tze?= =?us-ascii?Q?Y53FyArV/6T1eQ9/Koz8/oW5FsGHeyu3/DSpAtXNZ3sUrk1kGmZj6KvPCNKr?= =?us-ascii?Q?m6ZVUQK3zDqhB4wJYtpCocT8Z/IPGvgFx3yvlGDL3gAZpAGhzuAcrvlu0w8o?= =?us-ascii?Q?xbmrYzx98qXo8xnf8ls9jrgsc95TLbJeYiy5vtn5zVekrvSN7l7kGJFl31iM?= =?us-ascii?Q?0EJ9Pv/87RrwYS8xR8TM0buWz61CeJFaJzOo+ClMkGe2+8KwItAm8dBFlgJv?= =?us-ascii?Q?R8ea8hczo7ifxohxZBgZYHNQDexvFmlLrs1L/wqx2zJ0Pxdw2avnTzm2cd1B?= =?us-ascii?Q?eGreB/m8h5H6gxTji6yq5u1JDJEnboWKkfgJO1NwZIBZh5HoG5tTJk2SMc10?= =?us-ascii?Q?4AbHJhHtySSXX3FiTVBuTWT4IYZMEXZsue8Uesn5lDOUoyNRltKaa7NSIeFs?= =?us-ascii?Q?dl0MLIhTtmGpYupUm68pMmWjGKy081x+us8HYUtXnng4Sm4130oGLjNPerDd?= =?us-ascii?Q?1Ki2cpNUj7Ek/Awz3Xhs6oYPeJ+iu+4Bm8wnZY3v+A+VJV/Gfvw5Hjl8/AAa?= =?us-ascii?Q?5YZh81iP9Dzl5bKwO3l210ezPU34675DShZAmNBgprhXMguj9FmVg4bWkTO2?= =?us-ascii?Q?Kh2MaqDmNvmCsypxDghErXP1Ij6Cet5qQTzXAxwn6Pocc9yDlqwchJiFMDHx?= =?us-ascii?Q?lNsBntlosTOy8q6bYLRkGoYCEOH6Y7j906oWvcy7zCDbDzSTzjMMD3Oy2kUb?= =?us-ascii?Q?Ol+K0W1NOVUgJW9eHLk=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)(36860700013)(376014)(82310400026)(61400799027);DIR:OUT;SFP:1102; X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2025 10:50:04.8300 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e34f667f-54d4-4dcf-ec94-08de485a5b6b 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-CY4PEPF0000FCC0.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR19MB5194 X-Proofpoint-GUID: eCyXmd2LPuvTMOFH_GHNag2LoVgYpGjb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDA5NSBTYWx0ZWRfX3ghr9SGe+/f/ tvTISClN/xfR9NLKgFlFD70FP6bjbToPdvbMCaB/UZshqaRTUh3t8qYDvmVkouTPIG+DRGPtiIk P1UyD44F/4cOIms0h2BeuGJkkJcYI6svXiGr9mF2Q01BvcarDGNgQ4+QkzFkbB+8OxnQtN73GOT mw1UHZM+anZrzp5cddNMLtxpHQnJIRmgcWF6OnesgHJIe81pINljXfUoKY4Wbt3OcJuyYXWfw8x PnP0mNGcTf/DomGP0Hs+vKLIdfZVR8PVpQlESZ5RevKPjVAfMz8Gt6BDabruD4wwIrW8NxBbGr4 5BKAH12rKQTuLTECoDnh0OnCCSAm661nFmXcJB4bDAFMZjybKTqxhHXcYbUO5HpAArpDIgO1cjm kbpeHW4wxijlR9RtGkETzP2acpe91YH/fUw3BZncWbeC60I3cWIGRK+XkmpPtHH6d8xd3CGJ0wj oz9F5Ciut3fVspMrLOA== X-Authority-Analysis: v=2.4 cv=bJgb4f+Z c=1 sm=1 tr=0 ts=6954ffe1 cx=c_pps a=uUOONCeAppmmVOxUvBiRog==: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: eCyXmd2LPuvTMOFH_GHNag2LoVgYpGjb 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 --- .../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 Sun Feb 8 17:37:35 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 150FA2882C5; Wed, 31 Dec 2025 11:16:49 +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=1767179813; cv=fail; b=NZ1P7PNqb0GzRZKaEX2tCwuGwJUqffvdQZlz22YhDEWF0SFobMm49KZkhtgUyxA0FhvFqrUkXJS8SHVt/euj4AqUrMNxoSFPMwlLbtTSLeQzSLLzTS/Q60fyQRIXo4JRExSHiz/sI3fQx4lWm4IVMmQjksoJ8Nw8/wbUmfqMGtg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767179813; c=relaxed/simple; bh=7TRFzBlXZ/HkuxDSn1F8ct9ojSpcKC/dyZU0tUE2m+Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=n2skSAUO268C2y1Ta2cUA0nQsHk0hlzTUy5OZItKs6Ra3FlXvgTPBcQIJZriADKBjLYPhQpHAXl9ko+XQpEk0pxFAE5QYHZSlGRaX0kVIC1PnuQEMxni6QzmFRPIJEc71k7oLNWH1FApe1OTy7kmsqcxE3OexJbcKiixMcd6VDs= 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=JjIqFAgU; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=kRoC9LHN; 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="JjIqFAgU"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="kRoC9LHN" 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 5BVAg2uZ3726978; Wed, 31 Dec 2025 04:50:13 -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=giPPbCfc+mydGx2LN2Uf1vYqo04E27vDYmmqp7pdVb4=; b= JjIqFAgULZzQ1JHz7zjYqxiSpZQXoEZNWV4wtOYfOCfFm05ovbFIEfIGrC7IW8e+ L371y4MQnIjOalYn4DNow5apAE2+TA/NBH1XjhVlB6dKh2YurRXPGRy0TBB5C7H5 utz9TNiwQ7J+b6II1LxEhrZbWbEN1VF7nQOqywxOBdb9CoI/GIzFUjdSM2VmN3oX Y4e+dlTFJnISRVeWfxBIvakg0pT6U2dC30+3wg+J2QUmTI007pV+yIPi97+bJTuN SX9Mhkb1C2uNbfGTovF/NCdQ9HhJX+f9dX9I9CflGwEzlsREI+lIWh4rzcse75nl 7S7tWHyzRPJUxBwFZQcMrg== Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazon11020124.outbound.protection.outlook.com [52.101.85.124]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4bacrmv3yu-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 04:50:13 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wTFV9/+ngUkF6vcazDD0B5YxLGnauPVe9BfZCPMXSNf4Jqq/6aiu3Gr8haiJKGEOXQi69XJu9aNTGq8xqLeAvps9MHf4yXlY/mEYqGyH8zeO2PhoEEgGCZddSLc0cM6gaMicj8warUEgPQHs1wSMxxmNTU/baP32syqBN8YB9AY2C17uGdB+niwVZohhja+HR6tPDHFPaY3j/uKKp6INbpPK5cQn5xlw0l5I5k+4R5SB9QTDptC28bzENSbkDQAgV98D8rklUMjRZ2ISgCJW5RxNvQPXUr5R+qLE0gvEhHQ/zLN0i9lAb80TnlDjaPdje1okZR7phnSDzEaNMEiy2w== 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=giPPbCfc+mydGx2LN2Uf1vYqo04E27vDYmmqp7pdVb4=; b=lVTz7wwnoJxlUnsnmDQurJEXvJBup9Ov6xIA2f7e4F79XwXn74Kq0krrPaD7BxaLPW7rDh3Yyfz6Iyhnfzgbc/qD0EmAc6bkDjgaSBk7YHeRmE9wXEJTz03nKRLMTxRD50tWNmMn4QqP1Z0DSE7CU4A/Vz3l46Ko4zYRiCTUicQrIh4A1LtDKLQOGO7cmVsbQCnCJnlxKrNeNW/xae1CeZUj0rQ4g++BTL2db49ADhd/QJMdOsjPXedEQBj0lP8rYnnGEVdiMLYLZcDkNAOLwq+Nhh9K9SxJiMc5rYpxMVpe2lS/SkKiIgMPH4iD4pA+gEMEOGYlINeOlqpv5gDsPw== 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=giPPbCfc+mydGx2LN2Uf1vYqo04E27vDYmmqp7pdVb4=; b=kRoC9LHNBbLIv2HwHuO8g+1cQNjb76w+HLzW3SDNJd0EHOFSHb7zeixLrKTDdgcRnBW2sDIUXoOGLF9kDyoQiPdDbehreOseY45KmxowwhtMJJVjwz7lYyu0I6TWNfwmX/qnihZE1jImosHpwQBovoUmKO8vaNDhYPFxd5dkRkI= Received: from SA0PR12CA0030.namprd12.prod.outlook.com (2603:10b6:806:6f::35) by DM4PR19MB5713.namprd19.prod.outlook.com (2603:10b6:8:5c::22) 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 10:50:06 +0000 Received: from SA2PEPF00001506.namprd04.prod.outlook.com (2603:10b6:806:6f:cafe::88) by SA0PR12CA0030.outlook.office365.com (2603:10b6:806:6f::35) 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 10:50:05 +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 10:50:06 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id A9F9A40654A; Wed, 31 Dec 2025 10:50:04 +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 995F9820249; Wed, 31 Dec 2025 10:50:03 +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 3/8] firmware: cs_dsp: test_bin: Make patch function a test parameter Date: Wed, 31 Dec 2025 10:49:51 +0000 Message-ID: <20251231104956.449696-4-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231104956.449696-1-rf@opensource.cirrus.com> References: <20251231104956.449696-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_|DM4PR19MB5713:EE_ X-MS-Office365-Filtering-Correlation-Id: e8c05aff-35fd-4bee-8049-08de485a5c31 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?kFOQ7Q0DO3QAF7ehJgwJPbd3kGyrXCtKpDnHAYDLk0zUxz7DAdDEoJLlTuDQ?= =?us-ascii?Q?WueGxN9HaRnq4T+1fNwnDFM3MGAH88uINuCHTKT/sdiWv1FuNHWoR2L8KrMB?= =?us-ascii?Q?IsZGlf3klmJZr7idPCmPUYE0CpnduP9D0Q5cr9B788B4SKyEcofsAL4z8sws?= =?us-ascii?Q?gkijx2v9kKYJq4bjKncLUbK3oQJvuczT21G+KCOPv2Lc0CSswvfHImbEeuVi?= =?us-ascii?Q?E13P5/bZyOdE4aYycmUvivD32F2Qc8yjc/9D0UlqZfuIiKfeuyWo1SLG34TW?= =?us-ascii?Q?l9981ELEzMDw0qiluMu6bvX5XD3VHK0bLN7INrlU/hkbUwvjHWDWOSDhhnfc?= =?us-ascii?Q?ygrh6d4NmWbiwPbZfWBvgLiiREuGrCwBB5hSl7cVB7vRMGRcjlg3yDX692B9?= =?us-ascii?Q?893/Vn652srz1jYmBLzL9wDOKzrbbRcWrDTqZk0E2nno0GRqEpeBicjCteBR?= =?us-ascii?Q?RcsKrLVAgvUWedYsCASGU2t0fBuvkJqCwq+Nsf+GjSJYdpK06IYm1nxdZD2q?= =?us-ascii?Q?PODfNZdXg+yNCvmz5HoFkQigZwfz6EzTibRrxowIAtFDEKaoaJaPbNFZVVRA?= =?us-ascii?Q?rhQ3aCIRa/BeqaGU7XU3ttiRr9EhCulog/ZkXVVcLDrV2b1NHv/0g6JVIkhL?= =?us-ascii?Q?cd5WBBKHv0wTHpGQdPQg832Lc5WyNl8jQ11bfXePEs7SDIRRBVlSSv3liViw?= =?us-ascii?Q?wAWpcglEZ5aBgndyGMZ4XJtnWz3x52m4V3xTqfuK0IaJOCBXi9QaQ9qPCbN9?= =?us-ascii?Q?Dd83GxAagrguRO1zDtBariG1OCBCXn6ukW96/Ajhyp8XZEP+IMqtICMqICEC?= =?us-ascii?Q?lqLgBFefxaiObsrYm9KRnqLQhCTzd5sWCmKPSo3PjO7VO4Y/cjucsXFTNnoK?= =?us-ascii?Q?tGLgDX60tb0Ti0FfCicOVpvFgFK+aQQ5fZgLL8dgLhmXuu9ZQTSk1nnkqAC8?= =?us-ascii?Q?/Nl361Do6iZmtob0S442aucV7Vckm2HC133USKLdX9B2ZgZDRRel6x0jMnox?= =?us-ascii?Q?nPq/vXxR8O0YyY35gzXsc9LT8+cKHt9bSuLPszSEYmn0ravrPoKBycSanrjg?= =?us-ascii?Q?MEHRJSHLKpnF8U7oPRyOelrdiLw06P+JmvDFBXNvD4NZKRixhjOzGUPKCIOg?= =?us-ascii?Q?o6NlhDZlX5OOZz0jjGe3/EeKGCTk32Fo/fxQ4JBZ/e6tYJx867xISBhrmw78?= =?us-ascii?Q?qAsRvg56c3jBky1yjGkhewsgIw2zq9XfwCHuvSsm1ojr3VlzYe/r6MIviDrR?= =?us-ascii?Q?B93nQzYXS8NeoSEDMxR8En4Bm7LnJ6JSJgX5j1HNz0g9MGeokaQizrikLzCx?= =?us-ascii?Q?KqhbDBgxIvCQSUMNzURdGHExhwwoMNXZfum9pNJW1vAZIYgwhbLNArcWnOUC?= =?us-ascii?Q?WUURhqWu5YW6jZ0OGff5MdSiW0t7pDt3WLBw3Lys23t6umPjTnuIrKpdRi4X?= =?us-ascii?Q?DMRwXL8d3m6ifmwS6keEmJdVAr/WrQHuea49/yB2OzSXF7aKxKG0/R/aHT8Y?= =?us-ascii?Q?iaESysAm6IFVmhFVrx9AuEh7Ruk7CXB7AEOweiDaHSNNuGSOPz61Vp0/5iYg?= =?us-ascii?Q?5HNeFIEMye60UeXyvGk=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 10:50:06.1340 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e8c05aff-35fd-4bee-8049-08de485a5c31 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: DM4PR19MB5713 X-Proofpoint-GUID: A9S95uUmiZFQkOJYZF8r85wNFJgAlFc6 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDA5NSBTYWx0ZWRfX04N5f6vejzHu icbZ5lmNLzdZw1gwqz7zmXLxGC4z1bw5ixjpHCXxRH6JHuH8jbO+OQVwJZBk9zZZzyqY7a46a5E j5h9AS3ZKQKbCDCos32IaoA6TodqtgI3OvEZL8xuDLkZZ297SiYVFc6B8ChcW435ychDCpK9OV/ +xQ9uSTFNefANqZGKESXAcE+AriRUFORY82w+9U6LtcEh9uwBdxY33TgeVFYmpl7b57i4iNiChJ uQLpmYbdaqSeMqqwR2VK116QnZXA54liIa/z2FScUKBrCpF6n+JAdsHbxjKik0i3pGs6jii7jeU B4QldKwfXvAXSPfi1taIHwIbHOI3Zf51ribJ6EeoVdGtOkDs4gAMmBZsSZ40EU+0C18n+yaS5RM rTEqdV0IWbxKZjtaeO0CSHOmEi+zSk+bVglQwEIS7NtIhSbHoKKIFYU7RvDBzDXlRztNxU4on6Y VFnnbOcj2BkApYrTX+w== X-Authority-Analysis: v=2.4 cv=bJgb4f+Z c=1 sm=1 tr=0 ts=6954ffe5 cx=c_pps a=EXmEQszPLboQ/+r5oOSQfg==: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: A9S95uUmiZFQkOJYZF8r85wNFJgAlFc6 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 --- .../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 Sun Feb 8 17:37:35 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 01939263F2D; Wed, 31 Dec 2025 10:50:25 +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=1767178227; cv=fail; b=VapWa+be+GXFZY5j+XfLMNikjhs+UzvKoOU/xdAcl3TxyOeW8wwOMkKNc9wburj92rxVwOKelvUEdBa0ZY0PhMfxaGlS66dEwy+en5bzfcEmqPXvlIOdZVXlhy2tnpLt32flOuqYu1KWtx+6YRZlxX11Wt2sR4yP4rbLYTnYQr8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767178227; c=relaxed/simple; bh=TTQ+DLYSrY/R762xG2T4paia/jTgWAmAxlfZ7El3sCU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=dlpM6wUV6d/Fbxew7J5WAIf19v+8Epk5kjUKu61BDd+WU7x6NEcL93I+Z7saw9cTWx9nHbWyc06udCiPFwmaOpDEcL9Ita8Kzrf4UIMNgPIc7s16nvKrNIrUFlaBpxxot59P4/Kub2JO46EHSAX/SoUNxCYsV/q97KpY44Wvjlg= 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=qQ7gFwUg; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=WZUV5L8B; 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="qQ7gFwUg"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="WZUV5L8B" 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 5BVAlwbd350718; Wed, 31 Dec 2025 04:50:12 -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=Cvt1g6EAYL7EVIkfT8FeY1dt5X3Ee8JH9PlMFYsHn9w=; b= qQ7gFwUgYhOSj2/744OixgHfFDKAGBtPvtJfFGnxpd6GXbSD10ADeSAVXNWNGRaI ejSNtJQoVw6OA+ZcIJFFm6xQzf202ZHd1YiTcZKtJmxkZhymx2ett0TXCQcpeABT 6+yrlYtMvXf1xauGIgodcYoXv2NbnjwjvMrAaFJY2yL9yXIhzC9COd3OJCZ17ikf myGNfXHzX/p/GgAA2Z+N1akH+unf/zQuDkmgqZo+IjWo27LU3IgFIpKLxMsvSL0S gklpCc5sCxFwSKjymeiHlmP08p4W5ug8Y/hQAoxQmxR7lNvbpMY3ekwZhuoP/tPa 9MATA+ljCqw382PVVEIr6g== Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11023111.outbound.protection.outlook.com [40.93.201.111]) by mx0a-001ae601.pphosted.com (PPS) with ESMTPS id 4badr3c1q8-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 04:50:12 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=E8l06inhnc6y5I+XVYWmlgJUD4+lfHk0DUIpdicVtWnliZKUElfbGcPt1Y7t40iiE2ZzSYYcVEgn16PZRli29FFvNSgNYIF09YD+7PjNwejW6gVwkBUkgcjNN//PhBpQnTYRZRqTHHFGk0wa4N8QMK7T3+/5sbp12fRF0MhVVFvn5FtV83ZvOfg0xmB3bABpZoA9M1c4hKne0ffcc4wPnjXNqeZxgq72nLoYn7XRkQfZf9ajfR43GVDHZ2Wysj1okX8CF9gckmkVPJGJe4sIArStbhI6Ne0snY88I6nuaGxuiDtDGaA8aU4IIcyXl4a8UtsJsM1tc1qGD2dt92FJSQ== 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=Cvt1g6EAYL7EVIkfT8FeY1dt5X3Ee8JH9PlMFYsHn9w=; b=ZVYvyA0rOm9ZXlFFAvk9isQllXcujUF8QKjWjrDKcdwoIaf/GmkXgaEI5u0H0NvHrS2dYahet16PGoE9PWwQmFNHGoT/BeGiUwNZ7+/NWg6UGJ4Yg7MYlk3rQihfI0fWnzusO3QewJjg8KECdRoOkNj3un5h8uJfQygwBCYo888VdO54bkjANO66ZyAaZtl6pBWL0IOH2urzxX+SQyZNJHaAHc/+XMF2liUutVnAGTQ6gWU+peEif2AB9fSJBE0qhzwOx9WOEH0xKJcZTdaBIMLwRhPJGnSKmyIknifQtE4iXm4VEo4UJqhueWEzqKF5Ytbc7Lbmfelc+IHh42Ph0g== 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=Cvt1g6EAYL7EVIkfT8FeY1dt5X3Ee8JH9PlMFYsHn9w=; b=WZUV5L8B0p18mSDJhtvNF6HFy3fOeSbTTl0wV3afWOF4Yx51YE0kkmAk4zJrjhYrmsT+rQ1dbCAtCtggzaB/MJUMvss3vmAk1WlWAsHdczjm962dj/hKDQdJMzAYwHp0Jz0nLLOFcDV9z6dgpbZd3SDE+N0PNEyAXmNknl1KSq8= Received: from SN6PR01CA0009.prod.exchangelabs.com (2603:10b6:805:b6::22) by EA3PR19MB9566.namprd19.prod.outlook.com (2603:10b6:303:2af::7) 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 10:50:08 +0000 Received: from SA2PEPF00001504.namprd04.prod.outlook.com (2603:10b6:805:b6:cafe::88) by SN6PR01CA0009.outlook.office365.com (2603:10b6:805:b6::22) 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 10:50:11 +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 10:50:06 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 19BA2406550; Wed, 31 Dec 2025 10:50:05 +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 B98B6820249; Wed, 31 Dec 2025 10:50:04 +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 4/8] firmware: cs_dsp: mock_bin: Pass offset32 to cs_dsp_mock_bin_add_raw_block() Date: Wed, 31 Dec 2025 10:49:52 +0000 Message-ID: <20251231104956.449696-5-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231104956.449696-1-rf@opensource.cirrus.com> References: <20251231104956.449696-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_|EA3PR19MB9566:EE_ X-MS-Office365-Filtering-Correlation-Id: 05d0d4e9-9489-429d-ef11-08de485a5c3e 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?Jj9vvd/lDFyZmtENDKqP40jvPYTGZVtb9uJ6NnF/UwsBFw7LDR4thifIULOE?= =?us-ascii?Q?8l/3kHGd0NPYHNLwUi6B70fm3fQFGRpjQ+DGFu03R1hHOG41YOy/+6o/HLx0?= =?us-ascii?Q?OKHdqipccC9hNW8dhCV931wdUeeNSfZApJvkusiV3QYYKM5PUglzYS6qFhuG?= =?us-ascii?Q?lTAt2Ylv1dZn4SElap4ZeQwQFfEfSX6XndpuhGuZHzjUDM7yTNqioasNvNvx?= =?us-ascii?Q?qx3ALGn7eojWFvazjZHiBM+4ZTW2Z0KMkDXApPymr1GXMS9lMNhfaDHhB1TU?= =?us-ascii?Q?n4hhJ0yNeuCpgP3h689aXOl4IQqvSdjCEuJWzKT/TZ66gDFW8Oj0RA+d6FCu?= =?us-ascii?Q?B+QsN8USSATckdTXsNxcl5e1SipUYbH1h3sjKaIeUh3vzhg/FX+OtXj2ZRdD?= =?us-ascii?Q?+TeFVAe8f/PNkB1LrElz3pMhdqN2djdbwr2caCNJaapMhn5Lp5osnUJER6WP?= =?us-ascii?Q?CVAPZqOQCoyHGV3QC9oJTozc/Fs8FofM+Ea2t+N0MGob5TtW5ph6cpOQzD+u?= =?us-ascii?Q?+Ej6Tmg/CkqjDAmgkdWArq6Q7zMFzZWinTf+Js7vj5Q0fi8pNl03KdRkMtrl?= =?us-ascii?Q?CbgiXiz0SHWuorAzomyJNlnsX4Bdn3P4kGx0rC3qZJ7S06ciY3ORQJH/gBwo?= =?us-ascii?Q?Yf2tyqC/rptG9kU8GO2WC68TBH211JARq6WAqS5CuhTgL1VKW6EHJ5TJ8SKs?= =?us-ascii?Q?U2AhNc0mMFwiOjKW8cnq0aNuTUDZeNWy+G1++T2yfiVjJI87mnw4K9DwidrK?= =?us-ascii?Q?m9/420PVpp231XWViHdqqxB8HzdfA+cfWzZxMzLeFMt1TSoUNu1GbWFcwfnr?= =?us-ascii?Q?3TCN4dT7iLDdHOdi2Kn9QfSSqCnrqLloJRylcqaMUzrTOgp45RFz7/sx1Mwn?= =?us-ascii?Q?xTZY7Kc+l3B3i/LMAC6kcfah00oy/ZiKYCPA1/YJ0I9QtTRaUjLhbjzvQRLX?= =?us-ascii?Q?myx3dwBG7aiMIaQsbe3CzWQYinp0qFAq+7v7idi0ctj/aIhDDGO41DF8Gg5K?= =?us-ascii?Q?WFQ9XMQjejlXhbP7FDsh7axR1nhWDIqZgwfqegcb9GsY2rG0D2eK1RP5sYap?= =?us-ascii?Q?WCG6yI+J58y1JwNQLQ4ykFK1aFxeRrUknT2b9yVMikmRvv2G+0VcZ6jMvC63?= =?us-ascii?Q?v5jS1NXhxUkrWC+L4BTO9xK6W9sARFRglZU52OxcygwgrKaAsY1K99BmYFLj?= =?us-ascii?Q?qzunYVfsSSUsz2X0GiSj+qhFC/u9jMrXHzprbG543n11kgrQx2zDnJIPF3vw?= =?us-ascii?Q?qabeghfKaFcGwGFvijE2MmDiUQiDmkWhi/tyvZDNGEwuliiFZBOzI/FYojCF?= =?us-ascii?Q?RlPHRf8DP+wrpyVU+1ljcetP3Ax3aodL/SONAshPvwOzZkjXBbKSuYqYXpI4?= =?us-ascii?Q?k2yWW7IwwQ7kYF6eVUJgP89GcfTB2LN4+uPbvxoIPBNYyq2JsR+BakvbkAP1?= =?us-ascii?Q?2xIFS4rjZo6pdpe0/3DnKDCK6rZ/VPoTGc9HHVmI9N82vgXNkOtGLd6E0AUE?= =?us-ascii?Q?qtN3Rf0iGBTHVCNxyi2wmQXz6x1hEvNY/RoifRHbNrrluxrLrPCKlTPPnyqA?= =?us-ascii?Q?/xktzU6rioSKW9RDPjE=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 10:50:06.2353 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 05d0d4e9-9489-429d-ef11-08de485a5c3e 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: EA3PR19MB9566 X-Proofpoint-GUID: nx6VaR1CctSv0oL1PeQGnEA1aD3XieLz X-Authority-Analysis: v=2.4 cv=Z8Hh3XRA c=1 sm=1 tr=0 ts=6954ffe4 cx=c_pps a=f+i8kFYBc78eCJt0xtd1Rg==: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: nx6VaR1CctSv0oL1PeQGnEA1aD3XieLz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDA5NSBTYWx0ZWRfX1Vm09aIZicqA wU5TO3GkCIOWH6G/YASej1LocIKSGBoEGdZjG79lf6cCRqaQWXhG6cSc0g+XuHhjbZNx8Qo6h6N lljLYKLbmFl7yV93Y3wY5cZJo+yo8m44QBGJoePD0dkvwVRq0jujMUVduhHa9BAD6Q5ipy9yd+W sKmyCuefHQVeAMyh+U0Uld8VyIB2ifVo0Pt3/8G616zzzfSZkEg/o7PHKxLEDn8/Qj56Xk3FEy9 ooiourEEiIem24Tq60Co2kt8C82FDuyNnEU+QvUzApw1BnM+yMjNGT35M+5DczI2ABOwBhzDEQf Ui+L1DRrWeNbQIIOVGfrJOzSzy+nyD/r97tCFO8P2IVMLl8l8bb1xd+CafyGo6lnrTUL7B8KxYZ VMy1tVbaYbi8EHhKO94G0WaJ4YF3bkGwZystsIlEqukr/w9tINZ3TxpwUSERYMPRIZ2yowLQgrD WPoOyD2L0em+TlhnLLw== 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 --- 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 Sun Feb 8 17:37:35 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 152B52C08C8; Wed, 31 Dec 2025 11:16:49 +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=1767179812; cv=fail; b=T/RabgBc7j34zmjoTvD2ODN4oAjtiOBbd74wTqPZ7FTCwwAAuc+oMen8clKozXj/n3S82OBs21JAw19L2fcbbhtcN2HHNA9nobwrNtFpFhRLqGfmGdrQQcUfCbEnBQpL/b1bTeyDQkxC8ZRb8fzFKgCwi9D/SuQlGvsEi3no9ts= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767179812; c=relaxed/simple; bh=ivNdr+jV4E4JQlUQVPMZd7u5FCmxm6BcWzIFc279s+c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=AAQnclX0sdSpc8QB0eAIa5FkU5OWecgxG3hVyAJoGpdc2fkSEU4q63TP3lH+IG9eQseGD/MYeGzMO3tvbL6jZISAun9aRjGIMc5WuBsJioEind3rk/1iDS+R07sFb82j+R63+CIm99NU+6tcPm4/cZYIfHZggnjOr+L4uDz6ldk= 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=TPtFVsle; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=D2AeHzyF; 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="TPtFVsle"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="D2AeHzyF" 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 5BVAgjAQ3727987; Wed, 31 Dec 2025 04:50:11 -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=gX01iseBx49STV7moKCtl5F/nDGXX/djmSYecWuLork=; b= TPtFVslesOQs6C10O+SzcTRUUT5/sG4GS3M7bSXiK8d2VNMBXZYlMQmC4Ltv0yGm IcreWOobLDAB2RAEnPPyfSNzfjbrLuUlUdDt/I06aM735hnV67CVexw7/iZCfI0p 3TXCVnryb3d8kOfdQjdhslc9yoRF74YK5N5svimhFH3Yks2+my2Na1DjQY8K9HZr 0mgtdREps4EAeEyrkCvT8jenTfvVvPFh7i37NfhpSxgxBTRNsxIAgAWlV3VyW1ST cRn+LeLgTiE7Ob1jc7MQRMRC2v32CuVy8RD8vHbxbjTqVS2JI2PgFhOx+mgQsQN8 rQUi+CtzSCRJq5jojo9ahQ== Received: from sj2pr03cu001.outbound.protection.outlook.com (mail-westusazon11022104.outbound.protection.outlook.com [52.101.43.104]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4bacrmv3ys-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 04:50:11 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=takfP/bKYXR1uvTmXYzSyfuJL/RFnTuTL2SIEQcw17IBIuhkfzG8l0dml+NL+6igIY6IPidJDhXfEcmuzADtmFDSx1BDLrVAXavIwiTVmU77ejyhc2dNVycRKDqODrJNTbZcu4uVV64uEB8RKq0r+uYHkbk4Aj5XJ6a8SePDbGVDXefCV7XKLn+1/HtWd4l8/VLax7EUzSKVJ/pC8WKNj8x5JC0uN2mYHr07wpXqhpXuw3El9vZp8wQt1xj7js89GI1JmH14xokw+19dCZP8Gp6NMChobQKzujMr+PCTz1gikBvOVkEY0gdoDHw/C5Bwo8vF6tSuDKpsX99M3U5lXQ== 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=gX01iseBx49STV7moKCtl5F/nDGXX/djmSYecWuLork=; b=NYvKCyC/KB71UcaZzXDY4axo0qMbUmC1M7fTkp+kur6WED0KJyz+MFwAlvVesRm+hA+kBrBRClaT5R0PbSE8sOKydQFn9EaR6BDQfew+bze6RyEfoSA7c2yYhKm0ruLNjXFtC5+pdCv+b/jxnQRAmvCVCymPorje8ZdDV05oxSgaFttkGG7+2M1RckN+xYEt/oqEItTVeMqWRgSMTqvJwQy75wX+ejJpostX92zuifh0kdwVhl7lxS+EiQuQJlXiGazYBEoAHbcOGgBRxTkBspHYLd1Njy9+ng3omgCsqjeKLLJzqWfqS8Z0uTelxhhb9KjmJUeKS9MJRIqzWy4zXg== 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=gX01iseBx49STV7moKCtl5F/nDGXX/djmSYecWuLork=; b=D2AeHzyFD7kjexr+8dU85Xn3KT8tQjBBCLQRtKE3tGc088q5EqHhIXwSMv2ErlUswwLGy7SYqW3UoaWoLkPU9YPbXoI4NJRTgJI8zeWrdANLnuFdL1TUyUiLmaKFiZZJtMRY6ZfnfjUUK+ROH9Q4N3V9hBebOhQNFM64E2vagLc= Received: from PH7P220CA0039.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:32b::26) by SA3PR19MB7370.namprd19.prod.outlook.com (2603:10b6:806:317::17) 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 10:50:07 +0000 Received: from CY4PEPF0000EE3C.namprd03.prod.outlook.com (2603:10b6:510:32b:cafe::70) by PH7P220CA0039.outlook.office365.com (2603:10b6:510:32b::26) 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 10:50:07 +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 CY4PEPF0000EE3C.mail.protection.outlook.com (10.167.242.13) 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 10:50:06 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 6FC27406554; Wed, 31 Dec 2025 10:50:05 +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 282ED820249; Wed, 31 Dec 2025 10:50:05 +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 5/8] firmware: cs_dsp: mock_bin: Add function to create long-offset patches Date: Wed, 31 Dec 2025 10:49:53 +0000 Message-ID: <20251231104956.449696-6-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231104956.449696-1-rf@opensource.cirrus.com> References: <20251231104956.449696-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: CY4PEPF0000EE3C:EE_|SA3PR19MB7370:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b31bc84-f817-4d6a-af1c-08de485a5c7a 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?dQrw/soFBCusjVAWb6pXHe3XQ7iYN29PK3Ou5nal6Uxbj1SCjvgBiYXYkQD8?= =?us-ascii?Q?qBhkgJB/3wHaiOSZsjYo9XhR5HlDnX60z6Sky0lcyhZ3K64KBCdA2RWaKkcs?= =?us-ascii?Q?CSKqc4WD0Gaz0aeOkc+xAKo6BR9q5HQsc8sXpyP5IyWtHtmQ3kNATHt9yb7x?= =?us-ascii?Q?cChCwu4fm6zeSiC4WLKdChzzBvn99T7zHySUgvWf9n8OmY5iam5llaR/P+jK?= =?us-ascii?Q?g1p86uND48Rwa1sd2urCr2/s+dNXJtTcfCKOHMu16fxMb1XT2zoy2KztqGQc?= =?us-ascii?Q?2OyYARZV7nstSSguGriP0+RlrAgTD+uPeZ8zQm5Sqdnld9d5tIxUgmobXyCl?= =?us-ascii?Q?gXzipuWkLhPStzZGgAtEuhOBMjxsMZqogW9wsOtcBXq3d0taGfox2ae7bB98?= =?us-ascii?Q?CCuAofuDI2PxHLK9euGaz8FCBoU5jSf6JQrSQVsuWr48PtKzJHUK8sfhZHL8?= =?us-ascii?Q?tKekpDIBIojpFUCM/j4iMb7aDx50OqwMfLztI9RZ94aOtkl52MM/a1ct34k0?= =?us-ascii?Q?gRzIJbbAGYsghUXCqvUrSMxzn2SjOCa1bxc4O5xsFEBelw0KbdmuQpsgBae6?= =?us-ascii?Q?wqxGs9VI2fuF8VhgFyC45wZvYnQKeFILikXDsqEhLJy/fsg0Qsdk/UihC9aM?= =?us-ascii?Q?uG0WJ03viicBBB28iZe+ChwFNvd8T9SARf+i6XlSzuYUDDOax20nbRqfwzGQ?= =?us-ascii?Q?zDaozvo98e3dcL2YihiVTuONA0d65cGvpi0LuZx4dt7Kw5Ui2cPMjr0cOMZJ?= =?us-ascii?Q?8guF4L1Erfx5/NVrEQSN52QjOEPXTA0UcCcgrVBNXQGHY2fHJm1Q4hVoNbjo?= =?us-ascii?Q?35uPCUZqdRiJut1MQ5q8JkotZFzinCNxzMxD5W3S1+cOwWrJ8wqP52ePHQLy?= =?us-ascii?Q?XvD7OPYDtqsRKEPww5U6lDVYEgS9UQuvezgEW8JkGNbZX6O6/vQE3QIjHwlf?= =?us-ascii?Q?fLaIM0XuHzO8eRv6fSCI8zWD2VcE+yLLWg/PGhP70Yb5OhXvnJKnCZWzvLgk?= =?us-ascii?Q?sVR7uGE/OnDYURvLEjPb1SxbgQZG5vMt9BAnxiqFUIlCF3xnDXXogMQa3Gmf?= =?us-ascii?Q?BANpQ5Y/Z9u2EovVBvlQMGQUfrAFUdo3FNvLmDbk75wagYlPiHkeM9bk6g0R?= =?us-ascii?Q?GQ4hDcSyYG9c7+UjglbCsjk+qNJqvuLTQKic7V2IT2e0I5Xc90sXkkkT+Cuo?= =?us-ascii?Q?D4+8bfi6jjLfOgbr0gn4oehpq1+KBylXenW/DWCsKUc2AM0vz8as9q0ut+bD?= =?us-ascii?Q?p43XsAbQIiMtl8g6aK4P5EYyjz0dJdidFWhOiNg3Ih7OsB49jKIJEvAVwEjO?= =?us-ascii?Q?/PaoiKAiqzv5Je9z+7gYpAl/SKQitXakczoJ6BvTaz6BG4JkrGjVY1VZksFM?= =?us-ascii?Q?6Rsg6Vm/jYzlRMKkLqQOE4RWkm924n6BWVeUugnuEeyZTLQNpUH+yI0C/uVA?= =?us-ascii?Q?0Vo6vrPOVgUGb759z0aTl7kTdN3PRHQapSJqv2mDCNjEJgMy6luHcWt8pt4w?= =?us-ascii?Q?00MqmVxFlLj0lrDarUXyBOIBvk7NhlmgdfTsBfc/Y4aCIooVzI0pY4Pw1f+T?= =?us-ascii?Q?9nKhCE+efiNxBQhSa9Q=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 10:50:06.6145 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9b31bc84-f817-4d6a-af1c-08de485a5c7a 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-CY4PEPF0000EE3C.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR19MB7370 X-Proofpoint-GUID: bz7qe2x1xfNEI9-MK6Hbb0XIsJq9F8nw X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDA5NSBTYWx0ZWRfXxYR1iEWOAVid cyHEXYQdpwnvhHxIOey3Blm5EXDXNfKsvtvYRVjalU4CZ53WHuJ/nMIj8u1y0W+tN3wI7GLRzWL MdCp0b/t8ctaP11cQ4/zGDTFYFx1qKlmSG+EvKC5wbTPcyHFV6fuJYnJwaN+aYND1aG/ZRUdg2V sCuOlq9k1QUXQAGoXdtjlTYPwNbKrz1q7XNn78psSjf4uPlHu+tN/orN2uORnZxyo7Wrg25YfX1 VuO98+KB6IsWP4SAb4IaRR1mOlPgwXOWQhfMO3T1ypMDmP06K2A0Zne1uYIADrX4jcur9w58hU+ 5jv7eKK9pGT8/20YDRH4lSd9l6yTQKn11nL2AIcZV3lMaZBCnYk39ijluB/WD9YYtrP+Ngj1Hz2 a3w5vnUb5AI8b2LPtpY2awNuOI0lf9a+9t+v3zibVv2PyHG4zJviQV4wzxgdnPWYtMsIwSXAcSz gYsOQ8ku0IHdECGmtpw== X-Authority-Analysis: v=2.4 cv=bJgb4f+Z c=1 sm=1 tr=0 ts=6954ffe3 cx=c_pps a=W8/GDLVCOU0NCGD9sQwzBg==: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: bz7qe2x1xfNEI9-MK6Hbb0XIsJq9F8nw 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 --- .../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 Sun Feb 8 17:37:35 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 018DC225417; Wed, 31 Dec 2025 10:50:25 +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=1767178227; cv=fail; b=p+XFa01QdoepJWrELs6wb/sKblpWSzzYL8uFZjtyTQ5RSUaQ6L/FJBGAaVAsbqM1HX7JC/1eqY1mjn0/KTr4g39psOOnpEiHf/+sX+gcI06O1EzhVMjzCMP9FUWHm7ZQiIP5zhT7LP+fjWkZQ5Ze3vKvQfcbKr5QFg190eRMV4Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767178227; c=relaxed/simple; bh=o9yp705JiQLm1hCystUnpyy2e+1Xs8iBnqrq60v26Gs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Vv/66eqNHyZstA0WrMB379BiI/q/nsRglz+o6Y+k78ejDK0csNW59Bz74XUZB3hox55SPEcNV0sBYppRmDBvQGUIihhtZpBhgaXgNYumCAYTGmqnLlpxnxaTCWHzFAPXsjM2avUn9GeHpUBFy/csceZ+ckLvnU/GOVHPIlUP/w4= 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=GQ96/iXX; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=LWMMBd2+; 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="GQ96/iXX"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="LWMMBd2+" 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 5BVAmWYB351340; Wed, 31 Dec 2025 04:50:11 -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=f+dJijoTw4ZONB3PNj+BKtmZoNK+/YK4zYfutmfpBEo=; b= GQ96/iXX5pB4XsoNt52UVncLDsyRatGCRCoIdE+vwYaXd74w/JJfo23hg2tCVEkk Q2kSwihoPbmdwlhz6kM9TpS//A8efSQ1ZbanMEBMcsQ5iOD2xe7uqlZgduuNWGof iXxfTOZkJyxgNHJkmn3C5XUfzvBkiIsMvFG81H9vAvUHAvXm0GY+Fl1T6dlJcYPl jN1s1QjTRkD7IGfdtVxZNrLN9I7a94bf/9Z8aVJsYXYsyiD5n8Ah6OimgaLp/lrY jXFosSLUlPj8S9Ii31gV8W6urOqviMAy1onQ84lQqg19VkB1BhUBAY0WGk/QI3Ek 38coqpAu8cR4Vdg8F6AVdA== Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11021134.outbound.protection.outlook.com [40.93.194.134]) by mx0a-001ae601.pphosted.com (PPS) with ESMTPS id 4badr3c1q6-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 04:50:10 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vHwONtLPkdZPxEhKG+jWJcA2jxokadGKzfG15CaOr72UhnN9mS5A9erCXoeIjBYa0FKmbSC5eZKt5fDVp8XkKAVUSzBrHoGkeBjJyUiVlhb+j/IcmhVBb96rycjxOT6SXVao0JWOvaBQVlWeKdByGF+wUe7qOE8vYo4KqABKwlTSYTCh5f/GyBEx/HmRH8gHmJO+rZDnIBPy5xdz+08jqxspjrjSBbuEizKlQcakI89bf8QtayuUzX6MefUW8rat1mxUKzY3fdoldX/AdvwCuZjbCTqw+sl9y8oPXOFJryiUsoW7ckjymNml2HkaAzURsb7saxONdI4S6lhqvZ75kw== 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=f+dJijoTw4ZONB3PNj+BKtmZoNK+/YK4zYfutmfpBEo=; b=XV7BTtU90gOINccYGvdX6ZYPPNxSWrbQgdOanaqnXtj4Aayo0MbXdSz4zzX2p0wEdlq3OoHl4zs3qAM460HUzF0Eg07D1tGY9csjPuTB17hRVNa6S/rCItztgsS0edNN5RTGZGQkjEXNVvjq7FtApuBLRW82z11/VdXDwIIDAIHKePt2QmqAcn/3fxGJTPScpoEu7dGw3A9r7jEwi0lFIjZfUYwEmhkt5VCf5tr+vrN2XKnHjkCoyMHrtKWvWcpO7Sihkr6QPUyaTCLbxx3Raoy/G39mvzozzrQ2Wjff1gVehx1KN8YxtES9AuJhkAxTlIY8ga/xmM451YJkJNEv2g== 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=f+dJijoTw4ZONB3PNj+BKtmZoNK+/YK4zYfutmfpBEo=; b=LWMMBd2+C/Rw1XE7ingYXub+EulZdtLDQsDuzOyOhd3TYwx20WAEsLV9qfii9CFFoHxVorXulEROhg8tXsYSxZNJHPTMQN15SfO68OxaHAec7LldF2E/5qc3RmdndkVr/C3p7l9uqj58JyMqckin+O+G9jFRhf3cYyPoN3fVcTk= Received: from SJ0PR05CA0124.namprd05.prod.outlook.com (2603:10b6:a03:33d::9) by EA3PR19MB9445.namprd19.prod.outlook.com (2603:10b6:303:2b1::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 10:50:08 +0000 Received: from MWH0EPF000A6735.namprd04.prod.outlook.com (2603:10b6:a03:33d:cafe::e7) by SJ0PR05CA0124.outlook.office365.com (2603:10b6:a03:33d::9) 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 10:50:07 +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 MWH0EPF000A6735.mail.protection.outlook.com (10.167.249.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 10:50:07 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id CAD1F406541; Wed, 31 Dec 2025 10:50:05 +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 80367820249; Wed, 31 Dec 2025 10:50:05 +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 6/8] firmware: cs_dsp: test: Increase size of XM and YM on Halo Core Date: Wed, 31 Dec 2025 10:49:54 +0000 Message-ID: <20251231104956.449696-7-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231104956.449696-1-rf@opensource.cirrus.com> References: <20251231104956.449696-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: MWH0EPF000A6735:EE_|EA3PR19MB9445:EE_ X-MS-Office365-Filtering-Correlation-Id: 8f681514-efb7-4278-8fdf-08de485a5ccd 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?6oKfsDhIJTE7jdUkF2kyZQKFwbCFH4OtwWZttOa4Atlt3ssNXYqkuk6ZsJqJ?= =?us-ascii?Q?sy1ffJUoitW9BXej7UQNfJLfue1tMvuyNDv5hgD4ntnGJlh+4UgE2YcgqiOm?= =?us-ascii?Q?r2htAmAts1pm88fRBq4Jkyr5gx3VoFNeBHBTNRJ8j5z+uW9GB0in+CGXZaE+?= =?us-ascii?Q?K+kgmqRFuCdRVQJNWfPQlcol7bGXF/CYGxl3ijgH8A3kHfEdjcBs+7LDFljX?= =?us-ascii?Q?WTZSa4Hvpe+Ia1rVmYCUqliw4R23ny/12oBUR6NrkYcuiblREA248heggsDz?= =?us-ascii?Q?WwmDRV1NmAOh9e1PPjb2P7kr/wGbwaSYiGpi8uQii2vAq1pSW5vjOQ1PaYpn?= =?us-ascii?Q?XRyi35I3qA5sNtm+8DdOJMat0/XN+MXKlEYSimsAEXiToWqhSKbj4FtGsPoZ?= =?us-ascii?Q?2zFyLd5Wn7bALdQMUN1bciiugp3SiFZ8Ss7ZqVqViJwOVfu5FiS+di/qwZMu?= =?us-ascii?Q?BCR37ccimm5EWz+DaL5dHqIkwn2fTc3TyrVLM9c5fASahiBSPmRc5BS5Feue?= =?us-ascii?Q?emlBitZJcT9IsHTJr8xBPf6G2LjMfN9EzDm8m6eHKrMrRSOV8erdESpn6w2V?= =?us-ascii?Q?6kTGaW4PdxDn+/T7ITSo1gGFSYAZ4VWXDfDXI9YJPM4bTxeuOctJkD/PW2EZ?= =?us-ascii?Q?hcEq/q8bU+HuErnxJ8b/wvK4q7jU15QXGcOABW4AbCNcCFDnN4OkX4OTCcAy?= =?us-ascii?Q?/UaNbOyzucWtLhowsPQQ4mm7+AkX+OgnwC4zkt7fV5vHaRW2WvExFInUVFqA?= =?us-ascii?Q?ZO+YxfZ7xn5X4RqQqsz9AXf8KVWo09dr/RGvk8LNCYDUv0cmigkyr+64BtX/?= =?us-ascii?Q?TZkTituRmro0MpnKfEqa9jbqfbOiQHnsETVKYiaK7ybL3R2mudTAHpMnUdVL?= =?us-ascii?Q?I0bgUO1oZe/321T/4huVdzXZ+TThgwq81yN9A8XBNVQ/bKvsLu4meFAFGJ1/?= =?us-ascii?Q?rUkKqDWihaF7Ru+vZmubOLZe+hL4FD4HNzhvEAZYMSYehmH1gYbWZheZgvoy?= =?us-ascii?Q?IWI6rfW6gi9f5uPETIq0xgSv88G241b7IbXFe2ZE6cL5d5e6S4x87behxVfi?= =?us-ascii?Q?tGRV89znbIVgjuXHulv+WTlZx9cagR169dSwqyBF7yXI8cZX2Z2wf/4idpzf?= =?us-ascii?Q?jaFKrv6kHsQXHuidu0Q23aFmQ+1lSoBH1wPdu0ZaTlv1HZ/4Rg9IuKjF/z9c?= =?us-ascii?Q?0UePxlmJgWXEsZgszi7gFi2YdAfTsm9P831iNKu2bg6Fy41oWB15tp2zSnzg?= =?us-ascii?Q?eIg5QycMv0aVPg7cH8G71eLpj2I4EHTf7IveCrWZ+2CofsJLa4b3dwyAfJQu?= =?us-ascii?Q?ScWZixpqFx4atF45XTffIFMAfuMqJyIT+VrWgBekzGjAdjMgkSbpMOUgvXi0?= =?us-ascii?Q?peU4vptmw+Ela/Rz554fhYjJgf1a5m6Mb3jCMd+tAdBk46cNR2kEdiKOW9ww?= =?us-ascii?Q?BLRa+8NC4S9iCcOAYKK4zGySZXPhWH0oxujx3Z2gKomuXBDQQoAZgwYOnndQ?= =?us-ascii?Q?d/fp5j1vJkj/sM65E44BNxbXUtmam/2jcow6w2zYH+gV7KiT9ra+Kfti2lbK?= =?us-ascii?Q?rnPA/hEn+9G59Wp06+M=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 10:50:07.1263 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8f681514-efb7-4278-8fdf-08de485a5ccd 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-MWH0EPF000A6735.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: EA3PR19MB9445 X-Proofpoint-GUID: 83_ooPpE6eMsFyYAP-4CU_NoKlWETN5P X-Authority-Analysis: v=2.4 cv=Z8Hh3XRA c=1 sm=1 tr=0 ts=6954ffe2 cx=c_pps a=IdGK5G2lCojo2e2ercq28Q==: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: 83_ooPpE6eMsFyYAP-4CU_NoKlWETN5P X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDA5NSBTYWx0ZWRfX2slNkXMbIgVK y0YG9Z5tkoOemtD2fsBheS15azb257C1DLaoGwpcecuwFbKJDC1WLV4ENgpL3xpGwyeAzv+lF4P RZNhsr4ESDQK6GQES9TzeZ76RFxntJVJDzHdPuYoMO4Zs4enJ3LN6OFABTx3siZISRCTqrJihLn 11cRhcqkMvih0FUBAi+pH8XXdx7TSAxPlxG9kRVY8+sNwDd8FHIZhhiKCgMTpCEagukAsJVKzY8 0aMF4Ioe1U5QiX8r6Sz3FDpvnziWe1vYRm2xpIrkDbUzzuyJQO4ZWJ7UOeVTEST7TiqZDuDJVGn 8ovmvSAO0i09XLS5GJODZJkF9HbArhxXLbUVMQZaKxwFylb1FIds17g59QqBnGLmi0rg+vXwRTk D3wOru+371UQs8zjamnJsPuaVgjT1Euv1aEIa63TlDDfCQYYEEROYNhzPCK5AC4BVPXewhR6t/e Ye5tItyRmXsJ5EKxT2w== 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 --- .../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 Sun Feb 8 17:37:35 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 8F02827C84B; Wed, 31 Dec 2025 10:50: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=1767178229; cv=fail; b=mf8nutVpqDRf666xJzf58RldcLE5Jv+xNW6y+Y+Iu6vPZOvYRhVSLJA7PcNnf4U21HvVkI1vHyqtk7lVBwC61kvrnWJih5+RLrcVMacxFsSFbAQE7mGucoTvDlO/q/ArQnNCCSjJV3/fUI+wt8aiLk2amEgdos642GaiVixpXoM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767178229; c=relaxed/simple; bh=Sk0IVL7YTOV+aFe8nJ4fDZZOdUh9b7FHlBi24nqQEDk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IQcyLIu4axD1oWvMbGhi5kJpOmKAGGKSBlRNXNZcB2rfR+U7Rp1xHHgdtOG9nFFt5KhhXzoInrgmc7o+z2D5G8NOGXtXT1A/TpbQYlopNRdGbZKGfi1wuV1WBvqyBCQAoTr4W/+xPUgUkCxWp2bHj+3/hNGWGK6yGDJoYrz0cn0= 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=Ca4CZCFb; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=roquAU7H; 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="Ca4CZCFb"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="roquAU7H" 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 5BVAZRCY331591; Wed, 31 Dec 2025 04:50:13 -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=cUe8mewnpduuCKinyhqYqaosRJAPkt6+zy4Y70FHxn0=; b= Ca4CZCFbiE6gJe8S4LYlag02/CeC/UN8nuJ8GmaORlj346pK9UiiQ4USab777eYZ JZ8agapV37nDQYOGbDZaAhDJeJgbO0JejjskMNLI06ya+ISEvlOf+9X2IIFe96qn KOSqE7aLGhiofNv4XWx74JaCN6V/4W9b/1Rp0VC8YjrsAVugs10+hvNdI1WJ/064 Fwak2lvhrTn0rMjfw1H5vSI+i9PN8B4tE3LchkuxEbJlc3VfZ2h77mNlgXErUoLv rXBaM1QekWWmkHVXk9RMWTjemgY4gpRkgFcJqBAXe8cHcJNseR8FJF4UzgMthLG/ LskXV9tqBDPHj4+iDZYiSQ== Received: from ph7pr06cu001.outbound.protection.outlook.com (mail-westus3azon11020089.outbound.protection.outlook.com [52.101.201.89]) by mx0a-001ae601.pphosted.com (PPS) with ESMTPS id 4badr3c1q9-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 04:50:13 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Xcywzu0kcb/PysrCcFjuhaqPCWq+zUlAE/8Nc1e8kdfDjawuBEMbqDxHOXjFmifZzD0BCjRaZcjq8SQJxaEYSgIcWSsTiu5lRzMC9R2fSMg9O5pyNenRpQB3fLbKozIY7wuH/jKqvTWNa7y2dji2bgZpQLUzIytsndTJBhSA5CfGwIcZM+cQ27JKZCibHvY/GP8kYucgJJ8kESxCNHP/UATrVwHWw0ETv3AeIwrYiqHB5AUY76nleVTnFXmHK3zDzz8+hR5GNo48HpF9UrS1VCF+90bMpzo4709TsiOxcvVEUtFeM4J+6Yu0lZywt6Juox7CPQxnvSfSlsEUmJhuQg== 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=cUe8mewnpduuCKinyhqYqaosRJAPkt6+zy4Y70FHxn0=; b=Vl/m5qb2nlN6a2PB8KndZcKtRTc9rMS5Y0jLywhDgep9J0C8s4QCrzRRCo5xHDm/2y0Mei13+B6Vk6+KcE2q7am1zPQi/+h1cq+qDXIVJI8pwc4ayqd6yeAjYP25MpBoOlM4a8m30BP/vJX+UvPwsa+QegXy+4od2mjZRV0zpp+QLjzCn8oNxfG7Jk0J6WqjVpHmlHp/IJAQlXKdqPYt4i23wHQOXHOF/f4sES1BvSQkm/V8wY/qngQMnz+lONMZwRf8uuhKlgZrHgkMIU39G8awSZHqkujpodhdveXBfv0SZdOmrIsRS5sAssHjEBjBg4X0zcmtpcvHAkh8Kw5/Lw== 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=cUe8mewnpduuCKinyhqYqaosRJAPkt6+zy4Y70FHxn0=; b=roquAU7Huqj1bDrzZuyfsHKj1AfKQHcFOnmhdVcYVrDv7sC8Q/SQSTlixOkqcZnA5WxBE6lOYVeew0zYIHGnaLOSrCPWUnZap5Ljwms2FRfI9TvIPPvwosmNZK3gAVVp7HwoCKw4Wlk15e/B3nFPfoBKBRGmFEQL0ZQxR803vnk= Received: from CY8P220CA0023.NAMP220.PROD.OUTLOOK.COM (2603:10b6:930:46::13) by PH8PR19MB7070.namprd19.prod.outlook.com (2603:10b6:510:222::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 10:50:08 +0000 Received: from CY4PEPF0000EE39.namprd03.prod.outlook.com (2603:10b6:930:46:cafe::93) by CY8P220CA0023.outlook.office365.com (2603:10b6:930:46::13) 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 10:50:07 +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 CY4PEPF0000EE39.mail.protection.outlook.com (10.167.242.11) 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 10:50:07 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 6919F406543; Wed, 31 Dec 2025 10:50:06 +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 DA933820249; Wed, 31 Dec 2025 10:50:05 +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 7/8] firmware: cs_dsp: test_bin: Run test cases on long-offset blocks Date: Wed, 31 Dec 2025 10:49:55 +0000 Message-ID: <20251231104956.449696-8-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231104956.449696-1-rf@opensource.cirrus.com> References: <20251231104956.449696-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: CY4PEPF0000EE39:EE_|PH8PR19MB7070:EE_ X-MS-Office365-Filtering-Correlation-Id: ee3c7068-5535-4943-17e6-08de485a5d0b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700013|61400799027|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?NsGFLJ/+saI0K03sERw0ab47CMZMiQzGr6mGdtC6JmOr76PmN598Xm/wzQeE?= =?us-ascii?Q?d4V1I09ecYLSAPUNbf2Uu/WeR8b4HhatKRglouLb4d2WUNCwePO4+fSquvt+?= =?us-ascii?Q?S4g7dUsVFC2quPb4H3dIDU04m6UL7jlHhS4WnuEi7ddm5H2U8trQiyei7epw?= =?us-ascii?Q?rW4IYTPySEaqc8qnv7Hv8hwfB6mzN5gzVrb26w6pHIRZ0AM8d3sIHFkqJAy9?= =?us-ascii?Q?rdJ9EMRWO9UyR8MC7P8E/1MGUxfUE9sU3+AH8dVun35WLWRZKSbcs7AyL4O2?= =?us-ascii?Q?RdMagK+ggg3+ll+oh6kjTYKebexjzrQKcvHNZMUmda/mWQxcDCyN2EjgRkg6?= =?us-ascii?Q?34JHomJfZxAgPysQwK+r3PPFljsgvzTbYjc1KfTVYbtBVTpDgfRZgzgfpFJS?= =?us-ascii?Q?ucf7qilcE7F5dEbjqtATgTRfLQQnp9ndVT4af/Clz4TLQdJOhKmgULKZV72a?= =?us-ascii?Q?W2vg8g9od/a/8UHTsVSeLbh0oCQv6/cRO6eItwBAZFzbNKDwTdACtOUJFmjf?= =?us-ascii?Q?9NTRR36QyZE8ZNuBpeeNxygC/ZwI2zKcRvzOrkI2vISppepnfco0mWE2yhcA?= =?us-ascii?Q?NNdUcKmNXKNGxC6OlYbsNQrUTywwrIlDL3XofdDLvDgGCR1/xZufqUYrLrQu?= =?us-ascii?Q?djff/WI/leszwUmJoEqvkIAw6tSw8oc93UwPW5jGELVZ2hrH2MINkyR8MAjk?= =?us-ascii?Q?WdbLVVTVYwzy0rH1Hx8DZiYGNxa4hsUjXCAFzvgvGNMPdqTnuNnhBa4BCMot?= =?us-ascii?Q?Kp0kstelKSeEi/aQCDxkbS8gy0LJ7m0F/GnWz/rCRkbY5KPXDVcPJXPeyTyL?= =?us-ascii?Q?xHambOHDPdoFGOBKh0n7GwiNwQ1trgA8liYD3DkXyqHoOmDtcAMRHMb648ms?= =?us-ascii?Q?O+W7Qj3D/kpm10YEcEe1ks2xmGcKHIU3OB9YmZwwx4GK/wiMBtSdDqy20Pjt?= =?us-ascii?Q?F0IL34jdRd1yT/9M2bPrYQznUCNDwHiMoBw3lcIZSBnfh51zyewNppCKEnm5?= =?us-ascii?Q?kL56i5IAMNN/1h1QCNI+f7VEY4Qj7SrHsoG3HBO2l2lDez3qXQ4eQDqE/J7P?= =?us-ascii?Q?z9y/xcc38duGFkNyo93kPM3rGtPctU3YaJssLqpMhUKym99NAjpmq9OVIngi?= =?us-ascii?Q?NA8JDLeYozECMVklG3chHDec/kjYJ0RCs3pq03N/gib5p0epzUhrHAlSn8UI?= =?us-ascii?Q?e0e11PcZeZgNQb3bmlkBMi5P233SNZhTuDpMgViLvTOwavNv2BbtgOOtv5yv?= =?us-ascii?Q?YORnqGPyt7QXbrLpG3gInVxT+ciW0ljwTAvrvy2XO6HDaZHiHUZy5xxftjTC?= =?us-ascii?Q?zJ3bzL6MBJIq/CsuLSxQzJeI3DA1LRv0bjQZpcWTB4HDs5mubYfoFjvtWfhk?= =?us-ascii?Q?Eq1091Eu6ifCf/zOh1jcZcfY/deXHdHK94Ln4O9mHw3VU0q5kup6G+clTYPZ?= =?us-ascii?Q?OgBSls2f7vRLjikfraS5PFZu+XuQjBBgbActbxmqQhoRxUdUxS45vff8s7J2?= =?us-ascii?Q?0r7M2TvB39+hT0O8jiIXWQwpeQP3lGKJ6laxwmM9Q+UEoS+7Cn8BmhcZ+1Yh?= =?us-ascii?Q?plHnDP0RvUwUQMfBMGc=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)(61400799027)(82310400026);DIR:OUT;SFP:1102; X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2025 10:50:07.5604 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ee3c7068-5535-4943-17e6-08de485a5d0b 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-CY4PEPF0000EE39.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR19MB7070 X-Proofpoint-GUID: 8BncOmPZfMIWb7LuqunOR-nu17zkoqFb X-Authority-Analysis: v=2.4 cv=Z8Hh3XRA c=1 sm=1 tr=0 ts=6954ffe5 cx=c_pps a=ztQKeGOog0QVs0B1QXIMEA==: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: 8BncOmPZfMIWb7LuqunOR-nu17zkoqFb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDA5NSBTYWx0ZWRfX5RBhrfG3V3E8 O1R0WoPglw8u+jdgGJPV8vhMR7imTE+JN0RJe6PT5hlugLvR1SnL+hjPA7aaP2FcYgM0JQ8f6kB 9+jECEx1RFzk8dBSKDR7YaCmCq7zIW1XpI2lFAvL/g+mwcI29yixcek6R7YOqmlpA9ckykUAaHJ 0aMQNfXp58duejm3hSH3IVvUVHl/rw4dOncQFw5NwJpT278BbKJ5SYudW4wBHTiI6uXH4ziCmom 1m0V8daKWmoICwd1ygzigIMhJZUPwNcaW6SNOwTlNw8lzbdlldU+kNOwcgEMJzESq1FD8ijM4lC L7tmqy+4mXKfxV5nkiEZBgzu+8JmYhvIQAop/K04rB6WpVuexQw0NyWJCATgTSXyl9UWUbNrMNC 4UN/m9wQfW5KLlcRs6glGjKXPs1AvFGeB1v00M16Do3+S7h3uZs+xEBxp6NzhEnP/egbv6R29bH I3URP6VRZ10IzCgpLLQ== 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 --- .../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 Sun Feb 8 17:37:35 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 019A82765DF; Wed, 31 Dec 2025 10:50:25 +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=1767178227; cv=fail; b=LYhICnbHzwwsPkzDw2lKJrk4cEnlFQRJaKKyu3T2n2gMJIRb+v+bHKWDQmrr4c6OlnrO7EbIkPPcMVmigJgIHlJ0GibREr44lWF6w2n2fxHPRiQrY3SpZDY9z8eHLBgM2CT5x2NF1vyiRDM0oTK0Et0TaRrB3y+mKJx6OnnWVCs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767178227; c=relaxed/simple; bh=V8dBQ8SAbg8cb9oJRdHAzXUy508tle77pfNR3wkQejE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=KxiVVKgu0VdKHRu+hFvlLO57jEPT5Gh1S7bIrDkFZWNaZJJcwwDL4dncTNiKzisVXX8sfJbkV7u289BL0oRXI7pOWaJz++3kV1J8tmUGD6R8mOgWOyxK1g53tKo4qI05dDakPdAnFD5/IaA/etwc3Mmj7wwAodd9OGwYVAPKZW4= 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=Uam4uwjE; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=O4hArr6Z; 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="Uam4uwjE"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="O4hArr6Z" 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 5BVAZRCX331591; Wed, 31 Dec 2025 04:50:11 -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=xWy4L7oNRD2N3vH3lGNflrULEGRmEB2ZK7NiG3TZcB4=; b= Uam4uwjEJNYueH+GXhgf3XpIjfihCqArPs+EsKtTva9sZq92ZPd1hv1itDFDtW2N okuj7KMFyuNpx83lJ9kLdrL38OWKg67U44bzKeKH7AEBNCobNbyjXmPF4VPgv1+o 1Q0RqSV2aJv2zlM6ixS8eRCn9CeQIXr/3vv+zaXjCvuu9r/nKpZ/1lT9yxofdEo7 tVnRXzBqTJPEd2M4XIs+SJCNYZVoWyryKTR381my7y9rQCpnMiI4wzsvsengGJ66 oXL9ODrk70Y6Smq6n3TjJsTUw9K1WDZ/hFBY+4lpdn4du+JmY1Td5sga8ZUBp03g jr2VvHb8SSc/A2QrjtQsRw== Received: from sn4pr0501cu005.outbound.protection.outlook.com (mail-southcentralusazon11021117.outbound.protection.outlook.com [40.93.194.117]) by mx0a-001ae601.pphosted.com (PPS) with ESMTPS id 4badr3c1q7-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 31 Dec 2025 04:50:11 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oqywBRDMWn5xFXs+KCazRnq9ajb6QH9RedPEoVikmaHlOwE/Ql3d3fIZDVFOoXoOM3dnVdQtnlJKUlKIsFn66lVf8ZY6aQgPgyvxaf6IfZk0kd0w83YjUI6eWoUEiGF2nLl1FvyREvuiRtiD4sxGfqKgEF9ITfWcGtG7NtS3/wpbpJYtTrFBP+sm351LIgwYdQn9rv2jpuvKgCV8zx7J/q3pkekzTCXS6GziuubG/9w/CXPFu7XYULW0nPD1+Oya4uHqqlb4zDPVHnRCoOL8RcR8GtkfWXyWAM9jNUQ6xD3QIZXoIxGVXbHy87WZPWKkOEUvozWSQCzSjccqR9P97g== 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=xWy4L7oNRD2N3vH3lGNflrULEGRmEB2ZK7NiG3TZcB4=; b=ZKXe1RvdlyGoZyt1dWJsDZv9kk8RItVRVSjAt1HYw/F7kk04Rl+k83B2mHQTgZ1rICIN+yP6P4uE7cVUHcpC+WUyTVnGyqdtkQ6vSWzlJHdh9omKBmNFqT8Ue12mIWuABe5NkzZLx5gPi+VzIqQcOcQMz2lIyz/GeJBj3UU9aJTU1DVTdRITIiGpxZutHKSaZpWzDM3Uz4LWdC9rBRIp7SYCflgJhlpkAv3FF02hELEGVLTBMUxxvS5RBLqK0PhV3tlxU+lfL6zfj6UhMqiNJdquF267BU2RJ3LQRb82GJ5uTxKnX5niqvdynsxCC6fXiE5Z5CsydiMv6f8U9M8NPw== 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=xWy4L7oNRD2N3vH3lGNflrULEGRmEB2ZK7NiG3TZcB4=; b=O4hArr6Zt8RE06DXq0Tc65xunDX9twfQes0+QGxKNXTqUiRM4Q05kuXoP4cqK/4XuT9UsQqzuDKNBFPZmj8+zbu2vlT3ShW/wh5UB5d+Etvc6FRoVYFYgCGHcX7E/a6hXBKzXzoA9PbieY11osaRAwrJxEQy8q4DP7SUHLB9tTI= Received: from SA0PR12CA0025.namprd12.prod.outlook.com (2603:10b6:806:6f::30) by IA4PR19MB9137.namprd19.prod.outlook.com (2603:10b6:208:54e::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 10:50:08 +0000 Received: from SA2PEPF00001506.namprd04.prod.outlook.com (2603:10b6:806:6f:cafe::92) by SA0PR12CA0025.outlook.office365.com (2603:10b6:806:6f::30) 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 10:50:08 +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 10:50:07 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id D1070406544; Wed, 31 Dec 2025 10:50:06 +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 78B4982024A; Wed, 31 Dec 2025 10:50:06 +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 8/8] firmware: cirrus: test_bin: Add tests for offsets > 0xffff Date: Wed, 31 Dec 2025 10:49:56 +0000 Message-ID: <20251231104956.449696-9-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251231104956.449696-1-rf@opensource.cirrus.com> References: <20251231104956.449696-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_|IA4PR19MB9137:EE_ X-MS-Office365-Filtering-Correlation-Id: d676aa26-b88b-4508-fe05-08de485a5d3c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|82310400026|61400799027; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?/zpXkeAacg6eNk2sOfe736TzPLo7JpoWRIY0lwzYRClnkU3wjJdFBV2RVUAx?= =?us-ascii?Q?2/CmuF/XKYPsNM5W2Ch96E9fTpOpQ+G+TKoCdeXpQ177GgjriaJKX6GMbIxt?= =?us-ascii?Q?ccT/nvZA4EBYo1xIWphBl/YI/GOkJAnqFVBWpGf/tG2xGOcqv46J9c9Q0MTM?= =?us-ascii?Q?Iht2ijmzrhemTm6GKpSAHBkzK+mczFhiq6bCGKXrFq86imrI3E6ynN+O4Of4?= =?us-ascii?Q?hKVjty2LSLcUZLQCr2WlbEHshph39g9c83+Zls4EhTSzpU0Op76yusdi5B6p?= =?us-ascii?Q?9L/A2pTh+XKoiaJwjXi/TQd1brKdNWTIOOWDXJ45bU1OFhFhTvcEf2DQI0JM?= =?us-ascii?Q?02F1WoFS02zM8KSF+vzJXxs7B3gXmdeYH0FhC6+dKAgbms0psu48YkJUJXFJ?= =?us-ascii?Q?I1NRmBCHMCs87P5X7L7xuqlDQXDrNOMeguM2LXDby6hJephOu6CcKtiJpxkL?= =?us-ascii?Q?nuz5bUmnmpkS3vOSZM4SSvm5DgLpXy4DGc7BWnsv8CZr6Kq+qw5l23j59Zjd?= =?us-ascii?Q?KunLZSkjgIK+9oW3SKazBj7EESyTxMz9+HdLpyb3LfTC0aJwGI0zh6fsfYV9?= =?us-ascii?Q?+HDrDBb/OK/0e31SPhe1y8CoEbR1oQrtBv++iIJbrzdVc+vVF2xamjEkKdjS?= =?us-ascii?Q?BlwWpgTkW1g58VbzOvfFmIZsSWSEZTNCeiO6tVD1IuBvAoGVNhKZUGT2KQIa?= =?us-ascii?Q?q8E6b+bmu73MN32a8DgUD/kUxHuAowOhibf1A3Td1KFUALhT1/VKPIV3AAuY?= =?us-ascii?Q?bwiFjACYqFy42SFXioPoH8arzneduTOmMSaytj4orqIWL4xfP13ixgOcKd5P?= =?us-ascii?Q?xBh2u3HdBcv+YIgn8dMsEHGlbd76ivNOmIPiPWcR9Ka36Pp5jzaAQLJedrSe?= =?us-ascii?Q?yEtOUhtW15SllC/MHRJ2bw5L/VGp4cTYfbPLymohh+n6s78B+4FZRfPl23KY?= =?us-ascii?Q?CGdNiAntWuCp+bIG6ysRg3W2ctSTjBH4s9AfbxO95RmESS6vb9ZFY9y0wx2n?= =?us-ascii?Q?+b+utLeDVPZY/Xa6Zt3t/mPk7kvvjlbO+TApOU6MwIc9rWtlY1aQ2VvJA03I?= =?us-ascii?Q?CLTmAx6dG2wpe3ZzGtA1usgzK7SCKJH4sACeqi/kMXhsPGplDSZz31extMMK?= =?us-ascii?Q?m4OMbLWMm0L4DjL0dXPGdIMASrUVzbzpMIlrFmksLFf32jQx9vo0gYMFzez/?= =?us-ascii?Q?OruWCm/F6bhrQZ5bQXCUmPmGRgSGLQQ6RXf8RHIUnziXUqX+XxuzqOXQMvIq?= =?us-ascii?Q?eAWyxz7Bmk6qx0u9MkJtO/rQZp/JfFxot1tvzjIBRffBNAkbwYtSZyySDuoq?= =?us-ascii?Q?vUzqo3V+WhqOg2rJgnhqRTc9GLO6GU8CqqgnbzVgHzbNrd5dB+o8AhwtmjXx?= =?us-ascii?Q?ZStjaoyt7sIKlVZ/JixvxPy5X3fGoDwh1aBo640FVPXDtv0UxrVNv4QyN/Mz?= =?us-ascii?Q?TWJ1085+8Zb0kGSw0DQfpgiU3qaM6n5fQ+sUhdZeEswo5Elq2xDiKQns0EKu?= =?us-ascii?Q?RqWwdTO1ihcTMhzBTY+qViAFFgtv/+eVu0hKa/NMxmDVW7TynKicek948XCo?= =?us-ascii?Q?z5IO+vlj65bjdqnBDrs=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)(36860700013)(376014)(82310400026)(61400799027);DIR:OUT;SFP:1102; X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2025 10:50:07.8958 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d676aa26-b88b-4508-fe05-08de485a5d3c 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: IA4PR19MB9137 X-Proofpoint-GUID: oWQ7VDM6zLvn_BMtL51pAWcfuxGWIrXv X-Authority-Analysis: v=2.4 cv=Z8Hh3XRA c=1 sm=1 tr=0 ts=6954ffe3 cx=c_pps a=gR+jnx00JS1rzJoXDrw7EQ==: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: oWQ7VDM6zLvn_BMtL51pAWcfuxGWIrXv X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMxMDA5NSBTYWx0ZWRfX7LLOjEvkzOUb E2epfxxEgrJyuBNuZz5IMBxlwtVoDXtrqVNQxUEEEMc5eWm3wt6+VtqK/Cmqr+46gfO2NZIKqdL JqDgyMzCKJsDpWZJJhVs4ExFc6QU/DklP2KJfu6F69L3fE9rCekyAMbvRncTq9xKl9LTZDrp+Ma uIW1nyAyiGvGQitTmd8gTvPapFlD2qDhBYyUGeiML9EakMNZS7765uy5Csy5o2t+fxJrNRg9Apj W6VE1sefbFU8qGPDrka54NjazuwBAL389NmvpLnvpaZ0CZP12jkbOutvA9II9b/fYcsZgXJ0IyX qU4buy4KIYQH5/yfWLSBcGQuuRo1hJpUWkIL1g25yJWRa7P7us8bzBcJcHEJpCGQAj8ujwcRbfg x0sdZ0PlujhcD6/3McZkuG93mENtuD3LTUVfV316xrdXIxtE1Osq+cfVKKfLm67lV1zAFmiJy6s zueGT6by6x2991epXsw== 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 --- .../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