Loading drivers/platform/msm/ipa_fmwk/ipa_fmwk.c +26 −0 Original line number Diff line number Diff line Loading @@ -225,6 +225,10 @@ struct ipa_fmwk_contex { int (*ipa_unregister_rmnet_ll_cb)(void); int (*ipa_register_notifier)(void *fn_ptr); int (*ipa_unregister_notifier)(void *fn_ptr); /* ipa_usb APIs */ int (*ipa_usb_init_teth_prot)(enum ipa_usb_teth_prot teth_prot, struct ipa_usb_teth_params *teth_params, Loading Loading @@ -552,6 +556,8 @@ int ipa_fmwk_register_ipa(const struct ipa_core_data *in) ipa_fmwk_ctx->ipa_register_rmnet_ll_cb = in->ipa_register_rmnet_ll_cb; ipa_fmwk_ctx->ipa_unregister_rmnet_ll_cb = in->ipa_unregister_rmnet_ll_cb; ipa_fmwk_ctx->ipa_register_notifier = in->ipa_unregister_notifier; ipa_fmwk_ctx->ipa_ready = true; ipa_trigger_ipa_ready_cbs(); Loading Loading @@ -1051,6 +1057,26 @@ int ipa_unregister_rmnet_ll_cb(void) } EXPORT_SYMBOL(ipa_unregister_rmnet_ll_cb); int ipa_register_notifier(void *fn_ptr) { int ret; IPA_FMWK_DISPATCH_RETURN(ipa_register_notifier, fn_ptr); return ret; } EXPORT_SYMBOL(ipa_register_notifier); int ipa_unregister_notifier(void *fn_ptr) { int ret; IPA_FMWK_DISPATCH_RETURN(ipa_unregister_notifier, fn_ptr); return ret; } EXPORT_SYMBOL(ipa_unregister_notifier); /* registration API for IPA usb module */ int ipa_fmwk_register_ipa_usb(const struct ipa_usb_data *in) { Loading include/linux/ipa.h +40 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,12 @@ #define IPA_SOCKsv5_ADD_V4_V6_COM_PM 2 #define IPA_SOCKsv5_ADD_V6_V6_COM_PM 3 /* Notifiers for rmnet driver */ #define BUFF_ABOVE_HIGH_THRESHOLD_FOR_DEFAULT_PIPE 1 #define BUFF_ABOVE_HIGH_THRESHOLD_FOR_COAL_PIPE 2 #define BUFF_BELOW_LOW_THRESHOLD_FOR_DEFAULT_PIPE 3 #define BUFF_BELOW_LOW_THRESHOLD_FOR_COAL_PIPE 4 /** * enum ipa_transport_type * transport type: either GSI or SPS Loading Loading @@ -1577,6 +1583,24 @@ int ipa_rmnet_ctl_xmit(struct sk_buff *skb); */ int ipa_rmnet_ll_xmit(struct sk_buff *skb); /* * ipa_register_notifier - Register for IPA atomic notifier * * @fn_ptr - Function pointer to get the notification * * This funciton will return 0 on success, -EAGAIN if reg fails. */ int ipa_register_notifier(void *fn_ptr); /* * ipa_unregister_notifier - Unregister for IPA atomic notifier * * @fn_ptr - Function pointer to get the notification * * This funciton will return 0 on success, -EAGAIN if reg fails. */ int ipa_unregister_notifier(void *fn_ptr); void ipa_free_skb(struct ipa_rx_data *data); /* Loading Loading @@ -2008,6 +2032,22 @@ static inline int ipa_rmnet_ll_xmit(struct sk_buff *skb) return -EPERM; } /* * Rmnet Notifier register */ static inline int ipa_register_notifier(struct sk_buff *skb) { return -EPERM; } /* * Rmnet Notifier unregister */ static inline int ipa_unregister_notifier(struct sk_buff *skb) { return -EPERM; } static inline void ipa_free_skb(struct ipa_rx_data *rx_in) { } Loading include/linux/ipa_fmwk.h +2 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,8 @@ struct ipa_core_data { void *user_data3); int (*ipa_unregister_rmnet_ll_cb)(void); int (*ipa_register_notifier)(void *fn_ptr); int (*ipa_unregister_notifier)(void *fn_ptr); }; struct ipa_usb_data { Loading Loading
drivers/platform/msm/ipa_fmwk/ipa_fmwk.c +26 −0 Original line number Diff line number Diff line Loading @@ -225,6 +225,10 @@ struct ipa_fmwk_contex { int (*ipa_unregister_rmnet_ll_cb)(void); int (*ipa_register_notifier)(void *fn_ptr); int (*ipa_unregister_notifier)(void *fn_ptr); /* ipa_usb APIs */ int (*ipa_usb_init_teth_prot)(enum ipa_usb_teth_prot teth_prot, struct ipa_usb_teth_params *teth_params, Loading Loading @@ -552,6 +556,8 @@ int ipa_fmwk_register_ipa(const struct ipa_core_data *in) ipa_fmwk_ctx->ipa_register_rmnet_ll_cb = in->ipa_register_rmnet_ll_cb; ipa_fmwk_ctx->ipa_unregister_rmnet_ll_cb = in->ipa_unregister_rmnet_ll_cb; ipa_fmwk_ctx->ipa_register_notifier = in->ipa_unregister_notifier; ipa_fmwk_ctx->ipa_ready = true; ipa_trigger_ipa_ready_cbs(); Loading Loading @@ -1051,6 +1057,26 @@ int ipa_unregister_rmnet_ll_cb(void) } EXPORT_SYMBOL(ipa_unregister_rmnet_ll_cb); int ipa_register_notifier(void *fn_ptr) { int ret; IPA_FMWK_DISPATCH_RETURN(ipa_register_notifier, fn_ptr); return ret; } EXPORT_SYMBOL(ipa_register_notifier); int ipa_unregister_notifier(void *fn_ptr) { int ret; IPA_FMWK_DISPATCH_RETURN(ipa_unregister_notifier, fn_ptr); return ret; } EXPORT_SYMBOL(ipa_unregister_notifier); /* registration API for IPA usb module */ int ipa_fmwk_register_ipa_usb(const struct ipa_usb_data *in) { Loading
include/linux/ipa.h +40 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,12 @@ #define IPA_SOCKsv5_ADD_V4_V6_COM_PM 2 #define IPA_SOCKsv5_ADD_V6_V6_COM_PM 3 /* Notifiers for rmnet driver */ #define BUFF_ABOVE_HIGH_THRESHOLD_FOR_DEFAULT_PIPE 1 #define BUFF_ABOVE_HIGH_THRESHOLD_FOR_COAL_PIPE 2 #define BUFF_BELOW_LOW_THRESHOLD_FOR_DEFAULT_PIPE 3 #define BUFF_BELOW_LOW_THRESHOLD_FOR_COAL_PIPE 4 /** * enum ipa_transport_type * transport type: either GSI or SPS Loading Loading @@ -1577,6 +1583,24 @@ int ipa_rmnet_ctl_xmit(struct sk_buff *skb); */ int ipa_rmnet_ll_xmit(struct sk_buff *skb); /* * ipa_register_notifier - Register for IPA atomic notifier * * @fn_ptr - Function pointer to get the notification * * This funciton will return 0 on success, -EAGAIN if reg fails. */ int ipa_register_notifier(void *fn_ptr); /* * ipa_unregister_notifier - Unregister for IPA atomic notifier * * @fn_ptr - Function pointer to get the notification * * This funciton will return 0 on success, -EAGAIN if reg fails. */ int ipa_unregister_notifier(void *fn_ptr); void ipa_free_skb(struct ipa_rx_data *data); /* Loading Loading @@ -2008,6 +2032,22 @@ static inline int ipa_rmnet_ll_xmit(struct sk_buff *skb) return -EPERM; } /* * Rmnet Notifier register */ static inline int ipa_register_notifier(struct sk_buff *skb) { return -EPERM; } /* * Rmnet Notifier unregister */ static inline int ipa_unregister_notifier(struct sk_buff *skb) { return -EPERM; } static inline void ipa_free_skb(struct ipa_rx_data *rx_in) { } Loading
include/linux/ipa_fmwk.h +2 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,8 @@ struct ipa_core_data { void *user_data3); int (*ipa_unregister_rmnet_ll_cb)(void); int (*ipa_register_notifier)(void *fn_ptr); int (*ipa_unregister_notifier)(void *fn_ptr); }; struct ipa_usb_data { Loading