Subject: kern/4291: Incomplete IRQs allows in sb
To: None <gnats-bugs@gnats.netbsd.org>
From: None <darcy@druid.net>
List: netbsd-bugs
Date: 10/18/1997 21:29:37
>Number:         4291
>Category:       kern
>Synopsis:       The Soundblaster allows IRQ 15 to be selected but driver doesn't.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Oct 18 18:35:01 1997
>Last-Modified:
>Originator:     D'Arcy J.M. Cain
>Organization:
D'Arcy J.M. Cain <darcy@{druid|vex}.net>   |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 424 2871     (DoD#0082)    (eNTP)   |  what's for dinner.
>Release:        NetBSD-19971018
>Environment:
	
System: NetBSD druid.net 1.2G NetBSD 1.2G (DRUID) #0: Sat Oct 18 13:12:37 EDT 1997 darcy@druid.net:/usr/src/sys/arch/i386/compile/DRUID i386


>Description:
	The Soundblaster card allows IRQ 15 to be selected but the code limits
	one to IRQs 5, 7, 9 and 10.  In fact, my manual shows IRQ 15 to be
	the default.  This is a clone card but it did work before.
>How-To-Repeat:
	Set SB card and configuration file to 15, make kernel and boot.
>Fix:
Apply following patch.  I don't know if SB_IRQ_VALID also has to be
changed but I suspect not.

*** ../src.original/sys/dev/isa/sbreg.h Sat Oct 18 21:24:12 1997
--- ../src.changed/sys/dev/isa/sbreg.h  Sat Oct 18 21:25:11 1997
***************
*** 276,282 ****
  /*
   * Macros to detect valid hardware configuration data.
   */
! #define SBP_IRQ_VALID(irq)  ((irq) == 5 || (irq) == 7 || (irq) == 9 || (irq) == 10)
  #define SB_IRQ_VALID(irq)   ((irq) == 3 || (irq) == 5 || (irq) == 7 || (irq) == 9)
  
  #define SB16_DRQ_VALID(chan) ((chan) == 0 || (chan) == 1 || (chan) == 3 || \
--- 276,282 ----
  /*
   * Macros to detect valid hardware configuration data.
   */
! #define SBP_IRQ_VALID(irq)  ((irq) == 5 || (irq) == 7 || (irq) == 9 || (irq) == 10 || (irq) == 15)
  #define SB_IRQ_VALID(irq)   ((irq) == 3 || (irq) == 5 || (irq) == 7 || (irq) == 9)
  
  #define SB16_DRQ_VALID(chan) ((chan) == 0 || (chan) == 1 || (chan) == 3 || \

	
>Audit-Trail:
>Unformatted: