Loading drivers/platform/msm/ipa/ipa_api.c +19 −0 Original line number Diff line number Diff line Loading @@ -2943,6 +2943,25 @@ struct device *ipa_get_pdev(void) } EXPORT_SYMBOL(ipa_get_pdev); int ipa_ntn_uc_reg_rdyCB(void (*ipauc_ready_cb)(void *user_data), void *user_data) { int ret; IPA_API_DISPATCH_RETURN(ipa_ntn_uc_reg_rdyCB, ipauc_ready_cb, user_data); return ret; } EXPORT_SYMBOL(ipa_ntn_uc_reg_rdyCB); void ipa_ntn_uc_dereg_rdyCB(void) { IPA_API_DISPATCH(ipa_ntn_uc_dereg_rdyCB); } EXPORT_SYMBOL(ipa_ntn_uc_dereg_rdyCB); static const struct dev_pm_ops ipa_pm_ops = { .suspend_noirq = ipa_ap_suspend, .resume_noirq = ipa_ap_resume, Loading drivers/platform/msm/ipa/ipa_api.h +6 −1 Original line number Diff line number Diff line /* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. /* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -374,6 +374,11 @@ struct ipa_api_controller { int ipa_ep_idx_dl); struct device *(*ipa_get_pdev)(void); int (*ipa_ntn_uc_reg_rdyCB)(void (*ipauc_ready_cb)(void *user_data), void *user_data); void (*ipa_ntn_uc_dereg_rdyCB)(void); }; #ifdef CONFIG_IPA Loading drivers/platform/msm/ipa/ipa_clients/ipa_uc_offload.c +38 −0 Original line number Diff line number Diff line Loading @@ -622,3 +622,41 @@ int ipa_uc_offload_cleanup(u32 clnt_hdl) return ret; } EXPORT_SYMBOL(ipa_uc_offload_cleanup); /** * ipa_uc_offload_uc_rdyCB() - To register uC ready CB if uC not * ready * @inout: [in/out] input/output parameters * from/to client * * Returns: 0 on success, negative on failure * */ int ipa_uc_offload_reg_rdyCB(struct ipa_uc_ready_params *inp) { int ret = 0; if (!inp) { IPA_UC_OFFLOAD_ERR("Invalid input\n"); return -EINVAL; } if (inp->proto == IPA_UC_NTN) ret = ipa_ntn_uc_reg_rdyCB(inp->notify, inp->priv); if (ret == -EEXIST) { inp->is_uC_ready = true; ret = 0; } else inp->is_uC_ready = false; return ret; } EXPORT_SYMBOL(ipa_uc_offload_reg_rdyCB); void ipa_uc_offload_dereg_rdyCB(enum ipa_uc_offload_proto proto) { if (proto == IPA_UC_NTN) ipa_ntn_uc_dereg_rdyCB(); } EXPORT_SYMBOL(ipa_uc_offload_dereg_rdyCB); drivers/platform/msm/ipa/ipa_common_i.h +3 −0 Original line number Diff line number Diff line Loading @@ -379,6 +379,9 @@ u8 *ipa_write_16(u16 hw, u8 *dest); u8 *ipa_write_8(u8 b, u8 *dest); u8 *ipa_pad_to_64(u8 *dest); u8 *ipa_pad_to_32(u8 *dest); int ipa_ntn_uc_reg_rdyCB(void (*ipauc_ready_cb)(void *user_data), void *user_data); void ipa_ntn_uc_dereg_rdyCB(void); const char *ipa_get_version_string(enum ipa_hw_type ver); #endif /* _IPA_COMMON_I_H_ */ drivers/platform/msm/ipa/ipa_uc_offload_common_i.h +4 −1 Original line number Diff line number Diff line /* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading @@ -21,4 +21,7 @@ int ipa_setup_uc_ntn_pipes(struct ipa_ntn_conn_in_params *in, struct ipa_ntn_conn_out_params *outp); int ipa_tear_down_uc_offload_pipes(int ipa_ep_idx_ul, int ipa_ep_idx_dl); int ipa_ntn_uc_reg_rdyCB(void (*ipauc_ready_cb)(void *user_data), void *user_data); void ipa_ntn_uc_dereg_rdyCB(void); #endif /* _IPA_UC_OFFLOAD_COMMON_I_H_ */ Loading
drivers/platform/msm/ipa/ipa_api.c +19 −0 Original line number Diff line number Diff line Loading @@ -2943,6 +2943,25 @@ struct device *ipa_get_pdev(void) } EXPORT_SYMBOL(ipa_get_pdev); int ipa_ntn_uc_reg_rdyCB(void (*ipauc_ready_cb)(void *user_data), void *user_data) { int ret; IPA_API_DISPATCH_RETURN(ipa_ntn_uc_reg_rdyCB, ipauc_ready_cb, user_data); return ret; } EXPORT_SYMBOL(ipa_ntn_uc_reg_rdyCB); void ipa_ntn_uc_dereg_rdyCB(void) { IPA_API_DISPATCH(ipa_ntn_uc_dereg_rdyCB); } EXPORT_SYMBOL(ipa_ntn_uc_dereg_rdyCB); static const struct dev_pm_ops ipa_pm_ops = { .suspend_noirq = ipa_ap_suspend, .resume_noirq = ipa_ap_resume, Loading
drivers/platform/msm/ipa/ipa_api.h +6 −1 Original line number Diff line number Diff line /* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. /* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -374,6 +374,11 @@ struct ipa_api_controller { int ipa_ep_idx_dl); struct device *(*ipa_get_pdev)(void); int (*ipa_ntn_uc_reg_rdyCB)(void (*ipauc_ready_cb)(void *user_data), void *user_data); void (*ipa_ntn_uc_dereg_rdyCB)(void); }; #ifdef CONFIG_IPA Loading
drivers/platform/msm/ipa/ipa_clients/ipa_uc_offload.c +38 −0 Original line number Diff line number Diff line Loading @@ -622,3 +622,41 @@ int ipa_uc_offload_cleanup(u32 clnt_hdl) return ret; } EXPORT_SYMBOL(ipa_uc_offload_cleanup); /** * ipa_uc_offload_uc_rdyCB() - To register uC ready CB if uC not * ready * @inout: [in/out] input/output parameters * from/to client * * Returns: 0 on success, negative on failure * */ int ipa_uc_offload_reg_rdyCB(struct ipa_uc_ready_params *inp) { int ret = 0; if (!inp) { IPA_UC_OFFLOAD_ERR("Invalid input\n"); return -EINVAL; } if (inp->proto == IPA_UC_NTN) ret = ipa_ntn_uc_reg_rdyCB(inp->notify, inp->priv); if (ret == -EEXIST) { inp->is_uC_ready = true; ret = 0; } else inp->is_uC_ready = false; return ret; } EXPORT_SYMBOL(ipa_uc_offload_reg_rdyCB); void ipa_uc_offload_dereg_rdyCB(enum ipa_uc_offload_proto proto) { if (proto == IPA_UC_NTN) ipa_ntn_uc_dereg_rdyCB(); } EXPORT_SYMBOL(ipa_uc_offload_dereg_rdyCB);
drivers/platform/msm/ipa/ipa_common_i.h +3 −0 Original line number Diff line number Diff line Loading @@ -379,6 +379,9 @@ u8 *ipa_write_16(u16 hw, u8 *dest); u8 *ipa_write_8(u8 b, u8 *dest); u8 *ipa_pad_to_64(u8 *dest); u8 *ipa_pad_to_32(u8 *dest); int ipa_ntn_uc_reg_rdyCB(void (*ipauc_ready_cb)(void *user_data), void *user_data); void ipa_ntn_uc_dereg_rdyCB(void); const char *ipa_get_version_string(enum ipa_hw_type ver); #endif /* _IPA_COMMON_I_H_ */
drivers/platform/msm/ipa/ipa_uc_offload_common_i.h +4 −1 Original line number Diff line number Diff line /* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading @@ -21,4 +21,7 @@ int ipa_setup_uc_ntn_pipes(struct ipa_ntn_conn_in_params *in, struct ipa_ntn_conn_out_params *outp); int ipa_tear_down_uc_offload_pipes(int ipa_ep_idx_ul, int ipa_ep_idx_dl); int ipa_ntn_uc_reg_rdyCB(void (*ipauc_ready_cb)(void *user_data), void *user_data); void ipa_ntn_uc_dereg_rdyCB(void); #endif /* _IPA_UC_OFFLOAD_COMMON_I_H_ */