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

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

Merge "msm: ipa4: Change uC EE enum and add new uC protocol struct for IPA4.0"

parents 1b45f907 a7f27f32
Loading
Loading
Loading
Loading
+30 −9
Original line number Diff line number Diff line
@@ -204,6 +204,7 @@ static int ipa3_uc_send_ntn_setup_pipe_cmd(
	struct ipa_mem_buffer cmd;
	struct Ipa3HwNtnSetUpCmdData_t *Ntn_params;
	struct IpaHwOffloadSetUpCmdData_t *cmd_data;
	struct IpaHwOffloadSetUpCmdData_t_v4_0 *cmd_data_v4_0;

	if (ntn_info == NULL) {
		IPAERR("invalid input\n");
@@ -225,7 +226,9 @@ static int ipa3_uc_send_ntn_setup_pipe_cmd(
	IPADBG("num_buffers = %d\n", ntn_info->num_buffers);
	IPADBG("data_buff_size = %d\n", ntn_info->data_buff_size);
	IPADBG("tail_ptr_base_pa = 0x%pa\n", &ntn_info->ntn_reg_base_ptr_pa);

	if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_0)
		cmd.size = sizeof(*cmd_data_v4_0);
	else
		cmd.size = sizeof(*cmd_data);
	cmd.base = dma_alloc_coherent(ipa3_ctx->uc_pdev, cmd.size,
			&cmd.phys_base, GFP_KERNEL);
@@ -234,10 +237,17 @@ static int ipa3_uc_send_ntn_setup_pipe_cmd(
		return -ENOMEM;
	}

	if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_0) {
		cmd_data_v4_0 = (struct IpaHwOffloadSetUpCmdData_t_v4_0 *)
			cmd.base;
		cmd_data_v4_0->protocol = IPA_HW_FEATURE_NTN;
		Ntn_params = &cmd_data_v4_0->SetupCh_params.NtnSetupCh_params;
	} else {
		cmd_data = (struct IpaHwOffloadSetUpCmdData_t *)cmd.base;
		cmd_data->protocol = IPA_HW_FEATURE_NTN;

		Ntn_params = &cmd_data->SetupCh_params.NtnSetupCh_params;
	}

	Ntn_params->ring_base_pa = ntn_info->ring_base_pa;
	Ntn_params->buff_pool_base_pa = ntn_info->buff_pool_base_pa;
	Ntn_params->ntn_ring_size = ntn_info->ntn_ring_size;
@@ -372,6 +382,7 @@ int ipa3_tear_down_uc_offload_pipes(int ipa_ep_idx_ul,
	struct ipa_mem_buffer cmd;
	struct ipa3_ep_context *ep_ul, *ep_dl;
	struct IpaHwOffloadCommonChCmdData_t *cmd_data;
	struct IpaHwOffloadCommonChCmdData_t_v4_0 *cmd_data_v4_0;
	union Ipa3HwNtnCommonChCmdData_t *tear;
	int result = 0;

@@ -388,6 +399,9 @@ int ipa3_tear_down_uc_offload_pipes(int ipa_ep_idx_ul,
		return -EFAULT;
	}

	if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_0)
		cmd.size = sizeof(*cmd_data_v4_0);
	else
		cmd.size = sizeof(*cmd_data);
	cmd.base = dma_alloc_coherent(ipa3_ctx->uc_pdev, cmd.size,
		&cmd.phys_base, GFP_KERNEL);
@@ -397,9 +411,16 @@ int ipa3_tear_down_uc_offload_pipes(int ipa_ep_idx_ul,
	}

	IPA_ACTIVE_CLIENTS_INC_SIMPLE();
	if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_0) {
		cmd_data_v4_0 = (struct IpaHwOffloadCommonChCmdData_t_v4_0 *)
			cmd.base;
		cmd_data_v4_0->protocol = IPA_HW_FEATURE_NTN;
		tear = &cmd_data_v4_0->CommonCh_params.NtnCommonCh_params;
	} else {
		cmd_data = (struct IpaHwOffloadCommonChCmdData_t *)cmd.base;
		cmd_data->protocol = IPA_HW_FEATURE_NTN;
		tear = &cmd_data->CommonCh_params.NtnCommonCh_params;
	}

	/* teardown the DL pipe */
	ipa3_disable_data_path(ipa_ep_idx_dl);
+16 −0
Original line number Diff line number Diff line
@@ -535,6 +535,16 @@ struct IpaHwOffloadSetUpCmdData_t {
	union IpaHwSetUpCmd SetupCh_params;
} __packed;

/**
 * struct IpaHwOffloadSetUpCmdData_t_v4_0  -
 *
 *
 */
struct IpaHwOffloadSetUpCmdData_t_v4_0 {
	u32 protocol;
	union IpaHwSetUpCmd SetupCh_params;
} __packed;

/**
 * struct IpaHwCommonChCmd  - Structure holding the parameters
 * for IPA_CPU_2_HW_CMD_OFFLOAD_TEAR_DOWN
@@ -550,4 +560,10 @@ struct IpaHwOffloadCommonChCmdData_t {
	union IpaHwCommonChCmd CommonCh_params;
} __packed;

struct IpaHwOffloadCommonChCmdData_t_v4_0 {
	u32 protocol;
	union IpaHwCommonChCmd CommonCh_params;
} __packed;


#endif /* _IPA_UC_OFFLOAD_I_H_ */
+1 −1
Original line number Diff line number Diff line
@@ -408,7 +408,7 @@ static const u32 ipa3_rsrc_rx_grp_hps_weight_config
enum ipa_ees {
	IPA_EE_AP = 0,
	IPA_EE_Q6 = 1,
	IPA_EE_UC = 3,
	IPA_EE_UC = 2,
};

struct ipa_ep_configuration {