Merge "msm_rmnet.h: Add new ioctls for rmnet to reg/unreg for notification"

This commit is contained in:
qctecmdr 2021-10-26 03:14:01 -07:00 • committed by Gerrit - the friendly Code Review server
commit 40075faa5b
3 changed files with 68 additions and 0 deletions

View file

@ -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,
@ -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();
@ -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)
{

View file

@ -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
@ -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);
/*
@ -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)
{
}

View file

@ -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 {