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

Commit 98dbd897 authored by Package Warehouse Build User's avatar Package Warehouse Build User Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: ipa3: Adding IPA defconfig WLAN dependent on this flag" into msm-5.4

parents 1f316795 af46da57
Loading
Loading
Loading
Loading
+159 −1
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2015-2021, The Linux Foundation. All rights reserved.
 */

#include <linux/ipa_fmwk.h>
@@ -203,6 +203,14 @@ struct ipa_fmwk_contex {

	int (*ipa_unregister_rmnet_ctl_cb)(void);

	int (*ipa_add_hdr)(struct ipa_ioc_add_hdr *hdrs);

	int (*ipa_del_hdr)(struct ipa_ioc_del_hdr *hdls);

	int (*ipa_get_hdr)(struct ipa_ioc_get_hdr *lookup);

	int (*ipa_deregister_intf)(const char *name);

	/* ipa_usb APIs */
	int (*ipa_usb_init_teth_prot)(enum ipa_usb_teth_prot teth_prot,
		struct ipa_usb_teth_params *teth_params,
@@ -270,6 +278,23 @@ struct ipa_fmwk_contex {

	int (*ipa_get_wdi_version)(void);

	int (*ipa_enable_wdi_pipe)(u32 clnt_hdl);

	int (*ipa_disable_wdi_pipe)(u32 clnt_hdl);

	int (*ipa_resume_wdi_pipe)(u32 clnt_hdl);

	int (*ipa_suspend_wdi_pipe)(u32 clnt_hdl);

	int (*ipa_connect_wdi_pipe)(struct ipa_wdi_in_params *in,
			struct ipa_wdi_out_params *out);

	int (*ipa_disconnect_wdi_pipe)(u32 clnt_hdl);

	int (*ipa_reg_uc_rdyCB)(struct ipa_wdi_uc_ready_params *param);

	int (*ipa_dereg_uc_rdyCB)(void);

	/* ipa_gsb APIs*/
	int (*ipa_bridge_init)(struct ipa_bridge_init_params *params, u32 *hdl);

@@ -475,6 +500,10 @@ int ipa_fmwk_register_ipa(const struct ipa_core_data *in)
	ipa_fmwk_ctx->ipa_add_rt_rule = in->ipa_add_rt_rule;
	ipa_fmwk_ctx->ipa_put_rt_tbl = in->ipa_put_rt_tbl;
	ipa_fmwk_ctx->ipa_register_intf = in->ipa_register_intf;
	ipa_fmwk_ctx->ipa_deregister_intf = in->ipa_deregister_intf;
	ipa_fmwk_ctx->ipa_add_hdr = in->ipa_add_hdr;
	ipa_fmwk_ctx->ipa_del_hdr = in->ipa_del_hdr;
	ipa_fmwk_ctx->ipa_get_hdr = in->ipa_get_hdr;
	ipa_fmwk_ctx->ipa_set_aggr_mode = in->ipa_set_aggr_mode;
	ipa_fmwk_ctx->ipa_set_qcncm_ndp_sig = in->ipa_set_qcncm_ndp_sig;
	ipa_fmwk_ctx->ipa_set_single_ndp_per_mbim =
@@ -489,6 +518,14 @@ int ipa_fmwk_register_ipa(const struct ipa_core_data *in)
	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_enable_wdi_pipe = in->ipa_enable_wdi_pipe;
	ipa_fmwk_ctx->ipa_disable_wdi_pipe = in->ipa_disable_wdi_pipe;
	ipa_fmwk_ctx->ipa_resume_wdi_pipe = in->ipa_resume_wdi_pipe;
	ipa_fmwk_ctx->ipa_suspend_wdi_pipe = in->ipa_suspend_wdi_pipe;
	ipa_fmwk_ctx->ipa_connect_wdi_pipe = in->ipa_connect_wdi_pipe;
	ipa_fmwk_ctx->ipa_disconnect_wdi_pipe = in->ipa_disconnect_wdi_pipe;
	ipa_fmwk_ctx->ipa_reg_uc_rdyCB = in->ipa_uc_reg_rdyCB;
	ipa_fmwk_ctx->ipa_dereg_uc_rdyCB = in->ipa_uc_dereg_rdyCB;

	ipa_fmwk_ctx->ipa_ready = true;
	ipa_trigger_ipa_ready_cbs();
@@ -793,6 +830,46 @@ int ipa_register_intf(const char *name,
}
EXPORT_SYMBOL(ipa_register_intf);

int ipa_deregister_intf(const char *name)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_deregister_intf, name);

	return ret;
}
EXPORT_SYMBOL(ipa_deregister_intf);

int ipa_add_hdr(struct ipa_ioc_add_hdr *hdrs)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_add_hdr, hdrs);

	return ret;
}
EXPORT_SYMBOL(ipa_add_hdr);

int ipa_del_hdr(struct ipa_ioc_del_hdr *hdls)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_del_hdr, hdls);

	return ret;
}
EXPORT_SYMBOL(ipa_del_hdr);

int ipa_get_hdr(struct ipa_ioc_get_hdr *lookup)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_get_hdr, lookup);

	return ret;
}
EXPORT_SYMBOL(ipa_get_hdr);

int ipa_set_aggr_mode(enum ipa_aggr_mode mode)
{
	int ret;
@@ -1212,6 +1289,87 @@ int ipa_get_wdi_version(void)
}
EXPORT_SYMBOL(ipa_get_wdi_version);

int ipa_enable_wdi_pipe(u32 clnt_hdl)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_enable_wdi_pipe, clnt_hdl);

	return ret;
}
EXPORT_SYMBOL(ipa_enable_wdi_pipe);

int ipa_disable_wdi_pipe(u32 clnt_hdl)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_disable_wdi_pipe, clnt_hdl);

	return ret;
}
EXPORT_SYMBOL(ipa_disable_wdi_pipe);

int ipa_resume_wdi_pipe(u32 clnt_hdl)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_resume_wdi_pipe, clnt_hdl);

	return ret;
}
EXPORT_SYMBOL(ipa_resume_wdi_pipe);

int ipa_suspend_wdi_pipe(u32 clnt_hdl)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_suspend_wdi_pipe, clnt_hdl);

	return ret;
}
EXPORT_SYMBOL(ipa_suspend_wdi_pipe);

int ipa_connect_wdi_pipe(struct ipa_wdi_in_params *in,
		struct ipa_wdi_out_params *out)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_connect_wdi_pipe, in, out);

	return ret;
}
EXPORT_SYMBOL(ipa_connect_wdi_pipe);

int ipa_disconnect_wdi_pipe(u32 clnt_hdl)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_disconnect_wdi_pipe, clnt_hdl);

	return ret;
}
EXPORT_SYMBOL(ipa_disconnect_wdi_pipe);

int ipa_reg_uc_rdyCB(struct ipa_wdi_uc_ready_params *param)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_reg_uc_rdyCB, param);

	return ret;
}
EXPORT_SYMBOL(ipa_reg_uc_rdyCB);

int ipa_dereg_uc_rdyCB(void)
{
	int ret;

	IPA_FMWK_DISPATCH_RETURN(ipa_dereg_uc_rdyCB);

	return ret;
}
EXPORT_SYMBOL(ipa_dereg_uc_rdyCB);

int ipa_wdi_bw_monitor(struct ipa_wdi_bw_info *info)
{
	int ret;
+6 −21
Original line number Diff line number Diff line
@@ -1412,6 +1412,7 @@ int ipa_put_rt_tbl(u32 rt_tbl_hdl);
int ipa_register_intf(const char *name,
	const struct ipa_tx_intf *tx,
	const struct ipa_rx_intf *rx);
int ipa_deregister_intf(const char *name);

/*
 * Aggregation
@@ -1586,7 +1587,11 @@ int ipa_enable_wdi_pipe(u32 clnt_hdl);
int ipa_disable_wdi_pipe(u32 clnt_hdl);
int ipa_resume_wdi_pipe(u32 clnt_hdl);
int ipa_suspend_wdi_pipe(u32 clnt_hdl);

int ipa_reg_uc_rdyCB(struct ipa_wdi_uc_ready_params *param);
int ipa_dereg_uc_rdyCB(void);
int ipa_add_hdr(struct ipa_ioc_add_hdr *hdrs);
int ipa_del_hdr(struct ipa_ioc_del_hdr *hdls);
int ipa_get_hdr(struct ipa_ioc_get_hdr *lookup);
/**
 * ipa_get_wdi_stats() - Query WDI statistics from uc
 * @stats:	[inout] stats blob from client populated by driver
@@ -2338,26 +2343,6 @@ static inline int ipa_disable_apps_wan_cons_deaggr(
	return -EPERM;
}

static inline int ipa_add_hdr(struct ipa_ioc_add_hdr *hdrs)
{
	return -EPERM;
}

static inline int ipa_del_hdr(struct ipa_ioc_del_hdr *hdls)
{
	return -EPERM;
}

static inline int ipa_get_hdr(struct ipa_ioc_get_hdr *lookup)
{
	return -EPERM;
}

static inline int ipa_deregister_intf(const char *name)
{
	return -EPERM;
}

static inline int ipa_uc_dereg_rdyCB(void)
{
	return -EPERM;
+15 −1
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2018 - 2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2018 - 2021, The Linux Foundation. All rights reserved.
 */

#ifndef _IPA_FMWK_H_
@@ -108,6 +108,20 @@ struct ipa_core_data {
	int (*ipa_unregister_rmnet_ctl_cb)(void);
	int (*ipa_get_default_aggr_time_limit)(enum ipa_client_type client,
		u32 *default_aggr_time_limit);
	int (*ipa_add_hdr)(struct ipa_ioc_add_hdr *hdrs);
	int (*ipa_del_hdr)(struct ipa_ioc_del_hdr *hdls);
	int (*ipa_get_hdr)(struct ipa_ioc_get_hdr *lookup);
	int (*ipa_deregister_intf)(const char *name);

	int (*ipa_enable_wdi_pipe)(u32 clnt_hdl);
	int (*ipa_disable_wdi_pipe)(u32 clnt_hdl);
	int (*ipa_resume_wdi_pipe)(u32 clnt_hdl);
	int (*ipa_suspend_wdi_pipe)(u32 clnt_hdl);
	int (*ipa_connect_wdi_pipe)(struct ipa_wdi_in_params *in,
			struct ipa_wdi_out_params *out);
	int (*ipa_disconnect_wdi_pipe)(u32 clnt_hdl);
	int (*ipa_uc_reg_rdyCB)(struct ipa_wdi_uc_ready_params *param);
	int (*ipa_uc_dereg_rdyCB)(void);
};

struct ipa_usb_data {