Commit c87e0909 authored by Ralf Baechle's avatar Ralf Baechle

MIPS: Enable GENERIC_HARDIRQS_NO__DO_IRQ for all platforms

__do_IRQ() is deprecated and will go away.
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 3e168ae2
...@@ -77,7 +77,6 @@ config MIPS_COBALT ...@@ -77,7 +77,6 @@ config MIPS_COBALT
select SYS_SUPPORTS_32BIT_KERNEL select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_64BIT_KERNEL select SYS_SUPPORTS_64BIT_KERNEL
select SYS_SUPPORTS_LITTLE_ENDIAN select SYS_SUPPORTS_LITTLE_ENDIAN
select GENERIC_HARDIRQS_NO__DO_IRQ
config MACH_DECSTATION config MACH_DECSTATION
bool "DECstations" bool "DECstations"
...@@ -132,7 +131,6 @@ config MACH_JAZZ ...@@ -132,7 +131,6 @@ config MACH_JAZZ
select SYS_SUPPORTS_32BIT_KERNEL select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
select SYS_SUPPORTS_100HZ select SYS_SUPPORTS_100HZ
select GENERIC_HARDIRQS_NO__DO_IRQ
help help
This a family of machines based on the MIPS R4030 chipset which was This a family of machines based on the MIPS R4030 chipset which was
used by several vendors to build RISC/os and Windows NT workstations. used by several vendors to build RISC/os and Windows NT workstations.
...@@ -154,7 +152,6 @@ config LASAT ...@@ -154,7 +152,6 @@ config LASAT
select SYS_SUPPORTS_32BIT_KERNEL select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_64BIT_KERNEL if BROKEN select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
select SYS_SUPPORTS_LITTLE_ENDIAN select SYS_SUPPORTS_LITTLE_ENDIAN
select GENERIC_HARDIRQS_NO__DO_IRQ
config LEMOTE_FULONG config LEMOTE_FULONG
bool "Lemote Fulong mini-PC" bool "Lemote Fulong mini-PC"
...@@ -175,7 +172,6 @@ config LEMOTE_FULONG ...@@ -175,7 +172,6 @@ config LEMOTE_FULONG
select SYS_SUPPORTS_LITTLE_ENDIAN select SYS_SUPPORTS_LITTLE_ENDIAN
select SYS_SUPPORTS_HIGHMEM select SYS_SUPPORTS_HIGHMEM
select SYS_HAS_EARLY_PRINTK select SYS_HAS_EARLY_PRINTK
select GENERIC_HARDIRQS_NO__DO_IRQ
select GENERIC_ISA_DMA_SUPPORT_BROKEN select GENERIC_ISA_DMA_SUPPORT_BROKEN
select CPU_HAS_WB select CPU_HAS_WB
help help
...@@ -250,7 +246,6 @@ config MACH_VR41XX ...@@ -250,7 +246,6 @@ config MACH_VR41XX
select CEVT_R4K select CEVT_R4K
select CSRC_R4K select CSRC_R4K
select SYS_HAS_CPU_VR41XX select SYS_HAS_CPU_VR41XX
select GENERIC_HARDIRQS_NO__DO_IRQ
config NXP_STB220 config NXP_STB220
bool "NXP STB220 board" bool "NXP STB220 board"
...@@ -364,7 +359,6 @@ config SGI_IP27 ...@@ -364,7 +359,6 @@ config SGI_IP27
select SYS_SUPPORTS_BIG_ENDIAN select SYS_SUPPORTS_BIG_ENDIAN
select SYS_SUPPORTS_NUMA select SYS_SUPPORTS_NUMA
select SYS_SUPPORTS_SMP select SYS_SUPPORTS_SMP
select GENERIC_HARDIRQS_NO__DO_IRQ
help help
This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
workstations. To compile a Linux kernel that runs on these, say Y workstations. To compile a Linux kernel that runs on these, say Y
...@@ -563,7 +557,6 @@ config MIKROTIK_RB532 ...@@ -563,7 +557,6 @@ config MIKROTIK_RB532
select CEVT_R4K select CEVT_R4K
select CSRC_R4K select CSRC_R4K
select DMA_NONCOHERENT select DMA_NONCOHERENT
select GENERIC_HARDIRQS_NO__DO_IRQ
select HW_HAS_PCI select HW_HAS_PCI
select IRQ_CPU select IRQ_CPU
select SYS_HAS_CPU_MIPS32_R1 select SYS_HAS_CPU_MIPS32_R1
...@@ -700,8 +693,7 @@ config SCHED_OMIT_FRAME_POINTER ...@@ -700,8 +693,7 @@ config SCHED_OMIT_FRAME_POINTER
default y default y
config GENERIC_HARDIRQS_NO__DO_IRQ config GENERIC_HARDIRQS_NO__DO_IRQ
bool def_bool y
default n
# #
# Select some configuration options automatically based on user selections. # Select some configuration options automatically based on user selections.
...@@ -920,7 +912,6 @@ config SOC_PNX833X ...@@ -920,7 +912,6 @@ config SOC_PNX833X
select SYS_SUPPORTS_32BIT_KERNEL select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_LITTLE_ENDIAN select SYS_SUPPORTS_LITTLE_ENDIAN
select SYS_SUPPORTS_BIG_ENDIAN select SYS_SUPPORTS_BIG_ENDIAN
select GENERIC_HARDIRQS_NO__DO_IRQ
select GENERIC_GPIO select GENERIC_GPIO
select CPU_MIPSR2_IRQ_VI select CPU_MIPSR2_IRQ_VI
...@@ -939,7 +930,6 @@ config SOC_PNX8550 ...@@ -939,7 +930,6 @@ config SOC_PNX8550
select SYS_HAS_CPU_MIPS32_R1 select SYS_HAS_CPU_MIPS32_R1
select SYS_HAS_EARLY_PRINTK select SYS_HAS_EARLY_PRINTK
select SYS_SUPPORTS_32BIT_KERNEL select SYS_SUPPORTS_32BIT_KERNEL
select GENERIC_HARDIRQS_NO__DO_IRQ
select GENERIC_GPIO select GENERIC_GPIO
config SWAP_IO_SPACE config SWAP_IO_SPACE
......
...@@ -134,5 +134,4 @@ config SOC_AU1X00 ...@@ -134,5 +134,4 @@ config SOC_AU1X00
select SYS_HAS_CPU_MIPS32_R1 select SYS_HAS_CPU_MIPS32_R1
select SYS_SUPPORTS_32BIT_KERNEL select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_APM_EMULATION select SYS_SUPPORTS_APM_EMULATION
select GENERIC_HARDIRQS_NO__DO_IRQ
select ARCH_REQUIRE_GPIOLIB select ARCH_REQUIRE_GPIOLIB
...@@ -140,14 +140,16 @@ void __init init_msc_irqs(unsigned long icubase, unsigned int irqbase, msc_irqma ...@@ -140,14 +140,16 @@ void __init init_msc_irqs(unsigned long icubase, unsigned int irqbase, msc_irqma
switch (imp->im_type) { switch (imp->im_type) {
case MSC01_IRQ_EDGE: case MSC01_IRQ_EDGE:
set_irq_chip(irqbase+n, &msc_edgeirq_type); set_irq_chip_and_handler_name(irqbase + n,
&msc_edgeirq_type, handle_edge_irq, "edge");
if (cpu_has_veic) if (cpu_has_veic)
MSCIC_WRITE(MSC01_IC_SUP+n*8, MSC01_IC_SUP_EDGE_BIT); MSCIC_WRITE(MSC01_IC_SUP+n*8, MSC01_IC_SUP_EDGE_BIT);
else else
MSCIC_WRITE(MSC01_IC_SUP+n*8, MSC01_IC_SUP_EDGE_BIT | imp->im_lvl); MSCIC_WRITE(MSC01_IC_SUP+n*8, MSC01_IC_SUP_EDGE_BIT | imp->im_lvl);
break; break;
case MSC01_IRQ_LEVEL: case MSC01_IRQ_LEVEL:
set_irq_chip(irqbase+n, &msc_levelirq_type); set_irq_chip_and_handler_name(irqbase+n,
&msc_levelirq_type, handle_level_irq, "level");
if (cpu_has_veic) if (cpu_has_veic)
MSCIC_WRITE(MSC01_IC_SUP+n*8, 0); MSCIC_WRITE(MSC01_IC_SUP+n*8, 0);
else else
......
...@@ -112,7 +112,8 @@ void __init mips_cpu_irq_init(void) ...@@ -112,7 +112,8 @@ void __init mips_cpu_irq_init(void)
*/ */
if (cpu_has_mipsmt) if (cpu_has_mipsmt)
for (i = irq_base; i < irq_base + 2; i++) for (i = irq_base; i < irq_base + 2; i++)
set_irq_chip(i, &mips_mt_cpu_irq_controller); set_irq_chip_and_handler(i, &mips_mt_cpu_irq_controller,
handle_percpu_irq);
for (i = irq_base + 2; i < irq_base + 8; i++) for (i = irq_base + 2; i < irq_base + 8; i++)
set_irq_chip_and_handler(i, &mips_cpu_irq_controller, set_irq_chip_and_handler(i, &mips_cpu_irq_controller,
......
...@@ -325,16 +325,11 @@ static void mask_and_ack_maceisa_irq(unsigned int irq) ...@@ -325,16 +325,11 @@ static void mask_and_ack_maceisa_irq(unsigned int irq)
{ {
unsigned long mace_int; unsigned long mace_int;
switch (irq) { /* edge triggered */
case MACEISA_PARALLEL_IRQ: mace_int = mace->perif.ctrl.istat;
case MACEISA_SERIAL1_TDMAPR_IRQ: mace_int &= ~(1 << (irq - MACEISA_AUDIO_SW_IRQ));
case MACEISA_SERIAL2_TDMAPR_IRQ: mace->perif.ctrl.istat = mace_int;
/* edge triggered */
mace_int = mace->perif.ctrl.istat;
mace_int &= ~(1 << (irq - MACEISA_AUDIO_SW_IRQ));
mace->perif.ctrl.istat = mace_int;
break;
}
disable_maceisa_irq(irq); disable_maceisa_irq(irq);
} }
...@@ -344,7 +339,16 @@ static void end_maceisa_irq(unsigned irq) ...@@ -344,7 +339,16 @@ static void end_maceisa_irq(unsigned irq)
enable_maceisa_irq(irq); enable_maceisa_irq(irq);
} }
static struct irq_chip ip32_maceisa_interrupt = { static struct irq_chip ip32_maceisa_level_interrupt = {
.name = "IP32 MACE ISA",
.ack = disable_maceisa_irq,
.mask = disable_maceisa_irq,
.mask_ack = disable_maceisa_irq,
.unmask = enable_maceisa_irq,
.end = end_maceisa_irq,
};
static struct irq_chip ip32_maceisa_edge_interrupt = {
.name = "IP32 MACE ISA", .name = "IP32 MACE ISA",
.ack = mask_and_ack_maceisa_irq, .ack = mask_and_ack_maceisa_irq,
.mask = disable_maceisa_irq, .mask = disable_maceisa_irq,
...@@ -500,27 +504,50 @@ void __init arch_init_irq(void) ...@@ -500,27 +504,50 @@ void __init arch_init_irq(void)
for (irq = CRIME_IRQ_BASE; irq <= IP32_IRQ_MAX; irq++) { for (irq = CRIME_IRQ_BASE; irq <= IP32_IRQ_MAX; irq++) {
switch (irq) { switch (irq) {
case MACE_VID_IN1_IRQ ... MACE_PCI_BRIDGE_IRQ: case MACE_VID_IN1_IRQ ... MACE_PCI_BRIDGE_IRQ:
set_irq_chip(irq, &ip32_mace_interrupt); set_irq_chip_and_handler_name(irq,&ip32_mace_interrupt,
handle_level_irq, "level");
break; break;
case MACEPCI_SCSI0_IRQ ... MACEPCI_SHARED2_IRQ: case MACEPCI_SCSI0_IRQ ... MACEPCI_SHARED2_IRQ:
set_irq_chip(irq, &ip32_macepci_interrupt); set_irq_chip_and_handler_name(irq,
&ip32_macepci_interrupt, handle_level_irq,
"level");
break; break;
case CRIME_GBE0_IRQ ... CRIME_GBE3_IRQ: case CRIME_GBE0_IRQ ... CRIME_GBE3_IRQ:
set_irq_chip(irq, &crime_edge_interrupt); set_irq_chip_and_handler_name(irq,
&crime_edge_interrupt, handle_edge_irq, "edge");
break; break;
case CRIME_CPUERR_IRQ: case CRIME_CPUERR_IRQ:
case CRIME_MEMERR_IRQ: case CRIME_MEMERR_IRQ:
set_irq_chip(irq, &crime_level_interrupt); set_irq_chip_and_handler_name(irq,
&crime_level_interrupt, handle_level_irq,
"level");
break; break;
case CRIME_RE_EMPTY_E_IRQ ... CRIME_RE_IDLE_E_IRQ: case CRIME_RE_EMPTY_E_IRQ ... CRIME_RE_IDLE_E_IRQ:
case CRIME_SOFT0_IRQ ... CRIME_SOFT2_IRQ: case CRIME_SOFT0_IRQ ... CRIME_SOFT2_IRQ:
set_irq_chip(irq, &crime_edge_interrupt); set_irq_chip_and_handler_name(irq,
&crime_edge_interrupt, handle_edge_irq, "edge");
break; break;
case CRIME_VICE_IRQ: case CRIME_VICE_IRQ:
set_irq_chip(irq, &crime_edge_interrupt); set_irq_chip_and_handler_name(irq,
&crime_edge_interrupt, handle_edge_irq, "edge");
break;
case MACEISA_PARALLEL_IRQ:
case MACEISA_SERIAL1_TDMAPR_IRQ:
case MACEISA_SERIAL2_TDMAPR_IRQ:
set_irq_chip_and_handler_name(irq,
&ip32_maceisa_edge_interrupt, handle_edge_irq,
"edge");
break; break;
default: default:
set_irq_chip(irq, &ip32_maceisa_interrupt); set_irq_chip_and_handler_name(irq,
&ip32_maceisa_level_interrupt, handle_level_irq,
"level");
break; break;
} }
} }
......
...@@ -236,7 +236,7 @@ void __init init_bcm1480_irqs(void) ...@@ -236,7 +236,7 @@ void __init init_bcm1480_irqs(void)
int i; int i;
for (i = 0; i < BCM1480_NR_IRQS; i++) { for (i = 0; i < BCM1480_NR_IRQS; i++) {
set_irq_chip(i, &bcm1480_irq_type); set_irq_chip_and_handler(i, &bcm1480_irq_type, handle_level_irq);
bcm1480_irq_owner[i] = 0; bcm1480_irq_owner[i] = 0;
} }
} }
......
...@@ -220,7 +220,7 @@ void __init init_sb1250_irqs(void) ...@@ -220,7 +220,7 @@ void __init init_sb1250_irqs(void)
int i; int i;
for (i = 0; i < SB1250_NR_IRQS; i++) { for (i = 0; i < SB1250_NR_IRQS; i++) {
set_irq_chip(i, &sb1250_irq_type); set_irq_chip_and_handler(i, &sb1250_irq_type, handle_level_irq);
sb1250_irq_owner[i] = 0; sb1250_irq_owner[i] = 0;
} }
} }
......
...@@ -219,7 +219,7 @@ void __init sni_a20r_irq_init(void) ...@@ -219,7 +219,7 @@ void __init sni_a20r_irq_init(void)
int i; int i;
for (i = SNI_A20R_IRQ_BASE + 2 ; i < SNI_A20R_IRQ_BASE + 8; i++) for (i = SNI_A20R_IRQ_BASE + 2 ; i < SNI_A20R_IRQ_BASE + 8; i++)
set_irq_chip(i, &a20r_irq_type); set_irq_chip_and_handler(i, &a20r_irq_type, handle_level_irq);
sni_hwint = a20r_hwint; sni_hwint = a20r_hwint;
change_c0_status(ST0_IM, IE_IRQ0); change_c0_status(ST0_IM, IE_IRQ0);
setup_irq(SNI_A20R_IRQ_BASE + 3, &sni_isa_irq); setup_irq(SNI_A20R_IRQ_BASE + 3, &sni_isa_irq);
......
...@@ -304,7 +304,7 @@ void __init sni_pcimt_irq_init(void) ...@@ -304,7 +304,7 @@ void __init sni_pcimt_irq_init(void)
mips_cpu_irq_init(); mips_cpu_irq_init();
/* Actually we've got more interrupts to handle ... */ /* Actually we've got more interrupts to handle ... */
for (i = PCIMT_IRQ_INT2; i <= PCIMT_IRQ_SCSI; i++) for (i = PCIMT_IRQ_INT2; i <= PCIMT_IRQ_SCSI; i++)
set_irq_chip(i, &pcimt_irq_type); set_irq_chip_and_handler(i, &pcimt_irq_type, handle_level_irq);
sni_hwint = sni_pcimt_hwint; sni_hwint = sni_pcimt_hwint;
change_c0_status(ST0_IM, IE_IRQ1|IE_IRQ3); change_c0_status(ST0_IM, IE_IRQ1|IE_IRQ3);
} }
......
...@@ -246,7 +246,7 @@ void __init sni_pcit_irq_init(void) ...@@ -246,7 +246,7 @@ void __init sni_pcit_irq_init(void)
mips_cpu_irq_init(); mips_cpu_irq_init();
for (i = SNI_PCIT_INT_START; i <= SNI_PCIT_INT_END; i++) for (i = SNI_PCIT_INT_START; i <= SNI_PCIT_INT_END; i++)
set_irq_chip(i, &pcit_irq_type); set_irq_chip_and_handler(i, &pcit_irq_type, handle_level_irq);
*(volatile u32 *)SNI_PCIT_INT_REG = 0; *(volatile u32 *)SNI_PCIT_INT_REG = 0;
sni_hwint = sni_pcit_hwint; sni_hwint = sni_pcit_hwint;
change_c0_status(ST0_IM, IE_IRQ1); change_c0_status(ST0_IM, IE_IRQ1);
...@@ -259,7 +259,7 @@ void __init sni_pcit_cplus_irq_init(void) ...@@ -259,7 +259,7 @@ void __init sni_pcit_cplus_irq_init(void)
mips_cpu_irq_init(); mips_cpu_irq_init();
for (i = SNI_PCIT_INT_START; i <= SNI_PCIT_INT_END; i++) for (i = SNI_PCIT_INT_START; i <= SNI_PCIT_INT_END; i++)
set_irq_chip(i, &pcit_irq_type); set_irq_chip_and_handler(i, &pcit_irq_type, handle_level_irq);
*(volatile u32 *)SNI_PCIT_INT_REG = 0x40000000; *(volatile u32 *)SNI_PCIT_INT_REG = 0x40000000;
sni_hwint = sni_pcit_hwint_cplus; sni_hwint = sni_pcit_hwint_cplus;
change_c0_status(ST0_IM, IE_IRQ0); change_c0_status(ST0_IM, IE_IRQ0);
......
...@@ -487,7 +487,7 @@ void __init sni_rm200_irq_init(void) ...@@ -487,7 +487,7 @@ void __init sni_rm200_irq_init(void)
mips_cpu_irq_init(); mips_cpu_irq_init();
/* Actually we've got more interrupts to handle ... */ /* Actually we've got more interrupts to handle ... */
for (i = SNI_RM200_INT_START; i <= SNI_RM200_INT_END; i++) for (i = SNI_RM200_INT_START; i <= SNI_RM200_INT_END; i++)
set_irq_chip(i, &rm200_irq_type); set_irq_chip_and_handler(i, &rm200_irq_type, handle_level_irq);
sni_hwint = sni_rm200_hwint; sni_hwint = sni_rm200_hwint;
change_c0_status(ST0_IM, IE_IRQ0); change_c0_status(ST0_IM, IE_IRQ0);
setup_irq(SNI_RM200_INT_START + 0, &sni_rm200_i8259A_irq); setup_irq(SNI_RM200_INT_START + 0, &sni_rm200_i8259A_irq);
......
...@@ -20,7 +20,6 @@ config MACH_TXX9 ...@@ -20,7 +20,6 @@ config MACH_TXX9
select SYS_SUPPORTS_32BIT_KERNEL select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_LITTLE_ENDIAN select SYS_SUPPORTS_LITTLE_ENDIAN
select SYS_SUPPORTS_BIG_ENDIAN select SYS_SUPPORTS_BIG_ENDIAN
select GENERIC_HARDIRQS_NO__DO_IRQ
config TOSHIBA_JMR3927 config TOSHIBA_JMR3927
bool "Toshiba JMR-TX3927 board" bool "Toshiba JMR-TX3927 board"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment