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

Commit 949f519e authored by Ghanim Fodi's avatar Ghanim Fodi Committed by Gerrit - the friendly Code Review server
Browse files

msm: ipa3: Decouple xDCI DPL channel from data channels



Allow xDCI DPL channel to be initialized and connected
regardless of the regular data channels state.
This is required to support DPL only configurations.

Change-Id: I98aa0efef11ac908d13e96ff10e872cada55ade1
Signed-off-by: default avatarGhanim Fodi <gfodi@codeaurora.org>
parent 049b7256
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -1078,7 +1078,7 @@ int ipa3_request_gsi_channel(struct ipa_request_gsi_channel_params *params,
	struct ipa_gsi_ep_config gsi_ep_cfg;
	struct ipa_gsi_ep_config *gsi_ep_cfg_ptr = &gsi_ep_cfg;

	IPADBG("ipa3_request_gsi_channel: entry\n");
	IPADBG("entry\n");
	if (params == NULL || out_params == NULL ||
		!ipa3_is_legal_params(params)) {
		IPAERR("bad parameters\n");
@@ -1202,7 +1202,7 @@ int ipa3_request_gsi_channel(struct ipa_request_gsi_channel_params *params,
	ipa3_dec_client_disable_clks();

	IPADBG("client %d (ep: %d) connected\n", params->client, ipa_ep_idx);
	IPADBG("ipa3_request_gsi_channel: exit\n");
	IPADBG("exit\n");

	return 0;

@@ -1223,7 +1223,7 @@ int ipa3_set_usb_max_packet_size(
	struct gsi_device_scratch dev_scratch;
	enum gsi_status gsi_res;

	IPADBG("ipa3_set_usb_max_packet_size: entry\n");
	IPADBG("entry\n");

	ipa3_inc_client_enable_clks();

@@ -1241,7 +1241,7 @@ int ipa3_set_usb_max_packet_size(

	ipa3_dec_client_disable_clks();

	IPADBG("ipa3_set_usb_max_packet_size: exit\n");
	IPADBG("exit\n");
	return 0;
}

@@ -1251,7 +1251,7 @@ int ipa3_xdci_connect(u32 clnt_hdl, u8 xferrscidx, bool xferrscidx_valid)
	int result = -EFAULT;
	enum gsi_status gsi_res;

	IPADBG("ipa3_xdci_connect: entry\n");
	IPADBG("entry\n");
	if (clnt_hdl >= ipa3_ctx->ipa_num_pipes  ||
		ipa3_ctx->ep[clnt_hdl].valid == 0 ||
		xferrscidx < 0 || xferrscidx > IPA_XFER_RSC_IDX_MAX) {
@@ -1280,7 +1280,7 @@ int ipa3_xdci_connect(u32 clnt_hdl, u8 xferrscidx, bool xferrscidx_valid)
	if (!ep->keep_ipa_awake)
		ipa3_dec_client_disable_clks();

	IPADBG("ipa3_xdci_connect: exit\n");
	IPADBG("exit\n");
	return 0;

write_chan_scratch_fail:
@@ -1577,9 +1577,11 @@ int ipa3_xdci_suspend(u32 ul_clnt_hdl, u32 dl_clnt_hdl,
	if (!dl_data_pending) {
		aggr_active_bitmap = ipa_read_reg(ipa3_ctx->mmio,
				IPA_STATE_AGGR_ACTIVE_OFST);
		if (aggr_active_bitmap & (1 << dl_clnt_hdl))
		if (aggr_active_bitmap & (1 << dl_clnt_hdl)) {
			IPADBG("DL data pending due to open aggr. frame\n");
			dl_data_pending = true;
		}
	}
	if (dl_data_pending) {
		IPAERR("DL data pending, can't suspend\n");
		result = -EFAULT;
+183 −151

File changed.

Preview size limit exceeded, changes collapsed.