msm: ipa: add api for getting IPA pdev

Add API intended for IPA kernel tests.
This API will allow kernel tests to use IPA driver
pdev struct by returning a pointer to this struct.

CRs-Fixed: 1077422
Change-Id: Ideeaa89f15b8895ce7256fed9f614d5c39ef105f
Signed-off-by: Amir Levy <alevy@codeaurora.org>
Signed-off-by: Gidon Studinski <gidons@codeaurora.org>
This commit is contained in:
Amir Levy 2016-11-07 16:14:54 +02:00 committed by Gerrit - the friendly Code Review server
parent 24d0c1f91e
commit 9d77cc11b3
6 changed files with 50 additions and 0 deletions

View file

@ -2907,6 +2907,22 @@ int ipa_tear_down_uc_offload_pipes(int ipa_ep_idx_ul,
return ret; return ret;
} }
/**
* ipa_get_pdev() - return a pointer to IPA dev struct
*
* Return value: a pointer to IPA dev struct
*
*/
struct device *ipa_get_pdev(void)
{
struct device *ret;
IPA_API_DISPATCH_RETURN_PTR(ipa_get_pdev);
return ret;
}
EXPORT_SYMBOL(ipa_get_pdev);
static const struct dev_pm_ops ipa_pm_ops = { static const struct dev_pm_ops ipa_pm_ops = {
.suspend_noirq = ipa_ap_suspend, .suspend_noirq = ipa_ap_suspend,
.resume_noirq = ipa_ap_resume, .resume_noirq = ipa_ap_resume,

View file

@ -369,6 +369,8 @@ struct ipa_api_controller {
int (*ipa_tear_down_uc_offload_pipes)(int ipa_ep_idx_ul, int (*ipa_tear_down_uc_offload_pipes)(int ipa_ep_idx_ul,
int ipa_ep_idx_dl); int ipa_ep_idx_dl);
struct device *(*ipa_get_pdev)(void);
}; };
#ifdef CONFIG_IPA #ifdef CONFIG_IPA

View file

@ -1847,4 +1847,5 @@ int ipa_ntn_init(void);
int ipa2_get_ntn_stats(struct IpaHwStatsNTNInfoData_t *stats); int ipa2_get_ntn_stats(struct IpaHwStatsNTNInfoData_t *stats);
int ipa2_register_ipa_ready_cb(void (*ipa_ready_cb)(void *), int ipa2_register_ipa_ready_cb(void (*ipa_ready_cb)(void *),
void *user_data); void *user_data);
struct device *ipa2_get_pdev(void);
#endif /* _IPA_I_H_ */ #endif /* _IPA_I_H_ */

View file

@ -5102,6 +5102,7 @@ int ipa2_bind_api_controller(enum ipa_hw_type ipa_hw_type,
api_ctrl->ipa_setup_uc_ntn_pipes = ipa2_setup_uc_ntn_pipes; api_ctrl->ipa_setup_uc_ntn_pipes = ipa2_setup_uc_ntn_pipes;
api_ctrl->ipa_tear_down_uc_offload_pipes = api_ctrl->ipa_tear_down_uc_offload_pipes =
ipa2_tear_down_uc_offload_pipes; ipa2_tear_down_uc_offload_pipes;
api_ctrl->ipa_get_pdev = ipa2_get_pdev;
return 0; return 0;
} }
@ -5181,3 +5182,17 @@ void ipa_suspend_apps_pipes(bool suspend)
} }
} }
} }
/**
* ipa2_get_pdev() - return a pointer to IPA dev struct
*
* Return value: a pointer to IPA dev struct
*
*/
struct device *ipa2_get_pdev(void)
{
if (!ipa_ctx)
return NULL;
return ipa_ctx->pdev;
}

View file

@ -2027,4 +2027,5 @@ int ipa3_ntn_init(void);
int ipa3_get_ntn_stats(struct Ipa3HwStatsNTNInfoData_t *stats); int ipa3_get_ntn_stats(struct Ipa3HwStatsNTNInfoData_t *stats);
struct dentry *ipa_debugfs_get_root(void); struct dentry *ipa_debugfs_get_root(void);
bool ipa3_is_msm_device(void); bool ipa3_is_msm_device(void);
struct device *ipa3_get_pdev(void);
#endif /* _IPA3_I_H_ */ #endif /* _IPA3_I_H_ */

View file

@ -3199,6 +3199,7 @@ int ipa3_bind_api_controller(enum ipa_hw_type ipa_hw_type,
api_ctrl->ipa_setup_uc_ntn_pipes = ipa3_setup_uc_ntn_pipes; api_ctrl->ipa_setup_uc_ntn_pipes = ipa3_setup_uc_ntn_pipes;
api_ctrl->ipa_tear_down_uc_offload_pipes = api_ctrl->ipa_tear_down_uc_offload_pipes =
ipa3_tear_down_uc_offload_pipes; ipa3_tear_down_uc_offload_pipes;
api_ctrl->ipa_get_pdev = ipa3_get_pdev;
return 0; return 0;
} }
@ -3637,3 +3638,17 @@ bool ipa3_is_msm_device(void)
return false; return false;
} }
/**
* ipa3_get_pdev() - return a pointer to IPA dev struct
*
* Return value: a pointer to IPA dev struct
*
*/
struct device *ipa3_get_pdev(void)
{
if (!ipa3_ctx)
return NULL;
return ipa3_ctx->pdev;
}