Merge tag 'usb-for-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next
Felipe writes: usb: patches for v3.10 merge window Here is the big Gadget & PHY pull request. Many of us have been really busy lately getting multiple drivers to a better position. Since this pull request is so large, I will divide it in sections so it's easier to grasp what's included. - cleanups: . UDC drivers no longer touch gadget->dev, that's now udc-core responsibility . Many more UDC drivers converted to usb_gadget_map/unmap_request() . UDC drivers no longer initialize DMA-related fields from gadget's device structure . UDC drivers don't touch gadget.dev.driver directly . UDC drivers don't assign gadget.dev.release directly . Removal of some unused DMA_ADDR_INVALID . Introduction of CONFIG_USB_PHY . All phy drivers have been moved to drivers/usb/phy and renamed to a common naming scheme . Fix PHY layer so it never returns a NULL pointer, also fix all callers to avoid using IS_ERR_OR_NULL() . Sparse fixes all over the place . drivers/usb/otg/ has been deleted . Marvel drivers (mv_udc, ehci-mv, mv_otg and mv_u3d) improved clock usage - new features: . UDC core now provides a generic way for tracking and reporting UDC's state (not attached, resuming, suspended, addressed, default, etc) . twl4030-usb learned that it shouldn't be enabled during init . Full DT support for DWC3 has been implemented . ab8500-usb learned about pinctrl framework . nop PHY learned about DeviceTree and regulators . DWC3 learned about suspend/resume . DWC3 can now be compiled in host-only and gadget-only (as well as DRD) configurations . UVC now enables streaming endpoint based on negotiated speed . isp1301 now implements the PHY API properly . configfs-based interface for gadget drivers which will lead to the removal of all code which just combines functions together to build functional gadget drivers. . f_serial and f_obex were converted to new configfs interface while maintaining old interface around. - non-critical fixes: . UVC gadget driver got fixes for Endpoint usage and stream calculation . ab8500-usb fixed unbalanced clock and regulator API usage . twl4030-usb got a fix for when OMAP3 is booted with cable connected . fusb300_udc got a fix for DMA usage . UVC got fixes for two assertions of the USB Video Class Compliance specification revision 1.1 . build warning issues caused by recent addition of __must_check to regulator API These are all changes which deserve a mention, all other changes are related to these one or minor spelling fixes and other similar tasks. Signed-of-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
@@ -1638,16 +1638,6 @@ static irqreturn_t udc_irq(struct ci13xxx *ci)
|
||||
return retval;
|
||||
}
|
||||
|
||||
/**
|
||||
* udc_release: driver release function
|
||||
* @dev: device
|
||||
*
|
||||
* Currently does nothing
|
||||
*/
|
||||
static void udc_release(struct device *dev)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* udc_start: initialize gadget role
|
||||
* @ci: chipidea controller
|
||||
@@ -1667,12 +1657,6 @@ static int udc_start(struct ci13xxx *ci)
|
||||
|
||||
INIT_LIST_HEAD(&ci->gadget.ep_list);
|
||||
|
||||
dev_set_name(&ci->gadget.dev, "gadget");
|
||||
ci->gadget.dev.dma_mask = dev->dma_mask;
|
||||
ci->gadget.dev.coherent_dma_mask = dev->coherent_dma_mask;
|
||||
ci->gadget.dev.parent = dev;
|
||||
ci->gadget.dev.release = udc_release;
|
||||
|
||||
/* alloc resources */
|
||||
ci->qh_pool = dma_pool_create("ci13xxx_qh", dev,
|
||||
sizeof(struct ci13xxx_qh),
|
||||
@@ -1710,17 +1694,11 @@ static int udc_start(struct ci13xxx *ci)
|
||||
goto put_transceiver;
|
||||
}
|
||||
|
||||
retval = device_register(&ci->gadget.dev);
|
||||
if (retval) {
|
||||
put_device(&ci->gadget.dev);
|
||||
goto put_transceiver;
|
||||
}
|
||||
|
||||
if (!IS_ERR_OR_NULL(ci->transceiver)) {
|
||||
retval = otg_set_peripheral(ci->transceiver->otg,
|
||||
&ci->gadget);
|
||||
if (retval)
|
||||
goto unreg_device;
|
||||
goto put_transceiver;
|
||||
}
|
||||
|
||||
retval = usb_add_gadget_udc(dev, &ci->gadget);
|
||||
@@ -1740,8 +1718,6 @@ remove_trans:
|
||||
}
|
||||
|
||||
dev_err(dev, "error = %i\n", retval);
|
||||
unreg_device:
|
||||
device_unregister(&ci->gadget.dev);
|
||||
put_transceiver:
|
||||
if (!IS_ERR_OR_NULL(ci->transceiver) && ci->global_phy)
|
||||
usb_put_phy(ci->transceiver);
|
||||
@@ -1776,7 +1752,6 @@ static void udc_stop(struct ci13xxx *ci)
|
||||
if (ci->global_phy)
|
||||
usb_put_phy(ci->transceiver);
|
||||
}
|
||||
device_unregister(&ci->gadget.dev);
|
||||
/* my kobject is dynamic, I swear! */
|
||||
memset(&ci->gadget, 0, sizeof(ci->gadget));
|
||||
}
|
||||
|
Reference in New Issue
Block a user