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

Commit a3a1c272 authored by Pratham Pratap's avatar Pratham Pratap
Browse files

usb: gsi: Enable host remote-wakeup capability for GPS function



Currently the driver is not setting is_suspended flag for
GPS function which is leading to remote wakeup failure for
host. Also clear rwake_inprogress flag in gsi_resume before
bailing out early for GPS function so that driver can
successfully do remote-wakeup for the functions that support
this feature.

Change-Id: I73f06c8f7b128636d0421139d068c05488d2ff06
Signed-off-by: default avatarPratham Pratap <prathampratap@codeaurora.org>
parent c30dc7b7
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -2675,6 +2675,7 @@ static void gsi_suspend(struct usb_function *f)
		return;
	}

	gsi->c_port.is_suspended = true;
	/*
	 * GPS doesn't use any data interface, hence bail out as there is no
	 * GSI specific handling needed.
@@ -2684,7 +2685,6 @@ static void gsi_suspend(struct usb_function *f)
		return;
	}

	gsi->c_port.is_suspended = true;
	block_db = true;
	usb_gsi_ep_op(gsi->d_port.in_ep, (void *)&block_db,
			GSI_EP_OP_SET_CLR_BLOCK_DBL);
@@ -2735,6 +2735,8 @@ static void gsi_resume(struct usb_function *f)
	/* Check any pending cpkt, and queue immediately on resume */
	gsi_ctrl_send_notification(gsi);

	gsi->rwake_inprogress = false;

	if (gsi->prot_id == IPA_USB_GPS) {
		log_event_dbg("%s: resume done\n", __func__);
		return;
@@ -2754,8 +2756,6 @@ static void gsi_resume(struct usb_function *f)
		gsi->params->state = RNDIS_DATA_INITIALIZED;
	}

	gsi->rwake_inprogress = false;

	post_event(&gsi->d_port, EVT_RESUMED);
	queue_delayed_work(gsi->d_port.ipa_usb_wq, &gsi->d_port.usb_ipa_w, 0);