Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ASoC: amd: acp: add legacy driver support for ACP7.1 based platforms

Add acp pci driver and machine driver changes for ACP7.1 based platforms
for legacy stack.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20240813080850.3107409-1-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Vijendar Mukunda and committed by
Mark Brown
c6f3abbb ab73c7c0

+21 -6
+4 -3
sound/soc/amd/acp/acp-legacy-common.c
··· 270 270 acp_pgfsm_ctrl_reg = ACP63_PGFSM_CONTROL; 271 271 break; 272 272 case ACP70_DEV: 273 + case ACP71_DEV: 273 274 acp_pgfsm_stat_reg = ACP70_PGFSM_STATUS; 274 275 acp_pgfsm_ctrl_reg = ACP70_PGFSM_CONTROL; 275 276 break; ··· 337 336 if (ret) 338 337 return ret; 339 338 340 - if (chip->acp_rev != ACP70_DEV) 339 + if (chip->acp_rev < ACP70_DEV) 341 340 writel(0, chip->base + ACP_CONTROL); 342 - 343 - if (chip->acp_rev >= ACP70_DEV) 341 + else 344 342 writel(0x01, chip->base + ACP_ZSC_DSP_CTRL); 345 343 return 0; 346 344 } ··· 461 461 check_acp6x_config(chip); 462 462 break; 463 463 case ACP70_DEV: 464 + case ACP71_DEV: 464 465 pdm_addr = ACP70_PDM_ADDR; 465 466 check_acp70_config(chip); 466 467 break;
+1 -1
sound/soc/amd/acp/acp-mach-common.c
··· 1766 1766 } else if (drv_data->platform == ACP63) { 1767 1767 links[i].platforms = platform_acp63_component; 1768 1768 links[i].num_platforms = ARRAY_SIZE(platform_acp63_component); 1769 - } else if (drv_data->platform == ACP70) { 1769 + } else if ((drv_data->platform == ACP70) || (drv_data->platform == ACP71)) { 1770 1770 links[i].platforms = platform_acp70_component; 1771 1771 links[i].num_platforms = ARRAY_SIZE(platform_acp70_component); 1772 1772 } else {
+1
sound/soc/amd/acp/acp-mach.h
··· 56 56 REMBRANDT, 57 57 ACP63, 58 58 ACP70, 59 + ACP71, 59 60 }; 60 61 61 62 struct acp_mach_ops {
+4
sound/soc/amd/acp/acp-pci.c
··· 95 95 chip->name = "acp_asoc_acp70"; 96 96 chip->acp_rev = ACP70_DEV; 97 97 break; 98 + case 0x71: 99 + chip->name = "acp_asoc_acp70"; 100 + chip->acp_rev = ACP71_DEV; 101 + break; 98 102 default: 99 103 dev_err(dev, "Unsupported device revision:0x%x\n", pci->revision); 100 104 ret = -EINVAL;
+10 -2
sound/soc/amd/acp/acp70.c
··· 147 147 return -ENODEV; 148 148 } 149 149 150 - if (chip->acp_rev != ACP70_DEV) { 150 + switch (chip->acp_rev) { 151 + case ACP70_DEV: 152 + case ACP71_DEV: 153 + break; 154 + default: 151 155 dev_err(&pdev->dev, "Un-supported ACP Revision %d\n", chip->acp_rev); 152 156 return -ENODEV; 153 157 } ··· 182 178 adata->num_dai = ARRAY_SIZE(acp70_dai); 183 179 adata->rsrc = &rsrc; 184 180 adata->machines = snd_soc_acpi_amd_acp70_acp_machines; 185 - adata->platform = ACP70; 181 + if (chip->acp_rev == ACP70_DEV) 182 + adata->platform = ACP70; 183 + else 184 + adata->platform = ACP71; 185 + 186 186 adata->flag = chip->flag; 187 187 acp_machine_select(adata); 188 188
+1
sound/soc/amd/acp/amd.h
··· 22 22 #define ACP6X_DEV 6 23 23 #define ACP63_DEV 0x63 24 24 #define ACP70_DEV 0x70 25 + #define ACP71_DEV 0x71 25 26 26 27 #define DMIC_INSTANCE 0x00 27 28 #define I2S_SP_INSTANCE 0x01