ARM: pxa: pxa2xx-ac97-lib: use IRQ resource
authorArnd Bergmann <arnd@arndb.de>
Tue, 10 Sep 2019 13:23:52 +0000 (15:23 +0200)
committerArnd Bergmann <arnd@arndb.de>
Tue, 19 Apr 2022 19:34:05 +0000 (21:34 +0200)
The pxa2xx-ac97-lib code is the last driver to use mach/irqs.h
for PXA. Almost everything already passes the interrupt as
a resource, so use it from there.

The one exception is the mxm8x10 machine, which apparently has
a resource-less device. Replacing it with the correct one
enables the driver here as well.

Cc: alsa-devel@alsa-project.org
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm/mach-pxa/mxm8x10.c
sound/arm/pxa2xx-ac97-lib.c

index fde386f6cffe4b4a9f558906abc075b9307c2d4a..35546b59c88e3695b15d940345ee37424d2d6463 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/platform_data/video-pxafb.h>
 #include <linux/platform_data/mmc-pxamci.h>
 #include <linux/platform_data/usb-ohci-pxa27x.h>
+#include <linux/platform_data/asoc-pxa.h>
 #include "pxa320.h"
 
 #include "mxm8x10.h"
@@ -356,14 +357,9 @@ void __init mxm_8x10_usb_host_init(void)
        pxa_set_ohci_info(&mxm_8x10_ohci_platform_data);
 }
 
-/* AC97 Sound Support */
-static struct platform_device mxm_8x10_ac97_device = {
-       .name = "pxa2xx-ac97"
-};
-
 void __init mxm_8x10_ac97_init(void)
 {
-       platform_device_register(&mxm_8x10_ac97_device);
+       pxa_set_ac97_info(NULL);
 }
 
 /* NAND flash Support */
index 9b5c1f0f89988bff3b9bf13bf7d166cb9771c238..8c79d224f03be532738649685f8c25eed47af313 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <sound/pxa2xx-lib.h>
 
-#include <mach/irqs.h>
 #include <mach/regs-ac97.h>
 #include <linux/platform_data/asoc-pxa.h>
 
@@ -319,6 +318,7 @@ EXPORT_SYMBOL_GPL(pxa2xx_ac97_hw_resume);
 int pxa2xx_ac97_hw_probe(struct platform_device *dev)
 {
        int ret;
+       int irq;
        pxa2xx_audio_ops_t *pdata = dev->dev.platform_data;
 
        if (pdata) {
@@ -387,7 +387,11 @@ int pxa2xx_ac97_hw_probe(struct platform_device *dev)
        if (ret)
                goto err_clk2;
 
-       ret = request_irq(IRQ_AC97, pxa2xx_ac97_irq, 0, "AC97", NULL);
+       irq = platform_get_irq(dev, 0);
+       if (!irq)
+               goto err_irq;
+
+       ret = request_irq(irq, pxa2xx_ac97_irq, 0, "AC97", NULL);
        if (ret < 0)
                goto err_irq;
 
@@ -413,7 +417,7 @@ void pxa2xx_ac97_hw_remove(struct platform_device *dev)
        if (cpu_is_pxa27x())
                gpio_free(reset_gpio);
        GCR |= GCR_ACLINK_OFF;
-       free_irq(IRQ_AC97, NULL);
+       free_irq(platform_get_irq(dev, 0), NULL);
        if (ac97conf_clk) {
                clk_put(ac97conf_clk);
                ac97conf_clk = NULL;