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: refactor acp version

Merge series from Vijendar Mukunda <Vijendar.Mukunda@amd.com>:

Currently different logics being used in the code for acp version
differentiation. This patch series refactors the code to use acp pci
revision id for handling acp version specific code.

+109 -95
+19 -19
sound/soc/amd/acp/acp-i2s.c
··· 59 59 val |= BIT(1); 60 60 61 61 switch (chip->acp_rev) { 62 - case ACP63_DEV: 63 - case ACP70_DEV: 64 - case ACP71_DEV: 62 + case ACP63_PCI_ID: 63 + case ACP70_PCI_ID: 64 + case ACP71_PCI_ID: 65 65 val |= FIELD_PREP(ACP63_LRCLK_DIV_FIELD, adata->lrclk_div); 66 66 val |= FIELD_PREP(ACP63_BCLK_DIV_FIELD, adata->bclk_div); 67 67 break; ··· 121 121 } 122 122 123 123 switch (chip->acp_rev) { 124 - case ACP3X_DEV: 125 - case ACP6X_DEV: 124 + case ACP_RN_PCI_ID: 125 + case ACP_RMB_PCI_ID: 126 126 switch (slots) { 127 127 case 1 ... 7: 128 128 no_of_slots = slots; ··· 135 135 return -EINVAL; 136 136 } 137 137 break; 138 - case ACP63_DEV: 139 - case ACP70_DEV: 140 - case ACP71_DEV: 138 + case ACP63_PCI_ID: 139 + case ACP70_PCI_ID: 140 + case ACP71_PCI_ID: 141 141 switch (slots) { 142 142 case 1 ... 31: 143 143 no_of_slots = slots; ··· 160 160 spin_lock_irq(&adata->acp_lock); 161 161 list_for_each_entry(stream, &adata->stream_list, list) { 162 162 switch (chip->acp_rev) { 163 - case ACP3X_DEV: 164 - case ACP6X_DEV: 163 + case ACP_RN_PCI_ID: 164 + case ACP_RMB_PCI_ID: 165 165 if (tx_mask && stream->dir == SNDRV_PCM_STREAM_PLAYBACK) 166 166 adata->tdm_tx_fmt[stream->dai_id - 1] = 167 167 FRM_LEN | (slots << 15) | (slot_len << 18); ··· 169 169 adata->tdm_rx_fmt[stream->dai_id - 1] = 170 170 FRM_LEN | (slots << 15) | (slot_len << 18); 171 171 break; 172 - case ACP63_DEV: 173 - case ACP70_DEV: 174 - case ACP71_DEV: 172 + case ACP63_PCI_ID: 173 + case ACP70_PCI_ID: 174 + case ACP71_PCI_ID: 175 175 if (tx_mask && stream->dir == SNDRV_PCM_STREAM_PLAYBACK) 176 176 adata->tdm_tx_fmt[stream->dai_id - 1] = 177 177 FRM_LEN | (slots << 13) | (slot_len << 18); ··· 534 534 reg_fifo_addr = ACP_I2S_TX_FIFOADDR(adata); 535 535 reg_fifo_size = ACP_I2S_TX_FIFOSIZE(adata); 536 536 537 - if (chip->acp_rev >= ACP70_DEV) 537 + if (chip->acp_rev >= ACP70_PCI_ID) 538 538 phy_addr = ACP7x_I2S_SP_TX_MEM_WINDOW_START; 539 539 else 540 540 phy_addr = I2S_SP_TX_MEM_WINDOW_START + stream->reg_offset; ··· 546 546 reg_fifo_addr = ACP_I2S_RX_FIFOADDR(adata); 547 547 reg_fifo_size = ACP_I2S_RX_FIFOSIZE(adata); 548 548 549 - if (chip->acp_rev >= ACP70_DEV) 549 + if (chip->acp_rev >= ACP70_PCI_ID) 550 550 phy_addr = ACP7x_I2S_SP_RX_MEM_WINDOW_START; 551 551 else 552 552 phy_addr = I2S_SP_RX_MEM_WINDOW_START + stream->reg_offset; ··· 561 561 reg_fifo_addr = ACP_BT_TX_FIFOADDR(adata); 562 562 reg_fifo_size = ACP_BT_TX_FIFOSIZE(adata); 563 563 564 - if (chip->acp_rev >= ACP70_DEV) 564 + if (chip->acp_rev >= ACP70_PCI_ID) 565 565 phy_addr = ACP7x_I2S_BT_TX_MEM_WINDOW_START; 566 566 else 567 567 phy_addr = I2S_BT_TX_MEM_WINDOW_START + stream->reg_offset; ··· 573 573 reg_fifo_addr = ACP_BT_RX_FIFOADDR(adata); 574 574 reg_fifo_size = ACP_BT_RX_FIFOSIZE(adata); 575 575 576 - if (chip->acp_rev >= ACP70_DEV) 576 + if (chip->acp_rev >= ACP70_PCI_ID) 577 577 phy_addr = ACP7x_I2S_BT_RX_MEM_WINDOW_START; 578 578 else 579 579 phy_addr = I2S_BT_TX_MEM_WINDOW_START + stream->reg_offset; ··· 588 588 reg_fifo_addr = ACP_HS_TX_FIFOADDR; 589 589 reg_fifo_size = ACP_HS_TX_FIFOSIZE; 590 590 591 - if (chip->acp_rev >= ACP70_DEV) 591 + if (chip->acp_rev >= ACP70_PCI_ID) 592 592 phy_addr = ACP7x_I2S_HS_TX_MEM_WINDOW_START; 593 593 else 594 594 phy_addr = I2S_HS_TX_MEM_WINDOW_START + stream->reg_offset; ··· 600 600 reg_fifo_addr = ACP_HS_RX_FIFOADDR; 601 601 reg_fifo_size = ACP_HS_RX_FIFOSIZE; 602 602 603 - if (chip->acp_rev >= ACP70_DEV) 603 + if (chip->acp_rev >= ACP70_PCI_ID) 604 604 phy_addr = ACP7x_I2S_HS_RX_MEM_WINDOW_START; 605 605 else 606 606 phy_addr = I2S_HS_RX_MEM_WINDOW_START + stream->reg_offset;
+12 -12
sound/soc/amd/acp/acp-legacy-common.c
··· 257 257 258 258 base = chip->base; 259 259 switch (chip->acp_rev) { 260 - case ACP3X_DEV: 260 + case ACP_RN_PCI_ID: 261 261 acp_pgfsm_stat_reg = ACP_PGFSM_STATUS; 262 262 acp_pgfsm_ctrl_reg = ACP_PGFSM_CONTROL; 263 263 break; 264 - case ACP6X_DEV: 264 + case ACP_RMB_PCI_ID: 265 265 acp_pgfsm_stat_reg = ACP6X_PGFSM_STATUS; 266 266 acp_pgfsm_ctrl_reg = ACP6X_PGFSM_CONTROL; 267 267 break; 268 - case ACP63_DEV: 268 + case ACP63_PCI_ID: 269 269 acp_pgfsm_stat_reg = ACP63_PGFSM_STATUS; 270 270 acp_pgfsm_ctrl_reg = ACP63_PGFSM_CONTROL; 271 271 break; 272 - case ACP70_DEV: 273 - case ACP71_DEV: 272 + case ACP70_PCI_ID: 273 + case ACP71_PCI_ID: 274 274 acp_pgfsm_stat_reg = ACP70_PGFSM_STATUS; 275 275 acp_pgfsm_ctrl_reg = ACP70_PGFSM_CONTROL; 276 276 break; ··· 322 322 pr_err("ACP reset failed\n"); 323 323 return ret; 324 324 } 325 - if (chip->acp_rev >= ACP70_DEV) 325 + if (chip->acp_rev >= ACP70_PCI_ID) 326 326 writel(0, chip->base + ACP_ZSC_DSP_CTRL); 327 327 return 0; 328 328 } ··· 337 337 if (ret) 338 338 return ret; 339 339 340 - if (chip->acp_rev < ACP70_DEV) 340 + if (chip->acp_rev < ACP70_PCI_ID) 341 341 writel(0, chip->base + ACP_CONTROL); 342 342 else 343 343 writel(0x01, chip->base + ACP_ZSC_DSP_CTRL); ··· 448 448 u32 pdm_addr; 449 449 450 450 switch (chip->acp_rev) { 451 - case ACP3X_DEV: 451 + case ACP_RN_PCI_ID: 452 452 pdm_addr = ACP_RENOIR_PDM_ADDR; 453 453 check_acp3x_config(chip); 454 454 break; 455 - case ACP6X_DEV: 455 + case ACP_RMB_PCI_ID: 456 456 pdm_addr = ACP_REMBRANDT_PDM_ADDR; 457 457 check_acp6x_config(chip); 458 458 break; 459 - case ACP63_DEV: 459 + case ACP63_PCI_ID: 460 460 pdm_addr = ACP63_PDM_ADDR; 461 461 check_acp6x_config(chip); 462 462 break; 463 - case ACP70_DEV: 464 - case ACP71_DEV: 463 + case ACP70_PCI_ID: 464 + case ACP71_PCI_ID: 465 465 pdm_addr = ACP70_PDM_ADDR; 466 466 check_acp70_config(chip); 467 467 break;
+4 -4
sound/soc/amd/acp/acp-legacy-mach.c
··· 57 57 .dmic_cpu_id = DMIC, 58 58 .hs_codec_id = ES83XX, 59 59 .dmic_codec_id = DMIC, 60 - .platform = RENOIR, 61 60 }; 62 61 63 62 static struct acp_card_drvdata max_nau8825_data = { ··· 67 68 .amp_codec_id = MAX98360A, 68 69 .dmic_codec_id = DMIC, 69 70 .soc_mclk = true, 70 - .platform = REMBRANDT, 71 71 .tdm_mode = false, 72 72 }; 73 73 ··· 78 80 .amp_codec_id = RT1019, 79 81 .dmic_codec_id = DMIC, 80 82 .soc_mclk = true, 81 - .platform = REMBRANDT, 82 83 .tdm_mode = false, 83 84 }; 84 85 ··· 123 126 { 124 127 struct snd_soc_card *card = NULL; 125 128 struct device *dev = &pdev->dev; 129 + struct snd_soc_acpi_mach *mach = dev_get_platdata(&pdev->dev); 126 130 const struct dmi_system_id *dmi_id; 127 131 struct acp_card_drvdata *acp_card_drvdata; 128 132 int ret; ··· 169 171 goto out; 170 172 } 171 173 if (!strcmp(pdev->name, "acp-pdm-mach")) 172 - acp_card_drvdata->platform = *((int *)dev->platform_data); 174 + acp_card_drvdata->acp_rev = *((int *)dev->platform_data); 175 + else 176 + acp_card_drvdata->acp_rev = mach->mach_params.subsystem_rev; 173 177 174 178 dmi_id = dmi_first_match(acp_quirk_table); 175 179 if (dmi_id && dmi_id->driver_data)
+27 -11
sound/soc/amd/acp/acp-mach-common.c
··· 1471 1471 if (drv_data->amp_cpu_id == I2S_SP) { 1472 1472 links[i].name = "acp-amp-codec"; 1473 1473 links[i].id = AMP_BE_ID; 1474 - if (drv_data->platform == RENOIR) { 1474 + if (drv_data->acp_rev == ACP_RN_PCI_ID) { 1475 1475 links[i].cpus = sof_sp; 1476 1476 links[i].num_cpus = ARRAY_SIZE(sof_sp); 1477 1477 } else { ··· 1647 1647 links[i].id = HEADSET_BE_ID; 1648 1648 links[i].cpus = i2s_hs; 1649 1649 links[i].num_cpus = ARRAY_SIZE(i2s_hs); 1650 - if (drv_data->platform == REMBRANDT) { 1650 + switch (drv_data->acp_rev) { 1651 + case ACP_RMB_PCI_ID: 1651 1652 links[i].platforms = platform_rmb_component; 1652 1653 links[i].num_platforms = ARRAY_SIZE(platform_rmb_component); 1653 - } else if (drv_data->platform == ACP63) { 1654 + break; 1655 + case ACP63_PCI_ID: 1654 1656 links[i].platforms = platform_acp63_component; 1655 1657 links[i].num_platforms = ARRAY_SIZE(platform_acp63_component); 1656 - } else { 1658 + break; 1659 + default: 1657 1660 links[i].platforms = platform_component; 1658 1661 links[i].num_platforms = ARRAY_SIZE(platform_component); 1662 + break; 1659 1663 } 1664 + 1660 1665 links[i].dpcm_playback = 1; 1661 1666 links[i].dpcm_capture = 1; 1662 1667 if (!drv_data->hs_codec_id) { ··· 1719 1714 links[i].id = AMP_BE_ID; 1720 1715 links[i].cpus = i2s_hs; 1721 1716 links[i].num_cpus = ARRAY_SIZE(i2s_hs); 1722 - if (drv_data->platform == REMBRANDT) { 1717 + switch (drv_data->acp_rev) { 1718 + case ACP_RMB_PCI_ID: 1723 1719 links[i].platforms = platform_rmb_component; 1724 1720 links[i].num_platforms = ARRAY_SIZE(platform_rmb_component); 1725 - } else if (drv_data->platform == ACP63) { 1721 + break; 1722 + case ACP63_PCI_ID: 1726 1723 links[i].platforms = platform_acp63_component; 1727 1724 links[i].num_platforms = ARRAY_SIZE(platform_acp63_component); 1728 - } else { 1725 + break; 1726 + default: 1729 1727 links[i].platforms = platform_component; 1730 1728 links[i].num_platforms = ARRAY_SIZE(platform_component); 1729 + break; 1731 1730 } 1731 + 1732 1732 links[i].dpcm_playback = 1; 1733 1733 if (!drv_data->amp_codec_id) { 1734 1734 /* Use dummy codec if codec id not specified */ ··· 1770 1760 } 1771 1761 links[i].cpus = pdm_dmic; 1772 1762 links[i].num_cpus = ARRAY_SIZE(pdm_dmic); 1773 - if (drv_data->platform == REMBRANDT) { 1763 + switch (drv_data->acp_rev) { 1764 + case ACP_RMB_PCI_ID: 1774 1765 links[i].platforms = platform_rmb_component; 1775 1766 links[i].num_platforms = ARRAY_SIZE(platform_rmb_component); 1776 - } else if (drv_data->platform == ACP63) { 1767 + break; 1768 + case ACP63_PCI_ID: 1777 1769 links[i].platforms = platform_acp63_component; 1778 1770 links[i].num_platforms = ARRAY_SIZE(platform_acp63_component); 1779 - } else if ((drv_data->platform == ACP70) || (drv_data->platform == ACP71)) { 1771 + break; 1772 + case ACP70_PCI_ID: 1773 + case ACP71_PCI_ID: 1780 1774 links[i].platforms = platform_acp70_component; 1781 1775 links[i].num_platforms = ARRAY_SIZE(platform_acp70_component); 1782 - } else { 1776 + break; 1777 + default: 1783 1778 links[i].platforms = platform_component; 1784 1779 links[i].num_platforms = ARRAY_SIZE(platform_component); 1780 + break; 1785 1781 } 1786 1782 links[i].ops = &acp_card_dmic_ops; 1787 1783 links[i].dpcm_capture = 1;
+3 -9
sound/soc/amd/acp/acp-mach.h
··· 18 18 #include <linux/module.h> 19 19 #include <sound/soc.h> 20 20 21 + #include "acp_common.h" 22 + 21 23 #define TDM_CHANNELS 8 22 24 23 25 #define ACP_OPS(priv, cb) ((priv)->ops.cb) ··· 53 51 ES83XX, 54 52 }; 55 53 56 - enum platform_end_point { 57 - RENOIR = 0, 58 - REMBRANDT, 59 - ACP63, 60 - ACP70, 61 - ACP71, 62 - }; 63 - 64 54 struct acp_mach_ops { 65 55 int (*probe)(struct snd_soc_card *card); 66 56 int (*configure_link)(struct snd_soc_card *card, struct snd_soc_dai_link *dai_link); ··· 71 77 unsigned int bt_codec_id; 72 78 unsigned int dmic_codec_id; 73 79 unsigned int dai_fmt; 74 - unsigned int platform; 80 + unsigned int acp_rev; 75 81 struct clk *wclk; 76 82 struct clk *bclk; 77 83 struct acp_mach_ops ops;
+1 -6
sound/soc/amd/acp/acp-pci.c
··· 77 77 78 78 res_acp = acp_res; 79 79 num_res = ARRAY_SIZE(acp_res); 80 - 80 + chip->acp_rev = pci->revision; 81 81 switch (pci->revision) { 82 82 case 0x01: 83 83 chip->name = "acp_asoc_renoir"; 84 - chip->acp_rev = ACP3X_DEV; 85 84 break; 86 85 case 0x6f: 87 86 chip->name = "acp_asoc_rembrandt"; 88 - chip->acp_rev = ACP6X_DEV; 89 87 break; 90 88 case 0x63: 91 89 chip->name = "acp_asoc_acp63"; 92 - chip->acp_rev = ACP63_DEV; 93 90 break; 94 91 case 0x70: 95 92 chip->name = "acp_asoc_acp70"; 96 - chip->acp_rev = ACP70_DEV; 97 93 break; 98 94 case 0x71: 99 95 chip->name = "acp_asoc_acp70"; 100 - chip->acp_rev = ACP71_DEV; 101 96 break; 102 97 default: 103 98 dev_err(dev, "Unsupported device revision:0x%x\n", pci->revision);
+1 -1
sound/soc/amd/acp/acp-pdm.c
··· 47 47 size_dmic = frames_to_bytes(substream->runtime, 48 48 substream->runtime->buffer_size); 49 49 50 - if (chip->acp_rev >= ACP70_DEV) 50 + if (chip->acp_rev >= ACP70_PCI_ID) 51 51 physical_addr = ACP7x_DMIC_MEM_WINDOW_START; 52 52 else 53 53 physical_addr = stream->reg_offset + MEM_WINDOW_START;
+8 -7
sound/soc/amd/acp/acp-platform.c
··· 114 114 int size, platform; 115 115 116 116 if (adata->flag == FLAG_AMD_LEGACY_ONLY_DMIC) { 117 - platform = adata->platform; 117 + platform = adata->acp_rev; 118 118 adata->mach_dev = platform_device_register_data(adata->dev, "acp-pdm-mach", 119 119 PLATFORM_DEVID_NONE, &platform, 120 120 sizeof(platform)); ··· 125 125 dev_err(adata->dev, "warning: No matching ASoC machine driver found\n"); 126 126 return -EINVAL; 127 127 } 128 + mach->mach_params.subsystem_rev = adata->acp_rev; 128 129 adata->mach_dev = platform_device_register_data(adata->dev, mach->drv_name, 129 130 PLATFORM_DEVID_NONE, mach, size); 130 131 } ··· 205 204 u32 low, high, val; 206 205 u16 page_idx; 207 206 208 - switch (adata->platform) { 209 - case ACP70: 210 - case ACP71: 207 + switch (adata->acp_rev) { 208 + case ACP70_PCI_ID: 209 + case ACP71_PCI_ID: 211 210 switch (stream->dai_id) { 212 211 case I2S_SP_INSTANCE: 213 212 if (stream->dir == SNDRV_PCM_STREAM_PLAYBACK) ··· 271 270 stream->substream = substream; 272 271 chip = dev_get_platdata(dev); 273 272 switch (chip->acp_rev) { 274 - case ACP63_DEV: 275 - case ACP70_DEV: 276 - case ACP71_DEV: 273 + case ACP63_PCI_ID: 274 + case ACP70_PCI_ID: 275 + case ACP71_PCI_ID: 277 276 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) 278 277 runtime->hw = acp6x_pcm_hardware_playback; 279 278 else
+2 -2
sound/soc/amd/acp/acp-rembrandt.c
··· 197 197 return -ENODEV; 198 198 } 199 199 200 - if (chip->acp_rev != ACP6X_DEV) { 200 + if (chip->acp_rev != ACP_RMB_PCI_ID) { 201 201 dev_err(&pdev->dev, "Un-supported ACP Revision %d\n", chip->acp_rev); 202 202 return -ENODEV; 203 203 } ··· 227 227 adata->dai_driver = acp_rmb_dai; 228 228 adata->num_dai = ARRAY_SIZE(acp_rmb_dai); 229 229 adata->rsrc = &rsrc; 230 - adata->platform = REMBRANDT; 230 + adata->acp_rev = chip->acp_rev; 231 231 adata->flag = chip->flag; 232 232 adata->is_i2s_config = chip->is_i2s_config; 233 233 adata->machines = snd_soc_acpi_amd_rmb_acp_machines;
+2 -2
sound/soc/amd/acp/acp-renoir.c
··· 157 157 return -ENODEV; 158 158 } 159 159 160 - if (chip->acp_rev != ACP3X_DEV) { 160 + if (chip->acp_rev != ACP_RN_PCI_ID) { 161 161 dev_err(&pdev->dev, "Un-supported ACP Revision %d\n", chip->acp_rev); 162 162 return -ENODEV; 163 163 } ··· 185 185 adata->dai_driver = acp_renoir_dai; 186 186 adata->num_dai = ARRAY_SIZE(acp_renoir_dai); 187 187 adata->rsrc = &rsrc; 188 - adata->platform = RENOIR; 188 + adata->acp_rev = chip->acp_rev; 189 189 adata->flag = chip->flag; 190 190 191 191 adata->machines = snd_soc_acpi_amd_acp_machines;
+2 -4
sound/soc/amd/acp/acp-sof-mach.c
··· 46 46 .hs_codec_id = RT5682S, 47 47 .amp_codec_id = RT1019, 48 48 .dmic_codec_id = DMIC, 49 - .platform = RENOIR, 50 49 }; 51 50 52 51 static struct acp_card_drvdata sof_rt5682s_max_data = { ··· 55 56 .hs_codec_id = RT5682S, 56 57 .amp_codec_id = MAX98360A, 57 58 .dmic_codec_id = DMIC, 58 - .platform = RENOIR, 59 59 }; 60 60 61 61 static struct acp_card_drvdata sof_nau8825_data = { ··· 64 66 .hs_codec_id = NAU8825, 65 67 .amp_codec_id = MAX98360A, 66 68 .dmic_codec_id = DMIC, 67 - .platform = REMBRANDT, 68 69 .soc_mclk = true, 69 70 }; 70 71 ··· 74 77 .hs_codec_id = RT5682S, 75 78 .amp_codec_id = RT1019, 76 79 .dmic_codec_id = DMIC, 77 - .platform = REMBRANDT, 78 80 .soc_mclk = true, 79 81 }; 80 82 ··· 90 94 { 91 95 struct snd_soc_card *card = NULL; 92 96 struct device *dev = &pdev->dev; 97 + struct snd_soc_acpi_mach *mach = dev_get_platdata(&pdev->dev); 93 98 const struct dmi_system_id *dmi_id; 94 99 struct acp_card_drvdata *acp_card_drvdata; 95 100 int ret; ··· 113 116 if (dmi_id && dmi_id->driver_data) 114 117 acp_card_drvdata->tdm_mode = dmi_id->driver_data; 115 118 119 + acp_card_drvdata->acp_rev = mach->mach_params.subsystem_rev; 116 120 ret = acp_sofdsp_dai_links_create(card); 117 121 if (ret) 118 122 return dev_err_probe(&pdev->dev, ret, "Failed to create DAI links\n");
+2 -2
sound/soc/amd/acp/acp63.c
··· 207 207 return -ENODEV; 208 208 } 209 209 210 - if (chip->acp_rev != ACP63_DEV) { 210 + if (chip->acp_rev != ACP63_PCI_ID) { 211 211 dev_err(&pdev->dev, "Un-supported ACP Revision %d\n", chip->acp_rev); 212 212 return -ENODEV; 213 213 } ··· 237 237 adata->dai_driver = acp63_dai; 238 238 adata->num_dai = ARRAY_SIZE(acp63_dai); 239 239 adata->rsrc = &rsrc; 240 - adata->platform = ACP63; 240 + adata->acp_rev = chip->acp_rev; 241 241 adata->flag = chip->flag; 242 242 adata->is_i2s_config = chip->is_i2s_config; 243 243 adata->machines = snd_soc_acpi_amd_acp63_acp_machines;
+5 -9
sound/soc/amd/acp/acp70.c
··· 142 142 struct pci_dev *smn_dev; 143 143 u32 device_id; 144 144 145 - if (adata->platform == ACP70) 145 + if (adata->acp_rev == ACP70_PCI_ID) 146 146 device_id = 0x1507; 147 - else if (adata->platform == ACP71) 147 + else if (adata->acp_rev == ACP71_PCI_ID) 148 148 device_id = 0x1122; 149 149 else 150 150 return -ENODEV; ··· 175 175 } 176 176 177 177 switch (chip->acp_rev) { 178 - case ACP70_DEV: 179 - case ACP71_DEV: 178 + case ACP70_PCI_ID: 179 + case ACP71_PCI_ID: 180 180 break; 181 181 default: 182 182 dev_err(&pdev->dev, "Un-supported ACP Revision %d\n", chip->acp_rev); ··· 209 209 adata->num_dai = ARRAY_SIZE(acp70_dai); 210 210 adata->rsrc = &rsrc; 211 211 adata->machines = snd_soc_acpi_amd_acp70_acp_machines; 212 - if (chip->acp_rev == ACP70_DEV) 213 - adata->platform = ACP70; 214 - else 215 - adata->platform = ACP71; 216 - 212 + adata->acp_rev = chip->acp_rev; 217 213 adata->flag = chip->flag; 218 214 acp_machine_select(adata); 219 215
+19
sound/soc/amd/acp/acp_common.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0-only 2 + * Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved 3 + */ 4 + 5 + /* 6 + * acp_common.h - acp common header file 7 + */ 8 + 9 + #ifndef __ACP_COMMON_H 10 + #define __ACP_COMMON_H 11 + 12 + #define ACP_RN_PCI_ID 0x01 13 + #define ACP_VANGOGH_PCI_ID 0x50 14 + #define ACP_RMB_PCI_ID 0x6F 15 + #define ACP63_PCI_ID 0x63 16 + #define ACP70_PCI_ID 0x70 17 + #define ACP71_PCI_ID 0x71 18 + 19 + #endif
+2 -7
sound/soc/amd/acp/amd.h
··· 16 16 #include <sound/soc-acpi.h> 17 17 #include <sound/soc-dai.h> 18 18 19 + #include "acp_common.h" 19 20 #include "chip_offset_byte.h" 20 - 21 - #define ACP3X_DEV 3 22 - #define ACP6X_DEV 6 23 - #define ACP63_DEV 0x63 24 - #define ACP70_DEV 0x70 25 - #define ACP71_DEV 0x71 26 21 27 22 #define DMIC_INSTANCE 0x00 28 23 #define I2S_SP_INSTANCE 0x01 ··· 177 182 struct device *dev; 178 183 void __iomem *acp_base; 179 184 unsigned int i2s_irq; 185 + unsigned int acp_rev; /* ACP Revision id */ 180 186 181 187 bool tdm_mode; 182 188 bool is_i2s_config; ··· 201 205 u32 xfer_tx_resolution[3]; 202 206 u32 xfer_rx_resolution[3]; 203 207 unsigned int flag; 204 - unsigned int platform; 205 208 }; 206 209 207 210 enum acp_config {