isa.c (40286) | isa.c (40565) |
---|---|
1/*- 2 * Copyright (c) 1991 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * William Jolitz. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * from: @(#)isa.c 7.2 (Berkeley) 5/13/91 | 1/*- 2 * Copyright (c) 1991 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * William Jolitz. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * from: @(#)isa.c 7.2 (Berkeley) 5/13/91 |
37 * $Id: isa.c,v 1.114 1998/10/12 13:12:45 bde Exp $ | 37 * $Id: isa.c,v 1.115 1998/10/13 08:24:38 dg Exp $ |
38 */ 39 40/* 41 * code to manage AT bus 42 * 43 * 92/08/18 Frank P. MacLachlan (fpm@crash.cts.com): 44 * Fixed uninitialized variable problem and added code to deal 45 * with DMA page boundaries in isa_dmarangecheck(). Fixed word --- 506 unchanged lines hidden (view full) --- 552 * a check for IRQs in the next group of checks. 553 */ 554 checkbits |= CC_ATTACH | CC_IRQ; 555 if (haveseen_isadev(isdp, checkbits)) 556 return; 557 isdp->id_alive = id_alive; 558 } 559 (*dp->attach)(isdp); | 38 */ 39 40/* 41 * code to manage AT bus 42 * 43 * 92/08/18 Frank P. MacLachlan (fpm@crash.cts.com): 44 * Fixed uninitialized variable problem and added code to deal 45 * with DMA page boundaries in isa_dmarangecheck(). Fixed word --- 506 unchanged lines hidden (view full) --- 552 * a check for IRQs in the next group of checks. 553 */ 554 checkbits |= CC_ATTACH | CC_IRQ; 555 if (haveseen_isadev(isdp, checkbits)) 556 return; 557 isdp->id_alive = id_alive; 558 } 559 (*dp->attach)(isdp); |
560 if (isdp->id_irq) { | 560 if (isdp->id_irq != 0 && isdp->id_intr == NULL) 561 printf("%s%d: irq with no handler\n", 562 dp->name, isdp->id_unit); 563 if (isdp->id_irq != 0 && isdp->id_intr != NULL) { |
561#ifdef APIC_IO 562 /* 563 * Some motherboards use upper IRQs for traditional 564 * ISA INTerrupt sources. In particular we have 565 * seen the secondary IDE connected to IRQ20. 566 * This code detects and fixes this situation. 567 */ 568 u_int apic_mask; --- 20 unchanged lines hidden (view full) --- 589 dp->name, isdp->id_unit); 590 if (isdp->id_iobase != -1) 591 printf(" at 0x%x", isdp->id_iobase); 592 printf("\n"); 593 } 594 } else { 595#if 0 596 /* This code has not been tested.... */ | 564#ifdef APIC_IO 565 /* 566 * Some motherboards use upper IRQs for traditional 567 * ISA INTerrupt sources. In particular we have 568 * seen the secondary IDE connected to IRQ20. 569 * This code detects and fixes this situation. 570 */ 571 u_int apic_mask; --- 20 unchanged lines hidden (view full) --- 592 dp->name, isdp->id_unit); 593 if (isdp->id_iobase != -1) 594 printf(" at 0x%x", isdp->id_iobase); 595 printf("\n"); 596 } 597 } else { 598#if 0 599 /* This code has not been tested.... */ |
597 if (isdp->id_irq) { | 600 if (isdp->id_irq != 0 && isdp->id_intr != NULL) { |
598 icu_unset(ffs(isdp->id_irq) - 1, 599 isdp->id_intr); 600 if (mp) 601 INTRUNMASK(*mp, isdp->id_irq); 602 } 603#else 604 printf ("icu_unset() not supported here ...\n"); 605#endif --- 471 unchanged lines hidden --- | 601 icu_unset(ffs(isdp->id_irq) - 1, 602 isdp->id_intr); 603 if (mp) 604 INTRUNMASK(*mp, isdp->id_irq); 605 } 606#else 607 printf ("icu_unset() not supported here ...\n"); 608#endif --- 471 unchanged lines hidden --- |