summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2013-09-12 10:39:38 +0000
committerhselasky <hselasky@FreeBSD.org>2013-09-12 10:39:38 +0000
commit3d434bd768592397df6ebc5e5701f88e33f685fd (patch)
tree7fd6da2d464d0c21be5741e0950dbedd2f46e0c0
parent9ea4b5f27d73c61118db110125281791f3d32502 (diff)
downloadFreeBSD-src-3d434bd768592397df6ebc5e5701f88e33f685fd.zip
FreeBSD-src-3d434bd768592397df6ebc5e5701f88e33f685fd.tar.gz
Don't issue USB resume signalling in USB device mode, if the USB power
mode is ON and suspend is detected. This confuses iPads running in USB host mode at least. MFC after: 1 week Approved by: re (hrs)
-rw-r--r--sys/dev/usb/usb_hub.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/usb/usb_hub.c b/sys/dev/usb/usb_hub.c
index d1727a0..46b7d8d 100644
--- a/sys/dev/usb/usb_hub.c
+++ b/sys/dev/usb/usb_hub.c
@@ -2083,7 +2083,8 @@ usbd_transfer_power_ref(struct usb_xfer *xfer, int val)
static uint8_t
usb_peer_should_wakeup(struct usb_device *udev)
{
- return ((udev->power_mode == USB_POWER_MODE_ON) ||
+ return (((udev->power_mode == USB_POWER_MODE_ON) &&
+ (udev->flags.usb_mode == USB_MODE_HOST)) ||
(udev->driver_added_refcount != udev->bus->driver_added_refcount) ||
(udev->re_enumerate_wait != 0) ||
(udev->pwr_save.type_refs[UE_ISOCHRONOUS] != 0) ||
OpenPOWER on IntegriCloud