aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/chipidea/udc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/chipidea/udc.c')
-rw-r--r--drivers/usb/chipidea/udc.c27
1 files changed, 1 insertions, 26 deletions
diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 3d90e6189731..519ead2443c5 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1639,16 +1639,6 @@ static irqreturn_t udc_irq(struct ci13xxx *ci)
1639} 1639}
1640 1640
1641/** 1641/**
1642 * udc_release: driver release function
1643 * @dev: device
1644 *
1645 * Currently does nothing
1646 */
1647static void udc_release(struct device *dev)
1648{
1649}
1650
1651/**
1652 * udc_start: initialize gadget role 1642 * udc_start: initialize gadget role
1653 * @ci: chipidea controller 1643 * @ci: chipidea controller
1654 */ 1644 */
@@ -1667,12 +1657,6 @@ static int udc_start(struct ci13xxx *ci)
1667 1657
1668 INIT_LIST_HEAD(&ci->gadget.ep_list); 1658 INIT_LIST_HEAD(&ci->gadget.ep_list);
1669 1659
1670 dev_set_name(&ci->gadget.dev, "gadget");
1671 ci->gadget.dev.dma_mask = dev->dma_mask;
1672 ci->gadget.dev.coherent_dma_mask = dev->coherent_dma_mask;
1673 ci->gadget.dev.parent = dev;
1674 ci->gadget.dev.release = udc_release;
1675
1676 /* alloc resources */ 1660 /* alloc resources */
1677 ci->qh_pool = dma_pool_create("ci13xxx_qh", dev, 1661 ci->qh_pool = dma_pool_create("ci13xxx_qh", dev,
1678 sizeof(struct ci13xxx_qh), 1662 sizeof(struct ci13xxx_qh),
@@ -1710,17 +1694,11 @@ static int udc_start(struct ci13xxx *ci)
1710 goto put_transceiver; 1694 goto put_transceiver;
1711 } 1695 }
1712 1696
1713 retval = device_register(&ci->gadget.dev);
1714 if (retval) {
1715 put_device(&ci->gadget.dev);
1716 goto put_transceiver;
1717 }
1718
1719 if (!IS_ERR_OR_NULL(ci->transceiver)) { 1697 if (!IS_ERR_OR_NULL(ci->transceiver)) {
1720 retval = otg_set_peripheral(ci->transceiver->otg, 1698 retval = otg_set_peripheral(ci->transceiver->otg,
1721 &ci->gadget); 1699 &ci->gadget);
1722 if (retval) 1700 if (retval)
1723 goto unreg_device; 1701 goto put_transceiver;
1724 } 1702 }
1725 1703
1726 retval = usb_add_gadget_udc(dev, &ci->gadget); 1704 retval = usb_add_gadget_udc(dev, &ci->gadget);
@@ -1740,8 +1718,6 @@ remove_trans:
1740 } 1718 }
1741 1719
1742 dev_err(dev, "error = %i\n", retval); 1720 dev_err(dev, "error = %i\n", retval);
1743unreg_device:
1744 device_unregister(&ci->gadget.dev);
1745put_transceiver: 1721put_transceiver:
1746 if (!IS_ERR_OR_NULL(ci->transceiver) && ci->global_phy) 1722 if (!IS_ERR_OR_NULL(ci->transceiver) && ci->global_phy)
1747 usb_put_phy(ci->transceiver); 1723 usb_put_phy(ci->transceiver);
@@ -1776,7 +1752,6 @@ static void udc_stop(struct ci13xxx *ci)
1776 if (ci->global_phy) 1752 if (ci->global_phy)
1777 usb_put_phy(ci->transceiver); 1753 usb_put_phy(ci->transceiver);
1778 } 1754 }
1779 device_unregister(&ci->gadget.dev);
1780 /* my kobject is dynamic, I swear! */ 1755 /* my kobject is dynamic, I swear! */
1781 memset(&ci->gadget, 0, sizeof(ci->gadget)); 1756 memset(&ci->gadget, 0, sizeof(ci->gadget));
1782} 1757}