Module Name: src Committed By: dyoung Date: Thu Feb 25 23:40:39 UTC 2010
Modified Files: src/sys/dev/cardbus: adv_cardbus.c ahc_cardbus.c com_cardbus.c ehci_cardbus.c fwohci_cardbus.c if_ath_cardbus.c if_atw_cardbus.c if_ex_cardbus.c if_fxp_cardbus.c if_ral_cardbus.c if_re_cardbus.c if_rtk_cardbus.c if_tlp_cardbus.c njata_cardbus.c njs_cardbus.c ohci_cardbus.c rbus_ppb.c uhci_cardbus.c src/sys/dev/ic: i82557.c i82557var.h Log Message: Make fxp at cardbus detach during shutdown. Stop calling (*cardbus_ctrl) to enable bus mastering, I/O and memory spaces on the CardBus bridge. cbb(4) always enables that stuff, anyway. In the process, avoid remembering what BAR we mapped by writing CARDBUS_{IO,MEM}_ENABLE to sc_cben or sc_cbenable, and record the BAR in use sc_bar, instead. Replace more CARDBUS_ constants with PCI_ constants. Compile-tested, only. To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/sys/dev/cardbus/adv_cardbus.c cvs rdiff -u -r1.30 -r1.31 src/sys/dev/cardbus/ahc_cardbus.c cvs rdiff -u -r1.26 -r1.27 src/sys/dev/cardbus/com_cardbus.c cvs rdiff -u -r1.25 -r1.26 src/sys/dev/cardbus/ehci_cardbus.c cvs rdiff -u -r1.28 -r1.29 src/sys/dev/cardbus/fwohci_cardbus.c cvs rdiff -u -r1.39 -r1.40 src/sys/dev/cardbus/if_ath_cardbus.c cvs rdiff -u -r1.31 -r1.32 src/sys/dev/cardbus/if_atw_cardbus.c cvs rdiff -u -r1.47 -r1.48 src/sys/dev/cardbus/if_ex_cardbus.c cvs rdiff -u -r1.44 -r1.45 src/sys/dev/cardbus/if_fxp_cardbus.c cvs rdiff -u -r1.18 -r1.19 src/sys/dev/cardbus/if_ral_cardbus.c cvs rdiff -u -r1.21 -r1.22 src/sys/dev/cardbus/if_re_cardbus.c cvs rdiff -u -r1.40 -r1.41 src/sys/dev/cardbus/if_rtk_cardbus.c cvs rdiff -u -r1.63 -r1.64 src/sys/dev/cardbus/if_tlp_cardbus.c cvs rdiff -u -r1.10 -r1.11 src/sys/dev/cardbus/njata_cardbus.c cvs rdiff -u -r1.13 -r1.14 src/sys/dev/cardbus/njs_cardbus.c cvs rdiff -u -r1.33 -r1.34 src/sys/dev/cardbus/ohci_cardbus.c \ src/sys/dev/cardbus/rbus_ppb.c cvs rdiff -u -r1.14 -r1.15 src/sys/dev/cardbus/uhci_cardbus.c cvs rdiff -u -r1.131 -r1.132 src/sys/dev/ic/i82557.c cvs rdiff -u -r1.47 -r1.48 src/sys/dev/ic/i82557var.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/cardbus/adv_cardbus.c diff -u src/sys/dev/cardbus/adv_cardbus.c:1.23 src/sys/dev/cardbus/adv_cardbus.c:1.24 --- src/sys/dev/cardbus/adv_cardbus.c:1.23 Wed Feb 24 19:52:51 2010 +++ src/sys/dev/cardbus/adv_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: adv_cardbus.c,v 1.23 2010/02/24 19:52:51 dyoung Exp $ */ +/* $NetBSD: adv_cardbus.c,v 1.24 2010/02/25 23:40:39 dyoung Exp $ */ /*- * Copyright (c) 2000 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: adv_cardbus.c,v 1.23 2010/02/24 19:52:51 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: adv_cardbus.c,v 1.24 2010/02/25 23:40:39 dyoung Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -76,7 +76,7 @@ cardbus_devfunc_t sc_ct; /* our CardBus devfuncs */ pcitag_t sc_tag; - int sc_cbenable; /* what CardBus access type to enable */ + int sc_bar; int sc_csr; /* CSR bits */ bus_size_t sc_size; }; @@ -150,7 +150,6 @@ csc->sc_ct = ct; csc->sc_tag = ca->ca_tag; - csc->sc_cbenable = 0; /* * Map the device. @@ -164,7 +163,7 @@ #ifdef ADV_CARDBUS_DEBUG printf("%s: memio enabled\n", DEVNAME(sc)); #endif - csc->sc_cbenable = CARDBUS_MEM_ENABLE; + csc->sc_bar = ADV_CARDBUS_MMBA; csc->sc_csr |= PCI_COMMAND_MEM_ENABLE; } else #endif @@ -173,17 +172,14 @@ #ifdef ADV_CARDBUS_DEBUG printf("%s: io enabled\n", DEVNAME(sc)); #endif - csc->sc_cbenable = CARDBUS_IO_ENABLE; + csc->sc_bar = ADV_CARDBUS_IOBA; csc->sc_csr |= PCI_COMMAND_IO_ENABLE; } else { + csc->sc_bar = 0; aprint_error_dev(&sc->sc_dev, "unable to map device registers\n"); return; } - /* Make sure the right access type is on the CardBus bridge. */ - (*ct->ct_cf->cardbus_ctrl)(cc, csc->sc_cbenable); - (*ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); - /* Enable the appropriate bits in the PCI CSR. */ reg = cardbus_conf_read(cc, cf, ca->ca_tag, PCI_COMMAND_STATUS_REG); reg &= ~(PCI_COMMAND_IO_ENABLE|PCI_COMMAND_MEM_ENABLE); @@ -254,19 +250,10 @@ sc->sc_ih = 0; } - if (csc->sc_cbenable) { -#ifdef ADV_CARDBUS_ALLOW_MEMIO - if (csc->sc_cbenable == CARDBUS_MEM_ENABLE) { - Cardbus_mapreg_unmap(csc->sc_ct, ADV_CARDBUS_MMBA, - sc->sc_iot, sc->sc_ioh, csc->sc_size); - } else { -#endif - Cardbus_mapreg_unmap(csc->sc_ct, ADV_CARDBUS_IOBA, - sc->sc_iot, sc->sc_ioh, csc->sc_size); -#ifdef ADV_CARDBUS_ALLOW_MEMIO - } -#endif - csc->sc_cbenable = 0; + if (csc->sc_bar != 0) { + Cardbus_mapreg_unmap(csc->sc_ct, csc->sc_bar, + sc->sc_iot, sc->sc_ioh, csc->sc_size); + csc->sc_bar = 0; } return 0; Index: src/sys/dev/cardbus/ahc_cardbus.c diff -u src/sys/dev/cardbus/ahc_cardbus.c:1.30 src/sys/dev/cardbus/ahc_cardbus.c:1.31 --- src/sys/dev/cardbus/ahc_cardbus.c:1.30 Wed Feb 24 19:52:51 2010 +++ src/sys/dev/cardbus/ahc_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: ahc_cardbus.c,v 1.30 2010/02/24 19:52:51 dyoung Exp $ */ +/* $NetBSD: ahc_cardbus.c,v 1.31 2010/02/25 23:40:39 dyoung Exp $ */ /*- * Copyright (c) 2000, 2005 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ahc_cardbus.c,v 1.30 2010/02/24 19:52:51 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ahc_cardbus.c,v 1.31 2010/02/25 23:40:39 dyoung Exp $"); #include "opt_ahc_cardbus.h" @@ -79,7 +79,7 @@ cardbus_devfunc_t sc_ct; /* our CardBus devfuncs */ pcitag_t sc_tag; - int sc_cbenable; /* what CardBus access type to enable */ + int sc_bar; int sc_csr; /* CSR bits */ bus_size_t sc_size; }; @@ -132,22 +132,19 @@ if (Cardbus_mapreg_map(csc->sc_ct, AHC_CARDBUS_MMBA, PCI_MAPREG_TYPE_MEM|PCI_MAPREG_MEM_TYPE_32BIT, 0, &bst, &bsh, NULL, &csc->sc_size) == 0) { - csc->sc_cbenable = CARDBUS_MEM_ENABLE; + csc->sc_bar = AHC_CARDBUS_MMBA; csc->sc_csr |= PCI_COMMAND_MEM_ENABLE; } else if (Cardbus_mapreg_map(csc->sc_ct, AHC_CARDBUS_IOBA, PCI_MAPREG_TYPE_IO, 0, &bst, &bsh, NULL, &csc->sc_size) == 0) { - csc->sc_cbenable = CARDBUS_IO_ENABLE; + csc->sc_bar = AHC_CARDBUS_IOBA; csc->sc_csr |= PCI_COMMAND_IO_ENABLE; } else { + csc->sc_bar = 0; printf("%s: unable to map device registers\n", ahc_name(ahc)); return; } - /* Make sure the right access type is on the CardBus bridge. */ - (*ct->ct_cf->cardbus_ctrl)(cc, csc->sc_cbenable); - (*ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); - /* Enable the appropriate bits in the PCI CSR. */ reg = cardbus_conf_read(cc, cf, ca->ca_tag, PCI_COMMAND_STATUS_REG); reg &= ~(PCI_COMMAND_IO_ENABLE|PCI_COMMAND_MEM_ENABLE); @@ -270,14 +267,10 @@ ahc->ih = 0; } - if (csc->sc_cbenable) { - if (csc->sc_cbenable == CARDBUS_MEM_ENABLE) - Cardbus_mapreg_unmap(csc->sc_ct, AHC_CARDBUS_MMBA, - ahc->tag, ahc->bsh, csc->sc_size); - else if (csc->sc_cbenable == CARDBUS_IO_ENABLE) - Cardbus_mapreg_unmap(csc->sc_ct, AHC_CARDBUS_IOBA, - ahc->tag, ahc->bsh, csc->sc_size); - csc->sc_cbenable = 0; + if (csc->sc_bar != 0) { + Cardbus_mapreg_unmap(csc->sc_ct, csc->sc_bar, + ahc->tag, ahc->bsh, csc->sc_size); + csc->sc_bar = 0; } return (0); Index: src/sys/dev/cardbus/com_cardbus.c diff -u src/sys/dev/cardbus/com_cardbus.c:1.26 src/sys/dev/cardbus/com_cardbus.c:1.27 --- src/sys/dev/cardbus/com_cardbus.c:1.26 Thu Feb 25 22:31:51 2010 +++ src/sys/dev/cardbus/com_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: com_cardbus.c,v 1.26 2010/02/25 22:31:51 dyoung Exp $ */ +/* $NetBSD: com_cardbus.c,v 1.27 2010/02/25 23:40:39 dyoung Exp $ */ /* * Copyright (c) 2000 Johan Danielsson @@ -40,7 +40,7 @@ updated below. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: com_cardbus.c,v 1.26 2010/02/25 22:31:51 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: com_cardbus.c,v 1.27 2010/02/25 23:40:39 dyoung Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -64,7 +64,6 @@ pcireg_t cc_base; bus_size_t cc_size; pcireg_t cc_csr; - int cc_cben; pcitag_t cc_tag; pcireg_t cc_reg; int cc_type; @@ -238,10 +237,8 @@ if(csc->cc_type == CARDBUS_MAPREG_TYPE_IO) { csc->cc_base |= CARDBUS_MAPREG_TYPE_IO; csc->cc_csr |= CARDBUS_COMMAND_IO_ENABLE; - csc->cc_cben = CARDBUS_IO_ENABLE; } else { csc->cc_csr |= CARDBUS_COMMAND_MEM_ENABLE; - csc->cc_cben = CARDBUS_MEM_ENABLE; } sc->sc_frequency = COM_FREQ; @@ -273,10 +270,6 @@ Cardbus_conf_write(ct, csc->cc_tag, csc->cc_reg, csc->cc_base); - /* enable accesses on cardbus bridge */ - (*cf->cardbus_ctrl)(cc, csc->cc_cben); - (*cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); - /* and the card itself */ reg = Cardbus_conf_read(ct, csc->cc_tag, CARDBUS_COMMAND_STATUS_REG); reg &= ~(CARDBUS_COMMAND_IO_ENABLE | CARDBUS_COMMAND_MEM_ENABLE); Index: src/sys/dev/cardbus/ehci_cardbus.c diff -u src/sys/dev/cardbus/ehci_cardbus.c:1.25 src/sys/dev/cardbus/ehci_cardbus.c:1.26 --- src/sys/dev/cardbus/ehci_cardbus.c:1.25 Wed Feb 24 19:52:51 2010 +++ src/sys/dev/cardbus/ehci_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: ehci_cardbus.c,v 1.25 2010/02/24 19:52:51 dyoung Exp $ */ +/* $NetBSD: ehci_cardbus.c,v 1.26 2010/02/25 23:40:39 dyoung Exp $ */ /* * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ehci_cardbus.c,v 1.25 2010/02/24 19:52:51 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ehci_cardbus.c,v 1.26 2010/02/25 23:40:39 dyoung Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -162,8 +162,6 @@ #else XXX (ct->ct_cf->cardbus_mem_open)(cc, 0, iob, iob + 0x40); #endif - (ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_MEM_ENABLE); - (ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); /* Enable the device. */ csr = cardbus_conf_read(cc, cf, ca->ca_tag, Index: src/sys/dev/cardbus/fwohci_cardbus.c diff -u src/sys/dev/cardbus/fwohci_cardbus.c:1.28 src/sys/dev/cardbus/fwohci_cardbus.c:1.29 --- src/sys/dev/cardbus/fwohci_cardbus.c:1.28 Wed Feb 24 19:52:51 2010 +++ src/sys/dev/cardbus/fwohci_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwohci_cardbus.c,v 1.28 2010/02/24 19:52:51 dyoung Exp $ */ +/* $NetBSD: fwohci_cardbus.c,v 1.29 2010/02/25 23:40:39 dyoung Exp $ */ /*- * Copyright (c) 2000, 2001 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: fwohci_cardbus.c,v 1.28 2010/02/24 19:52:51 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fwohci_cardbus.c,v 1.29 2010/02/25 23:40:39 dyoung Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -123,8 +123,6 @@ #else XXX (ct->ct_cf->cardbus_mem_open)(cc, 0, iob, iob + 0x40); #endif - (ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_MEM_ENABLE); - (ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); /* Disable interrupts, so we don't get any spurious ones. */ OHCI_CSR_WRITE(&sc->sc_sc, FWOHCI_INTMASKCLR, OHCI_INT_EN); Index: src/sys/dev/cardbus/if_ath_cardbus.c diff -u src/sys/dev/cardbus/if_ath_cardbus.c:1.39 src/sys/dev/cardbus/if_ath_cardbus.c:1.40 --- src/sys/dev/cardbus/if_ath_cardbus.c:1.39 Wed Feb 24 19:52:51 2010 +++ src/sys/dev/cardbus/if_ath_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: if_ath_cardbus.c,v 1.39 2010/02/24 19:52:51 dyoung Exp $ */ +/* $NetBSD: if_ath_cardbus.c,v 1.40 2010/02/25 23:40:39 dyoung Exp $ */ /* * Copyright (c) 2003 * Ichiro FUKUHARA <ich...@ichiro.org>. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_ath_cardbus.c,v 1.39 2010/02/24 19:52:51 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_ath_cardbus.c,v 1.40 2010/02/25 23:40:39 dyoung Exp $"); #include "opt_inet.h" @@ -254,8 +254,6 @@ ath_cardbus_setup(struct ath_cardbus_softc *csc) { cardbus_devfunc_t ct = csc->sc_ct; - cardbus_chipset_tag_t cc = ct->ct_cc; - cardbus_function_tag_t cf = ct->ct_cf; int rc; pcireg_t reg; @@ -263,11 +261,11 @@ aprint_debug("%s: cardbus_set_powerstate %d\n", __func__, rc); /* Program the BAR. */ - cardbus_conf_write(cc, cf, csc->sc_tag, ATH_PCI_MMBA, csc->sc_bar_val); + Cardbus_conf_write(ct, csc->sc_tag, ATH_PCI_MMBA, csc->sc_bar_val); /* Enable the appropriate bits in the PCI CSR. */ - reg = cardbus_conf_read(cc, cf, csc->sc_tag, + reg = Cardbus_conf_read(ct, csc->sc_tag, PCI_COMMAND_STATUS_REG); reg |= PCI_COMMAND_MASTER_ENABLE | PCI_COMMAND_MEM_ENABLE; - cardbus_conf_write(cc, cf, csc->sc_tag, PCI_COMMAND_STATUS_REG, reg); + Cardbus_conf_write(ct, csc->sc_tag, PCI_COMMAND_STATUS_REG, reg); } Index: src/sys/dev/cardbus/if_atw_cardbus.c diff -u src/sys/dev/cardbus/if_atw_cardbus.c:1.31 src/sys/dev/cardbus/if_atw_cardbus.c:1.32 --- src/sys/dev/cardbus/if_atw_cardbus.c:1.31 Wed Feb 24 23:38:40 2010 +++ src/sys/dev/cardbus/if_atw_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: if_atw_cardbus.c,v 1.31 2010/02/24 23:38:40 dyoung Exp $ */ +/* $NetBSD: if_atw_cardbus.c,v 1.32 2010/02/25 23:40:39 dyoung Exp $ */ /*- * Copyright (c) 1999, 2000, 2003 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_atw_cardbus.c,v 1.31 2010/02/24 23:38:40 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_atw_cardbus.c,v 1.32 2010/02/25 23:40:39 dyoung Exp $"); #include "opt_inet.h" @@ -100,7 +100,6 @@ * region */ - int sc_cben; /* CardBus enables */ int sc_bar_reg; /* which BAR to use */ pcireg_t sc_bar_val; /* value of the BAR */ @@ -200,15 +199,17 @@ #if 0 printf("%s: signature %08x\n", device_xname(self), (rev >> 4) & 0xf, rev & 0xf, - cardbus_conf_read(ct->ct_cc, ct->ct_cf, csc->sc_tag, 0x80)); + Cardbus_conf_read(ct, csc->sc_tag, 0x80)); #endif /* * Map the device. */ - csc->sc_csr = CARDBUS_COMMAND_MASTER_ENABLE; + csc->sc_csr = PCI_COMMAND_MASTER_ENABLE | + PCI_COMMAND_PARITY_ENABLE | + PCI_COMMAND_SERR_ENABLE; if (Cardbus_mapreg_map(ct, ATW_PCI_MMBA, - CARDBUS_MAPREG_TYPE_MEM, 0, &sc->sc_st, &sc->sc_sh, &adr, + PCI_MAPREG_TYPE_MEM, 0, &sc->sc_st, &sc->sc_sh, &adr, &csc->sc_mapsize) == 0) { #if 0 printf("%s: atw_cardbus_attach mapped %d bytes mem space\n", @@ -218,12 +219,11 @@ #else (*ct->ct_cf->cardbus_mem_open)(cc, 0, adr, adr+csc->sc_mapsize); #endif - csc->sc_cben = CARDBUS_MEM_ENABLE; - csc->sc_csr |= CARDBUS_COMMAND_MEM_ENABLE; + csc->sc_csr |= PCI_COMMAND_MEM_ENABLE; csc->sc_bar_reg = ATW_PCI_MMBA; - csc->sc_bar_val = adr | CARDBUS_MAPREG_TYPE_MEM; + csc->sc_bar_val = adr | PCI_MAPREG_TYPE_MEM; } else if (Cardbus_mapreg_map(ct, ATW_PCI_IOBA, - CARDBUS_MAPREG_TYPE_IO, 0, &sc->sc_st, &sc->sc_sh, &adr, + PCI_MAPREG_TYPE_IO, 0, &sc->sc_st, &sc->sc_sh, &adr, &csc->sc_mapsize) == 0) { #if 0 printf("%s: atw_cardbus_attach mapped %d bytes I/O space\n", @@ -233,10 +233,9 @@ #else (*ct->ct_cf->cardbus_io_open)(cc, 0, adr, adr+csc->sc_mapsize); #endif - csc->sc_cben = CARDBUS_IO_ENABLE; - csc->sc_csr |= CARDBUS_COMMAND_IO_ENABLE; + csc->sc_csr |= PCI_COMMAND_IO_ENABLE; csc->sc_bar_reg = ATW_PCI_IOBA; - csc->sc_bar_val = adr | CARDBUS_MAPREG_TYPE_IO; + csc->sc_bar_val = adr | PCI_MAPREG_TYPE_IO; } else { aprint_error_dev(self, "unable to map device registers\n"); return; @@ -362,8 +361,6 @@ atw_cardbus_setup(struct atw_cardbus_softc *csc) { cardbus_devfunc_t ct = csc->sc_ct; - cardbus_chipset_tag_t cc = ct->ct_cc; - cardbus_function_tag_t cf = ct->ct_cf; pcireg_t csr; int rc; @@ -371,18 +368,12 @@ aprint_debug("%s: cardbus_set_powerstate %d\n", __func__, rc); /* Program the BAR. */ - cardbus_conf_write(cc, cf, csc->sc_tag, csc->sc_bar_reg, + Cardbus_conf_write(ct, csc->sc_tag, csc->sc_bar_reg, csc->sc_bar_val); - /* Make sure the right access type is on the CardBus bridge. */ - (*ct->ct_cf->cardbus_ctrl)(cc, csc->sc_cben); - (*ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); - /* Enable the appropriate bits in the PCI CSR. */ - csr = cardbus_conf_read(cc, cf, csc->sc_tag, - CARDBUS_COMMAND_STATUS_REG); - csr &= ~(CARDBUS_COMMAND_IO_ENABLE|CARDBUS_COMMAND_MEM_ENABLE); + csr = Cardbus_conf_read(ct, csc->sc_tag, PCI_COMMAND_STATUS_REG); + csr &= ~(PCI_COMMAND_IO_ENABLE|PCI_COMMAND_MEM_ENABLE); csr |= csc->sc_csr; - cardbus_conf_write(cc, cf, csc->sc_tag, CARDBUS_COMMAND_STATUS_REG, - csr); + Cardbus_conf_write(ct, csc->sc_tag, PCI_COMMAND_STATUS_REG, csr); } Index: src/sys/dev/cardbus/if_ex_cardbus.c diff -u src/sys/dev/cardbus/if_ex_cardbus.c:1.47 src/sys/dev/cardbus/if_ex_cardbus.c:1.48 --- src/sys/dev/cardbus/if_ex_cardbus.c:1.47 Wed Feb 24 19:52:51 2010 +++ src/sys/dev/cardbus/if_ex_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: if_ex_cardbus.c,v 1.47 2010/02/24 19:52:51 dyoung Exp $ */ +/* $NetBSD: if_ex_cardbus.c,v 1.48 2010/02/25 23:40:39 dyoung Exp $ */ /* * Copyright (c) 1998 and 1999 @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_ex_cardbus.c,v 1.47 2010/02/24 19:52:51 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_ex_cardbus.c,v 1.48 2010/02/25 23:40:39 dyoung Exp $"); /* #define EX_DEBUG 4 */ /* define to report information for debugging */ @@ -388,7 +388,6 @@ cardbus_conf_write(cc, cf, csc->sc_tag, csc->sc_bar_reg, csc->sc_bar_val); /* Make sure the right access type is on the CardBus bridge. */ - (ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_IO_ENABLE); if (csc->sc_cardtype == EX_CB_CYCLONE) { /* Program the BAR */ cardbus_conf_write(cc, cf, csc->sc_tag, @@ -398,9 +397,7 @@ * memory access is enabled by BIOS, but some BIOSes do not * enable it. */ - (ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_MEM_ENABLE); } - (ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); /* Enable the appropriate bits in the CARDBUS CSR. */ reg = cardbus_conf_read(cc, cf, csc->sc_tag, Index: src/sys/dev/cardbus/if_fxp_cardbus.c diff -u src/sys/dev/cardbus/if_fxp_cardbus.c:1.44 src/sys/dev/cardbus/if_fxp_cardbus.c:1.45 --- src/sys/dev/cardbus/if_fxp_cardbus.c:1.44 Thu Feb 25 22:31:51 2010 +++ src/sys/dev/cardbus/if_fxp_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: if_fxp_cardbus.c,v 1.44 2010/02/25 22:31:51 dyoung Exp $ */ +/* $NetBSD: if_fxp_cardbus.c,v 1.45 2010/02/25 23:40:39 dyoung Exp $ */ /* * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_fxp_cardbus.c,v 1.44 2010/02/25 22:31:51 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_fxp_cardbus.c,v 1.45 2010/02/25 23:40:39 dyoung Exp $"); #include "opt_inet.h" #include "rnd.h" @@ -95,11 +95,11 @@ pcitag_t tag; pcireg_t base0_reg; pcireg_t base1_reg; - bus_size_t size; }; -CFATTACH_DECL_NEW(fxp_cardbus, sizeof(struct fxp_cardbus_softc), - fxp_cardbus_match, fxp_cardbus_attach, fxp_cardbus_detach, fxp_activate); +CFATTACH_DECL3_NEW(fxp_cardbus, sizeof(struct fxp_cardbus_softc), + fxp_cardbus_match, fxp_cardbus_attach, fxp_cardbus_detach, fxp_activate, + NULL, null_childdetached, DVF_DETACH_SHUTDOWN); #ifdef CBB_DEBUG #define DPRINTF(X) printf X @@ -131,7 +131,6 @@ bus_space_handle_t ioh, memh; bus_addr_t adr; - bus_size_t size; sc->sc_dev = self; csc->intrline = ca->ca_intrline; @@ -142,18 +141,16 @@ * Map control/status registers. */ if (Cardbus_mapreg_map(csc->ct, CARDBUS_BASE1_REG, - PCI_MAPREG_TYPE_IO, 0, &iot, &ioh, &adr, &size) == 0) { + PCI_MAPREG_TYPE_IO, 0, &iot, &ioh, &adr, &sc->sc_size) == 0) { csc->base1_reg = adr | 1; sc->sc_st = iot; sc->sc_sh = ioh; - csc->size = size; } else if (Cardbus_mapreg_map(csc->ct, CARDBUS_BASE0_REG, PCI_MAPREG_TYPE_MEM | PCI_MAPREG_MEM_TYPE_32BIT, - 0, &memt, &memh, &adr, &size) == 0) { + 0, &memt, &memh, &adr, &sc->sc_size) == 0) { csc->base0_reg = adr; sc->sc_st = memt; sc->sc_sh = memh; - csc->size = size; } else panic("%s: failed to allocate mem and io space", __func__); @@ -192,8 +189,6 @@ fxp_cardbus_setup(struct fxp_softc * sc) { struct fxp_cardbus_softc *csc = (struct fxp_cardbus_softc *)sc; - cardbus_chipset_tag_t cc = csc->ct->ct_cc; - cardbus_function_tag_t cf = csc->ct->ct_cf; pcireg_t command; pcitag_t tag = csc->tag; @@ -202,19 +197,15 @@ if (csc->base0_reg) { Cardbus_conf_write(csc->ct, tag, CARDBUS_BASE0_REG, csc->base0_reg); - (cf->cardbus_ctrl) (cc, CARDBUS_MEM_ENABLE); command |= CARDBUS_COMMAND_MEM_ENABLE | CARDBUS_COMMAND_MASTER_ENABLE; } else if (csc->base1_reg) { Cardbus_conf_write(csc->ct, tag, CARDBUS_BASE1_REG, csc->base1_reg); - (cf->cardbus_ctrl) (cc, CARDBUS_IO_ENABLE); command |= (CARDBUS_COMMAND_IO_ENABLE | CARDBUS_COMMAND_MASTER_ENABLE); } - (cf->cardbus_ctrl) (cc, CARDBUS_BM_ENABLE); - /* enable the card */ Cardbus_conf_write(csc->ct, tag, CARDBUS_COMMAND_STATUS_REG, command); } @@ -269,21 +260,20 @@ panic("%s: data structure lacks", device_xname(self)); #endif - rv = fxp_detach(sc); - if (rv == 0) { - /* - * Unhook the interrupt handler. - */ - cardbus_intr_disestablish(ct->ct_cc, ct->ct_cf, sc->sc_ih); - - /* - * release bus space and close window - */ - if (csc->base0_reg) - reg = CARDBUS_BASE0_REG; - else - reg = CARDBUS_BASE1_REG; - Cardbus_mapreg_unmap(ct, reg, sc->sc_st, sc->sc_sh, csc->size); - } - return (rv); + if ((rv = fxp_detach(sc, flags)) != 0) + return rv; + /* + * Unhook the interrupt handler. + */ + cardbus_intr_disestablish(ct->ct_cc, ct->ct_cf, sc->sc_ih); + + /* + * release bus space and close window + */ + if (csc->base0_reg) + reg = CARDBUS_BASE0_REG; + else + reg = CARDBUS_BASE1_REG; + Cardbus_mapreg_unmap(ct, reg, sc->sc_st, sc->sc_sh, sc->sc_size); + return 0; } Index: src/sys/dev/cardbus/if_ral_cardbus.c diff -u src/sys/dev/cardbus/if_ral_cardbus.c:1.18 src/sys/dev/cardbus/if_ral_cardbus.c:1.19 --- src/sys/dev/cardbus/if_ral_cardbus.c:1.18 Wed Feb 24 19:52:51 2010 +++ src/sys/dev/cardbus/if_ral_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: if_ral_cardbus.c,v 1.18 2010/02/24 19:52:51 dyoung Exp $ */ +/* $NetBSD: if_ral_cardbus.c,v 1.19 2010/02/25 23:40:39 dyoung Exp $ */ /* $OpenBSD: if_ral_cardbus.c,v 1.6 2006/01/09 20:03:31 damien Exp $ */ /*- @@ -22,7 +22,7 @@ * CardBus front-end for the Ralink RT2560/RT2561/RT2561S/RT2661 driver. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_ral_cardbus.c,v 1.18 2010/02/24 19:52:51 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_ral_cardbus.c,v 1.19 2010/02/25 23:40:39 dyoung Exp $"); #include <sys/param.h> @@ -260,10 +260,6 @@ cardbus_conf_write(cc, cf, csc->sc_tag, CARDBUS_BASE0_REG, csc->sc_bar_val); - /* make sure the right access type is on the cardbus bridge */ - (*cf->cardbus_ctrl)(cc, CARDBUS_MEM_ENABLE); - (*cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); - /* enable the appropriate bits in the PCI CSR */ reg = cardbus_conf_read(cc, cf, csc->sc_tag, CARDBUS_COMMAND_STATUS_REG); Index: src/sys/dev/cardbus/if_re_cardbus.c diff -u src/sys/dev/cardbus/if_re_cardbus.c:1.21 src/sys/dev/cardbus/if_re_cardbus.c:1.22 --- src/sys/dev/cardbus/if_re_cardbus.c:1.21 Wed Feb 24 19:52:51 2010 +++ src/sys/dev/cardbus/if_re_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: if_re_cardbus.c,v 1.21 2010/02/24 19:52:51 dyoung Exp $ */ +/* $NetBSD: if_re_cardbus.c,v 1.22 2010/02/25 23:40:39 dyoung Exp $ */ /* * Copyright (c) 2004 Jonathan Stone @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_re_cardbus.c,v 1.21 2010/02/24 19:52:51 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_re_cardbus.c,v 1.22 2010/02/25 23:40:39 dyoung Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -93,7 +93,6 @@ cardbus_devfunc_t sc_ct; pcitag_t sc_tag; int sc_csr; - int sc_cben; int sc_bar_reg; pcireg_t sc_bar_val; bus_size_t sc_mapsize; @@ -176,7 +175,6 @@ #else (*ct->ct_cf->cardbus_io_open)(cc, 0, adr, adr+csc->sc_mapsize); #endif - csc->sc_cben = CARDBUS_IO_ENABLE; csc->sc_csr |= CARDBUS_COMMAND_IO_ENABLE; csc->sc_bar_reg = RTK_PCI_LOIO; csc->sc_bar_val = adr | CARDBUS_MAPREG_TYPE_IO; @@ -188,7 +186,6 @@ #else (*ct->ct_cf->cardbus_mem_open)(cc, 0, adr, adr+csc->sc_mapsize); #endif - csc->sc_cben = CARDBUS_MEM_ENABLE; csc->sc_csr |= CARDBUS_COMMAND_MEM_ENABLE; csc->sc_bar_reg = RTK_PCI_LOMEM; csc->sc_bar_val = adr | CARDBUS_MAPREG_TYPE_MEM; @@ -297,10 +294,6 @@ cardbus_conf_write(cc, cf, csc->sc_tag, csc->sc_bar_reg, csc->sc_bar_val); - /* Make sure the right access type is on the CardBus bridge. */ - (*ct->ct_cf->cardbus_ctrl)(cc, csc->sc_cben); - (*ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); - /* Enable the appropriate bits in the CARDBUS CSR. */ reg = cardbus_conf_read(cc, cf, csc->sc_tag, CARDBUS_COMMAND_STATUS_REG); Index: src/sys/dev/cardbus/if_rtk_cardbus.c diff -u src/sys/dev/cardbus/if_rtk_cardbus.c:1.40 src/sys/dev/cardbus/if_rtk_cardbus.c:1.41 --- src/sys/dev/cardbus/if_rtk_cardbus.c:1.40 Wed Feb 24 19:52:51 2010 +++ src/sys/dev/cardbus/if_rtk_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: if_rtk_cardbus.c,v 1.40 2010/02/24 19:52:51 dyoung Exp $ */ +/* $NetBSD: if_rtk_cardbus.c,v 1.41 2010/02/25 23:40:39 dyoung Exp $ */ /* * Copyright (c) 2000 Masanori Kanaoka @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_rtk_cardbus.c,v 1.40 2010/02/24 19:52:51 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_rtk_cardbus.c,v 1.41 2010/02/25 23:40:39 dyoung Exp $"); #include "opt_inet.h" #include "rnd.h" @@ -128,7 +128,6 @@ cardbus_devfunc_t sc_ct; pcitag_t sc_tag; int sc_csr; - int sc_cben; int sc_bar_reg; pcireg_t sc_bar_val; bus_size_t sc_mapsize; @@ -212,7 +211,6 @@ #else (*ct->ct_cf->cardbus_io_open)(cc, 0, adr, adr+csc->sc_mapsize); #endif - csc->sc_cben = CARDBUS_IO_ENABLE; csc->sc_csr |= CARDBUS_COMMAND_IO_ENABLE; csc->sc_bar_reg = RTK_PCI_LOIO; csc->sc_bar_val = adr | CARDBUS_MAPREG_TYPE_IO; @@ -224,7 +222,6 @@ #else (*ct->ct_cf->cardbus_mem_open)(cc, 0, adr, adr+csc->sc_mapsize); #endif - csc->sc_cben = CARDBUS_MEM_ENABLE; csc->sc_csr |= CARDBUS_COMMAND_MEM_ENABLE; csc->sc_bar_reg = RTK_PCI_LOMEM; csc->sc_bar_val = adr | CARDBUS_MAPREG_TYPE_MEM; @@ -334,10 +331,6 @@ cardbus_conf_write(cc, cf, csc->sc_tag, csc->sc_bar_reg, csc->sc_bar_val); - /* Make sure the right access type is on the CardBus bridge. */ - (*ct->ct_cf->cardbus_ctrl)(cc, csc->sc_cben); - (*ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); - /* Enable the appropriate bits in the CARDBUS CSR. */ reg = cardbus_conf_read(cc, cf, csc->sc_tag, CARDBUS_COMMAND_STATUS_REG); Index: src/sys/dev/cardbus/if_tlp_cardbus.c diff -u src/sys/dev/cardbus/if_tlp_cardbus.c:1.63 src/sys/dev/cardbus/if_tlp_cardbus.c:1.64 --- src/sys/dev/cardbus/if_tlp_cardbus.c:1.63 Wed Feb 24 19:52:51 2010 +++ src/sys/dev/cardbus/if_tlp_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: if_tlp_cardbus.c,v 1.63 2010/02/24 19:52:51 dyoung Exp $ */ +/* $NetBSD: if_tlp_cardbus.c,v 1.64 2010/02/25 23:40:39 dyoung Exp $ */ /*- * Copyright (c) 1999, 2000 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_tlp_cardbus.c,v 1.63 2010/02/24 19:52:51 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_tlp_cardbus.c,v 1.64 2010/02/25 23:40:39 dyoung Exp $"); #include "opt_inet.h" @@ -100,7 +100,6 @@ bus_size_t sc_mapsize; /* the size of mapped bus space region */ - int sc_cben; /* CardBus enables */ int sc_bar_reg; /* which BAR to use */ pcireg_t sc_bar_val; /* value of the BAR */ @@ -313,7 +312,6 @@ #else (*ct->ct_cf->cardbus_mem_open)(cc, 0, adr, adr+csc->sc_mapsize); #endif - csc->sc_cben = CARDBUS_MEM_ENABLE; csc->sc_csr |= CARDBUS_COMMAND_MEM_ENABLE; csc->sc_bar_reg = TULIP_PCI_MMBA; csc->sc_bar_val = adr | CARDBUS_MAPREG_TYPE_MEM; @@ -324,7 +322,6 @@ #else (*ct->ct_cf->cardbus_io_open)(cc, 0, adr, adr+csc->sc_mapsize); #endif - csc->sc_cben = CARDBUS_IO_ENABLE; csc->sc_csr |= CARDBUS_COMMAND_IO_ENABLE; csc->sc_bar_reg = TULIP_PCI_IOBA; csc->sc_bar_val = adr | CARDBUS_MAPREG_TYPE_IO; @@ -587,10 +584,6 @@ cardbus_conf_write(cc, cf, csc->sc_tag, csc->sc_bar_reg, csc->sc_bar_val); - /* Make sure the right access type is on the CardBus bridge. */ - (*ct->ct_cf->cardbus_ctrl)(cc, csc->sc_cben); - (*ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); - /* Enable the appropriate bits in the PCI CSR. */ reg = cardbus_conf_read(cc, cf, csc->sc_tag, PCI_COMMAND_STATUS_REG); reg &= ~(PCI_COMMAND_IO_ENABLE|PCI_COMMAND_MEM_ENABLE); Index: src/sys/dev/cardbus/njata_cardbus.c diff -u src/sys/dev/cardbus/njata_cardbus.c:1.10 src/sys/dev/cardbus/njata_cardbus.c:1.11 --- src/sys/dev/cardbus/njata_cardbus.c:1.10 Thu Feb 25 21:18:35 2010 +++ src/sys/dev/cardbus/njata_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $Id: njata_cardbus.c,v 1.10 2010/02/25 21:18:35 dyoung Exp $ */ +/* $Id: njata_cardbus.c,v 1.11 2010/02/25 23:40:39 dyoung Exp $ */ /* * Copyright (c) 2006 ITOH Yasufumi <it...@netbsd.org>. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: njata_cardbus.c,v 1.10 2010/02/25 21:18:35 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: njata_cardbus.c,v 1.11 2010/02/25 23:40:39 dyoung Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -171,7 +171,6 @@ #endif csr |= PCI_COMMAND_MEM_ENABLE; sc->sc_flags = NJATA32_MEM_MAPPED; - (*ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_MEM_ENABLE); } else { try_io: if (Cardbus_mapreg_map(csc->sc_ct, NJATA32_CARDBUS_BASEADDR_IO, @@ -183,7 +182,6 @@ #endif csr |= PCI_COMMAND_IO_ENABLE; sc->sc_flags = NJATA32_IO_MAPPED; - (*ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_IO_ENABLE); } else { aprint_error("%s: unable to map device registers\n", NJATA32NAME(sc)); @@ -191,9 +189,6 @@ } } - /* Make sure the right access type is on the CardBus bridge. */ - (*ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); - /* Enable the appropriate bits in the PCI CSR. */ reg = cardbus_conf_read(cc, cf, ca->ca_tag, PCI_COMMAND_STATUS_REG); reg &= ~(PCI_COMMAND_IO_ENABLE|PCI_COMMAND_MEM_ENABLE); Index: src/sys/dev/cardbus/njs_cardbus.c diff -u src/sys/dev/cardbus/njs_cardbus.c:1.13 src/sys/dev/cardbus/njs_cardbus.c:1.14 --- src/sys/dev/cardbus/njs_cardbus.c:1.13 Thu Feb 25 21:18:35 2010 +++ src/sys/dev/cardbus/njs_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: njs_cardbus.c,v 1.13 2010/02/25 21:18:35 dyoung Exp $ */ +/* $NetBSD: njs_cardbus.c,v 1.14 2010/02/25 23:40:39 dyoung Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: njs_cardbus.c,v 1.13 2010/02/25 21:18:35 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: njs_cardbus.c,v 1.14 2010/02/25 23:40:39 dyoung Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -166,7 +166,6 @@ #endif csr |= PCI_COMMAND_MEM_ENABLE; sc->sc_flags = NJSC32_MEM_MAPPED; - (*ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_MEM_ENABLE); } else { try_io: if (Cardbus_mapreg_map(csc->sc_ct, NJSC32_CARDBUS_BASEADDR_IO, @@ -177,16 +176,12 @@ #endif csr |= PCI_COMMAND_IO_ENABLE; sc->sc_flags = NJSC32_IO_MAPPED; - (*ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_IO_ENABLE); } else { aprint_error_dev(self, "unable to map device registers\n"); return; } } - /* Make sure the right access type is on the CardBus bridge. */ - (*ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); - /* Enable the appropriate bits in the PCI CSR. */ reg = cardbus_conf_read(cc, cf, ca->ca_tag, PCI_COMMAND_STATUS_REG); reg &= ~(PCI_COMMAND_IO_ENABLE|PCI_COMMAND_MEM_ENABLE); Index: src/sys/dev/cardbus/ohci_cardbus.c diff -u src/sys/dev/cardbus/ohci_cardbus.c:1.33 src/sys/dev/cardbus/ohci_cardbus.c:1.34 --- src/sys/dev/cardbus/ohci_cardbus.c:1.33 Wed Feb 24 19:52:52 2010 +++ src/sys/dev/cardbus/ohci_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: ohci_cardbus.c,v 1.33 2010/02/24 19:52:52 dyoung Exp $ */ +/* $NetBSD: ohci_cardbus.c,v 1.34 2010/02/25 23:40:39 dyoung Exp $ */ /* * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ohci_cardbus.c,v 1.33 2010/02/24 19:52:52 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ohci_cardbus.c,v 1.34 2010/02/25 23:40:39 dyoung Exp $"); #include "ehci_cardbus.h" @@ -140,8 +140,6 @@ #else XXX (ct->ct_cf->cardbus_mem_open)(cc, 0, iob, iob + 0x40); #endif - (ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_MEM_ENABLE); - (ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); /* Enable the device. */ csr = cardbus_conf_read(cc, cf, ca->ca_tag, Index: src/sys/dev/cardbus/rbus_ppb.c diff -u src/sys/dev/cardbus/rbus_ppb.c:1.33 src/sys/dev/cardbus/rbus_ppb.c:1.34 --- src/sys/dev/cardbus/rbus_ppb.c:1.33 Thu Feb 25 20:36:31 2010 +++ src/sys/dev/cardbus/rbus_ppb.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: rbus_ppb.c,v 1.33 2010/02/25 20:36:31 dyoung Exp $ */ +/* $NetBSD: rbus_ppb.c,v 1.34 2010/02/25 23:40:39 dyoung Exp $ */ /* * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rbus_ppb.c,v 1.33 2010/02/25 20:36:31 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rbus_ppb.c,v 1.34 2010/02/25 23:40:39 dyoung Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -750,19 +750,15 @@ if (csc->base0_reg) { Cardbus_conf_write(csc->ct, tag, CARDBUS_BASE0_REG, csc->base0_reg); - (cf->cardbus_ctrl) (cc, CARDBUS_MEM_ENABLE); command |= CARDBUS_COMMAND_MEM_ENABLE | CARDBUS_COMMAND_MASTER_ENABLE; } else if (csc->base1_reg) { Cardbus_conf_write(csc->ct, tag, CARDBUS_BASE1_REG, csc->base1_reg); - (cf->cardbus_ctrl) (cc, CARDBUS_IO_ENABLE); command |= (CARDBUS_COMMAND_IO_ENABLE | CARDBUS_COMMAND_MASTER_ENABLE); } - (cf->cardbus_ctrl) (cc, CARDBUS_BM_ENABLE); - /* enable the card */ Cardbus_conf_write(csc->ct, tag, CARDBUS_COMMAND_STATUS_REG, command); #endif Index: src/sys/dev/cardbus/uhci_cardbus.c diff -u src/sys/dev/cardbus/uhci_cardbus.c:1.14 src/sys/dev/cardbus/uhci_cardbus.c:1.15 --- src/sys/dev/cardbus/uhci_cardbus.c:1.14 Wed Feb 24 19:52:52 2010 +++ src/sys/dev/cardbus/uhci_cardbus.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: uhci_cardbus.c,v 1.14 2010/02/24 19:52:52 dyoung Exp $ */ +/* $NetBSD: uhci_cardbus.c,v 1.15 2010/02/25 23:40:39 dyoung Exp $ */ /* * Copyright (c) 1998-2005 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uhci_cardbus.c,v 1.14 2010/02/24 19:52:52 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uhci_cardbus.c,v 1.15 2010/02/25 23:40:39 dyoung Exp $"); #include "ehci_cardbus.h" @@ -131,8 +131,6 @@ #else XXX (ct->ct_cf->cardbus_io_open)(cc, 0, iob, iob + 0x40); #endif - (ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_IO_ENABLE); - (ct->ct_cf->cardbus_ctrl)(cc, CARDBUS_BM_ENABLE); /* Enable the device. */ csr = cardbus_conf_read(cc, cf, tag, CARDBUS_COMMAND_STATUS_REG); Index: src/sys/dev/ic/i82557.c diff -u src/sys/dev/ic/i82557.c:1.131 src/sys/dev/ic/i82557.c:1.132 --- src/sys/dev/ic/i82557.c:1.131 Tue Jan 19 22:06:24 2010 +++ src/sys/dev/ic/i82557.c Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: i82557.c,v 1.131 2010/01/19 22:06:24 pooka Exp $ */ +/* $NetBSD: i82557.c,v 1.132 2010/02/25 23:40:39 dyoung Exp $ */ /*- * Copyright (c) 1997, 1998, 1999, 2001, 2002 The NetBSD Foundation, Inc. @@ -66,7 +66,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: i82557.c,v 1.131 2010/01/19 22:06:24 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i82557.c,v 1.132 2010/02/25 23:40:39 dyoung Exp $"); #include "rnd.h" @@ -2491,7 +2491,7 @@ * Detach an i82557 interface. */ int -fxp_detach(struct fxp_softc *sc) +fxp_detach(struct fxp_softc *sc, int flags) { struct ifnet *ifp = &sc->sc_ethercom.ec_if; int i; Index: src/sys/dev/ic/i82557var.h diff -u src/sys/dev/ic/i82557var.h:1.47 src/sys/dev/ic/i82557var.h:1.48 --- src/sys/dev/ic/i82557var.h:1.47 Tue May 12 14:25:17 2009 +++ src/sys/dev/ic/i82557var.h Thu Feb 25 23:40:39 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: i82557var.h,v 1.47 2009/05/12 14:25:17 cegger Exp $ */ +/* $NetBSD: i82557var.h,v 1.48 2010/02/25 23:40:39 dyoung Exp $ */ /*- * Copyright (c) 1997, 1998, 1999, 2001 The NetBSD Foundation, Inc. @@ -166,6 +166,7 @@ device_t sc_dev; bus_space_tag_t sc_st; /* bus space tag */ bus_space_handle_t sc_sh; /* bus space handle */ + bus_size_t sc_size; /* bus space size */ bus_dma_tag_t sc_dmat; /* bus dma tag */ struct ethercom sc_ethercom; /* ethernet common part */ void *sc_ih; /* interrupt handler cookie */ @@ -365,7 +366,7 @@ void fxp_attach(struct fxp_softc *); int fxp_activate(device_t, enum devact); -int fxp_detach(struct fxp_softc *); +int fxp_detach(struct fxp_softc *, int); int fxp_intr(void *); int fxp_enable(struct fxp_softc*);