Esempio n. 1
0
static int
uhci_pci_suspend(device_t self)
{
	uhci_softc_t *sc = device_get_softc(self);
	int err;

	err = bus_generic_suspend(self);
	if (err) {
		return (err);
	}
	uhci_suspend(sc);
	return (0);
}
Esempio n. 2
0
static int
ehci_pci_suspend(device_t self)
{
	ehci_softc_t *sc = device_get_softc(self);
	int err;

	err = bus_generic_suspend(self);
	if (err)
		return (err);
	ehci_power(PWR_SUSPEND, sc);

	return 0;
}
Esempio n. 3
0
static int
cbb_pci_suspend(device_t brdev)
{
	int			error = 0;
	struct cbb_softc	*sc = device_get_softc(brdev);

	error = bus_generic_suspend(brdev);
	if (error != 0)
		return (error);
	cbb_set(sc, CBB_SOCKET_MASK, 0);	/* Quiet hardware */
	sc->cardok = 0;				/* Card is bogus now */
	return (0);
}
Esempio n. 4
0
static int
fwohci_pci_suspend(device_t dev)
{
	fwohci_softc_t *sc = device_get_softc(dev);
	int err;

	device_printf(dev, "fwohci_pci_suspend\n");
	err = bus_generic_suspend(dev);
	if (err)
		return err;
	fwohci_stop(sc, dev);
	return 0;
}
Esempio n. 5
0
int
acpi_pci_suspend(device_t dev)
{
    int dstate, error, i, numdevs;
    device_t acpi_dev, child, *devlist;
    struct pci_devinfo *dinfo;

    acpi_dev = devclass_get_device(devclass_find("acpi"), 0);
    device_get_children(dev, &devlist, &numdevs);

    /*
     * Save the PCI configuration space for each child and set the
     * device in the appropriate power state for this sleep state.
     */
    for (i = 0; i < numdevs; i++) {
        child = devlist[i];
        dinfo = (struct pci_devinfo *)device_get_ivars(child);
        pci_cfg_save(child, dinfo, 0);
    }

    /*
     * Suspend devices before potentially powering them down.
     */
    error = bus_generic_suspend(dev);
    if (error) {
        kfree(devlist, M_TEMP);
        return (error);
    }

    /*
     * Always set the device to D3.  If ACPI suggests a different
     * power state, use it instead.  If ACPI is not present, the
     * firmware is responsible for managing device power.  Skip
     * children who aren't attached since they are powered down
     * separately.  Only manage type 0 devices for now.
     */
    for (i = 0; acpi_dev && i < numdevs; i++) {
        child = devlist[i];
        dinfo = (struct pci_devinfo *)device_get_ivars(child);
        if (device_is_attached(child) && dinfo->cfg.hdrtype == 0) {
            dstate = PCI_POWERSTATE_D3;
            ACPI_PWR_FOR_SLEEP(acpi_dev, child, &dstate);
            pci_set_powerstate(child, dstate);
        }
    }

    kfree(devlist, M_TEMP);
    return (0);
}
Esempio n. 6
0
static int
radeon_suspend(device_t kdev)
{
	struct drm_device *dev;
	int ret;

	dev = device_get_softc(kdev);
	ret = radeon_suspend_kms(dev);
	if (ret)
		return (-ret);

	ret = bus_generic_suspend(kdev);

	return (ret);
}
static int
xenbus_suspend(device_t dev)
{
	int error;

	DPRINTK("");

	error = bus_generic_suspend(dev);
	if (error)
		return (error);

	xs_suspend();

	return (0);
}
Esempio n. 8
0
static int
vgapm_suspend(device_t dev)
{
	device_t vga_dev;
	int error;

	error = bus_generic_suspend(dev);
	if (error != 0)
		return (error);
	vga_dev = devclass_get_device(isavga_devclass, 0);
	if (vga_dev == NULL)
		return (0);
	vga_suspend(vga_dev);

	return (0);
}
Esempio n. 9
0
static int i915_suspend(device_t nbdev)
{
	struct drm_device *dev = device_get_softc(nbdev);
	struct drm_i915_private *dev_priv = dev->dev_private;

	if (!dev || !dev_priv) {
		DRM_ERROR("dev: 0x%lx, dev_priv: 0x%lx\n",
			(unsigned long) dev, (unsigned long) dev_priv);
		DRM_ERROR("DRM not initialized, aborting suspend.\n");
		return -ENODEV;
	}

	i915_save_state(dev);

	return (bus_generic_suspend(nbdev));
}
Esempio n. 10
0
static int i915_suspend(device_t kdev)
{
	struct drm_device *dev = device_get_softc(kdev);

	if (!dev || !dev->dev_private) {
		DRM_ERROR("DRM not initialized, aborting suspend.\n");
		return -ENODEV;
	}

	DRM_LOCK();
	DRM_DEBUG("starting suspend\n");
	i915_save_state(dev);
	DRM_UNLOCK();

	return (bus_generic_suspend(kdev));
}
Esempio n. 11
0
static int
isab_suspend(device_t dev)
{
    struct isab_softc *sc = device_get_softc(dev);
    bus_space_tag_t bst;
    bus_space_handle_t bsh;
    int i;

    /* Save the ELCR if required. */
    if (sc->elcr_res != NULL) {
        bst = rman_get_bustag(sc->elcr_res);
        bsh = rman_get_bushandle(sc->elcr_res);
        for (i = 0; i < ELCR_IOLEN; i++)
            sc->saved_elcr[i] = bus_space_read_1(bst, bsh, i);
    }

    return (bus_generic_suspend(dev));
}
Esempio n. 12
0
static int i915_suspend(device_t kdev)
{
	struct drm_device *dev;
	int error;

	dev = device_get_softc(kdev);
	if (dev == NULL || dev->dev_private == NULL) {
		DRM_ERROR("DRM not initialized, aborting suspend.\n");
		return ENODEV;
	}

	DRM_DEBUG_KMS("starting suspend\n");
	error = i915_drm_freeze(dev);
	if (error)
		return (-error);

	error = bus_generic_suspend(kdev);
	DRM_DEBUG_KMS("finished suspend %d\n", error);
	return (error);
}
Esempio n. 13
0
static int
gpiobus_suspend(device_t dev)
{

	return (bus_generic_suspend(dev));
}
Esempio n. 14
0
static int
vga_pci_suspend(device_t dev)
{

	return (bus_generic_suspend(dev));
}
Esempio n. 15
0
static int
chipc_suspend(device_t dev)
{
	return (bus_generic_suspend(dev));
}