From 61456518b473024ca2f0c1cd32823419bee0e3f3 Mon Sep 17 00:00:00 2001 From: supriya karanth Date: Fri, 14 Sep 2012 15:36:23 +0530 Subject: usb: Fix usb issues during reboot Added error handling in adb_release. Fixed warning in ab8500 usb due to the phy_disable call when the usb phy wasn't enabled. Signed-off-by: supriya karanth --- drivers/usb/gadget/f_adb.c | 3 +++ drivers/usb/otg/ab8500-usb.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/usb/gadget/f_adb.c b/drivers/usb/gadget/f_adb.c index 1629ffb5b97..4db2a71529a 100644 --- a/drivers/usb/gadget/f_adb.c +++ b/drivers/usb/gadget/f_adb.c @@ -430,6 +430,9 @@ static int adb_release(struct inode *ip, struct file *fp) { pr_info("adb_release\n"); + if (!_adb_dev) + return -ENODEV; + adb_closed_callback(); adb_unlock(&_adb_dev->open_excl); diff --git a/drivers/usb/otg/ab8500-usb.c b/drivers/usb/otg/ab8500-usb.c index d6e83a4d671..d6b71fcfcfe 100644 --- a/drivers/usb/otg/ab8500-usb.c +++ b/drivers/usb/otg/ab8500-usb.c @@ -689,7 +689,7 @@ static int ab8500_usb_set_peripheral(struct usb_otg *otg, * Do not update ab8500 registers directly till this * is fixed. */ - if (!gadget) + if (!gadget && ab->mode == USB_PERIPHERAL) schedule_work(&ab->phy_dis_work); return 0; @@ -710,7 +710,7 @@ static int ab8500_usb_set_host(struct usb_otg *otg, struct usb_bus *host) * Do not update ab8500 registers directly till this * is fixed. */ - if (!host) + if (!host && ab->mode == USB_HOST) schedule_work(&ab->phy_dis_work); return 0; -- cgit v1.2.3