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

Commit 050a0784 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "usb: gadget: qdss: Fix usage on non-DWC3 controllers"

parents d394c7e8 c7f69401
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#include <linux/usb/usb_qdss.h>
#include <linux/usb/msm_hsusb.h>

#include "gadget_chips.h"
#include "f_qdss.h"
#include "u_qdss.c"

@@ -395,6 +396,8 @@ static int qdss_bind(struct usb_configuration *c, struct usb_function *f)
			goto fail;
		}
	}

	if (gadget_is_dwc3(gadget))
		dwc3_tx_fifo_resize_request(qdss->data, true);

	return 0;
@@ -408,12 +411,15 @@ fail:
static void qdss_unbind(struct usb_configuration *c, struct usb_function *f)
{
	struct f_qdss  *qdss = func_to_qdss(f);
	struct usb_gadget *gadget = c->cdev->gadget;

	pr_debug("qdss_unbind\n");

	if (gadget_is_dwc3(gadget))
		dwc3_tx_fifo_resize_request(qdss->data, false);

	clear_eps(f);
	clear_desc(c->cdev->gadget, f);
	clear_desc(gadget, f);
}

static void qdss_eps_disable(struct usb_function *f)
@@ -824,6 +830,7 @@ void usb_qdss_close(struct usb_qdss_ch *ch)
	ch->app_conn = 0;
	spin_unlock_irqrestore(&d_lock, flags);

	if (gadget_is_dwc3(gadget))
		msm_dwc3_restart_usb_session(gadget);
}
EXPORT_SYMBOL(usb_qdss_close);
+6 −2
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
#include <linux/device.h>
#include <linux/usb/msm_hsusb.h>
#include <mach/usb_bam.h>
#include "gadget_chips.h"

struct  usb_qdss_bam_connect_info {
	u32 usb_bam_pipe_idx;
@@ -88,8 +89,11 @@ static int set_qdss_data_connection(struct usb_gadget *gadget,
			&bam_info.usb_bam_pipe_idx, &bam_info.peer_pipe_idx,
			NULL, bam_info.data_fifo);

		msm_data_fifo_config(data_ep, bam_info.data_fifo->phys_base,
			bam_info.data_fifo->size, bam_info.usb_bam_pipe_idx);
		if (gadget_is_dwc3(gadget))
			msm_data_fifo_config(data_ep,
					     bam_info.data_fifo->phys_base,
					     bam_info.data_fifo->size,
					     bam_info.usb_bam_pipe_idx);
	} else {
		kfree(bam_info.data_fifo);
		res = usb_bam_disconnect_pipe(idx);