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

Commit 663d694a authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "usb: f_gsi: Avoid gsi ep operations if run/stop is cleared"

parents a8d114d0 91c94bf5
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -1519,6 +1519,11 @@ static int dwc3_msm_gsi_ep_op(struct usb_ep *ep,

	switch (op) {
	case GSI_EP_OP_PREPARE_TRBS:
		if (!dwc->pullups_connected) {
			dbg_log_string("No Pullup\n");
			return -ESHUTDOWN;
		}

		request = (struct usb_gsi_request *)op_data;
		ret = gsi_prepare_trbs(ep, request);
		break;
@@ -1527,12 +1532,22 @@ static int dwc3_msm_gsi_ep_op(struct usb_ep *ep,
		gsi_free_trbs(ep, request);
		break;
	case GSI_EP_OP_CONFIG:
		if (!dwc->pullups_connected) {
			dbg_log_string("No Pullup\n");
			return -ESHUTDOWN;
		}

		request = (struct usb_gsi_request *)op_data;
		spin_lock_irqsave(&dwc->lock, flags);
		gsi_configure_ep(ep, request);
		spin_unlock_irqrestore(&dwc->lock, flags);
		break;
	case GSI_EP_OP_STARTXFER:
		if (!dwc->pullups_connected) {
			dbg_log_string("No Pullup\n");
			return -ESHUTDOWN;
		}

		spin_lock_irqsave(&dwc->lock, flags);
		ret = gsi_startxfer_for_ep(ep);
		spin_unlock_irqrestore(&dwc->lock, flags);
@@ -1545,6 +1560,11 @@ static int dwc3_msm_gsi_ep_op(struct usb_ep *ep,
		gsi_store_ringbase_dbl_info(ep, request);
		break;
	case GSI_EP_OP_ENABLE_GSI:
		if (!dwc->pullups_connected) {
			dbg_log_string("No Pullup\n");
			return -ESHUTDOWN;
		}

		gsi_enable(ep);
		break;
	case GSI_EP_OP_GET_CH_INFO:
@@ -1552,6 +1572,11 @@ static int dwc3_msm_gsi_ep_op(struct usb_ep *ep,
		gsi_get_channel_info(ep, ch_info);
		break;
	case GSI_EP_OP_RING_DB:
		if (!dwc->pullups_connected) {
			dbg_log_string("No Pullup\n");
			return -ESHUTDOWN;
		}

		request = (struct usb_gsi_request *)op_data;
		gsi_ring_db(ep, request);
		break;