Ejemplo n.º 1
0
static int bridge_suspend(struct usb_interface *intf, pm_message_t message)
{
	int			retval;
	struct data_bridge	*dev = usb_get_intfdata(intf);

	retval = data_bridge_suspend(dev, message);
	if (!retval) {
		retval = ctrl_bridge_suspend(dev->id);
		intf->dev.power.power_state.event = message.event;
	}

	return retval;
}
Ejemplo n.º 2
0
static int bridge_suspend(struct usb_interface *intf, pm_message_t message)
{
	int			retval;
	struct data_bridge	*dev = usb_get_intfdata(intf);

	if (atomic_read(&dev->pending_txurbs))
		return -EBUSY;

	retval = ctrl_bridge_suspend(dev->id);
	if (retval)
		return retval;

	set_bit(SUSPENDED, &dev->flags);
	usb_kill_anchored_urbs(&dev->rx_active);

	return 0;
}
Ejemplo n.º 3
0
static int bridge_suspend(struct usb_interface *intf, pm_message_t message)
{
	int			retval;
	struct data_bridge	*dev = usb_get_intfdata(intf);
	struct bridge		*brdg = dev->brdg;

	retval = data_bridge_suspend(dev, message);
	if (!retval) {
		if (message.event & PM_EVENT_SUSPEND) {
			if (brdg)
				retval = ctrl_bridge_suspend(brdg->ch_id);
			intf->dev.power.power_state.event = message.event;
		}
	} else {
		dev_dbg(&dev->udev->dev, "%s: device is busy,cannot suspend\n",
			__func__);
	}
	return retval;
}