Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17495bda authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'fixes-for-v4.0-rc2' of...

Merge tag 'fixes-for-v4.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb

 into usb-linus

Felipe writes:

usb: fixes for v4.0-rc2

Not that many fixes this time. They have all been tested on
platforms I have around and also passed my randconfig builds.

Here's a quick summary of the changes:

Phonet function learned to not disable a disabled endpoint.

musb received a pm_runtime_irq_safe() call to fix a bug when
calling musb_pullup() (via usb_gadget_{connect,disconnect}())
with irqs disabled.

musb also got a really old fix for throughput with isochronous
endpoints by pushing URB completion to a tasklet (by means of
HCD_BH flag).

musb now can properly get its phys on musb-dsps platforms (am335x
as of now).

musb learned how to read boolean OF properties.

Old bug on how to disable dwc3-omap's IRQs got fixed finally.

A few sparse warnings here and there.

Renesas got a linkage fix.

Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parents c517d838 a0456399
Loading
Loading
Loading
Loading
+28 −2
Original line number Diff line number Diff line
@@ -205,6 +205,18 @@ static void dwc3_omap_write_irq0_set(struct dwc3_omap *omap, u32 value)
						omap->irq0_offset, value);
}

static void dwc3_omap_write_irqmisc_clr(struct dwc3_omap *omap, u32 value)
{
	dwc3_omap_writel(omap->base, USBOTGSS_IRQENABLE_CLR_MISC +
						omap->irqmisc_offset, value);
}

static void dwc3_omap_write_irq0_clr(struct dwc3_omap *omap, u32 value)
{
	dwc3_omap_writel(omap->base, USBOTGSS_IRQENABLE_CLR_0 -
						omap->irq0_offset, value);
}

static void dwc3_omap_set_mailbox(struct dwc3_omap *omap,
	enum omap_dwc3_vbus_id_status status)
{
@@ -345,9 +357,23 @@ static void dwc3_omap_enable_irqs(struct dwc3_omap *omap)

static void dwc3_omap_disable_irqs(struct dwc3_omap *omap)
{
	u32			reg;

	/* disable all IRQs */
	dwc3_omap_write_irqmisc_set(omap, 0x00);
	dwc3_omap_write_irq0_set(omap, 0x00);
	reg = USBOTGSS_IRQO_COREIRQ_ST;
	dwc3_omap_write_irq0_clr(omap, reg);

	reg = (USBOTGSS_IRQMISC_OEVT |
			USBOTGSS_IRQMISC_DRVVBUS_RISE |
			USBOTGSS_IRQMISC_CHRGVBUS_RISE |
			USBOTGSS_IRQMISC_DISCHRGVBUS_RISE |
			USBOTGSS_IRQMISC_IDPULLUP_RISE |
			USBOTGSS_IRQMISC_DRVVBUS_FALL |
			USBOTGSS_IRQMISC_CHRGVBUS_FALL |
			USBOTGSS_IRQMISC_DISCHRGVBUS_FALL |
			USBOTGSS_IRQMISC_IDPULLUP_FALL);

	dwc3_omap_write_irqmisc_clr(omap, reg);
}

static u64 dwc3_omap_dma_mask = DMA_BIT_MASK(32);
+0 −2
Original line number Diff line number Diff line
@@ -1161,7 +1161,6 @@ static ssize_t interf_grp_compatible_id_store(struct usb_os_desc *desc,
	if (desc->opts_mutex)
		mutex_lock(desc->opts_mutex);
	memcpy(desc->ext_compat_id, page, l);
	desc->ext_compat_id[l] = '\0';

	if (desc->opts_mutex)
		mutex_unlock(desc->opts_mutex);
@@ -1192,7 +1191,6 @@ static ssize_t interf_grp_sub_compatible_id_store(struct usb_os_desc *desc,
	if (desc->opts_mutex)
		mutex_lock(desc->opts_mutex);
	memcpy(desc->ext_compat_id + 8, page, l);
	desc->ext_compat_id[l + 8] = '\0';

	if (desc->opts_mutex)
		mutex_unlock(desc->opts_mutex);
+1 −1
Original line number Diff line number Diff line
@@ -569,7 +569,7 @@ static int hidg_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
	return status;
}

const struct file_operations f_hidg_fops = {
static const struct file_operations f_hidg_fops = {
	.owner		= THIS_MODULE,
	.open		= f_hidg_open,
	.release	= f_hidg_release,
+4 −1
Original line number Diff line number Diff line
@@ -417,7 +417,10 @@ static int pn_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
			return -EINVAL;

		spin_lock(&port->lock);

		if (fp->in_ep->driver_data)
			__pn_reset(f);

		if (alt == 1) {
			int i;

+2 −2
Original line number Diff line number Diff line
@@ -344,7 +344,7 @@ static struct usb_endpoint_descriptor ss_int_source_desc = {
	.bInterval =		USB_MS_TO_SS_INTERVAL(GZERO_INT_INTERVAL),
};

struct usb_ss_ep_comp_descriptor ss_int_source_comp_desc = {
static struct usb_ss_ep_comp_descriptor ss_int_source_comp_desc = {
	.bLength =		USB_DT_SS_EP_COMP_SIZE,
	.bDescriptorType =	USB_DT_SS_ENDPOINT_COMP,

@@ -362,7 +362,7 @@ static struct usb_endpoint_descriptor ss_int_sink_desc = {
	.bInterval =		USB_MS_TO_SS_INTERVAL(GZERO_INT_INTERVAL),
};

struct usb_ss_ep_comp_descriptor ss_int_sink_comp_desc = {
static struct usb_ss_ep_comp_descriptor ss_int_sink_comp_desc = {
	.bLength =		USB_DT_SS_EP_COMP_SIZE,
	.bDescriptorType =	USB_DT_SS_ENDPOINT_COMP,

Loading