Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/pci Bugfix: reset 16-bit pcmcia in chip initialisati...



details:   https://anonhg.NetBSD.org/src/rev/ee9dc9d4e873
branches:  trunk
changeset: 498452:ee9dc9d4e873
user:      haya <haya%NetBSD.org@localhost>
date:      Wed Oct 25 09:15:58 2000 +0000

description:
Bugfix: reset 16-bit pcmcia in chip initialisation sequence.

diffstat:

 sys/dev/pci/pccbb.c |  14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diffs (42 lines):

diff -r a7d0723bf721 -r ee9dc9d4e873 sys/dev/pci/pccbb.c
--- a/sys/dev/pci/pccbb.c       Wed Oct 25 03:50:32 2000 +0000
+++ b/sys/dev/pci/pccbb.c       Wed Oct 25 09:15:58 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pccbb.c,v 1.45 2000/08/28 09:26:38 haya Exp $  */
+/*     $NetBSD: pccbb.c,v 1.46 2000/10/25 09:15:58 haya Exp $  */
 
 /*
  * Copyright (c) 1998, 1999 and 2000
@@ -745,6 +745,7 @@
        reg = pci_conf_read(pc, tag, PCI_BCR_INTR);
        reg &= ~CB_BCR_INTR_IREQ_ENABLE;        /* use PCI Intr */
        reg |= CB_BCR_WRITE_POST_ENABLE;        /* enable write post */
+       reg |= CB_BCR_RESET_ENABLE;             /* assert reset */
        pci_conf_write(pc, tag, PCI_BCR_INTR, reg);
 
        switch (sc->sc_chipset) {
@@ -785,6 +786,15 @@
        pci_conf_write(pc, tag, PCI_CB_IOLIMIT0, 0);
        pci_conf_write(pc, tag, PCI_CB_IOBASE1, 0xffffffff);
        pci_conf_write(pc, tag, PCI_CB_IOLIMIT1, 0);
+
+       /* reset 16-bit pcmcia bus */
+       bus_space_write_1(sc->sc_base_memt, sc->sc_base_memh,
+           0x800 + PCIC_INTR,
+           bus_space_read_1(sc->sc_base_memt, sc->sc_base_memh,
+               0x800 + PCIC_INTR) & ~PCIC_INTR_RESET);
+
+       /* turn of power */
+       pccbb_power((cardbus_chipset_tag_t)sc, CARDBUS_VCC_0V | CARDBUS_VPP_0V);
 }
 
 
@@ -829,7 +839,7 @@
         *    needs that while in PCMCIA mode.
         * 4) Clear any pending CSC interrupt.
         */
-       Pcic_write(ph, PCIC_INTR, PCIC_INTR_ENABLE | PCIC_INTR_RESET);
+       Pcic_write(ph, PCIC_INTR, PCIC_INTR_ENABLE);
        if (sc->sc_chipset == CB_TI113X) {
                Pcic_write(ph, PCIC_CSC_INTR, 0);
        } else {



Home | Main Index | Thread Index | Old Index