aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/chipidea
diff options
context:
space:
mode:
authorKishon Vijay Abraham I <kishon@ti.com>2012-06-26 08:10:32 -0400
committerFelipe Balbi <balbi@ti.com>2012-07-02 03:40:49 -0400
commitded017ee6c7b90f7356bd8488f8af1c10ba90490 (patch)
tree1ed1612aa13f24e1aa8480fb497d2a0311fae9cc /drivers/usb/chipidea
parentb8a3efa3a363720687d21228d6b23b988a223bbb (diff)
usb: phy: fix return value check of usb_get_phy
usb_get_phy will return -ENODEV if it's not able to find the phy. Hence fixed all the callers of usb_get_phy to check for this error condition instead of relying on a non-zero value as success condition. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/chipidea')
-rw-r--r--drivers/usb/chipidea/udc.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index a06d28b119f5..4688ab71bd27 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -14,6 +14,7 @@
14#include <linux/device.h> 14#include <linux/device.h>
15#include <linux/dmapool.h> 15#include <linux/dmapool.h>
16#include <linux/dma-mapping.h> 16#include <linux/dma-mapping.h>
17#include <linux/err.h>
17#include <linux/init.h> 18#include <linux/init.h>
18#include <linux/platform_device.h> 19#include <linux/platform_device.h>
19#include <linux/module.h> 20#include <linux/module.h>
@@ -1712,7 +1713,7 @@ static int udc_start(struct ci13xxx *udc)
1712 if (retval) 1713 if (retval)
1713 goto unreg_device; 1714 goto unreg_device;
1714 1715
1715 if (udc->transceiver) { 1716 if (!IS_ERR_OR_NULL(udc->transceiver)) {
1716 retval = otg_set_peripheral(udc->transceiver->otg, 1717 retval = otg_set_peripheral(udc->transceiver->otg,
1717 &udc->gadget); 1718 &udc->gadget);
1718 if (retval) 1719 if (retval)
@@ -1729,7 +1730,7 @@ static int udc_start(struct ci13xxx *udc)
1729 return retval; 1730 return retval;
1730 1731
1731remove_trans: 1732remove_trans:
1732 if (udc->transceiver) { 1733 if (!IS_ERR_OR_NULL(udc->transceiver)) {
1733 otg_set_peripheral(udc->transceiver->otg, &udc->gadget); 1734 otg_set_peripheral(udc->transceiver->otg, &udc->gadget);
1734 usb_put_phy(udc->transceiver); 1735 usb_put_phy(udc->transceiver);
1735 } 1736 }
@@ -1740,7 +1741,7 @@ remove_dbg:
1740unreg_device: 1741unreg_device:
1741 device_unregister(&udc->gadget.dev); 1742 device_unregister(&udc->gadget.dev);
1742put_transceiver: 1743put_transceiver:
1743 if (udc->transceiver) 1744 if (!IS_ERR_OR_NULL(udc->transceiver))
1744 usb_put_phy(udc->transceiver); 1745 usb_put_phy(udc->transceiver);
1745free_pools: 1746free_pools:
1746 dma_pool_destroy(udc->td_pool); 1747 dma_pool_destroy(udc->td_pool);
@@ -1772,7 +1773,7 @@ static void udc_stop(struct ci13xxx *udc)
1772 dma_pool_destroy(udc->td_pool); 1773 dma_pool_destroy(udc->td_pool);
1773 dma_pool_destroy(udc->qh_pool); 1774 dma_pool_destroy(udc->qh_pool);
1774 1775
1775 if (udc->transceiver) { 1776 if (!IS_ERR_OR_NULL(udc->transceiver)) {
1776 otg_set_peripheral(udc->transceiver->otg, NULL); 1777 otg_set_peripheral(udc->transceiver->otg, NULL);
1777 usb_put_phy(udc->transceiver); 1778 usb_put_phy(udc->transceiver);
1778 } 1779 }