hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/mips/ath25/ar5312.c
....@@ -19,6 +19,7 @@
1919 #include <linux/bitops.h>
2020 #include <linux/irqdomain.h>
2121 #include <linux/interrupt.h>
22
+#include <linux/memblock.h>
2223 #include <linux/platform_device.h>
2324 #include <linux/mtd/physmap.h>
2425 #include <linux/reboot.h>
....@@ -67,11 +68,6 @@
6768 machine_restart("AHB error"); /* Catastrophic failure */
6869 return IRQ_HANDLED;
6970 }
70
-
71
-static struct irqaction ar5312_ahb_err_interrupt = {
72
- .handler = ar5312_ahb_err_handler,
73
- .name = "ar5312-ahb-error",
74
-};
7571
7672 static void ar5312_misc_irq_handler(struct irq_desc *desc)
7773 {
....@@ -154,7 +150,9 @@
154150 panic("Failed to add IRQ domain");
155151
156152 irq = irq_create_mapping(domain, AR5312_MISC_IRQ_AHB_PROC);
157
- setup_irq(irq, &ar5312_ahb_err_interrupt);
153
+ if (request_irq(irq, ar5312_ahb_err_handler, 0, "ar5312-ahb-error",
154
+ NULL))
155
+ pr_err("Failed to register ar5312-ahb-error interrupt\n");
158156
159157 irq_set_chained_handler_and_data(AR5312_IRQ_MISC,
160158 ar5312_misc_irq_handler, domain);
....@@ -185,7 +183,7 @@
185183 void __iomem *flashctl_base;
186184 u32 ctl;
187185
188
- flashctl_base = ioremap_nocache(AR5312_FLASHCTL_BASE,
186
+ flashctl_base = ioremap(AR5312_FLASHCTL_BASE,
189187 AR5312_FLASHCTL_SIZE);
190188
191189 ctl = __raw_readl(flashctl_base + AR5312_FLASHCTL0);
....@@ -358,7 +356,7 @@
358356 u32 devid;
359357
360358 /* Detect memory size */
361
- sdram_base = ioremap_nocache(AR5312_SDRAMCTL_BASE,
359
+ sdram_base = ioremap(AR5312_SDRAMCTL_BASE,
362360 AR5312_SDRAMCTL_SIZE);
363361 memcfg = __raw_readl(sdram_base + AR5312_MEM_CFG1);
364362 bank0_ac = ATH25_REG_MS(memcfg, AR5312_MEM_CFG1_AC0);
....@@ -366,10 +364,10 @@
366364 memsize = (bank0_ac ? (1 << (bank0_ac + 1)) : 0) +
367365 (bank1_ac ? (1 << (bank1_ac + 1)) : 0);
368366 memsize <<= 20;
369
- add_memory_region(0, memsize, BOOT_MEM_RAM);
367
+ memblock_add(0, memsize);
370368 iounmap(sdram_base);
371369
372
- ar5312_rst_base = ioremap_nocache(AR5312_RST_BASE, AR5312_RST_SIZE);
370
+ ar5312_rst_base = ioremap(AR5312_RST_BASE, AR5312_RST_SIZE);
373371
374372 devid = ar5312_rst_reg_read(AR5312_REV);
375373 devid >>= AR5312_REV_WMAC_MIN_S;