ASoC: amd: acp: change acp-deinit function arguments
authorSyed Saba Kareem <Syed.SabaKareem@amd.com>
Sat, 21 Oct 2023 14:50:51 +0000 (20:20 +0530)
committerMark Brown <broonie@kernel.org>
Wed, 25 Oct 2023 16:21:52 +0000 (17:21 +0100)
acp-deinit function will not be same for all platforms.
To make platform specific changes in acp-deinit
function, instead of passing base address pass chip
structure which contains acp_rev feild.
chip->acp_rev will be used to add platform specific code
in acp-deinit().

Signed-off-by: Syed Saba Kareem <Syed.SabaKareem@amd.com>
Link: https://lore.kernel.org/r/20231021145110.478744-10-Syed.SabaKareem@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/amd/acp/acp-legacy-common.c
sound/soc/amd/acp/acp-pci.c
sound/soc/amd/acp/amd.h

index af85a153a770ca027f7de0505fb6b4d88cc698ef..cba0aabefb349bd24214ecb155ffe331223b83e0 100644 (file)
@@ -320,16 +320,16 @@ int acp_init(struct acp_chip_info *chip)
 }
 EXPORT_SYMBOL_NS_GPL(acp_init, SND_SOC_ACP_COMMON);
 
-int acp_deinit(void __iomem *base)
+int acp_deinit(struct acp_chip_info *chip)
 {
        int ret;
 
        /* Reset */
-       ret = acp_reset(base);
+       ret = acp_reset(chip->base);
        if (ret)
                return ret;
 
-       writel(0, base + ACP_CONTROL);
+       writel(0, chip->base + ACP_CONTROL);
        return 0;
 }
 EXPORT_SYMBOL_NS_GPL(acp_deinit, SND_SOC_ACP_COMMON);
index bbf079d47dc4dde74c4331022c49f67cff7845be..696c9ee6786f48a844cbacf812d3a3aba710bc8f 100644 (file)
@@ -178,7 +178,7 @@ static int __maybe_unused snd_acp_suspend(struct device *dev)
        int ret;
 
        chip = dev_get_drvdata(dev);
-       ret = acp_deinit(chip->base);
+       ret = acp_deinit(chip);
        if (ret)
                dev_err(dev, "ACP de-init failed\n");
        return ret;
@@ -219,7 +219,7 @@ static void acp_pci_remove(struct pci_dev *pci)
                platform_device_unregister(dmic_dev);
        if (pdev)
                platform_device_unregister(pdev);
-       ret = acp_deinit(chip->base);
+       ret = acp_deinit(chip);
        if (ret)
                dev_err(&pci->dev, "ACP de-init failed\n");
 }
index 62d0793027f216d4fc90cd088ba006057455edba..e3bb470d1f326ba64aa84d86cfd7ecaeba516756 100644 (file)
@@ -222,7 +222,7 @@ int smn_read(struct pci_dev *dev, u32 smn_addr);
 int smn_write(struct pci_dev *dev, u32 smn_addr, u32 data);
 
 int acp_init(struct acp_chip_info *chip);
-int acp_deinit(void __iomem *base);
+int acp_deinit(struct acp_chip_info *chip);
 void acp_enable_interrupts(struct acp_dev_data *adata);
 void acp_disable_interrupts(struct acp_dev_data *adata);
 /* Machine configuration */