[PATCH v3 10/11] soundwire: amd: guard DAI PCM caps by acp_rev in register_dais()

From: Vijendar Mukunda

Date: Sat Nov 07 2026 - 13:57:27 EST


Replace the bare stream->rates and stream->formats assignments in
amd_sdw_register_dais() with an explicit switch/case on acp_rev
covering ACP63, ACP70, ACP71, and ACP72. An unrecognised revision
now returns -EINVAL at DAI registration time rather than silently
inheriting capabilities that may not apply to future hardware.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@xxxxxxx>
---
drivers/soundwire/amd_manager_common.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/soundwire/amd_manager_common.c b/drivers/soundwire/amd_manager_common.c
index 06aef9c03f18..4a414fc1b02d 100644
--- a/drivers/soundwire/amd_manager_common.c
+++ b/drivers/soundwire/amd_manager_common.c
@@ -403,8 +403,19 @@ static int amd_sdw_register_dais(struct amd_sdw_manager *amd_manager)

stream->channels_min = 2;
stream->channels_max = 2;
- stream->rates = SNDRV_PCM_RATE_48000;
- stream->formats = SNDRV_PCM_FMTBIT_S16_LE;
+ switch (amd_manager->acp_rev) {
+ case ACP63_PCI_REV_ID:
+ case ACP70_PCI_REV_ID:
+ case ACP71_PCI_REV_ID:
+ case ACP72_PCI_REV_ID:
+ stream->rates = SNDRV_PCM_RATE_48000;
+ stream->formats = SNDRV_PCM_FMTBIT_S16_LE;
+ break;
+ default:
+ dev_err(amd_manager->dev, "unexpected acp_rev 0x%x\n",
+ amd_manager->acp_rev);
+ return -EINVAL;
+ }

dais[i].ops = &amd_sdw_dai_ops;
dais[i].id = i;
--
2.53.0