Commit 4fa42e89 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

Merge tag 'fixes-for-v3.9-rc3' of...

Merge tag 'fixes-for-v3.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus

Felipe writes:

  usb: fixes for v3.9-rc3

  Most fixes are on 'musb' driver. There's a sparse warning
  fix which marks omap2430_glue as static, a build warning
  fix which was found with randconfig, a fix for omap_musb_mailbox
  check and removal of 'select' from musb's Kconfig to prevent
  Kconfig warnings.

  Other than that, pxa25x got a fix which was introduced by the
  latest conversion to udc_start/udc_stop patchset, kernel-doc
  warnings for composite layer  and dwc3 got a build fix on
  sparc64.
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parents b44983bb 66e4afc7
...@@ -891,7 +891,8 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc, ...@@ -891,7 +891,8 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc,
DWC3_TRBCTL_CONTROL_DATA); DWC3_TRBCTL_CONTROL_DATA);
} else if (!IS_ALIGNED(req->request.length, dep->endpoint.maxpacket) } else if (!IS_ALIGNED(req->request.length, dep->endpoint.maxpacket)
&& (dep->number == 0)) { && (dep->number == 0)) {
u32 transfer_size; u32 transfer_size;
u32 maxpacket;
ret = usb_gadget_map_request(&dwc->gadget, &req->request, ret = usb_gadget_map_request(&dwc->gadget, &req->request,
dep->number); dep->number);
...@@ -902,8 +903,8 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc, ...@@ -902,8 +903,8 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc,
WARN_ON(req->request.length > DWC3_EP0_BOUNCE_SIZE); WARN_ON(req->request.length > DWC3_EP0_BOUNCE_SIZE);
transfer_size = roundup(req->request.length, maxpacket = dep->endpoint.maxpacket;
(u32) dep->endpoint.maxpacket); transfer_size = roundup(req->request.length, maxpacket);
dwc->ep0_bounced = true; dwc->ep0_bounced = true;
......
...@@ -1757,10 +1757,7 @@ static const struct usb_gadget_driver composite_driver_template = { ...@@ -1757,10 +1757,7 @@ static const struct usb_gadget_driver composite_driver_template = {
/** /**
* usb_composite_probe() - register a composite driver * usb_composite_probe() - register a composite driver
* @driver: the driver to register * @driver: the driver to register
* @bind: the callback used to allocate resources that are shared across the *
* whole device, such as string IDs, and add its configurations using
* @usb_add_config(). This may fail by returning a negative errno
* value; it should return zero on successful initialization.
* Context: single threaded during gadget setup * Context: single threaded during gadget setup
* *
* This function is used to register drivers using the composite driver * This function is used to register drivers using the composite driver
......
...@@ -1303,6 +1303,10 @@ stop_activity(struct pxa25x_udc *dev, struct usb_gadget_driver *driver) ...@@ -1303,6 +1303,10 @@ stop_activity(struct pxa25x_udc *dev, struct usb_gadget_driver *driver)
} }
del_timer_sync(&dev->timer); del_timer_sync(&dev->timer);
/* report disconnect; the driver is already quiesced */
if (driver)
driver->disconnect(&dev->gadget);
/* re-init driver-visible data structures */ /* re-init driver-visible data structures */
udc_reinit(dev); udc_reinit(dev);
} }
......
...@@ -7,9 +7,6 @@ ...@@ -7,9 +7,6 @@
config USB_MUSB_HDRC config USB_MUSB_HDRC
tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)' tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)'
depends on USB && USB_GADGET depends on USB && USB_GADGET
select NOP_USB_XCEIV if (ARCH_DAVINCI || MACH_OMAP3EVM || BLACKFIN)
select NOP_USB_XCEIV if (SOC_TI81XX || SOC_AM33XX)
select OMAP_CONTROL_USB if MACH_OMAP_4430SDP || MACH_OMAP4_PANDA
select USB_OTG_UTILS select USB_OTG_UTILS
help help
Say Y here if your system has a dual role high speed USB Say Y here if your system has a dual role high speed USB
...@@ -49,8 +46,6 @@ config USB_MUSB_TUSB6010 ...@@ -49,8 +46,6 @@ config USB_MUSB_TUSB6010
config USB_MUSB_OMAP2PLUS config USB_MUSB_OMAP2PLUS
tristate "OMAP2430 and onwards" tristate "OMAP2430 and onwards"
depends on ARCH_OMAP2PLUS depends on ARCH_OMAP2PLUS
select TWL4030_USB if MACH_OMAP_3430SDP
select TWL6030_USB if MACH_OMAP_4430SDP || MACH_OMAP4_PANDA
config USB_MUSB_AM35X config USB_MUSB_AM35X
tristate "AM35x" tristate "AM35x"
......
...@@ -1968,11 +1968,9 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl) ...@@ -1968,11 +1968,9 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
if (status < 0) if (status < 0)
goto fail4; goto fail4;
#ifdef CONFIG_SYSFS
status = sysfs_create_group(&musb->controller->kobj, &musb_attr_group); status = sysfs_create_group(&musb->controller->kobj, &musb_attr_group);
if (status) if (status)
goto fail5; goto fail5;
#endif
pm_runtime_put(musb->controller); pm_runtime_put(musb->controller);
......
...@@ -51,7 +51,7 @@ struct omap2430_glue { ...@@ -51,7 +51,7 @@ struct omap2430_glue {
}; };
#define glue_to_musb(g) platform_get_drvdata(g->musb) #define glue_to_musb(g) platform_get_drvdata(g->musb)
struct omap2430_glue *_glue; static struct omap2430_glue *_glue;
static struct timer_list musb_idle_timer; static struct timer_list musb_idle_timer;
...@@ -237,9 +237,13 @@ void omap_musb_mailbox(enum omap_musb_vbus_id_status status) ...@@ -237,9 +237,13 @@ void omap_musb_mailbox(enum omap_musb_vbus_id_status status)
{ {
struct omap2430_glue *glue = _glue; struct omap2430_glue *glue = _glue;
if (glue && glue_to_musb(glue)) { if (!glue) {
glue->status = status; pr_err("%s: musb core is not yet initialized\n", __func__);
} else { return;
}
glue->status = status;
if (!glue_to_musb(glue)) {
pr_err("%s: musb core is not yet ready\n", __func__); pr_err("%s: musb core is not yet ready\n", __func__);
return; return;
} }
......
...@@ -60,7 +60,7 @@ struct usb_configuration; ...@@ -60,7 +60,7 @@ struct usb_configuration;
* @name: For diagnostics, identifies the function. * @name: For diagnostics, identifies the function.
* @strings: tables of strings, keyed by identifiers assigned during bind() * @strings: tables of strings, keyed by identifiers assigned during bind()
* and by language IDs provided in control requests * and by language IDs provided in control requests
* @descriptors: Table of full (or low) speed descriptors, using interface and * @fs_descriptors: Table of full (or low) speed descriptors, using interface and
* string identifiers assigned during @bind(). If this pointer is null, * string identifiers assigned during @bind(). If this pointer is null,
* the function will not be available at full speed (or at low speed). * the function will not be available at full speed (or at low speed).
* @hs_descriptors: Table of high speed descriptors, using interface and * @hs_descriptors: Table of high speed descriptors, using interface and
...@@ -290,6 +290,7 @@ enum { ...@@ -290,6 +290,7 @@ enum {
* after function notifications * after function notifications
* @resume: Notifies configuration when the host restarts USB traffic, * @resume: Notifies configuration when the host restarts USB traffic,
* before function notifications * before function notifications
* @gadget_driver: Gadget driver controlling this driver
* *
* Devices default to reporting self powered operation. Devices which rely * Devices default to reporting self powered operation. Devices which rely
* on bus powered operation should report this in their @bind method. * on bus powered operation should report this in their @bind method.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment