Loading drivers/platform/msm/ipa/ipa_v3/ipa_uc_ntn.c +30 −9 Original line number Diff line number Diff line Loading @@ -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"); Loading @@ -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); Loading @@ -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; Loading Loading @@ -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; Loading @@ -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); Loading @@ -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); Loading drivers/platform/msm/ipa/ipa_v3/ipa_uc_offload_i.h +16 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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_ */ drivers/platform/msm/ipa/ipa_v3/ipa_utils.c +1 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading
drivers/platform/msm/ipa/ipa_v3/ipa_uc_ntn.c +30 −9 Original line number Diff line number Diff line Loading @@ -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"); Loading @@ -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); Loading @@ -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; Loading Loading @@ -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; Loading @@ -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); Loading @@ -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); Loading
drivers/platform/msm/ipa/ipa_v3/ipa_uc_offload_i.h +16 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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_ */
drivers/platform/msm/ipa/ipa_v3/ipa_utils.c +1 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading