diff options
Diffstat (limited to 'arch/mips/sgi-ip32')
-rw-r--r-- | arch/mips/sgi-ip32/ip32-irq.c | 5 | ||||
-rw-r--r-- | arch/mips/sgi-ip32/ip32-platform.c | 36 |
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 | ||
66 | device_initcall(meth_devinit); | 66 | device_initcall(meth_devinit); |
67 | 67 | ||
68 | static __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 | |||
84 | device_initcall(sgio2audio_devinit); | ||
85 | |||
86 | static __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 | |||
102 | device_initcall(sgio2btns_devinit); | ||
103 | |||
68 | MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>"); | 104 | MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>"); |
69 | MODULE_LICENSE("GPL"); | 105 | MODULE_LICENSE("GPL"); |
70 | MODULE_DESCRIPTION("8250 UART probe driver for SGI IP32 aka O2"); | 106 | MODULE_DESCRIPTION("8250 UART probe driver for SGI IP32 aka O2"); |