msm: ipa3: Adding IPA defconfig WLAN dependent on this flag

Adding changes to enable IPA defconfig for WLAN.

Change-Id: Ibe944dc00e0fdda8b823bad2abd2e7e0fb330264
Signed-off-by: Piyush Dhyani <pdhyani@codeaurora.org>
This commit is contained in:
Piyush Dhyani 2021-02-08 12:46:42 +05:30
parent a6ec4c9e0d
commit af46da5732
3 changed files with 180 additions and 23 deletions

View File

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only // 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> #include <linux/ipa_fmwk.h>
@ -203,6 +203,14 @@ struct ipa_fmwk_contex {
int (*ipa_unregister_rmnet_ctl_cb)(void); 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 */ /* ipa_usb APIs */
int (*ipa_usb_init_teth_prot)(enum ipa_usb_teth_prot teth_prot, int (*ipa_usb_init_teth_prot)(enum ipa_usb_teth_prot teth_prot,
struct ipa_usb_teth_params *teth_params, struct ipa_usb_teth_params *teth_params,
@ -270,6 +278,23 @@ struct ipa_fmwk_contex {
int (*ipa_get_wdi_version)(void); 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*/ /* ipa_gsb APIs*/
int (*ipa_bridge_init)(struct ipa_bridge_init_params *params, u32 *hdl); 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_add_rt_rule = in->ipa_add_rt_rule;
ipa_fmwk_ctx->ipa_put_rt_tbl = in->ipa_put_rt_tbl; 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_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_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_qcncm_ndp_sig = in->ipa_set_qcncm_ndp_sig;
ipa_fmwk_ctx->ipa_set_single_ndp_per_mbim = 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 = ipa_fmwk_ctx->ipa_unregister_rmnet_ctl_cb =
in->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_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_fmwk_ctx->ipa_ready = true;
ipa_trigger_ipa_ready_cbs(); ipa_trigger_ipa_ready_cbs();
@ -793,6 +830,46 @@ int ipa_register_intf(const char *name,
} }
EXPORT_SYMBOL(ipa_register_intf); 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 ipa_set_aggr_mode(enum ipa_aggr_mode mode)
{ {
int ret; int ret;
@ -1212,6 +1289,87 @@ int ipa_get_wdi_version(void)
} }
EXPORT_SYMBOL(ipa_get_wdi_version); 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 ipa_wdi_bw_monitor(struct ipa_wdi_bw_info *info)
{ {
int ret; int ret;

View File

@ -1412,6 +1412,7 @@ int ipa_put_rt_tbl(u32 rt_tbl_hdl);
int ipa_register_intf(const char *name, int ipa_register_intf(const char *name,
const struct ipa_tx_intf *tx, const struct ipa_tx_intf *tx,
const struct ipa_rx_intf *rx); const struct ipa_rx_intf *rx);
int ipa_deregister_intf(const char *name);
/* /*
* Aggregation * Aggregation
@ -1586,7 +1587,11 @@ int ipa_enable_wdi_pipe(u32 clnt_hdl);
int ipa_disable_wdi_pipe(u32 clnt_hdl); int ipa_disable_wdi_pipe(u32 clnt_hdl);
int ipa_resume_wdi_pipe(u32 clnt_hdl); int ipa_resume_wdi_pipe(u32 clnt_hdl);
int ipa_suspend_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 * ipa_get_wdi_stats() - Query WDI statistics from uc
* @stats: [inout] stats blob from client populated by driver * @stats: [inout] stats blob from client populated by driver
@ -2338,26 +2343,6 @@ static inline int ipa_disable_apps_wan_cons_deaggr(
return -EPERM; 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) static inline int ipa_uc_dereg_rdyCB(void)
{ {
return -EPERM; return -EPERM;

View File

@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */ /* 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_ #ifndef _IPA_FMWK_H_
@ -108,6 +108,20 @@ struct ipa_core_data {
int (*ipa_unregister_rmnet_ctl_cb)(void); int (*ipa_unregister_rmnet_ctl_cb)(void);
int (*ipa_get_default_aggr_time_limit)(enum ipa_client_type client, int (*ipa_get_default_aggr_time_limit)(enum ipa_client_type client,
u32 *default_aggr_time_limit); 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 { struct ipa_usb_data {