Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev Add quirk for Avance Logic ALS100+, which doesn't li...



details:   https://anonhg.NetBSD.org/src/rev/01c7ae7db16e
branches:  trunk
changeset: 500824:01c7ae7db16e
user:      mjl <mjl%NetBSD.org@localhost>
date:      Tue Dec 19 01:09:15 2000 +0000

description:
Add quirk for Avance Logic ALS100+, which doesn't like it's irq/drq
being set in pnp mode.

diffstat:

 sys/dev/isa/sb.c           |  4 ++--
 sys/dev/isa/sbdspvar.h     |  5 ++++-
 sys/dev/isapnp/sb_isapnp.c |  7 ++++++-
 3 files changed, 12 insertions(+), 4 deletions(-)

diffs (58 lines):

diff -r b11d256d16e4 -r 01c7ae7db16e sys/dev/isa/sb.c
--- a/sys/dev/isa/sb.c  Tue Dec 19 01:08:13 2000 +0000
+++ b/sys/dev/isa/sb.c  Tue Dec 19 01:09:15 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: sb.c,v 1.69 1999/10/10 00:08:24 mycroft Exp $  */
+/*     $NetBSD: sb.c,v 1.70 2000/12/19 01:09:15 mjl Exp $      */
 
 /*
  * Copyright (c) 1991-1993 Regents of the University of California.
@@ -182,7 +182,7 @@
                }
        }
 
-       if (ISSB16CLASS(sc)) {
+       if (ISSB16CLASS(sc) && !(sc->sc_quirks & SB_QUIRK_NO_INIT_DRQ)) {
                int w, r;
 #if 0
                printf("%s: old drq conf %02x\n", sc->sc_dev.dv_xname,
diff -r b11d256d16e4 -r 01c7ae7db16e sys/dev/isa/sbdspvar.h
--- a/sys/dev/isa/sbdspvar.h    Tue Dec 19 01:08:13 2000 +0000
+++ b/sys/dev/isa/sbdspvar.h    Tue Dec 19 01:09:15 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: sbdspvar.h,v 1.49 2000/06/26 04:56:22 simonb Exp $     */
+/*     $NetBSD: sbdspvar.h,v 1.50 2000/12/19 01:09:15 mjl Exp $        */
 
 /*
  * Copyright (c) 1991-1993 Regents of the University of California.
@@ -107,6 +107,9 @@
        int     sc_drq16;               /* DMA (16-bit) */
        bus_size_t sc_drq16_maxsize;
 
+       u_int   sc_quirks;              /* minor variations */
+#define SB_QUIRK_NO_INIT_DRQ   0x01
+
        int     sc_open;                /* reference count of open calls */
 #define SB_CLOSED 0
 #define SB_OPEN_AUDIO 1
diff -r b11d256d16e4 -r 01c7ae7db16e sys/dev/isapnp/sb_isapnp.c
--- a/sys/dev/isapnp/sb_isapnp.c        Tue Dec 19 01:08:13 2000 +0000
+++ b/sys/dev/isapnp/sb_isapnp.c        Tue Dec 19 01:09:15 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: sb_isapnp.c,v 1.35 1999/10/18 05:11:39 itohy Exp $     */
+/*     $NetBSD: sb_isapnp.c,v 1.36 2000/12/19 01:09:16 mjl Exp $       */
 
 /*
  * Copyright (c) 1991-1993 Regents of the University of California.
@@ -104,6 +104,11 @@
 
        printf("\n");
 
+       /* Avance logic ALS100+ does not like being frobbed 
+          trying to set irq/drq so set that quirk skip over it */
+       if(!strcmp(ipa->ipa_devlogic, "@@@1001"))
+               sc->sc_quirks = SB_QUIRK_NO_INIT_DRQ;
+
        if (isapnp_config(ipa->ipa_iot, ipa->ipa_memt, ipa)) {
                printf("%s: error in region allocation\n", 
                       sc->sc_dev.dv_xname);



Home | Main Index | Thread Index | Old Index