]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ASoC: amd: acp: use acp pci revision id for platform differntiation
authorVijendar Mukunda <Vijendar.Mukunda@amd.com>
Tue, 24 Sep 2024 06:18:15 +0000 (11:48 +0530)
committerMark Brown <broonie@kernel.org>
Sun, 29 Sep 2024 23:10:37 +0000 (01:10 +0200)
Store acp pci revision id value in 'acp_rev' variable.
Use common ACP PCI revision id macros throughout the code for acp_rev
check and remove unused macros for platform differentiation from
common header file for acp platform driver.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20240924061821.1127054-4-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/amd/acp/acp-i2s.c
sound/soc/amd/acp/acp-legacy-common.c
sound/soc/amd/acp/acp-pci.c
sound/soc/amd/acp/acp-pdm.c
sound/soc/amd/acp/acp-platform.c
sound/soc/amd/acp/acp-rembrandt.c
sound/soc/amd/acp/acp-renoir.c
sound/soc/amd/acp/acp63.c
sound/soc/amd/acp/acp70.c
sound/soc/amd/acp/amd.h

index 56ce9e4b6accc78eeb5c612c9d46d4ba17a34114..515bf862deb56bf11fc229bdc98dc432aa1b0ab2 100644 (file)
@@ -59,9 +59,9 @@ static inline void acp_set_i2s_clk(struct acp_dev_data *adata, int dai_id)
                val |= BIT(1);
 
        switch (chip->acp_rev) {
-       case ACP63_DEV:
-       case ACP70_DEV:
-       case ACP71_DEV:
+       case ACP63_PCI_ID:
+       case ACP70_PCI_ID:
+       case ACP71_PCI_ID:
                val |= FIELD_PREP(ACP63_LRCLK_DIV_FIELD, adata->lrclk_div);
                val |= FIELD_PREP(ACP63_BCLK_DIV_FIELD, adata->bclk_div);
                break;
@@ -121,8 +121,8 @@ static int acp_i2s_set_tdm_slot(struct snd_soc_dai *dai, u32 tx_mask, u32 rx_mas
        }
 
        switch (chip->acp_rev) {
-       case ACP3X_DEV:
-       case ACP6X_DEV:
+       case ACP_RN_PCI_ID:
+       case ACP_RMB_PCI_ID:
                switch (slots) {
                case 1 ... 7:
                        no_of_slots = slots;
@@ -135,9 +135,9 @@ static int acp_i2s_set_tdm_slot(struct snd_soc_dai *dai, u32 tx_mask, u32 rx_mas
                        return -EINVAL;
                }
                break;
-       case ACP63_DEV:
-       case ACP70_DEV:
-       case ACP71_DEV:
+       case ACP63_PCI_ID:
+       case ACP70_PCI_ID:
+       case ACP71_PCI_ID:
                switch (slots) {
                case 1 ... 31:
                        no_of_slots = slots;
@@ -160,8 +160,8 @@ static int acp_i2s_set_tdm_slot(struct snd_soc_dai *dai, u32 tx_mask, u32 rx_mas
        spin_lock_irq(&adata->acp_lock);
        list_for_each_entry(stream, &adata->stream_list, list) {
                switch (chip->acp_rev) {
-               case ACP3X_DEV:
-               case ACP6X_DEV:
+               case ACP_RN_PCI_ID:
+               case ACP_RMB_PCI_ID:
                        if (tx_mask && stream->dir == SNDRV_PCM_STREAM_PLAYBACK)
                                adata->tdm_tx_fmt[stream->dai_id - 1] =
                                        FRM_LEN | (slots << 15) | (slot_len << 18);
@@ -169,9 +169,9 @@ static int acp_i2s_set_tdm_slot(struct snd_soc_dai *dai, u32 tx_mask, u32 rx_mas
                                adata->tdm_rx_fmt[stream->dai_id - 1] =
                                        FRM_LEN | (slots << 15) | (slot_len << 18);
                        break;
-               case ACP63_DEV:
-               case ACP70_DEV:
-               case ACP71_DEV:
+               case ACP63_PCI_ID:
+               case ACP70_PCI_ID:
+               case ACP71_PCI_ID:
                        if (tx_mask && stream->dir == SNDRV_PCM_STREAM_PLAYBACK)
                                adata->tdm_tx_fmt[stream->dai_id - 1] =
                                                FRM_LEN | (slots << 13) | (slot_len << 18);
@@ -534,7 +534,7 @@ static int acp_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_d
                        reg_fifo_addr = ACP_I2S_TX_FIFOADDR(adata);
                        reg_fifo_size = ACP_I2S_TX_FIFOSIZE(adata);
 
-                       if (chip->acp_rev >= ACP70_DEV)
+                       if (chip->acp_rev >= ACP70_PCI_ID)
                                phy_addr = ACP7x_I2S_SP_TX_MEM_WINDOW_START;
                        else
                                phy_addr = I2S_SP_TX_MEM_WINDOW_START + stream->reg_offset;
@@ -546,7 +546,7 @@ static int acp_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_d
                        reg_fifo_addr = ACP_I2S_RX_FIFOADDR(adata);
                        reg_fifo_size = ACP_I2S_RX_FIFOSIZE(adata);
 
-                       if (chip->acp_rev >= ACP70_DEV)
+                       if (chip->acp_rev >= ACP70_PCI_ID)
                                phy_addr = ACP7x_I2S_SP_RX_MEM_WINDOW_START;
                        else
                                phy_addr = I2S_SP_RX_MEM_WINDOW_START + stream->reg_offset;
@@ -561,7 +561,7 @@ static int acp_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_d
                        reg_fifo_addr = ACP_BT_TX_FIFOADDR(adata);
                        reg_fifo_size = ACP_BT_TX_FIFOSIZE(adata);
 
-                       if (chip->acp_rev >= ACP70_DEV)
+                       if (chip->acp_rev >= ACP70_PCI_ID)
                                phy_addr = ACP7x_I2S_BT_TX_MEM_WINDOW_START;
                        else
                                phy_addr = I2S_BT_TX_MEM_WINDOW_START + stream->reg_offset;
@@ -573,7 +573,7 @@ static int acp_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_d
                        reg_fifo_addr = ACP_BT_RX_FIFOADDR(adata);
                        reg_fifo_size = ACP_BT_RX_FIFOSIZE(adata);
 
-                       if (chip->acp_rev >= ACP70_DEV)
+                       if (chip->acp_rev >= ACP70_PCI_ID)
                                phy_addr = ACP7x_I2S_BT_RX_MEM_WINDOW_START;
                        else
                                phy_addr = I2S_BT_TX_MEM_WINDOW_START + stream->reg_offset;
@@ -588,7 +588,7 @@ static int acp_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_d
                        reg_fifo_addr = ACP_HS_TX_FIFOADDR;
                        reg_fifo_size = ACP_HS_TX_FIFOSIZE;
 
-                       if (chip->acp_rev >= ACP70_DEV)
+                       if (chip->acp_rev >= ACP70_PCI_ID)
                                phy_addr = ACP7x_I2S_HS_TX_MEM_WINDOW_START;
                        else
                                phy_addr = I2S_HS_TX_MEM_WINDOW_START + stream->reg_offset;
@@ -600,7 +600,7 @@ static int acp_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_d
                        reg_fifo_addr = ACP_HS_RX_FIFOADDR;
                        reg_fifo_size = ACP_HS_RX_FIFOSIZE;
 
-                       if (chip->acp_rev >= ACP70_DEV)
+                       if (chip->acp_rev >= ACP70_PCI_ID)
                                phy_addr = ACP7x_I2S_HS_RX_MEM_WINDOW_START;
                        else
                                phy_addr = I2S_HS_RX_MEM_WINDOW_START + stream->reg_offset;
index be01b178172e8698a48a7b5c1f87729a97c7fbd5..3f76d1f0a9e70742d7980e3deb98c67b81027f02 100644 (file)
@@ -257,20 +257,20 @@ static int acp_power_on(struct acp_chip_info *chip)
 
        base = chip->base;
        switch (chip->acp_rev) {
-       case ACP3X_DEV:
+       case ACP_RN_PCI_ID:
                acp_pgfsm_stat_reg = ACP_PGFSM_STATUS;
                acp_pgfsm_ctrl_reg = ACP_PGFSM_CONTROL;
                break;
-       case ACP6X_DEV:
+       case ACP_RMB_PCI_ID:
                acp_pgfsm_stat_reg = ACP6X_PGFSM_STATUS;
                acp_pgfsm_ctrl_reg = ACP6X_PGFSM_CONTROL;
                break;
-       case ACP63_DEV:
+       case ACP63_PCI_ID:
                acp_pgfsm_stat_reg = ACP63_PGFSM_STATUS;
                acp_pgfsm_ctrl_reg = ACP63_PGFSM_CONTROL;
                break;
-       case ACP70_DEV:
-       case ACP71_DEV:
+       case ACP70_PCI_ID:
+       case ACP71_PCI_ID:
                acp_pgfsm_stat_reg = ACP70_PGFSM_STATUS;
                acp_pgfsm_ctrl_reg = ACP70_PGFSM_CONTROL;
                break;
@@ -322,7 +322,7 @@ int acp_init(struct acp_chip_info *chip)
                pr_err("ACP reset failed\n");
                return ret;
        }
-       if (chip->acp_rev >= ACP70_DEV)
+       if (chip->acp_rev >= ACP70_PCI_ID)
                writel(0, chip->base + ACP_ZSC_DSP_CTRL);
        return 0;
 }
@@ -337,7 +337,7 @@ int acp_deinit(struct acp_chip_info *chip)
        if (ret)
                return ret;
 
-       if (chip->acp_rev < ACP70_DEV)
+       if (chip->acp_rev < ACP70_PCI_ID)
                writel(0, chip->base + ACP_CONTROL);
        else
                writel(0x01, chip->base + ACP_ZSC_DSP_CTRL);
@@ -448,20 +448,20 @@ void check_acp_config(struct pci_dev *pci, struct acp_chip_info *chip)
        u32 pdm_addr;
 
        switch (chip->acp_rev) {
-       case ACP3X_DEV:
+       case ACP_RN_PCI_ID:
                pdm_addr = ACP_RENOIR_PDM_ADDR;
                check_acp3x_config(chip);
                break;
-       case ACP6X_DEV:
+       case ACP_RMB_PCI_ID:
                pdm_addr = ACP_REMBRANDT_PDM_ADDR;
                check_acp6x_config(chip);
                break;
-       case ACP63_DEV:
+       case ACP63_PCI_ID:
                pdm_addr = ACP63_PDM_ADDR;
                check_acp6x_config(chip);
                break;
-       case ACP70_DEV:
-       case ACP71_DEV:
+       case ACP70_PCI_ID:
+       case ACP71_PCI_ID:
                pdm_addr = ACP70_PDM_ADDR;
                check_acp70_config(chip);
                break;
index f7450a5bd103e0b17831a2865e02da453e427c87..4b6ad7abc3bad0b77521b9b4fc91131e32c3c9cb 100644 (file)
@@ -77,27 +77,22 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id
 
        res_acp = acp_res;
        num_res = ARRAY_SIZE(acp_res);
-
+       chip->acp_rev = pci->revision;
        switch (pci->revision) {
        case 0x01:
                chip->name = "acp_asoc_renoir";
-               chip->acp_rev = ACP3X_DEV;
                break;
        case 0x6f:
                chip->name = "acp_asoc_rembrandt";
-               chip->acp_rev = ACP6X_DEV;
                break;
        case 0x63:
                chip->name = "acp_asoc_acp63";
-               chip->acp_rev = ACP63_DEV;
                break;
        case 0x70:
                chip->name = "acp_asoc_acp70";
-               chip->acp_rev = ACP70_DEV;
                break;
        case 0x71:
                chip->name = "acp_asoc_acp70";
-               chip->acp_rev = ACP71_DEV;
                break;
        default:
                dev_err(dev, "Unsupported device revision:0x%x\n", pci->revision);
index 22dd8988d005d7982f779e6679bda9d60205b472..48faafe724ed2c0009b405095737badf9e4a59d2 100644 (file)
@@ -47,7 +47,7 @@ static int acp_dmic_prepare(struct snd_pcm_substream *substream,
        size_dmic = frames_to_bytes(substream->runtime,
                        substream->runtime->buffer_size);
 
-       if (chip->acp_rev >= ACP70_DEV)
+       if (chip->acp_rev >= ACP70_PCI_ID)
                physical_addr = ACP7x_DMIC_MEM_WINDOW_START;
        else
                physical_addr = stream->reg_offset + MEM_WINDOW_START;
index 3a7a467b706338002380a4f7decc2f1336f9ba33..c772520227c77306abf17e43b37e77274667c917 100644 (file)
@@ -270,9 +270,9 @@ static int acp_dma_open(struct snd_soc_component *component, struct snd_pcm_subs
        stream->substream = substream;
        chip = dev_get_platdata(dev);
        switch (chip->acp_rev) {
-       case ACP63_DEV:
-       case ACP70_DEV:
-       case ACP71_DEV:
+       case ACP63_PCI_ID:
+       case ACP70_PCI_ID:
+       case ACP71_PCI_ID:
                if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
                        runtime->hw = acp6x_pcm_hardware_playback;
                else
index 396434a45eea9f9843ba592d92c134aba341289e..af6005888c82924566502a77247c1e9a1357c37f 100644 (file)
@@ -197,7 +197,7 @@ static int rembrandt_audio_probe(struct platform_device *pdev)
                return -ENODEV;
        }
 
-       if (chip->acp_rev != ACP6X_DEV) {
+       if (chip->acp_rev != ACP_RMB_PCI_ID) {
                dev_err(&pdev->dev, "Un-supported ACP Revision %d\n", chip->acp_rev);
                return -ENODEV;
        }
index 5e3f730aa6bfb19bfef63555bfd16b6fe041ee52..65782023435eeff9cd98324d7333495faaaa21a2 100644 (file)
@@ -157,7 +157,7 @@ static int renoir_audio_probe(struct platform_device *pdev)
                return -ENODEV;
        }
 
-       if (chip->acp_rev != ACP3X_DEV) {
+       if (chip->acp_rev != ACP_RN_PCI_ID) {
                dev_err(&pdev->dev, "Un-supported ACP Revision %d\n", chip->acp_rev);
                return -ENODEV;
        }
index f325c374f22852c36ea8fdf8116aa2f1e712b408..099e2df5558d016fc75456d1db9b79d6eda23feb 100644 (file)
@@ -207,7 +207,7 @@ static int acp63_audio_probe(struct platform_device *pdev)
                return -ENODEV;
        }
 
-       if (chip->acp_rev != ACP63_DEV) {
+       if (chip->acp_rev != ACP63_PCI_ID) {
                dev_err(&pdev->dev, "Un-supported ACP Revision %d\n", chip->acp_rev);
                return -ENODEV;
        }
index 68d2590e1a4efb240332b114c4b790912ace92aa..0cd3daf677f56a4a2957ac05a20b77f6e8fc65e9 100644 (file)
@@ -175,8 +175,8 @@ static int acp_acp70_audio_probe(struct platform_device *pdev)
        }
 
        switch (chip->acp_rev) {
-       case ACP70_DEV:
-       case ACP71_DEV:
+       case ACP70_PCI_ID:
+       case ACP71_PCI_ID:
                break;
        default:
                dev_err(&pdev->dev, "Un-supported ACP Revision %d\n", chip->acp_rev);
@@ -209,7 +209,7 @@ static int acp_acp70_audio_probe(struct platform_device *pdev)
        adata->num_dai = ARRAY_SIZE(acp70_dai);
        adata->rsrc = &rsrc;
        adata->machines = snd_soc_acpi_amd_acp70_acp_machines;
-       if (chip->acp_rev == ACP70_DEV)
+       if (chip->acp_rev == ACP70_PCI_ID)
                adata->platform = ACP70;
        else
                adata->platform = ACP71;
index 854269fea875f183174d46c63fda292749a074fe..c82e438a1712d897caa870a937b1c6624c201dec 100644 (file)
 #include <sound/soc-acpi.h>
 #include <sound/soc-dai.h>
 
+#include "acp_common.h"
 #include "chip_offset_byte.h"
 
-#define ACP3X_DEV                      3
-#define ACP6X_DEV                      6
-#define ACP63_DEV                      0x63
-#define ACP70_DEV                      0x70
-#define ACP71_DEV                      0x71
-
 #define DMIC_INSTANCE                  0x00
 #define I2S_SP_INSTANCE                        0x01
 #define I2S_BT_INSTANCE                        0x02