static int fwohci_pci_shutdown(device_t dev) { fwohci_softc_t *sc = device_get_softc(dev); bus_generic_shutdown(dev); fwohci_stop(sc, dev); return 0; }
static int vtpci_shutdown(device_t dev) { (void) bus_generic_shutdown(dev); /* Forcibly stop the host device. */ vtpci_stop(dev); return (0); }
/** * omap_ehci_shutdown - starts the given command * @dev: * * Effectively boilerplate EHCI shutdown code. * * LOCKING: * none. * * RETURNS: * 0 on success or a positive error code on failure */ static int omap_ehci_shutdown(device_t dev) { int err; err = bus_generic_shutdown(dev); if (err) return (err); return (0); }
static int ehci_ebus_shutdown(device_t self) { ehci_softc_t *sc = device_get_softc(self); int err; err = bus_generic_shutdown(self); if (err) return (err); ehci_shutdown(sc); return (0); }
/*------------------------------------------------------------------------* * usb_bus_suspend * * This function is used to suspend the USB controller. *------------------------------------------------------------------------*/ static void usb_bus_suspend(struct usb_proc_msg *pm) { struct usb_bus *bus; struct usb_device *udev; usb_error_t err; uint8_t do_unlock; DPRINTF("\n"); bus = ((struct usb_bus_msg *)pm)->bus; udev = bus->devices[USB_ROOT_HUB_ADDR]; if (udev == NULL || bus->bdev == NULL) return; USB_BUS_UNLOCK(bus); /* * We use the shutdown event here because the suspend and * resume events are reserved for the USB port suspend and * resume. The USB system suspend is implemented like full * shutdown and all connected USB devices will be disconnected * subsequently. At resume all USB devices will be * re-connected again. */ bus_generic_shutdown(bus->bdev); do_unlock = usbd_enum_lock(udev); err = usbd_set_config_index(udev, USB_UNCONFIG_INDEX); if (err) device_printf(bus->bdev, "Could not unconfigure root HUB\n"); USB_BUS_LOCK(bus); bus->hw_power_state = 0; bus->no_explore = 1; USB_BUS_UNLOCK(bus); if (bus->methods->set_hw_power != NULL) (bus->methods->set_hw_power) (bus); if (bus->methods->set_hw_power_sleep != NULL) (bus->methods->set_hw_power_sleep) (bus, USB_HW_POWER_SUSPEND); if (do_unlock) usbd_enum_unlock(udev); USB_BUS_LOCK(bus); }
static int atmegadci_shutdown(device_t dev) { struct atmegadci_super_softc *sc = device_get_softc(dev); int err; err = bus_generic_shutdown(dev); if (err) return (err); atmegadci_uninit(&sc->sc_otg); return (0); }
static int uss820_atmelarm_shutdown(device_t dev) { struct uss820dci_softc *sc = device_get_softc(dev); int err; err = bus_generic_shutdown(dev); if (err) return (err); uss820dci_uninit(sc); return (0); }
static int ehci_pci_shutdown(device_t self) { ehci_softc_t *sc = device_get_softc(self); int err; err = bus_generic_shutdown(self); if (err) return (err); ehci_shutdown(sc); ehci_pci_givecontroller(self); return 0; }
static int dotg_obio_shutdown(device_t dev) { struct dotg_obio_softc *sc = device_get_softc(dev); int err; err = bus_generic_shutdown(dev); if (err) return (err); dotg_uninit(&sc->sc_dci); return (0); }
static int at91_udp_shutdown(device_t dev) { struct at91_udp_softc *sc = device_get_softc(dev); int err; err = bus_generic_shutdown(dev); if (err) return (err); at91dci_uninit(&sc->sc_dci); return (0); }
static int octusb_octeon_shutdown(device_t dev) { struct octusb_octeon_softc *sc = device_get_softc(dev); int err; err = bus_generic_shutdown(dev); if (err) return (err); octusb_uninit(&sc->sc_dci); return (0); }
static int acpi_cpu_shutdown(device_t dev) { ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); /* Allow children to shutdown first. */ bus_generic_shutdown(dev); /* * Disable any entry to the idle function. There is a small race where * an idle thread have passed this check but not gone to sleep. This * is ok since device_shutdown() does not free the softc, otherwise * we'd have to be sure all threads were evicted before returning. */ cpu_disable_idle = TRUE; return_VALUE (0); }
/*------------------------------------------------------------------------* * usb_bus_shutdown * * This function is used to shutdown the USB controller. *------------------------------------------------------------------------*/ static void usb_bus_shutdown(struct usb_proc_msg *pm) { struct usb_bus *bus; struct usb_device *udev; usb_error_t err; uint8_t do_unlock; bus = ((struct usb_bus_msg *)pm)->bus; udev = bus->devices[USB_ROOT_HUB_ADDR]; if (udev == NULL || bus->bdev == NULL) return; USB_BUS_UNLOCK(bus); bus_generic_shutdown(bus->bdev); do_unlock = usbd_enum_lock(udev); err = usbd_set_config_index(udev, USB_UNCONFIG_INDEX); if (err) device_printf(bus->bdev, "Could not unconfigure root HUB\n"); USB_BUS_LOCK(bus); bus->hw_power_state = 0; bus->no_explore = 1; USB_BUS_UNLOCK(bus); if (bus->methods->set_hw_power != NULL) (bus->methods->set_hw_power) (bus); if (bus->methods->set_hw_power_sleep != NULL) (bus->methods->set_hw_power_sleep) (bus, USB_HW_POWER_SHUTDOWN); if (do_unlock) usbd_enum_unlock(udev); USB_BUS_LOCK(bus); }