aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/sgi-ip32
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/sgi-ip32')
-rw-r--r--arch/mips/sgi-ip32/ip32-irq.c5
-rw-r--r--arch/mips/sgi-ip32/ip32-platform.c36
2 files changed, 41 insertions, 0 deletions
diff --git a/arch/mips/sgi-ip32/ip32-irq.c b/arch/mips/sgi-ip32/ip32-irq.c
index b0ea0e43ba48..0d6b6663d5f6 100644
--- a/arch/mips/sgi-ip32/ip32-irq.c
+++ b/arch/mips/sgi-ip32/ip32-irq.c
@@ -425,6 +425,11 @@ static void ip32_irq0(void)
425 BUILD_BUG_ON(MACEISA_SERIAL2_RDMAOR_IRQ - MACEISA_AUDIO_SW_IRQ != 31); 425 BUILD_BUG_ON(MACEISA_SERIAL2_RDMAOR_IRQ - MACEISA_AUDIO_SW_IRQ != 31);
426 426
427 crime_int = crime->istat & crime_mask; 427 crime_int = crime->istat & crime_mask;
428
429 /* crime sometime delivers spurious interrupts, ignore them */
430 if (unlikely(crime_int == 0))
431 return;
432
428 irq = MACE_VID_IN1_IRQ + __ffs(crime_int); 433 irq = MACE_VID_IN1_IRQ + __ffs(crime_int);
429 434
430 if (crime_int & CRIME_MACEISA_INT_MASK) { 435 if (crime_int & CRIME_MACEISA_INT_MASK) {
diff --git a/arch/mips/sgi-ip32/ip32-platform.c b/arch/mips/sgi-ip32/ip32-platform.c
index 89a71f49b692..2ee401ba0b25 100644
--- a/arch/mips/sgi-ip32/ip32-platform.c
+++ b/arch/mips/sgi-ip32/ip32-platform.c
@@ -65,6 +65,42 @@ static __init int meth_devinit(void)
65 65
66device_initcall(meth_devinit); 66device_initcall(meth_devinit);
67 67
68static __init int sgio2audio_devinit(void)
69{
70 struct platform_device *pd;
71 int ret;
72
73 pd = platform_device_alloc("sgio2audio", -1);
74 if (!pd)
75 return -ENOMEM;
76
77 ret = platform_device_add(pd);
78 if (ret)
79 platform_device_put(pd);
80
81 return ret;
82}
83
84device_initcall(sgio2audio_devinit);
85
86static __init int sgio2btns_devinit(void)
87{
88 struct platform_device *pd;
89 int ret;
90
91 pd = platform_device_alloc("sgio2btns", -1);
92 if (!pd)
93 return -ENOMEM;
94
95 ret = platform_device_add(pd);
96 if (ret)
97 platform_device_put(pd);
98
99 return ret;
100}
101
102device_initcall(sgio2btns_devinit);
103
68MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>"); 104MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>");
69MODULE_LICENSE("GPL"); 105MODULE_LICENSE("GPL");
70MODULE_DESCRIPTION("8250 UART probe driver for SGI IP32 aka O2"); 106MODULE_DESCRIPTION("8250 UART probe driver for SGI IP32 aka O2");