diff options
| author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-04-16 19:40:27 +0100 | 
|---|---|---|
| committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-04-16 19:40:27 +0100 | 
| commit | d5efccd5b6843c504042735c1e20d9252daefd98 (patch) | |
| tree | 87994943963bf2f34b3f1fa982d909fd82f56746 /drivers/usb/core/hcd.c | |
| parent | 516541a00c6a6bced133158f0146b602a18dcbe5 (diff) | |
| parent | e816b57a337ea3b755de72bec38c10c864f23015 (diff) | |
| download | olio-linux-3.10-d5efccd5b6843c504042735c1e20d9252daefd98.tar.xz olio-linux-3.10-d5efccd5b6843c504042735c1e20d9252daefd98.zip  | |
ASoC: Merge tag 'v3.4-rc3' into for-3.5
Linux 3.4-rc3 contains a bunch of Tegra changes which are conflicting
annoyingly with the new development that's going on for Tegra so merge
it up to resolve those conflicts.
Conflicts:
	sound/soc/soc-core.c
	sound/soc/tegra/tegra_i2s.c
	sound/soc/tegra/tegra_spdif.c
Diffstat (limited to 'drivers/usb/core/hcd.c')
| -rw-r--r-- | drivers/usb/core/hcd.c | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index 9d7fc9a3993..140d3e11f21 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c @@ -1978,6 +1978,18 @@ int hcd_bus_suspend(struct usb_device *rhdev, pm_message_t msg)  	if (status == 0) {  		usb_set_device_state(rhdev, USB_STATE_SUSPENDED);  		hcd->state = HC_STATE_SUSPENDED; + +		/* Did we race with a root-hub wakeup event? */ +		if (rhdev->do_remote_wakeup) { +			char	buffer[6]; + +			status = hcd->driver->hub_status_data(hcd, buffer); +			if (status != 0) { +				dev_dbg(&rhdev->dev, "suspend raced with wakeup event\n"); +				hcd_bus_resume(rhdev, PMSG_AUTO_RESUME); +				status = -EBUSY; +			} +		}  	} else {  		spin_lock_irq(&hcd_root_hub_lock);  		if (!HCD_DEAD(hcd)) {  |