diff options
author | Jared Suttles <jared.suttles@motorola.com> | 2009-08-07 18:57:49 -0500 |
---|---|---|
committer | Mike Lockwood <lockwood@android.com> | 2009-08-12 10:33:24 -0400 |
commit | 85269242fdfab1937f7417da8e8fd7864501f9bc (patch) | |
tree | 13d9b37a71bf11dfb1b456311012020261164cfb /drivers/usb/gadget | |
parent | 71380224e78a7aacbd3b2f657f64815184e0206d (diff) |
USB: gadget: android: Fix USB WHQL Certification Issues
Submitted on behalf of RaviKumar Vembu <ravi.v@motorola.com>
Signed-off-by: Jared Suttles <jared.suttles@motorola.com>
Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r-- | drivers/usb/gadget/android.c | 3 | ||||
-rw-r--r-- | drivers/usb/gadget/f_mass_storage.c | 13 |
2 files changed, 5 insertions, 11 deletions
diff --git a/drivers/usb/gadget/android.c b/drivers/usb/gadget/android.c index 2c175b04f62b..d3c028d45cbc 100644 --- a/drivers/usb/gadget/android.c +++ b/drivers/usb/gadget/android.c @@ -173,9 +173,6 @@ static int __init android_bind(struct usb_composite_dev *cdev) strings_dev[STRING_SERIAL_IDX].id = id; device_desc.iSerialNumber = id; - if (gadget->ops->wakeup) - android_config_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP; - /* register our configuration */ ret = usb_add_config(cdev, &android_config_driver); if (ret) { diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c index 5e9e2a0d95a8..d3a70b209f7c 100644 --- a/drivers/usb/gadget/f_mass_storage.c +++ b/drivers/usb/gadget/f_mass_storage.c @@ -2234,18 +2234,11 @@ static int do_set_config(struct fsg_dev *fsg, u8 new_config) if (fsg->config != 0) { DBG(fsg, "reset config\n"); fsg->config = 0; - rc = do_set_interface(fsg, -1); } /* Enable the interface */ - if (new_config != 0) { + if (new_config != 0) fsg->config = new_config; - rc = do_set_interface(fsg, 0); - if (rc != 0) - fsg->config = 0; /* Reset on errors */ - else - INFO(fsg, "config #%d\n", fsg->config); - } switch_set_state(&fsg->sdev, new_config); adjust_wake_lock(fsg); @@ -2344,6 +2337,7 @@ static void handle_exception(struct fsg_dev *fsg) case FSG_STATE_EXIT: case FSG_STATE_TERMINATED: + do_set_interface(fsg, -1); do_set_config(fsg, 0); /* Free resources */ spin_lock_irq(&fsg->lock); fsg->state = FSG_STATE_TERMINATED; /* Stop the thread */ @@ -2842,6 +2836,7 @@ static int fsg_function_set_alt(struct usb_function *f, struct fsg_dev *fsg = func_to_dev(f); DBG(fsg, "fsg_function_set_alt intf: %d alt: %d\n", intf, alt); fsg->new_config = 1; + do_set_interface(fsg, 0); raise_exception(fsg, FSG_STATE_CONFIG_CHANGE); return 0; } @@ -2850,6 +2845,8 @@ static void fsg_function_disable(struct usb_function *f) { struct fsg_dev *fsg = func_to_dev(f); DBG(fsg, "fsg_function_disable\n"); + if (fsg->new_config) + do_set_interface(fsg, -1); fsg->new_config = 0; raise_exception(fsg, FSG_STATE_CONFIG_CHANGE); } |