atpic.c (233031) | atpic.c (255726) |
---|---|
1/*- 2 * Copyright (c) 2003 John Baldwin <jhb@FreeBSD.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 18 unchanged lines hidden (view full) --- 27 * SUCH DAMAGE. 28 */ 29 30/* 31 * PIC driver for the 8259A Master and Slave PICs in PC/AT machines. 32 */ 33 34#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2003 John Baldwin <jhb@FreeBSD.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 18 unchanged lines hidden (view full) --- 27 * SUCH DAMAGE. 28 */ 29 30/* 31 * PIC driver for the 8259A Master and Slave PICs in PC/AT machines. 32 */ 33 34#include <sys/cdefs.h> |
35__FBSDID("$FreeBSD: head/sys/x86/isa/atpic.c 233031 2012-03-16 12:13:44Z nyan $"); | 35__FBSDID("$FreeBSD: head/sys/x86/isa/atpic.c 255726 2013-09-20 05:06:03Z gibbs $"); |
36 37#include "opt_auto_eoi.h" 38#include "opt_isa.h" 39 40#include <sys/param.h> 41#include <sys/systm.h> 42#include <sys/bus.h> 43#include <sys/interrupt.h> --- 74 unchanged lines hidden (view full) --- 118 119static void atpic_enable_source(struct intsrc *isrc); 120static void atpic_disable_source(struct intsrc *isrc, int eoi); 121static void atpic_eoi_master(struct intsrc *isrc); 122static void atpic_eoi_slave(struct intsrc *isrc); 123static void atpic_enable_intr(struct intsrc *isrc); 124static void atpic_disable_intr(struct intsrc *isrc); 125static int atpic_vector(struct intsrc *isrc); | 36 37#include "opt_auto_eoi.h" 38#include "opt_isa.h" 39 40#include <sys/param.h> 41#include <sys/systm.h> 42#include <sys/bus.h> 43#include <sys/interrupt.h> --- 74 unchanged lines hidden (view full) --- 118 119static void atpic_enable_source(struct intsrc *isrc); 120static void atpic_disable_source(struct intsrc *isrc, int eoi); 121static void atpic_eoi_master(struct intsrc *isrc); 122static void atpic_eoi_slave(struct intsrc *isrc); 123static void atpic_enable_intr(struct intsrc *isrc); 124static void atpic_disable_intr(struct intsrc *isrc); 125static int atpic_vector(struct intsrc *isrc); |
126static void atpic_resume(struct pic *pic); | 126static void atpic_resume(struct pic *pic, bool suspend_cancelled); |
127static int atpic_source_pending(struct intsrc *isrc); 128static int atpic_config_intr(struct intsrc *isrc, enum intr_trigger trig, 129 enum intr_polarity pol); 130static int atpic_assign_cpu(struct intsrc *isrc, u_int apic_id); 131static void i8259_init(struct atpic *pic, int slave); 132 133static struct atpic atpics[] = { 134 ATPIC(IO_ICU1, 0, atpic_eoi_master, (uint8_t *)&imen), --- 136 unchanged lines hidden (view full) --- 271{ 272 struct atpic_intsrc *ai = (struct atpic_intsrc *)isrc; 273 struct atpic *ap = (struct atpic *)isrc->is_pic; 274 275 return (inb(ap->at_ioaddr) & IMEN_MASK(ai)); 276} 277 278static void | 127static int atpic_source_pending(struct intsrc *isrc); 128static int atpic_config_intr(struct intsrc *isrc, enum intr_trigger trig, 129 enum intr_polarity pol); 130static int atpic_assign_cpu(struct intsrc *isrc, u_int apic_id); 131static void i8259_init(struct atpic *pic, int slave); 132 133static struct atpic atpics[] = { 134 ATPIC(IO_ICU1, 0, atpic_eoi_master, (uint8_t *)&imen), --- 136 unchanged lines hidden (view full) --- 271{ 272 struct atpic_intsrc *ai = (struct atpic_intsrc *)isrc; 273 struct atpic *ap = (struct atpic *)isrc->is_pic; 274 275 return (inb(ap->at_ioaddr) & IMEN_MASK(ai)); 276} 277 278static void |
279atpic_resume(struct pic *pic) | 279atpic_resume(struct pic *pic, bool suspend_cancelled) |
280{ 281 struct atpic *ap = (struct atpic *)pic; 282 283 i8259_init(ap, ap == &atpics[SLAVE]); 284#ifndef PC98 285 if (ap == &atpics[SLAVE] && elcr_found) 286 elcr_resume(); 287#endif --- 357 unchanged lines hidden --- | 280{ 281 struct atpic *ap = (struct atpic *)pic; 282 283 i8259_init(ap, ap == &atpics[SLAVE]); 284#ifndef PC98 285 if (ap == &atpics[SLAVE] && elcr_found) 286 elcr_resume(); 287#endif --- 357 unchanged lines hidden --- |