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

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

Merge "msm: ipa3: Send pipe info based on tethering protocol"

parents 1fdf41c6 709d2b73
Loading
Loading
Loading
Loading
+52 −53
Original line number Diff line number Diff line
@@ -629,75 +629,74 @@ static void ipa3_get_usb_ep_info(
		)
{
	int ep_index = -1, i;
	int pair_id = 0;

	ep_info->num_ep_pairs = 0;
	for (i = 0; i < ep_info->max_ep_pairs; i++) {
		pair_info[i].consumer_pipe_num = -1;
		pair_info[i].producer_pipe_num = -1;
		pair_info[i].ep_id = -1;
	}

	if ((!ep_info->teth_prot_valid) || (ep_info->teth_prot_valid &&
		ep_info->teth_prot == IPA_PROT_RMNET_CV2X)) {
		ep_index = ipa3_get_ep_mapping(IPA_CLIENT_USB2_PROD);

		if ((ep_index != -1) && ipa3_ctx->ep[ep_index].valid) {
		pair_info[ep_info->num_ep_pairs].consumer_pipe_num = ep_index;
			pair_info[pair_id].consumer_pipe_num = ep_index;
			ep_index = ipa3_get_ep_mapping(IPA_CLIENT_USB2_CONS);
		if ((ep_index != -1) && (ipa3_ctx->ep[ep_index].valid)) {
			pair_info[ep_info->num_ep_pairs].producer_pipe_num =
				ep_index;
			pair_info[ep_info->num_ep_pairs].ep_id =
				IPA_USB1_EP_ID;

			if ((ep_index != -1) &&
				(ipa3_ctx->ep[ep_index].valid)) {
				pair_info[pair_id].producer_pipe_num = ep_index;
				pair_info[pair_id].ep_id = IPA_USB1_EP_ID;

				IPADBG("ep_pair_info consumer_pipe_num %d",
				pair_info[ep_info->num_ep_pairs].
				consumer_pipe_num);
					pair_info[pair_id].consumer_pipe_num);
				IPADBG(" producer_pipe_num %d ep_id %d\n",
				pair_info[ep_info->num_ep_pairs].
				producer_pipe_num,
				pair_info[ep_info->num_ep_pairs].ep_id);
			ep_info->num_ep_pairs++;
					pair_info[pair_id].producer_pipe_num,
					pair_info[pair_id].ep_id);
				pair_id++;
			} else {
			pair_info[ep_info->num_ep_pairs].consumer_pipe_num = -1;
				pair_info[pair_id].consumer_pipe_num = -1;
				IPADBG("ep_pair_info consumer_pipe_num %d",
				pair_info[ep_info->num_ep_pairs].
				consumer_pipe_num);
					pair_info[pair_id].consumer_pipe_num);
				IPADBG(" producer_pipe_num %d ep_id %d\n",
				pair_info[ep_info->num_ep_pairs].
				producer_pipe_num,
				pair_info[ep_info->num_ep_pairs].ep_id);
					pair_info[pair_id].producer_pipe_num,
					pair_info[pair_id].ep_id);
			}
		}
	}


	if ((!ep_info->teth_prot_valid) || (ep_info->teth_prot_valid &&
		ep_info->teth_prot == IPA_PROT_RMNET)) {
		ep_index = ipa3_get_ep_mapping(IPA_CLIENT_USB_PROD);

		if ((ep_index != -1) && ipa3_ctx->ep[ep_index].valid) {
		pair_info[ep_info->num_ep_pairs].consumer_pipe_num = ep_index;
			pair_info[pair_id].consumer_pipe_num = ep_index;
			ep_index = ipa3_get_ep_mapping(IPA_CLIENT_USB_CONS);
		if ((ep_index != -1) && (ipa3_ctx->ep[ep_index].valid)) {
			pair_info[ep_info->num_ep_pairs].producer_pipe_num =
				ep_index;
			pair_info[ep_info->num_ep_pairs].ep_id =
				IPA_USB0_EP_ID;

			if ((ep_index != -1) &&
				(ipa3_ctx->ep[ep_index].valid)) {
				pair_info[pair_id].producer_pipe_num = ep_index;
				pair_info[pair_id].ep_id = IPA_USB0_EP_ID;

				IPADBG("ep_pair_info consumer_pipe_num %d",
				pair_info[ep_info->num_ep_pairs].
				consumer_pipe_num);
					pair_info[pair_id].consumer_pipe_num);
				IPADBG(" producer_pipe_num %d ep_id %d\n",
				pair_info[ep_info->num_ep_pairs].
				producer_pipe_num,
				pair_info[ep_info->num_ep_pairs].ep_id);
			ep_info->num_ep_pairs++;
					pair_info[pair_id].producer_pipe_num,
					pair_info[pair_id].ep_id);
				pair_id++;
			} else {
			pair_info[ep_info->num_ep_pairs].consumer_pipe_num = -1;
				pair_info[pair_id].consumer_pipe_num = -1;
				IPADBG("ep_pair_info consumer_pipe_num %d",
				pair_info[ep_info->num_ep_pairs].
				consumer_pipe_num);
					pair_info[pair_id].consumer_pipe_num);
				IPADBG(" producer_pipe_num %d ep_id %d\n",
				pair_info[ep_info->num_ep_pairs].
				producer_pipe_num,
				pair_info[ep_info->num_ep_pairs].ep_id);
					pair_info[pair_id].producer_pipe_num,
					pair_info[pair_id].ep_id);
			}
		}
	}
	ep_info->num_ep_pairs = pair_id;

}

+10 −0
Original line number Diff line number Diff line
@@ -1838,6 +1838,12 @@ enum ipa_peripheral_ep_type {
	IPA_DATA_EP_TYP_BAM_DMUX,
};

enum ipa_data_ep_prot_type {
	IPA_PROT_RMNET = 0,
	IPA_PROT_RMNET_CV2X = 1,
	IPA_PROT_MAX
};

struct ipa_ep_pair_info {
	uint32_t consumer_pipe_num;
	uint32_t producer_pipe_num;
@@ -1852,6 +1858,8 @@ struct ipa_ep_pair_info {
 * @num_ep_pairs: number of ep_pairs - o/p param
 * @ep_pair_size: sizeof(ipa_ep_pair_info) * max_ep_pairs
 * @info: structure contains ep pair info
 * @teth_prot : RMNET/CV2X --i/p param
 * @teth_prot_valid - validity of i/p param protocol
 */
struct ipa_ioc_get_ep_info {
	enum ipa_peripheral_ep_type ep_type;
@@ -1859,6 +1867,8 @@ struct ipa_ioc_get_ep_info {
	uint8_t num_ep_pairs;
	uint32_t ep_pair_size;
	uintptr_t info;
	enum ipa_data_ep_prot_type teth_prot;
	uint8_t teth_prot_valid;
};

/**