summaryrefslogtreecommitdiff
path: root/drivers/usb/core/driver.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-12-24 13:04:08 +0300
committerTakashi Iwai <tiwai@suse.de>2008-12-24 13:04:08 +0300
commit7645c4bfbb36f357f03815f5729c46ce8d89f008 (patch)
treeeb2c45bbdfc715a9a6e96e6af9675a0440ef8ff1 /drivers/usb/core/driver.c
parent74b7ff48a93f44198ac03cc4e628d713f53d4668 (diff)
parent574f3c4f5c55e99ea60f71fd98cc54931d4b2eae (diff)
downloadlinux-7645c4bfbb36f357f03815f5729c46ce8d89f008.tar.xz
Merge branch 'fix/hda' into topic/hda
Diffstat (limited to 'drivers/usb/core/driver.c')
-rw-r--r--drivers/usb/core/driver.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index 3d7793d93031..8c081308b0e2 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -279,7 +279,9 @@ static int usb_unbind_interface(struct device *dev)
* altsetting means creating new endpoint device entries).
* When either of these happens, defer the Set-Interface.
*/
- if (!error && intf->dev.power.status == DPM_ON)
+ if (intf->cur_altsetting->desc.bAlternateSetting == 0)
+ ; /* Already in altsetting 0 so skip Set-Interface */
+ else if (!error && intf->dev.power.status == DPM_ON)
usb_set_interface(udev, intf->altsetting[0].
desc.bInterfaceNumber, 0);
else