ASoC: amd: ps: move irq handler registration
authorVijendar Mukunda <Vijendar.Mukunda@amd.com>
Wed, 21 Dec 2022 17:28:51 +0000 (22:58 +0530)
committerMark Brown <broonie@kernel.org>
Sun, 25 Dec 2022 23:33:38 +0000 (23:33 +0000)
Move irq handler registration prior to platform device creation logic.
This will avoid irq handling missing scenario when platform device
raise interrrupts during it's probe sequence.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://lore.kernel.org/r/20221221172855.1618766-4-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/amd/ps/pci-ps.c

index 4553e81..401cfd0 100644 (file)
@@ -286,6 +286,12 @@ static int snd_acp63_probe(struct pci_dev *pci,
        ret = acp63_init(adata->acp63_base, &pci->dev);
        if (ret)
                goto release_regions;
+       ret = devm_request_irq(&pci->dev, pci->irq, acp63_irq_handler,
+                              irqflags, "ACP_PCI_IRQ", adata);
+       if (ret) {
+               dev_err(&pci->dev, "ACP PCI IRQ request failed\n");
+               goto de_init;
+       }
        val = acp63_readl(adata->acp63_base + ACP_PIN_CONFIG);
        get_acp63_device_config(val, pci, adata);
        ret = create_acp63_platform_devs(pci, adata, addr);
@@ -293,13 +299,6 @@ static int snd_acp63_probe(struct pci_dev *pci,
                dev_err(&pci->dev, "ACP platform devices creation failed\n");
                goto de_init;
        }
-       ret = devm_request_irq(&pci->dev, pci->irq, acp63_irq_handler,
-                              irqflags, "ACP_PCI_IRQ", adata);
-       if (ret) {
-               dev_err(&pci->dev, "ACP PCI IRQ request failed\n");
-               goto de_init;
-       }
-
        pm_runtime_set_autosuspend_delay(&pci->dev, ACP_SUSPEND_DELAY_MS);
        pm_runtime_use_autosuspend(&pci->dev);
        pm_runtime_put_noidle(&pci->dev);