Re: [PATCH v3 02/13] ASoC: amd: acp: add ACP7.B/7.F SoundWire DAI link support

From: Pierre-Louis Bossart

Date: Sun Oct 25 2026 - 17:14:39 EST


It'd be useful to comment/explain why this routine only relies on a
subset of IDS...

> +int get_acp7x_cpu_pin_id(u32 sdw_link_id, int be_id, int *cpu_pin_id, struct device *dev)
> +{
> + switch (sdw_link_id) {
> + case AMD_SDW0:
> + case AMD_SDW1:
> + case AMD_SDW2:
> + case AMD_SDW3:
> + switch (be_id) {
> + case SOC_SDW_JACK_OUT_DAI_ID:
> + *cpu_pin_id = ACP7X_SW_AUDIO0_TX;
> + break;
> + case SOC_SDW_JACK_IN_DAI_ID:
> + *cpu_pin_id = ACP7X_SW_AUDIO0_RX;
> + break;
> + case SOC_SDW_AMP_OUT_DAI_ID:
> + *cpu_pin_id = ACP7X_SW_AUDIO4_TX;
> + break;
> + case SOC_SDW_AMP_IN_DAI_ID:
> + *cpu_pin_id = ACP7X_SW_AUDIO4_RX;
> + break;
> + case SOC_SDW_DMIC_DAI_ID:
> + *cpu_pin_id = ACP7X_SW_AUDIO5_RX;
> + break;
> + default:
> + dev_err(dev, "Invalid be id:%d\n", be_id);
> + return -EINVAL;
> + }
> + break;
> + default:
> + return -EINVAL;
> + }
> + dev_dbg(dev, "sdw_link_id:%d, be_id:%d, cpu_pin_id:%d\n", sdw_link_id, be_id, *cpu_pin_id);
> + return 0;
> +}

... defined here - I marked the NOT USED ones.

> +/* ACP7.B/7.F SoundWire CPU pin IDs */
> +#define ACP7X_SW_AUDIO0_TX 0
> +#define ACP7X_SW_AUDIO1_TX 1 << NOT USED
> +#define ACP7X_SW_AUDIO2_TX 2 << NOT USED
> +#define ACP7X_SW_AUDIO3_TX 3 << NOT USED
> +#define ACP7X_SW_AUDIO4_TX 4
> +#define ACP7X_SW_AUDIO5_TX 5 << NOT USED
> +#define ACP7X_SW_AUDIO6_TX 6 << NOT USED
> +#define ACP7X_SW_AUDIO7_TX 7 << NOT USED
> +#define ACP7X_SW_AUDIO8_TX 8 << NOT USED
> +#define ACP7X_SW_AUDIO9_TX 9 << NOT USED
> +#define ACP7X_SW_AUDIO10_TX 10 << NOT USED
> +
> +#define ACP7X_SW_AUDIO0_RX 11
> +#define ACP7X_SW_AUDIO1_RX 12 << NOT USED
> +#define ACP7X_SW_AUDIO2_RX 13 << NOT USED
> +#define ACP7X_SW_AUDIO3_RX 14 << NOT USED
> +#define ACP7X_SW_AUDIO4_RX 15
> +#define ACP7X_SW_AUDIO5_RX 16
> +#define ACP7X_SW_AUDIO6_RX 17 << NOT USED
> +#define ACP7X_SW_AUDIO7_RX 18 << NOT USED
> +#define ACP7X_SW_AUDIO8_RX 19 << NOT USED
The IDs are different from what was used for ACP70