Lines Matching refs:brdev
231 cbb_pci_probe(device_t brdev) in cbb_pci_probe() argument
242 if (cbb_chipset(pci_get_devid(brdev), &name) != CB_UNKNOWN) { in cbb_pci_probe()
243 device_set_desc(brdev, name); in cbb_pci_probe()
252 baseclass = pci_get_class(brdev); in cbb_pci_probe()
253 subclass = pci_get_subclass(brdev); in cbb_pci_probe()
254 progif = pci_get_progif(brdev); in cbb_pci_probe()
257 device_set_desc(brdev, "PCI-CardBus Bridge"); in cbb_pci_probe()
281 cbb_pci_attach(device_t brdev) in cbb_pci_attach() argument
287 struct cbb_softc *sc = (struct cbb_softc *)device_get_softc(brdev); in cbb_pci_attach()
293 parent = device_get_parent(brdev); in cbb_pci_attach()
294 mtx_init(&sc->mtx, device_get_nameunit(brdev), "cbb", MTX_DEF); in cbb_pci_attach()
295 sc->chipset = cbb_chipset(pci_get_devid(brdev), NULL); in cbb_pci_attach()
296 sc->dev = brdev; in cbb_pci_attach()
299 sc->domain = pci_get_domain(brdev); in cbb_pci_attach()
302 pci_write_config(brdev, PCIR_PRIBUS_2, sc->pribus, 1); in cbb_pci_attach()
303 pcib_setup_secbus(brdev, &sc->bus, 1); in cbb_pci_attach()
305 sc->bus.sec = pci_read_config(brdev, PCIR_SECBUS_2, 1); in cbb_pci_attach()
306 sc->bus.sub = pci_read_config(brdev, PCIR_SUBBUS_2, 1); in cbb_pci_attach()
311 sc->base_res = bus_alloc_resource_any(brdev, SYS_RES_MEMORY, &rid, in cbb_pci_attach()
314 device_printf(brdev, "Could not map register memory\n"); in cbb_pci_attach()
318 DEVPRINTF((brdev, "Found memory at %jx\n", in cbb_pci_attach()
324 exca_init(&sc->exca[0], brdev, sc->bst, sc->bsh, CBB_EXCA_OFFSET); in cbb_pci_attach()
331 sctx = device_get_sysctl_ctx(brdev); in cbb_pci_attach()
332 soid = device_get_sysctl_tree(brdev); in cbb_pci_attach()
359 DEVPRINTF((brdev, "Secondary bus is %d\n", sc->bus.sec)); in cbb_pci_attach()
360 pribus = pci_read_config(brdev, PCIR_PRIBUS_2, 1); in cbb_pci_attach()
365 DEVPRINTF((brdev, "Setting primary bus to %d\n", in cbb_pci_attach()
367 pci_write_config(brdev, PCIR_PRIBUS_2, sc->pribus, 1); in cbb_pci_attach()
371 DEVPRINTF((brdev, "Secondary bus set to %d subbus %d\n", in cbb_pci_attach()
373 pci_write_config(brdev, PCIR_SECBUS_2, sc->bus.sec, 1); in cbb_pci_attach()
374 pci_write_config(brdev, PCIR_SUBBUS_2, sc->bus.sub, 1); in cbb_pci_attach()
379 sc->cbdev = device_add_child(brdev, "cardbus", -1); in cbb_pci_attach()
381 DEVPRINTF((brdev, "WARNING: cannot add cardbus bus.\n")); in cbb_pci_attach()
383 DEVPRINTF((brdev, "WARNING: cannot attach cardbus bus!\n")); in cbb_pci_attach()
385 sc->exca[0].pccarddev = device_add_child(brdev, "pccard", -1); in cbb_pci_attach()
387 DEVPRINTF((brdev, "WARNING: cannot add pccard bus.\n")); in cbb_pci_attach()
389 DEVPRINTF((brdev, "WARNING: cannot attach pccard bus.\n")); in cbb_pci_attach()
393 sc->irq_res = bus_alloc_resource_any(brdev, SYS_RES_IRQ, &rid, in cbb_pci_attach()
396 device_printf(brdev, "Unable to map IRQ...\n"); in cbb_pci_attach()
400 if (bus_setup_intr(brdev, sc->irq_res, INTR_TYPE_AV | INTR_MPSAFE, in cbb_pci_attach()
402 device_printf(brdev, "couldn't establish interrupt\n"); in cbb_pci_attach()
410 cbb_power(brdev, CARD_OFF); in cbb_pci_attach()
419 cbb_print_config(brdev); in cbb_pci_attach()
423 "%s event thread", device_get_nameunit(brdev))) { in cbb_pci_attach()
424 device_printf(brdev, "unable to create event thread.\n"); in cbb_pci_attach()
431 bus_release_resource(brdev, SYS_RES_IRQ, 0, sc->irq_res); in cbb_pci_attach()
433 bus_release_resource(brdev, SYS_RES_MEMORY, CBBR_SOCKBASE, in cbb_pci_attach()
441 cbb_pci_detach(device_t brdev) in cbb_pci_detach() argument
444 struct cbb_softc *sc = device_get_softc(brdev); in cbb_pci_detach()
448 error = cbb_detach(brdev); in cbb_pci_detach()
451 pcib_free_secbus(brdev, &sc->bus); in cbb_pci_detach()
673 cbb_pci_shutdown(device_t brdev) in cbb_pci_shutdown() argument
675 struct cbb_softc *sc = (struct cbb_softc *)device_get_softc(brdev); in cbb_pci_shutdown()
687 PCI_MASK_CONFIG(brdev, CBBR_BRIDGECTRL, |CBBM_BRIDGECTRL_RESET, 2); in cbb_pci_shutdown()
691 cbb_power(brdev, CARD_OFF); in cbb_pci_shutdown()
698 pci_write_config(brdev, CBBR_MEMBASE0, 0, 4); in cbb_pci_shutdown()
699 pci_write_config(brdev, CBBR_MEMLIMIT0, 0, 4); in cbb_pci_shutdown()
700 pci_write_config(brdev, CBBR_MEMBASE1, 0, 4); in cbb_pci_shutdown()
701 pci_write_config(brdev, CBBR_MEMLIMIT1, 0, 4); in cbb_pci_shutdown()
702 pci_write_config(brdev, CBBR_IOBASE0, 0, 4); in cbb_pci_shutdown()
703 pci_write_config(brdev, CBBR_IOLIMIT0, 0, 4); in cbb_pci_shutdown()
704 pci_write_config(brdev, CBBR_IOBASE1, 0, 4); in cbb_pci_shutdown()
705 pci_write_config(brdev, CBBR_IOLIMIT1, 0, 4); in cbb_pci_shutdown()
858 cbb_maxslots(device_t brdev) in cbb_maxslots() argument
864 cbb_read_config(device_t brdev, u_int b, u_int s, u_int f, u_int reg, int width) in cbb_read_config() argument
869 return (PCIB_READ_CONFIG(device_get_parent(device_get_parent(brdev)), in cbb_read_config()
874 cbb_write_config(device_t brdev, u_int b, u_int s, u_int f, u_int reg, uint32_t val, in cbb_write_config() argument
880 PCIB_WRITE_CONFIG(device_get_parent(device_get_parent(brdev)), in cbb_write_config()
885 cbb_pci_suspend(device_t brdev) in cbb_pci_suspend() argument
888 struct cbb_softc *sc = device_get_softc(brdev); in cbb_pci_suspend()
890 error = bus_generic_suspend(brdev); in cbb_pci_suspend()
899 cbb_pci_resume(device_t brdev) in cbb_pci_resume() argument
902 struct cbb_softc *sc = (struct cbb_softc *)device_get_softc(brdev); in cbb_pci_resume()
929 error = bus_generic_resume(brdev); in cbb_pci_resume()