ASoC: AMD Raven/Renoir - fix the PCI probe (PCI revision)
authorJaroslav Kysela <perex@perex.cz>
Tue, 8 Dec 2020 18:12:33 +0000 (19:12 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Dec 2020 10:54:09 +0000 (11:54 +0100)
commit 55d8e6a85bce21f748c42eedea63681219f70523 upstream.

The Raven and Renoir ACP can be distinguished by the PCI revision.
Let's do the check very early, otherwise the wrong probe code
can be run.

Link: https://lore.kernel.org/alsa-devel/2e4587f8-f602-cf23-4845-fd27a32b1cfc@amd.com/
Cc: <stable@kernel.org>
Cc: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Cc: Mark Brown <broonie@kernel.org>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20201208181233.2745726-1-perex@perex.cz
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/soc/amd/raven/pci-acp3x.c
sound/soc/amd/renoir/rn-pci-acp3x.c

index 31b797c..77f2d93 100644 (file)
@@ -118,6 +118,10 @@ static int snd_acp3x_probe(struct pci_dev *pci,
        int ret, i;
        u32 addr, val;
 
+       /* Raven device detection */
+       if (pci->revision != 0x00)
+               return -ENODEV;
+
        if (pci_enable_device(pci)) {
                dev_err(&pci->dev, "pci_enable_device failed\n");
                return -ENODEV;
index 60a3e2f..338b78c 100644 (file)
@@ -188,6 +188,10 @@ static int snd_rn_acp_probe(struct pci_dev *pci,
        int ret, index;
        u32 addr;
 
+       /* Renoir device check */
+       if (pci->revision != 0x01)
+               return -ENODEV;
+
        if (pci_enable_device(pci)) {
                dev_err(&pci->dev, "pci_enable_device failed\n");
                return -ENODEV;