From owner-svn-src-all@freebsd.org Mon Dec 16 21:34:52 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CA94A1CF49C; Mon, 16 Dec 2019 21:34:52 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47cF0r523Tz4LrH; Mon, 16 Dec 2019 21:34:52 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A7B643995; Mon, 16 Dec 2019 21:34:52 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id xBGLYqtb096763; Mon, 16 Dec 2019 21:34:52 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id xBGLYp6i096758; Mon, 16 Dec 2019 21:34:51 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201912162134.xBGLYp6i096758@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Mon, 16 Dec 2019 21:34:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r355822 - in head/sys: conf dev/pccbb modules/cbb X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys: conf dev/pccbb modules/cbb X-SVN-Commit-Revision: 355822 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Dec 2019 21:34:52 -0000 Author: imp Date: Mon Dec 16 21:34:51 2019 New Revision: 355822 URL: https://svnweb.freebsd.org/changeset/base/355822 Log: We'll never have multiple slots a cardbus bridge. So, replace exca array with a singleton. Also, pccbb isa attachment is never going to happen, do disconnect it from the build (will delete this in future commit). It would need to be updated as well, but since this code is effectively dead code, remove it from the build instead. Modified: head/sys/conf/files head/sys/dev/pccbb/pccbb.c head/sys/dev/pccbb/pccbb_pci.c head/sys/dev/pccbb/pccbbvar.h head/sys/modules/cbb/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Mon Dec 16 21:06:24 2019 (r355821) +++ head/sys/conf/files Mon Dec 16 21:34:51 2019 (r355822) @@ -2552,7 +2552,6 @@ dev/pccard/pccard_cis_quirks.c optional pccard dev/pccard/pccard_device.c optional pccard dev/pccard/power_if.m standard dev/pccbb/pccbb.c optional cbb -dev/pccbb/pccbb_isa.c optional cbb isa dev/pccbb/pccbb_pci.c optional cbb pci dev/pcf/pcf.c optional pcf dev/pci/fixup_pci.c optional pci Modified: head/sys/dev/pccbb/pccbb.c ============================================================================== --- head/sys/dev/pccbb/pccbb.c Mon Dec 16 21:06:24 2019 (r355821) +++ head/sys/dev/pccbb/pccbb.c Mon Dec 16 21:34:51 2019 (r355822) @@ -253,9 +253,9 @@ cbb_disable_func_intr(struct cbb_softc *sc) #if 0 uint8_t reg; - reg = (exca_getb(&sc->exca[0], EXCA_INTR) & ~EXCA_INTR_IRQ_MASK) | + reg = (exca_getb(&sc->exca, EXCA_INTR) & ~EXCA_INTR_IRQ_MASK) | EXCA_INTR_IRQ_RESERVED1; - exca_putb(&sc->exca[0], EXCA_INTR, reg); + exca_putb(&sc->exca, EXCA_INTR, reg); #endif } @@ -271,11 +271,9 @@ cbb_enable_func_intr(struct cbb_softc *sc) { uint8_t reg; - reg = (exca_getb(&sc->exca[0], EXCA_INTR) & ~EXCA_INTR_IRQ_MASK) | + reg = (exca_getb(&sc->exca, EXCA_INTR) & ~EXCA_INTR_IRQ_MASK) | EXCA_INTR_IRQ_NONE; - exca_putb(&sc->exca[0], EXCA_INTR, reg); - PCI_MASK_CONFIG(sc->dev, CBBR_BRIDGECTRL, - & ~CBBM_BRIDGECTRL_INTR_IREQ_ISA_EN, 2); + exca_putb(&sc->exca, EXCA_INTR, reg); } int @@ -322,7 +320,7 @@ cbb_detach(device_t brdev) cbb_set(sc, CBB_SOCKET_MASK, 0); /* reset 16-bit pcmcia bus */ - exca_clrb(&sc->exca[0], EXCA_INTR, EXCA_INTR_RESET); + exca_clrb(&sc->exca, EXCA_INTR, EXCA_INTR_RESET); /* turn off power */ cbb_power(brdev, CARD_OFF); @@ -442,7 +440,7 @@ cbb_child_detached(device_t brdev, device_t child) struct cbb_softc *sc = device_get_softc(brdev); /* I'm not sure we even need this */ - if (child != sc->cbdev && child != sc->exca[0].pccarddev) + if (child != sc->cbdev && child != sc->exca.pccarddev) device_printf(brdev, "Unknown child detached: %s\n", device_get_nameunit(child)); } @@ -549,9 +547,9 @@ cbb_insert(struct cbb_softc *sc) sockevent, sockstate)); if (sockstate & CBB_STATE_R2_CARD) { - if (device_is_attached(sc->exca[0].pccarddev)) { + if (device_is_attached(sc->exca.pccarddev)) { sc->flags |= CBB_16BIT_CARD; - exca_insert(&sc->exca[0]); + exca_insert(&sc->exca); } else { device_printf(sc->dev, "16-bit card inserted, but no pccard bus.\n"); @@ -578,7 +576,7 @@ cbb_removal(struct cbb_softc *sc) { sc->cardok = 0; if (sc->flags & CBB_16BIT_CARD) { - exca_removal(&sc->exca[0]); + exca_removal(&sc->exca); } else { if (device_is_attached(sc->cbdev)) CARD_DETACH_CARD(sc->cbdev); @@ -708,8 +706,8 @@ cbb_o2micro_power_hack(struct cbb_softc *sc) * keyboard controller's interrupts being suppressed occurred when * we did this. */ - reg = exca_getb(&sc->exca[0], EXCA_INTR); - exca_putb(&sc->exca[0], EXCA_INTR, (reg & 0xf0) | 1); + reg = exca_getb(&sc->exca, EXCA_INTR); + exca_putb(&sc->exca, EXCA_INTR, (reg & 0xf0) | 1); return (reg); } @@ -721,7 +719,7 @@ cbb_o2micro_power_hack(struct cbb_softc *sc) static void cbb_o2micro_power_hack2(struct cbb_softc *sc, uint8_t reg) { - exca_putb(&sc->exca[0], EXCA_INTR, reg); + exca_putb(&sc->exca, EXCA_INTR, reg); } int @@ -921,7 +919,7 @@ cbb_do_power(device_t brdev) uint32_t status; /* Don't enable OE (output enable) until power stable */ - exca_clrb(&sc->exca[0], EXCA_PWRCTL, EXCA_PWRCTL_OE); + exca_clrb(&sc->exca, EXCA_PWRCTL, EXCA_PWRCTL_OE); voltage = cbb_detect_voltage(brdev); curpwr = cbb_current_voltage(brdev); @@ -1312,7 +1310,7 @@ cbb_pcic_power_enable_socket(device_t brdev, device_t err = cbb_do_power(brdev); if (err) return (err); - exca_reset(&sc->exca[0], child); + exca_reset(&sc->exca, child); return (0); } @@ -1325,18 +1323,18 @@ cbb_pcic_power_disable_socket(device_t brdev, device_t DPRINTF(("cbb_pcic_socket_disable\n")); /* Turn off the card's interrupt and leave it in reset, wait 10ms */ - exca_putb(&sc->exca[0], EXCA_INTR, 0); + exca_putb(&sc->exca, EXCA_INTR, 0); pause("cbbP1", hz / 100); /* power down the socket */ cbb_power(brdev, CARD_OFF); - exca_putb(&sc->exca[0], EXCA_PWRCTL, 0); + exca_putb(&sc->exca, EXCA_PWRCTL, 0); /* wait 300ms until power fails (Tpf). */ pause("cbbP2", hz * 300 / 1000); /* enable CSC interrupts */ - exca_putb(&sc->exca[0], EXCA_INTR, EXCA_INTR_ENABLE); + exca_putb(&sc->exca, EXCA_INTR, EXCA_INTR_ENABLE); return (0); } @@ -1370,7 +1368,7 @@ cbb_pcic_activate_resource(device_t brdev, device_t ch struct cbb_softc *sc = device_get_softc(brdev); int error; - error = exca_activate_resource(&sc->exca[0], child, type, rid, res); + error = exca_activate_resource(&sc->exca, child, type, rid, res); if (error == 0) cbb_activate_window(brdev, type); return (error); @@ -1381,7 +1379,7 @@ cbb_pcic_deactivate_resource(device_t brdev, device_t int rid, struct resource *res) { struct cbb_softc *sc = device_get_softc(brdev); - return (exca_deactivate_resource(&sc->exca[0], child, type, rid, res)); + return (exca_deactivate_resource(&sc->exca, child, type, rid, res)); } static struct resource * @@ -1476,7 +1474,7 @@ cbb_pcic_set_res_flags(device_t brdev, device_t child, "set_res_flags: specified rid not found\n"); return (ENOENT); } - return (exca_mem_set_flags(&sc->exca[0], res, flags)); + return (exca_mem_set_flags(&sc->exca, res, flags)); } int @@ -1492,7 +1490,7 @@ cbb_pcic_set_memory_offset(device_t brdev, device_t ch "set_memory_offset: specified rid not found\n"); return (ENOENT); } - return (exca_mem_set_offset(&sc->exca[0], res, cardaddr, deltap)); + return (exca_mem_set_offset(&sc->exca, res, cardaddr, deltap)); } /************************************************************************/ Modified: head/sys/dev/pccbb/pccbb_pci.c ============================================================================== --- head/sys/dev/pccbb/pccbb_pci.c Mon Dec 16 21:06:24 2019 (r355821) +++ head/sys/dev/pccbb/pccbb_pci.c Mon Dec 16 21:34:51 2019 (r355822) @@ -294,7 +294,6 @@ cbb_pci_attach(device_t brdev) sc->chipset = cbb_chipset(pci_get_devid(brdev), NULL); sc->dev = brdev; sc->cbdev = NULL; - sc->exca[0].pccarddev = NULL; sc->domain = pci_get_domain(brdev); sc->pribus = pcib_get_bus(parent); #if defined(NEW_PCIB) && defined(PCI_RES_BUS) @@ -320,9 +319,9 @@ cbb_pci_attach(device_t brdev) sc->bst = rman_get_bustag(sc->base_res); sc->bsh = rman_get_bushandle(sc->base_res); - exca_init(&sc->exca[0], brdev, sc->bst, sc->bsh, CBB_EXCA_OFFSET); - sc->exca[0].flags |= EXCA_HAS_MEMREG_WIN; - sc->exca[0].chipset = EXCA_CARDBUS; + exca_init(&sc->exca, brdev, sc->bst, sc->bsh, CBB_EXCA_OFFSET); + sc->exca.flags |= EXCA_HAS_MEMREG_WIN; + sc->exca.chipset = EXCA_CARDBUS; sc->chipinit = cbb_chipinit; sc->chipinit(sc); @@ -381,10 +380,10 @@ cbb_pci_attach(device_t brdev) else if (device_probe_and_attach(sc->cbdev) != 0) DEVPRINTF((brdev, "WARNING: cannot attach cardbus bus!\n")); - sc->exca[0].pccarddev = device_add_child(brdev, "pccard", -1); - if (sc->exca[0].pccarddev == NULL) + sc->exca.pccarddev = device_add_child(brdev, "pccard", -1); + if (sc->exca.pccarddev == NULL) DEVPRINTF((brdev, "WARNING: cannot add pccard bus.\n")); - else if (device_probe_and_attach(sc->exca[0].pccarddev) != 0) + else if (device_probe_and_attach(sc->exca.pccarddev) != 0) DEVPRINTF((brdev, "WARNING: cannot attach pccard bus.\n")); /* Map and establish the interrupt. */ @@ -403,7 +402,7 @@ cbb_pci_attach(device_t brdev) } /* reset 16-bit pcmcia bus */ - exca_clrb(&sc->exca[0], EXCA_INTR, EXCA_INTR_RESET); + exca_clrb(&sc->exca, EXCA_INTR, EXCA_INTR_RESET); /* turn off power */ cbb_power(brdev, CARD_OFF); @@ -580,10 +579,10 @@ cbb_chipinit(struct cbb_softc *sc) * still be correctly generated if NO ISA IRQ is * selected (ExCA regs 03h or 05h are cleared). */ - reg = exca_getb(&sc->exca[0], EXCA_O2MICRO_CTRL_C); + reg = exca_getb(&sc->exca, EXCA_O2MICRO_CTRL_C); reg = (reg & 0x0f) | EXCA_O2CC_IREQ_INTC | EXCA_O2CC_STSCHG_INTC; - exca_putb(&sc->exca[0], EXCA_O2MICRO_CTRL_C, reg); + exca_putb(&sc->exca, EXCA_O2MICRO_CTRL_C, reg); break; case CB_TOPIC97: /* @@ -601,7 +600,7 @@ cbb_chipinit(struct cbb_softc *sc) * ToPIC97, 100 * Need to assert support for low voltage cards */ - exca_setb(&sc->exca[0], EXCA_TOPIC97_CTRL, + exca_setb(&sc->exca, EXCA_TOPIC97_CTRL, EXCA_TOPIC97_CTRL_LV_MASK); goto topic_common; case CB_TOPIC95: @@ -644,8 +643,8 @@ cbb_chipinit(struct cbb_softc *sc) * INTR_ENABLE and the other is to set CSC to 0. Since both * methods are mutually compatible, we do both. */ - exca_putb(&sc->exca[0], EXCA_INTR, EXCA_INTR_ENABLE); - exca_putb(&sc->exca[0], EXCA_CSC_INTR, 0); + exca_putb(&sc->exca, EXCA_INTR, EXCA_INTR_ENABLE); + exca_putb(&sc->exca, EXCA_CSC_INTR, 0); cbb_disable_func_intr(sc); @@ -684,7 +683,7 @@ cbb_pci_shutdown(device_t brdev) * down the socket. */ PCI_MASK_CONFIG(brdev, CBBR_BRIDGECTRL, |CBBM_BRIDGECTRL_RESET, 2); - exca_clrb(&sc->exca[0], EXCA_INTR, EXCA_INTR_RESET); + exca_clrb(&sc->exca, EXCA_INTR, EXCA_INTR_RESET); cbb_set(sc, CBB_SOCKET_MASK, 0); cbb_set(sc, CBB_SOCKET_EVENT, 0xffffffff); cbb_power(brdev, CARD_OFF); @@ -693,7 +692,7 @@ cbb_pci_shutdown(device_t brdev) * For paranoia, turn off all address decoding. Really not needed, * it seems, but it can't hurt */ - exca_putb(&sc->exca[0], EXCA_ADDRWIN_ENABLE, 0); + exca_putb(&sc->exca, EXCA_ADDRWIN_ENABLE, 0); pci_write_config(brdev, CBBR_MEMBASE0, 0, 4); pci_write_config(brdev, CBBR_MEMLIMIT0, 0, 4); pci_write_config(brdev, CBBR_MEMBASE1, 0, 4); @@ -733,7 +732,7 @@ cbb_pci_filt(void *arg) * in one place and a double wakeup would be benign there. */ if (sc->flags & CBB_16BIT_CARD) { - csc = exca_getb(&sc->exca[0], EXCA_CSC); + csc = exca_getb(&sc->exca, EXCA_CSC); if (csc & EXCA_CSC_READY) { atomic_add_int(&sc->powerintr, 1); wakeup((void *)&sc->powerintr); Modified: head/sys/dev/pccbb/pccbbvar.h ============================================================================== --- head/sys/dev/pccbb/pccbbvar.h Mon Dec 16 21:06:24 2019 (r355821) +++ head/sys/dev/pccbb/pccbbvar.h Mon Dec 16 21:34:51 2019 (r355822) @@ -53,11 +53,10 @@ struct cbb_reslist { }; #define CBB_AUTO_OPEN_SMALLHOLE 0x100 -#define CBB_NSLOTS 4 struct cbb_softc { device_t dev; - struct exca_softc exca[CBB_NSLOTS]; + struct exca_softc exca; struct resource *base_res; struct resource *irq_res; void *intrhand; Modified: head/sys/modules/cbb/Makefile ============================================================================== --- head/sys/modules/cbb/Makefile Mon Dec 16 21:06:24 2019 (r355821) +++ head/sys/modules/cbb/Makefile Mon Dec 16 21:34:51 2019 (r355822) @@ -3,8 +3,8 @@ .PATH: ${SRCTOP}/sys/dev/pccbb KMOD= cbb -SRCS= pccbb.c pccbb_isa.c pccbb_pci.c \ - device_if.h bus_if.h power_if.h card_if.h isa_if.h pci_if.h pcib_if.h +SRCS= pccbb.c pccbb_pci.c \ + device_if.h bus_if.h power_if.h card_if.h pci_if.h pcib_if.h .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" CFLAGS += -DNEW_PCIB