mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 15:49:17 -04:00
msm: ipa: add mechanism to configure aggregation timeout
Make changes to configure aggregation timeout for WAN/LAN and RNDIS pipes to support low latency use cases. Change-Id: I58d5c99cd1672f184ca2c8f55b5ecdd399804184 Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
This commit is contained in:
parent
4b36c63809
commit
f87dd2902a
3 changed files with 35 additions and 0 deletions
|
|
@ -386,6 +386,8 @@ struct ipa_fmwk_contex {
|
|||
int (*ipa_eth_client_conn_evt)(struct ipa_ecm_msg *msg);
|
||||
|
||||
int (*ipa_eth_client_disconn_evt)(struct ipa_ecm_msg *msg);
|
||||
int (*ipa_get_default_aggr_time_limit)(enum ipa_client_type client,
|
||||
u32 *default_aggr_time_limit);
|
||||
};
|
||||
|
||||
static struct ipa_fmwk_contex *ipa_fmwk_ctx;
|
||||
|
|
@ -486,6 +488,7 @@ int ipa_fmwk_register_ipa(const struct ipa_core_data *in)
|
|||
ipa_fmwk_ctx->ipa_register_rmnet_ctl_cb = in->ipa_register_rmnet_ctl_cb;
|
||||
ipa_fmwk_ctx->ipa_unregister_rmnet_ctl_cb =
|
||||
in->ipa_unregister_rmnet_ctl_cb;
|
||||
ipa_fmwk_ctx->ipa_get_default_aggr_time_limit = in->ipa_get_default_aggr_time_limit;
|
||||
|
||||
ipa_fmwk_ctx->ipa_ready = true;
|
||||
ipa_trigger_ipa_ready_cbs();
|
||||
|
|
@ -2043,6 +2046,18 @@ int ipa_eth_client_disconn_evt(struct ipa_ecm_msg *msg)
|
|||
}
|
||||
EXPORT_SYMBOL(ipa_eth_client_disconn_evt);
|
||||
|
||||
int ipa_get_default_aggr_time_limit(enum ipa_client_type client,
|
||||
u32 *default_aggr_time_limit)
|
||||
{
|
||||
int ret;
|
||||
|
||||
IPA_FMWK_DISPATCH_RETURN(ipa_get_default_aggr_time_limit,
|
||||
client, default_aggr_time_limit);
|
||||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa_get_default_aggr_time_limit);
|
||||
|
||||
/* module functions */
|
||||
static int __init ipa_fmwk_init(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1714,6 +1714,9 @@ typedef void (*ipa_rmnet_ctl_stop_cb)(void *user_data);
|
|||
|
||||
typedef void (*ipa_rmnet_ctl_rx_notify_cb)(void *user_data, void *rx_data);
|
||||
|
||||
int ipa_get_default_aggr_time_limit(enum ipa_client_type client,
|
||||
u32 *default_aggr_time_limit);
|
||||
|
||||
/**
|
||||
* ipa_register_ipa_ready_cb() - register a callback to be invoked
|
||||
* when IPA core driver initialization is complete.
|
||||
|
|
@ -2100,6 +2103,12 @@ static inline int ipa_uc_reg_rdyCB(
|
|||
return -EPERM;
|
||||
}
|
||||
|
||||
static inline int ipa_get_default_aggr_time_limit(enum ipa_client_type client,
|
||||
u32 *default_aggr_time_limit)
|
||||
{
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
#endif /* IS_ENABLED(CONFIG_IPA3) */
|
||||
|
||||
/* stubs - to be removed once dependent drivers remove references */
|
||||
|
|
|
|||
|
|
@ -106,6 +106,8 @@ struct ipa_core_data {
|
|||
void *user_data3);
|
||||
|
||||
int (*ipa_unregister_rmnet_ctl_cb)(void);
|
||||
int (*ipa_get_default_aggr_time_limit)(enum ipa_client_type client,
|
||||
u32 *default_aggr_time_limit);
|
||||
};
|
||||
|
||||
struct ipa_usb_data {
|
||||
|
|
@ -320,6 +322,9 @@ int ipa_fmwk_register_ipa_eth(const struct ipa_eth_data *in);
|
|||
|
||||
int ipa_fmwk_register_ipa_qdss(const struct ipa_qdss_data *in);
|
||||
|
||||
int ipa_get_default_aggr_time_limit(enum ipa_client_type client,
|
||||
u32 *default_aggr_time_limit);
|
||||
|
||||
#else /* IS_ENABLED(CONFIG_IPA3) */
|
||||
|
||||
int ipa_fmwk_register_ipa(const struct ipa_core_data *in)
|
||||
|
|
@ -367,6 +372,12 @@ int ipa_fmwk_register_ipa_eth(const struct ipa_eth_data *in)
|
|||
return -EPERM;
|
||||
}
|
||||
|
||||
static inline int ipa_get_default_aggr_time_limit(enum ipa_client_type client,
|
||||
u32 *default_aggr_time_limit)
|
||||
{
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
#endif /* IS_ENABLED(CONFIG_IPA3) */
|
||||
|
||||
#endif /* _IPA_FMWK_H_ */
|
||||
|
|
|
|||
Loading…
Reference in a new issue