[MIPS] Drop __init from init_8259A()
init_8259A() is called from i8259A_resume() so should not be marked as __init. And add some tests for whether 8259A was already initialized or not. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
a9b69d0c0c
commit
a0be2f7999
1 changed files with 8 additions and 5 deletions
|
@ -28,7 +28,7 @@
|
||||||
* moves to arch independent land
|
* moves to arch independent land
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int i8259A_auto_eoi;
|
static int i8259A_auto_eoi = -1;
|
||||||
DEFINE_SPINLOCK(i8259A_lock);
|
DEFINE_SPINLOCK(i8259A_lock);
|
||||||
/* some platforms call this... */
|
/* some platforms call this... */
|
||||||
void mask_and_ack_8259A(unsigned int);
|
void mask_and_ack_8259A(unsigned int);
|
||||||
|
@ -216,7 +216,8 @@ spurious_8259A_irq:
|
||||||
|
|
||||||
static int i8259A_resume(struct sys_device *dev)
|
static int i8259A_resume(struct sys_device *dev)
|
||||||
{
|
{
|
||||||
init_8259A(i8259A_auto_eoi);
|
if (i8259A_auto_eoi >= 0)
|
||||||
|
init_8259A(i8259A_auto_eoi);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -226,8 +227,10 @@ static int i8259A_shutdown(struct sys_device *dev)
|
||||||
* the kernel initialization code can get it
|
* the kernel initialization code can get it
|
||||||
* out of.
|
* out of.
|
||||||
*/
|
*/
|
||||||
outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */
|
if (i8259A_auto_eoi >= 0) {
|
||||||
outb(0xff, PIC_SLAVE_IMR); /* mask all of 8259A-1 */
|
outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */
|
||||||
|
outb(0xff, PIC_SLAVE_IMR); /* mask all of 8259A-1 */
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,7 +255,7 @@ static int __init i8259A_init_sysfs(void)
|
||||||
|
|
||||||
device_initcall(i8259A_init_sysfs);
|
device_initcall(i8259A_init_sysfs);
|
||||||
|
|
||||||
void __init init_8259A(int auto_eoi)
|
void init_8259A(int auto_eoi)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue