Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40075faa authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

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

parents e1be2792 833f1ea3
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -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)
{
+40 −0
Original line number Diff line number Diff line
@@ -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)
{
}
+2 −0
Original line number Diff line number Diff line
@@ -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 {