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

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

Merge "msm: ipa: add mechanism to configure aggregation timeout"

parents 1fb9e402 f87dd290
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -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)
{
+9 −0
Original line number Diff line number Diff line
@@ -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 */
+11 −0
Original line number Diff line number Diff line
@@ -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_ */