|
@@ -414,10 +414,22 @@ static int i8259A_suspend(struct sys_device *dev, pm_message_t state)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static int i8259A_shutdown(struct sys_device *dev)
|
|
|
+{
|
|
|
+ /* Put the i8259A into a quiescent state that
|
|
|
+ * the kernel initialization code can get it
|
|
|
+ * out of.
|
|
|
+ */
|
|
|
+ outb(0xff, 0x21); /* mask all of 8259A-1 */
|
|
|
+ outb(0xff, 0xA1); /* mask all of 8259A-1 */
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
static struct sysdev_class i8259_sysdev_class = {
|
|
|
set_kset_name("i8259"),
|
|
|
.suspend = i8259A_suspend,
|
|
|
.resume = i8259A_resume,
|
|
|
+ .shutdown = i8259A_shutdown,
|
|
|
};
|
|
|
|
|
|
static struct sys_device device_i8259A = {
|