msm: ipa3: Remove ipa_api
ipa_api provided a wrapping layer for various functions in order to mitigate between different ipa version. This mitigation is no longer needed, hence ipa_api is obsolete. Change-Id: I84c3fafef0f578b86080ac8457493ced4ec442e3 Acked-by: Eliad Ben Yishay <ebenyish@qti.qualcomm.com> Signed-off-by: Amir Levy <alevy@codeaurora.org>
Tento commit je obsažen v:
@@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
ipam-y += \
|
||||
ipa_api.o ipa_rm.o ipa_rm_dependency_graph.o ipa_rm_peers_list.o ipa_rm_resource.o ipa_rm_inactivity_timer.o \
|
||||
ipa_rm.o ipa_rm_dependency_graph.o ipa_rm_peers_list.o ipa_rm_resource.o ipa_rm_inactivity_timer.o \
|
||||
ipa_v3/ipa.o \
|
||||
ipa_v3/ipa_debugfs.o \
|
||||
ipa_v3/ipa_hdr.o \
|
||||
|
Rozdílový obsah nebyl zobrazen, protože je příliš veliký
Načíst rozdílové porovnání
@@ -1,362 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2015-2020, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#include "ipa_mhi.h"
|
||||
#include "ipa_uc_offload.h"
|
||||
#include "ipa_wdi3.h"
|
||||
#include "ipa_common_i.h"
|
||||
#include "gsi.h"
|
||||
|
||||
#ifndef _IPA_API_H_
|
||||
#define _IPA_API_H_
|
||||
|
||||
struct ipa_api_controller {
|
||||
int (*ipa_cfg_ep)(u32 clnt_hdl, const struct ipa_ep_cfg *ipa_ep_cfg);
|
||||
|
||||
int (*ipa_cfg_ep_nat)(u32 clnt_hdl,
|
||||
const struct ipa_ep_cfg_nat *ipa_ep_cfg);
|
||||
|
||||
int (*ipa_cfg_ep_conn_track)(u32 clnt_hdl,
|
||||
const struct ipa_ep_cfg_conn_track *ipa_ep_cfg);
|
||||
|
||||
int (*ipa_cfg_ep_hdr)(u32 clnt_hdl,
|
||||
const struct ipa_ep_cfg_hdr *ipa_ep_cfg);
|
||||
|
||||
int (*ipa_cfg_ep_hdr_ext)(u32 clnt_hdl,
|
||||
const struct ipa_ep_cfg_hdr_ext *ipa_ep_cfg);
|
||||
|
||||
int (*ipa_cfg_ep_mode)(u32 clnt_hdl,
|
||||
const struct ipa_ep_cfg_mode *ipa_ep_cfg);
|
||||
|
||||
int (*ipa_cfg_ep_aggr)(u32 clnt_hdl,
|
||||
const struct ipa_ep_cfg_aggr *ipa_ep_cfg);
|
||||
|
||||
int (*ipa_cfg_ep_deaggr)(u32 clnt_hdl,
|
||||
const struct ipa_ep_cfg_deaggr *ipa_ep_cfg);
|
||||
|
||||
int (*ipa_cfg_ep_route)(u32 clnt_hdl,
|
||||
const struct ipa_ep_cfg_route *ipa_ep_cfg);
|
||||
|
||||
int (*ipa_cfg_ep_holb)(u32 clnt_hdl,
|
||||
const struct ipa_ep_cfg_holb *ipa_ep_cfg);
|
||||
|
||||
int (*ipa_cfg_ep_cfg)(u32 clnt_hdl,
|
||||
const struct ipa_ep_cfg_cfg *ipa_ep_cfg);
|
||||
|
||||
int (*ipa_cfg_ep_metadata_mask)(u32 clnt_hdl,
|
||||
const struct ipa_ep_cfg_metadata_mask *ipa_ep_cfg);
|
||||
|
||||
int (*ipa_cfg_ep_holb_by_client)(enum ipa_client_type client,
|
||||
const struct ipa_ep_cfg_holb *ipa_ep_cfg);
|
||||
|
||||
int (*ipa_add_hdr_usr)(struct ipa_ioc_add_hdr *hdrs, bool user_only);
|
||||
|
||||
int (*ipa_reset_hdr)(bool user_only);
|
||||
|
||||
int (*ipa_add_hdr_proc_ctx)(struct ipa_ioc_add_hdr_proc_ctx *proc_ctxs,
|
||||
bool user_only);
|
||||
|
||||
int (*ipa_del_hdr_proc_ctx)(struct ipa_ioc_del_hdr_proc_ctx *hdls);
|
||||
|
||||
int (*ipa_add_rt_rule_v2)(struct ipa_ioc_add_rt_rule_v2 *rules);
|
||||
|
||||
int (*ipa_add_rt_rule_usr)(struct ipa_ioc_add_rt_rule *rules,
|
||||
bool user_only);
|
||||
|
||||
int (*ipa_add_rt_rule_usr_v2)(struct ipa_ioc_add_rt_rule_v2 *rules,
|
||||
bool user_only);
|
||||
|
||||
int (*ipa_del_rt_rule)(struct ipa_ioc_del_rt_rule *hdls);
|
||||
|
||||
int (*ipa_commit_rt)(enum ipa_ip_type ip);
|
||||
|
||||
int (*ipa_reset_rt)(enum ipa_ip_type ip, bool user_only);
|
||||
|
||||
int (*ipa_get_rt_tbl)(struct ipa_ioc_get_rt_tbl *lookup);
|
||||
|
||||
int (*ipa_query_rt_index)(struct ipa_ioc_get_rt_tbl_indx *in);
|
||||
|
||||
int (*ipa_mdfy_rt_rule)(struct ipa_ioc_mdfy_rt_rule *rules);
|
||||
|
||||
int (*ipa_mdfy_rt_rule_v2)(struct ipa_ioc_mdfy_rt_rule_v2 *rules);
|
||||
|
||||
int (*ipa_add_flt_rule)(struct ipa_ioc_add_flt_rule *rules);
|
||||
|
||||
int (*ipa_add_flt_rule_v2)(struct ipa_ioc_add_flt_rule_v2 *rules);
|
||||
|
||||
int (*ipa_add_flt_rule_usr)(struct ipa_ioc_add_flt_rule *rules,
|
||||
bool user_only);
|
||||
|
||||
int (*ipa_add_flt_rule_usr_v2)
|
||||
(struct ipa_ioc_add_flt_rule_v2 *rules, bool user_only);
|
||||
|
||||
int (*ipa_del_flt_rule)(struct ipa_ioc_del_flt_rule *hdls);
|
||||
|
||||
int (*ipa_mdfy_flt_rule)(struct ipa_ioc_mdfy_flt_rule *rules);
|
||||
|
||||
int (*ipa_mdfy_flt_rule_v2)(struct ipa_ioc_mdfy_flt_rule_v2 *rules);
|
||||
|
||||
int (*ipa_commit_flt)(enum ipa_ip_type ip);
|
||||
|
||||
int (*ipa_reset_flt)(enum ipa_ip_type ip, bool user_only);
|
||||
|
||||
int (*ipa_allocate_nat_device)(struct ipa_ioc_nat_alloc_mem *mem);
|
||||
|
||||
int (*ipa_allocate_nat_table)(
|
||||
struct ipa_ioc_nat_ipv6ct_table_alloc *table_alloc);
|
||||
|
||||
int (*ipa_allocate_ipv6ct_table)(
|
||||
struct ipa_ioc_nat_ipv6ct_table_alloc *table_alloc);
|
||||
|
||||
int (*ipa_nat_init_cmd)(struct ipa_ioc_v4_nat_init *init);
|
||||
|
||||
int (*ipa_ipv6ct_init_cmd)(struct ipa_ioc_ipv6ct_init *init);
|
||||
|
||||
int (*ipa_nat_dma_cmd)(struct ipa_ioc_nat_dma_cmd *dma);
|
||||
|
||||
int (*ipa_table_dma_cmd)(struct ipa_ioc_nat_dma_cmd *dma);
|
||||
|
||||
int (*ipa_nat_del_cmd)(struct ipa_ioc_v4_nat_del *del);
|
||||
|
||||
int (*ipa_del_nat_table)(struct ipa_ioc_nat_ipv6ct_table_del *del);
|
||||
|
||||
int (*ipa_del_ipv6ct_table)(struct ipa_ioc_nat_ipv6ct_table_del *del);
|
||||
|
||||
int (*ipa_nat_mdfy_pdn)(struct ipa_ioc_nat_pdn_entry *mdfy_pdn);
|
||||
|
||||
int (*ipa_sys_setup)(struct ipa_sys_connect_params *sys_in,
|
||||
unsigned long *ipa_bam_hdl,
|
||||
u32 *ipa_pipe_num, u32 *clnt_hdl, bool en_status);
|
||||
|
||||
int (*ipa_sys_teardown)(u32 clnt_hdl);
|
||||
|
||||
int (*ipa_sys_update_gsi_hdls)(u32 clnt_hdl, unsigned long gsi_ch_hdl,
|
||||
unsigned long gsi_ev_hdl);
|
||||
|
||||
int (*ipa_set_wlan_tx_info)(struct ipa_wdi_tx_info *info);
|
||||
|
||||
int (*teth_bridge_init)(struct teth_bridge_init_params *params);
|
||||
|
||||
int (*teth_bridge_disconnect)(enum ipa_client_type client);
|
||||
|
||||
int (*teth_bridge_connect)(
|
||||
struct teth_bridge_connect_params *connect_params);
|
||||
|
||||
void (*ipa_set_client)(
|
||||
int index, enum ipacm_client_enum client, bool uplink);
|
||||
|
||||
enum ipacm_client_enum (*ipa_get_client)(int pipe_idx);
|
||||
|
||||
bool (*ipa_get_client_uplink)(int pipe_idx);
|
||||
|
||||
bool (*ipa_has_open_aggr_frame)(enum ipa_client_type client);
|
||||
|
||||
int (*ipa_generate_tag_process)(void);
|
||||
|
||||
int (*ipa_disable_sps_pipe)(enum ipa_client_type client);
|
||||
|
||||
void (*ipa_set_tag_process_before_gating)(bool val);
|
||||
|
||||
int (*ipa_mhi_init_engine)(struct ipa_mhi_init_engine *params);
|
||||
|
||||
int (*ipa_connect_mhi_pipe)(struct ipa_mhi_connect_params_internal *in,
|
||||
u32 *clnt_hdl);
|
||||
|
||||
int (*ipa_disconnect_mhi_pipe)(u32 clnt_hdl);
|
||||
|
||||
bool (*ipa_mhi_stop_gsi_channel)(enum ipa_client_type client);
|
||||
|
||||
int (*ipa_qmi_disable_force_clear)(u32 request_id);
|
||||
|
||||
int (*ipa_qmi_enable_force_clear_datapath_send)(
|
||||
struct ipa_enable_force_clear_datapath_req_msg_v01 *req);
|
||||
|
||||
int (*ipa_qmi_disable_force_clear_datapath_send)(
|
||||
struct ipa_disable_force_clear_datapath_req_msg_v01 *req);
|
||||
|
||||
bool (*ipa_mhi_sps_channel_empty)(enum ipa_client_type client);
|
||||
|
||||
int (*ipa_mhi_reset_channel_internal)(enum ipa_client_type client);
|
||||
|
||||
int (*ipa_mhi_start_channel_internal)(enum ipa_client_type client);
|
||||
|
||||
void (*ipa_get_holb)(int ep_idx, struct ipa_ep_cfg_holb *holb);
|
||||
|
||||
int (*ipa_mhi_query_ch_info)(enum ipa_client_type client,
|
||||
struct gsi_chan_info *ch_info);
|
||||
|
||||
int (*ipa_mhi_resume_channels_internal)(
|
||||
enum ipa_client_type client,
|
||||
bool LPTransitionRejected,
|
||||
bool brstmode_enabled,
|
||||
union __packed gsi_channel_scratch ch_scratch,
|
||||
u8 index);
|
||||
|
||||
int (*ipa_mhi_destroy_channel)(enum ipa_client_type client);
|
||||
|
||||
int (*ipa_uc_mhi_send_dl_ul_sync_info)
|
||||
(union IpaHwMhiDlUlSyncCmdData_t *cmd);
|
||||
|
||||
int (*ipa_uc_mhi_init)
|
||||
(void (*ready_cb)(void), void (*wakeup_request_cb)(void));
|
||||
|
||||
void (*ipa_uc_mhi_cleanup)(void);
|
||||
|
||||
int (*ipa_uc_mhi_print_stats)(char *dbg_buff, int size);
|
||||
|
||||
int (*ipa_uc_mhi_reset_channel)(int channelHandle);
|
||||
|
||||
int (*ipa_uc_mhi_suspend_channel)(int channelHandle);
|
||||
|
||||
int (*ipa_uc_mhi_stop_event_update_channel)(int channelHandle);
|
||||
|
||||
int (*ipa_uc_state_check)(void);
|
||||
|
||||
int (*ipa_write_qmap_id)(struct ipa_ioc_write_qmapid *param_in);
|
||||
|
||||
int (*ipa_remove_interrupt_handler)(enum ipa_irq_type interrupt);
|
||||
|
||||
int (*ipa_ap_suspend)(struct device *dev);
|
||||
|
||||
int (*ipa_ap_resume)(struct device *dev);
|
||||
|
||||
int (*ipa_start_gsi_channel)(u32 clnt_hdl);
|
||||
|
||||
void (*ipa_inc_client_enable_clks)(
|
||||
struct ipa_active_client_logging_info *id);
|
||||
|
||||
void (*ipa_dec_client_disable_clks)(
|
||||
struct ipa_active_client_logging_info *id);
|
||||
|
||||
int (*ipa_inc_client_enable_clks_no_block)(
|
||||
struct ipa_active_client_logging_info *id);
|
||||
|
||||
int (*ipa_suspend_resource_no_block)(
|
||||
enum ipa_rm_resource_name resource);
|
||||
|
||||
int (*ipa_resume_resource)(enum ipa_rm_resource_name name);
|
||||
|
||||
int (*ipa_suspend_resource_sync)(enum ipa_rm_resource_name resource);
|
||||
|
||||
int (*ipa_set_required_perf_profile)(
|
||||
enum ipa_voltage_level floor_voltage, u32 bandwidth_mbps);
|
||||
|
||||
void *(*ipa_get_ipc_logbuf)(void);
|
||||
|
||||
void *(*ipa_get_ipc_logbuf_low)(void);
|
||||
|
||||
int (*ipa_rx_poll)(u32 clnt_hdl, int budget);
|
||||
|
||||
void (*ipa_recycle_wan_skb)(struct sk_buff *skb);
|
||||
|
||||
int (*ipa_setup_uc_ntn_pipes)(struct ipa_ntn_conn_in_params *in,
|
||||
ipa_notify_cb notify, void *priv, u8 hdr_len,
|
||||
struct ipa_ntn_conn_out_params *outp);
|
||||
|
||||
int (*ipa_tear_down_uc_offload_pipes)(int ipa_ep_idx_ul,
|
||||
int ipa_ep_idx_dl, struct ipa_ntn_conn_in_params *params);
|
||||
|
||||
struct device *(*ipa_get_pdev)(void);
|
||||
|
||||
int (*ipa_ntn_uc_reg_rdyCB)(void (*ipauc_ready_cb)(void *user_data),
|
||||
void *user_data);
|
||||
|
||||
void (*ipa_ntn_uc_dereg_rdyCB)(void);
|
||||
|
||||
int (*ipa_conn_wdi_pipes)(struct ipa_wdi_conn_in_params *in,
|
||||
struct ipa_wdi_conn_out_params *out,
|
||||
ipa_wdi_meter_notifier_cb wdi_notify);
|
||||
|
||||
int (*ipa_disconn_wdi_pipes)(int ipa_ep_idx_tx,
|
||||
int ipa_ep_idx_rx);
|
||||
|
||||
int (*ipa_enable_wdi_pipes)(int ipa_ep_idx_tx,
|
||||
int ipa_ep_idx_rx);
|
||||
|
||||
int (*ipa_disable_wdi_pipes)(int ipa_ep_idx_tx,
|
||||
int ipa_ep_idx_rx);
|
||||
|
||||
int (*ipa_tz_unlock_reg)(struct ipa_tz_unlock_reg_info *reg_info,
|
||||
u16 num_regs);
|
||||
|
||||
int (*ipa_get_smmu_params)(struct ipa_smmu_in_params *in,
|
||||
struct ipa_smmu_out_params *out);
|
||||
int (*ipa_is_vlan_mode)(enum ipa_vlan_ifaces iface, bool *res);
|
||||
|
||||
int (*ipa_wigig_internal_init)(
|
||||
struct ipa_wdi_uc_ready_params *inout,
|
||||
ipa_wigig_misc_int_cb int_notify,
|
||||
phys_addr_t *uc_db_pa);
|
||||
|
||||
int (*ipa_conn_wigig_rx_pipe_i)(void *in,
|
||||
struct ipa_wigig_conn_out_params *out,
|
||||
struct dentry **parent);
|
||||
|
||||
int (*ipa_conn_wigig_client_i)(void *in,
|
||||
struct ipa_wigig_conn_out_params *out,
|
||||
ipa_notify_cb tx_notify,
|
||||
void *priv);
|
||||
|
||||
int (*ipa_disconn_wigig_pipe_i)(enum ipa_client_type client,
|
||||
struct ipa_wigig_pipe_setup_info_smmu *pipe_smmu,
|
||||
void *dbuff);
|
||||
|
||||
int (*ipa_wigig_uc_msi_init)(bool init,
|
||||
phys_addr_t periph_baddr_pa,
|
||||
phys_addr_t pseudo_cause_pa,
|
||||
phys_addr_t int_gen_tx_pa,
|
||||
phys_addr_t int_gen_rx_pa,
|
||||
phys_addr_t dma_ep_misc_pa);
|
||||
|
||||
int (*ipa_enable_wigig_pipe_i)(enum ipa_client_type client);
|
||||
|
||||
int (*ipa_disable_wigig_pipe_i)(enum ipa_client_type client);
|
||||
|
||||
void (*ipa_register_client_callback)(
|
||||
int (*client_cb)(bool is_lock),
|
||||
bool (*teth_port_state)(void), enum ipa_client_type client);
|
||||
|
||||
void (*ipa_deregister_client_callback)(enum ipa_client_type client);
|
||||
|
||||
int (*ipa_uc_debug_stats_alloc)(
|
||||
struct IpaHwOffloadStatsAllocCmdData_t cmdinfo);
|
||||
|
||||
int (*ipa_uc_debug_stats_dealloc)(uint32_t prot_id);
|
||||
|
||||
void (*ipa_get_gsi_stats)(int prot_id,
|
||||
struct ipa_uc_dbg_ring_stats *stats);
|
||||
|
||||
int (*ipa_get_prot_id)(enum ipa_client_type client);
|
||||
};
|
||||
|
||||
#if IS_ENABLED(CONFIG_IPA3)
|
||||
|
||||
int ipa3_plat_drv_probe(struct platform_device *pdev_p,
|
||||
struct ipa_api_controller *api_ctrl,
|
||||
const struct of_device_id *pdrv_match);
|
||||
int ipa3_pci_drv_probe(
|
||||
struct pci_dev *pci_dev,
|
||||
struct ipa_api_controller *api_ctrl,
|
||||
const struct of_device_id *pdrv_match);
|
||||
|
||||
#else /* IS_ENABLED(CONFIG_IPA3) */
|
||||
|
||||
static inline int ipa3_plat_drv_probe(struct platform_device *pdev_p,
|
||||
struct ipa_api_controller *api_ctrl,
|
||||
const struct of_device_id *pdrv_match)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
static inline int ipa3_pci_drv_probe(
|
||||
struct pci_dev *pci_dev,
|
||||
struct ipa_api_controller *api_ctrl,
|
||||
const struct of_device_id *pdrv_match)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
#endif /* IS_ENABLED(CONFIG_IPA3) */
|
||||
|
||||
#endif /* _IPA_API_H_ */
|
@@ -1328,7 +1328,7 @@ static int ecm_ipa_ep_registers_cfg(u32 usb_to_ipa_hdl, u32 ipa_to_usb_hdl,
|
||||
/* enable hdr_metadata_reg_valid */
|
||||
usb_to_ipa_ep_cfg.hdr.hdr_metadata_reg_valid = true;
|
||||
|
||||
result = ipa_cfg_ep(usb_to_ipa_hdl, &usb_to_ipa_ep_cfg);
|
||||
result = ipa3_cfg_ep(usb_to_ipa_hdl, &usb_to_ipa_ep_cfg);
|
||||
if (result) {
|
||||
ECM_IPA_ERROR("failed to configure USB to IPA point\n");
|
||||
goto out;
|
||||
@@ -1337,7 +1337,7 @@ static int ecm_ipa_ep_registers_cfg(u32 usb_to_ipa_hdl, u32 ipa_to_usb_hdl,
|
||||
ipa_to_usb_ep_cfg.aggr.aggr_en = IPA_BYPASS_AGGR;
|
||||
ipa_to_usb_ep_cfg.hdr.hdr_len = ETH_HLEN + hdr_add;
|
||||
ipa_to_usb_ep_cfg.nat.nat_en = IPA_BYPASS_NAT;
|
||||
result = ipa_cfg_ep(ipa_to_usb_hdl, &ipa_to_usb_ep_cfg);
|
||||
result = ipa3_cfg_ep(ipa_to_usb_hdl, &ipa_to_usb_ep_cfg);
|
||||
if (result) {
|
||||
ECM_IPA_ERROR("failed to configure IPA to USB end-point\n");
|
||||
goto out;
|
||||
|
@@ -32,9 +32,9 @@
|
||||
do { \
|
||||
pr_debug(IPA_GSB_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_GSB_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_GSB_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
do { \
|
||||
pr_debug(IPA_GSB_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_GSB_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -50,9 +50,9 @@
|
||||
do { \
|
||||
pr_err(IPA_GSB_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_GSB_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_GSB_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -1034,7 +1034,7 @@ static int ipa_bridge_resume_internal(u32 hdl)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = ipa_start_gsi_channel(
|
||||
ret = ipa3_start_gsi_channel(
|
||||
ipa_gsb_ctx->cons_hdl);
|
||||
if (ret) {
|
||||
IPA_GSB_ERR(
|
||||
@@ -1112,7 +1112,7 @@ static int ipa_bridge_suspend_internal(u32 hdl)
|
||||
ret = ipa_pm_deactivate_sync(ipa_gsb_ctx->pm_hdl);
|
||||
if (ret) {
|
||||
IPA_GSB_ERR("fail to deactivate ipa pm\n");
|
||||
ipa_start_gsi_channel(ipa_gsb_ctx->cons_hdl);
|
||||
ipa3_start_gsi_channel(ipa_gsb_ctx->cons_hdl);
|
||||
atomic_set(&ipa_gsb_ctx->suspend_in_progress, 0);
|
||||
mutex_unlock(&ipa_gsb_ctx->lock);
|
||||
mutex_unlock(&ipa_gsb_ctx->iface_lock[hdl]);
|
||||
|
@@ -23,9 +23,9 @@
|
||||
do { \
|
||||
pr_debug(IPA_MHI_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_MHI_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_MHI_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
do { \
|
||||
pr_debug(IPA_MHI_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_MHI_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -42,9 +42,9 @@
|
||||
do { \
|
||||
pr_err(IPA_MHI_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_MHI_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_MHI_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -361,7 +361,7 @@ static ssize_t ipa_mhi_debugfs_uc_stats(struct file *file,
|
||||
{
|
||||
int nbytes = 0;
|
||||
|
||||
nbytes += ipa_uc_mhi_print_stats(dbg_buff, IPA_MHI_MAX_MSG_LEN);
|
||||
nbytes += ipa3_uc_mhi_print_stats(dbg_buff, IPA_MHI_MAX_MSG_LEN);
|
||||
return simple_read_from_buffer(ubuf, count, ppos, dbg_buff, nbytes);
|
||||
}
|
||||
|
||||
@@ -726,7 +726,7 @@ static int ipa_mhi_start_internal(struct ipa_mhi_start_params *params)
|
||||
init_params.uC.ipa_cached_dl_ul_sync_info =
|
||||
&ipa_cached_dl_ul_sync_info;
|
||||
|
||||
res = ipa_mhi_init_engine(&init_params);
|
||||
res = ipa3_mhi_init_engine(&init_params);
|
||||
if (res) {
|
||||
IPA_MHI_ERR("IPA core failed to start MHI %d\n", res);
|
||||
goto fail_init_engine;
|
||||
@@ -956,7 +956,7 @@ static bool ipa_mhi_gsi_channel_empty(struct ipa_mhi_channel_ctx *channel)
|
||||
return true;
|
||||
}
|
||||
|
||||
if (ipa_mhi_stop_gsi_channel(channel->client)) {
|
||||
if (ipa3_mhi_stop_gsi_channel(channel->client)) {
|
||||
channel->stop_in_proc = false;
|
||||
return true;
|
||||
}
|
||||
@@ -1030,7 +1030,7 @@ static int ipa_mhi_enable_force_clear(u32 request_id, bool throttle_source)
|
||||
IPA_MHI_DBG("req_id=0x%x src_pipe_btmk=0x%x throt_src=%d\n",
|
||||
req.request_id, req.source_pipe_bitmask,
|
||||
req.throttle_source);
|
||||
res = ipa_qmi_enable_force_clear_datapath_send(&req);
|
||||
res = ipa3_qmi_enable_force_clear_datapath_send(&req);
|
||||
if (res) {
|
||||
IPA_MHI_ERR(
|
||||
"ipa_qmi_enable_force_clear_datapath_send failed %d\n"
|
||||
@@ -1051,10 +1051,10 @@ static int ipa_mhi_disable_force_clear(u32 request_id)
|
||||
memset(&req, 0, sizeof(req));
|
||||
req.request_id = request_id;
|
||||
IPA_MHI_DBG("req_id=0x%x\n", req.request_id);
|
||||
res = ipa_qmi_disable_force_clear_datapath_send(&req);
|
||||
res = ipa3_qmi_disable_force_clear_datapath_send(&req);
|
||||
if (res) {
|
||||
IPA_MHI_ERR(
|
||||
"ipa_qmi_disable_force_clear_datapath_send failed %d\n"
|
||||
"ipa3_qmi_disable_force_clear_datapath_send failed %d\n"
|
||||
, res);
|
||||
return res;
|
||||
}
|
||||
@@ -1133,7 +1133,7 @@ static int ipa_mhi_reset_ul_channel(struct ipa_mhi_channel_ctx *channel)
|
||||
ipa_mhi_client_ctx->qmi_req_id++;
|
||||
}
|
||||
|
||||
res = ipa_mhi_reset_channel_internal(channel->client);
|
||||
res = ipa3_mhi_reset_channel_internal(channel->client);
|
||||
if (res) {
|
||||
IPA_MHI_ERR("ipa_mhi_reset_ul_channel_internal failed %d\n"
|
||||
, res);
|
||||
@@ -1157,7 +1157,7 @@ static int ipa_mhi_reset_dl_channel(struct ipa_mhi_channel_ctx *channel)
|
||||
return res;
|
||||
}
|
||||
|
||||
res = ipa_mhi_reset_channel_internal(channel->client);
|
||||
res = ipa3_mhi_reset_channel_internal(channel->client);
|
||||
if (res) {
|
||||
IPA_MHI_ERR(
|
||||
"ipa_mhi_reset_ul_channel_internal failed %d\n"
|
||||
@@ -1304,7 +1304,7 @@ static int ipa_mhi_connect_pipe_internal(struct ipa_mhi_connect_params *in, u32
|
||||
&channel->cached_gsi_evt_ring_hdl;
|
||||
internal.start.gsi.evchid = channel->index;
|
||||
|
||||
res = ipa_connect_mhi_pipe(&internal, clnt_hdl);
|
||||
res = ipa3_connect_mhi_pipe(&internal, clnt_hdl);
|
||||
if (res) {
|
||||
IPA_MHI_ERR("ipa_connect_mhi_pipe failed %d\n", res);
|
||||
goto fail_connect_pipe;
|
||||
@@ -1390,7 +1390,7 @@ static int ipa_mhi_disconnect_pipe_internal(u32 clnt_hdl)
|
||||
}
|
||||
|
||||
mutex_lock(&mhi_client_general_mutex);
|
||||
res = ipa_disconnect_mhi_pipe(clnt_hdl);
|
||||
res = ipa3_disconnect_mhi_pipe(clnt_hdl);
|
||||
if (res) {
|
||||
IPA_MHI_ERR(
|
||||
"IPA core driver failed to disconnect the pipe hdl %d, res %d"
|
||||
@@ -1460,7 +1460,7 @@ static bool ipa_mhi_check_pending_packets_from_host(void)
|
||||
if (!channel->valid)
|
||||
continue;
|
||||
|
||||
res = ipa_mhi_query_ch_info(channel->client,
|
||||
res = ipa3_mhi_query_ch_info(channel->client,
|
||||
&channel->ch_info);
|
||||
if (res) {
|
||||
IPA_MHI_ERR("gsi_query_channel_info failed\n");
|
||||
@@ -1502,7 +1502,7 @@ static int ipa_mhi_resume_channels(bool LPTransitionRejected,
|
||||
channel = &channels[i];
|
||||
IPA_MHI_DBG("resuming channel %d\n", channel->id);
|
||||
|
||||
res = ipa_mhi_resume_channels_internal(channel->client,
|
||||
res = ipa3_mhi_resume_channels_internal(channel->client,
|
||||
LPTransitionRejected, channel->brstmode_enabled,
|
||||
channel->ch_scratch, channel->index);
|
||||
|
||||
@@ -1628,7 +1628,7 @@ static bool ipa_mhi_has_open_aggr_frame(void)
|
||||
if (!channel->valid)
|
||||
continue;
|
||||
|
||||
if (ipa_has_open_aggr_frame(channel->client))
|
||||
if (ipa3_has_open_aggr_frame(channel->client))
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1647,7 +1647,7 @@ static void ipa_mhi_update_host_ch_state(bool update_rp)
|
||||
continue;
|
||||
|
||||
if (update_rp) {
|
||||
res = ipa_mhi_query_ch_info(channel->client,
|
||||
res = ipa3_mhi_query_ch_info(channel->client,
|
||||
&channel->ch_info);
|
||||
if (res) {
|
||||
IPA_MHI_ERR("gsi_query_channel_info failed\n");
|
||||
@@ -1686,7 +1686,7 @@ static void ipa_mhi_update_host_ch_state(bool update_rp)
|
||||
continue;
|
||||
|
||||
if (update_rp) {
|
||||
res = ipa_mhi_query_ch_info(channel->client,
|
||||
res = ipa3_mhi_query_ch_info(channel->client,
|
||||
&channel->ch_info);
|
||||
if (res) {
|
||||
IPA_MHI_ERR("gsi_query_channel_info failed\n");
|
||||
@@ -1825,7 +1825,7 @@ static int ipa_mhi_suspend_internal(bool force)
|
||||
usleep_range(IPA_MHI_SUSPEND_SLEEP_MIN, IPA_MHI_SUSPEND_SLEEP_MAX);
|
||||
|
||||
if (!empty)
|
||||
ipa_set_tag_process_before_gating(false);
|
||||
ipa3_set_tag_process_before_gating(false);
|
||||
|
||||
res = ipa_mhi_set_state(IPA_MHI_STATE_SUSPENDED);
|
||||
if (res) {
|
||||
@@ -1969,10 +1969,10 @@ static int ipa_mhi_destroy_channels(struct ipa_mhi_channel_ctx *channels,
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
res = ipa_mhi_destroy_channel(channel->client);
|
||||
res = ipa3_mhi_destroy_channel(channel->client);
|
||||
if (res) {
|
||||
IPA_MHI_ERR(
|
||||
"ipa_mhi_destroy_channel failed %d"
|
||||
"ipa3_mhi_destroy_channel failed %d"
|
||||
, res);
|
||||
goto fail;
|
||||
}
|
||||
@@ -2051,7 +2051,7 @@ static void ipa_mhi_destroy_internal(void)
|
||||
return;
|
||||
}
|
||||
|
||||
ipa_deregister_client_callback(IPA_CLIENT_MHI_PROD);
|
||||
ipa3_deregister_client_callback(IPA_CLIENT_MHI_PROD);
|
||||
|
||||
/* reset all UL and DL acc channels and its accociated event rings */
|
||||
res = ipa_mhi_destroy_all_channels();
|
||||
@@ -2236,7 +2236,7 @@ static int ipa_mhi_init_internal(struct ipa_mhi_init_params *params)
|
||||
|
||||
ipa_mhi_set_state(IPA_MHI_STATE_READY);
|
||||
|
||||
ipa_register_client_callback(&ipa_mhi_set_lock_unlock, NULL,
|
||||
ipa3_register_client_callback(&ipa_mhi_set_lock_unlock, NULL,
|
||||
IPA_CLIENT_MHI_PROD);
|
||||
|
||||
/* Initialize debugfs */
|
||||
|
@@ -16,9 +16,9 @@
|
||||
do { \
|
||||
pr_debug(OFFLOAD_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
do { \
|
||||
pr_debug(OFFLOAD_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -34,9 +34,9 @@
|
||||
do { \
|
||||
pr_err(OFFLOAD_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -44,9 +44,9 @@
|
||||
do { \
|
||||
pr_info(OFFLOAD_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -408,7 +408,7 @@ int ipa_uc_ntn_conn_pipes(struct ipa_ntn_conn_in_params *inp,
|
||||
}
|
||||
|
||||
ntn_ctx->state = IPA_UC_OFFLOAD_STATE_UP;
|
||||
result = ipa_setup_uc_ntn_pipes(inp, ntn_ctx->notify,
|
||||
result = ipa3_setup_uc_ntn_pipes(inp, ntn_ctx->notify,
|
||||
ntn_ctx->priv, ntn_ctx->hdr_len, outp);
|
||||
if (result) {
|
||||
IPA_UC_OFFLOAD_ERR("fail to setup uc offload pipes: %d\n",
|
||||
@@ -502,7 +502,7 @@ static int ipa_uc_ntn_disconn_pipes(struct ipa_uc_offload_ctx *ntn_ctx)
|
||||
|
||||
ipa_ep_idx_ul = ipa_get_ep_mapping(IPA_CLIENT_ETHERNET_PROD);
|
||||
ipa_ep_idx_dl = ipa_get_ep_mapping(IPA_CLIENT_ETHERNET_CONS);
|
||||
ret = ipa_tear_down_uc_offload_pipes(ipa_ep_idx_ul, ipa_ep_idx_dl,
|
||||
ret = ipa3_tear_down_uc_offload_pipes(ipa_ep_idx_ul, ipa_ep_idx_dl,
|
||||
&ntn_ctx->conn);
|
||||
if (ret) {
|
||||
IPA_UC_OFFLOAD_ERR("fail to tear down ntn offload pipes, %d\n",
|
||||
@@ -648,7 +648,7 @@ int ipa_uc_offload_reg_rdyCB_internal(struct ipa_uc_ready_params *inp)
|
||||
}
|
||||
|
||||
if (inp->proto == IPA_UC_NTN)
|
||||
ret = ipa_ntn_uc_reg_rdyCB(inp->notify, inp->priv);
|
||||
ret = ipa3_ntn_uc_reg_rdyCB(inp->notify, inp->priv);
|
||||
|
||||
if (ret == -EEXIST) {
|
||||
inp->is_uC_ready = true;
|
||||
@@ -662,7 +662,7 @@ int ipa_uc_offload_reg_rdyCB_internal(struct ipa_uc_ready_params *inp)
|
||||
void ipa_uc_offload_dereg_rdyCB_internal(enum ipa_uc_offload_proto proto)
|
||||
{
|
||||
if (proto == IPA_UC_NTN)
|
||||
ipa_ntn_uc_dereg_rdyCB();
|
||||
ipa3_ntn_uc_dereg_rdyCB();
|
||||
}
|
||||
|
||||
int ipa_set_perf_profile_internal(struct ipa_perf_profile *profile)
|
||||
|
@@ -31,9 +31,9 @@
|
||||
do { \
|
||||
pr_debug(IPA_USB_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_USB_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_USB_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
do { \
|
||||
pr_debug(IPA_USB_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_USB_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -49,9 +49,9 @@
|
||||
do { \
|
||||
pr_err(IPA_USB_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_USB_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_USB_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -59,9 +59,9 @@
|
||||
do { \
|
||||
pr_info(IPA_USB_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_USB_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_USB_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -605,7 +605,7 @@ static int ipa3_usb_init_teth_bridge(void)
|
||||
{
|
||||
int result;
|
||||
|
||||
result = teth_bridge_init(&ipa3_usb_ctx->teth_bridge_params);
|
||||
result = ipa3_teth_bridge_init(&ipa3_usb_ctx->teth_bridge_params);
|
||||
if (result) {
|
||||
IPA_USB_ERR("Failed to initialize teth_bridge\n");
|
||||
return result;
|
||||
@@ -870,7 +870,7 @@ static int ipa_usb_init_teth_prot_internal(enum ipa_usb_teth_prot teth_prot,
|
||||
* If needed we can include the same for IPA_PROD ep.
|
||||
* For IPA_USB_DIAG/DPL config there will not be any UL ep.
|
||||
*/
|
||||
ipa_register_client_callback(&ipa_usb_set_lock_unlock,
|
||||
ipa3_register_client_callback(&ipa_usb_set_lock_unlock,
|
||||
&ipa3_usb_get_teth_port_state, IPA_CLIENT_USB_PROD);
|
||||
break;
|
||||
case IPA_USB_DIAG:
|
||||
@@ -1319,7 +1319,7 @@ static int ipa3_usb_connect_teth_bridge(
|
||||
{
|
||||
int result;
|
||||
|
||||
result = teth_bridge_connect(params);
|
||||
result = ipa3_teth_bridge_connect(params);
|
||||
if (result) {
|
||||
IPA_USB_ERR("failed to connect teth_bridge (%s)\n",
|
||||
params->tethering_mode == TETH_TETHERING_MODE_RMNET ?
|
||||
@@ -1459,7 +1459,7 @@ static int ipa3_usb_disconnect_teth_bridge(void)
|
||||
{
|
||||
int result;
|
||||
|
||||
result = teth_bridge_disconnect(IPA_CLIENT_USB_PROD);
|
||||
result = ipa3_teth_bridge_disconnect(IPA_CLIENT_USB_PROD);
|
||||
if (result) {
|
||||
IPA_USB_ERR("failed to disconnect teth_bridge\n");
|
||||
return result;
|
||||
@@ -2044,7 +2044,7 @@ static int ipa_usb_xdci_disconnect_internal(u32 ul_clnt_hdl, u32 dl_clnt_hdl,
|
||||
memset(&holb_cfg, 0, sizeof(holb_cfg));
|
||||
holb_cfg.en = IPA_HOLB_TMR_EN;
|
||||
holb_cfg.tmr_val = 0;
|
||||
ipa_cfg_ep_holb(dl_clnt_hdl, &holb_cfg);
|
||||
ipa3_cfg_ep_holb(dl_clnt_hdl, &holb_cfg);
|
||||
}
|
||||
|
||||
spin_lock_irqsave(&ipa3_usb_ctx->state_lock, flags);
|
||||
@@ -2635,7 +2635,7 @@ void ipa3_usb_exit(void)
|
||||
* If needed we can include the same for IPA_PROD ep.
|
||||
* For IPA_USB_DIAG/DPL config there will not be any UL config.
|
||||
*/
|
||||
ipa_deregister_client_callback(IPA_CLIENT_USB_PROD);
|
||||
ipa3_deregister_client_callback(IPA_CLIENT_USB_PROD);
|
||||
|
||||
ipa_usb_debugfs_remove();
|
||||
kfree(ipa3_usb_ctx);
|
||||
|
@@ -15,9 +15,9 @@
|
||||
do { \
|
||||
pr_debug(OFFLOAD_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
do { \
|
||||
pr_debug(OFFLOAD_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -33,9 +33,9 @@
|
||||
do { \
|
||||
pr_err(OFFLOAD_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -107,7 +107,7 @@ static int ipa_wdi_init_internal(struct ipa_wdi_init_in_params *in,
|
||||
out->is_uC_ready = uc_ready_params.is_uC_ready;
|
||||
|
||||
smmu_in.smmu_client = IPA_SMMU_WLAN_CLIENT;
|
||||
if (ipa_get_smmu_params(&smmu_in, &smmu_out))
|
||||
if (ipa3_get_smmu_params(&smmu_in, &smmu_out))
|
||||
out->is_smmu_enabled = false;
|
||||
else
|
||||
out->is_smmu_enabled = smmu_out.smmu_enable;
|
||||
@@ -432,7 +432,7 @@ static int ipa_wdi_conn_pipes_internal(struct ipa_wdi_conn_in_params *in,
|
||||
}
|
||||
|
||||
if (ipa_wdi_ctx->wdi_version == IPA_WDI_3) {
|
||||
if (ipa_conn_wdi_pipes(in, out, ipa_wdi_ctx->wdi_notify)) {
|
||||
if (ipa3_conn_wdi3_pipes(in, out, ipa_wdi_ctx->wdi_notify)) {
|
||||
IPA_WDI_ERR("fail to setup wdi pipes\n");
|
||||
ret = -EFAULT;
|
||||
goto fail_connect_pipe;
|
||||
@@ -591,7 +591,7 @@ static int ipa_wdi_disconn_pipes_internal(void)
|
||||
}
|
||||
|
||||
if (ipa_wdi_ctx->wdi_version == IPA_WDI_3) {
|
||||
if (ipa_disconn_wdi_pipes(ipa_ep_idx_rx, ipa_ep_idx_tx)) {
|
||||
if (ipa3_disconn_wdi3_pipes(ipa_ep_idx_rx, ipa_ep_idx_tx)) {
|
||||
IPA_WDI_ERR("fail to tear down wdi pipes\n");
|
||||
return -EFAULT;
|
||||
}
|
||||
@@ -636,7 +636,7 @@ static int ipa_wdi_enable_pipes_internal(void)
|
||||
return -EFAULT;
|
||||
|
||||
if (ipa_wdi_ctx->wdi_version == IPA_WDI_3) {
|
||||
if (ipa_enable_wdi_pipes(ipa_ep_idx_tx, ipa_ep_idx_rx)) {
|
||||
if (ipa3_enable_wdi3_pipes(ipa_ep_idx_tx, ipa_ep_idx_rx)) {
|
||||
IPA_WDI_ERR("fail to enable wdi pipes\n");
|
||||
return -EFAULT;
|
||||
}
|
||||
@@ -694,7 +694,7 @@ static int ipa_wdi_disable_pipes_internal(void)
|
||||
}
|
||||
|
||||
if (ipa_wdi_ctx->wdi_version == IPA_WDI_3) {
|
||||
if (ipa_disable_wdi_pipes(ipa_ep_idx_tx, ipa_ep_idx_rx)) {
|
||||
if (ipa3_disable_wdi3_pipes(ipa_ep_idx_tx, ipa_ep_idx_rx)) {
|
||||
IPA_WDI_ERR("fail to disable wdi pipes\n");
|
||||
return -EFAULT;
|
||||
}
|
||||
@@ -759,7 +759,7 @@ void ipa_wdi3_register(void)
|
||||
funcs.ipa_wdi_reg_intf = ipa_wdi_reg_intf_internal;
|
||||
funcs.ipa_wdi_release_smmu_mapping = ipa3_release_wdi_mapping;
|
||||
funcs.ipa_wdi_set_perf_profile = ipa_wdi_set_perf_profile_internal;
|
||||
funcs.ipa_wdi_sw_stats = ipa_set_wlan_tx_info;
|
||||
funcs.ipa_wdi_sw_stats = ipa3_set_wlan_tx_info;
|
||||
|
||||
if (ipa_fmwk_register_ipa_wdi3(&funcs))
|
||||
pr_err("failed to register ipa_wdi3 APIs\n");
|
||||
|
@@ -15,9 +15,9 @@
|
||||
do { \
|
||||
pr_debug(OFFLOAD_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
do { \
|
||||
pr_debug(OFFLOAD_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -33,9 +33,9 @@
|
||||
do { \
|
||||
pr_err(OFFLOAD_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
pr_err_ratelimited_ipa( \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, __func__,\
|
||||
__LINE__, ## args);\
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
OFFLOAD_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -163,7 +163,7 @@ static int ipa_wigig_init_internal(struct ipa_wigig_init_in_params *in,
|
||||
|
||||
inout.notify = in->notify;
|
||||
inout.priv = in->priv;
|
||||
if (ipa_wigig_internal_init(&inout, in->int_notify,
|
||||
if (ipa3_wigig_internal_init(&inout, in->int_notify,
|
||||
&out->uc_db_pa)) {
|
||||
kfree(ipa_wigig_ctx);
|
||||
ipa_wigig_ctx = NULL;
|
||||
@@ -219,7 +219,7 @@ static bool ipa_wigig_is_smmu_enabled_internal(void)
|
||||
IPA_WIGIG_DBG("\n");
|
||||
|
||||
in.smmu_client = IPA_SMMU_WIGIG_CLIENT;
|
||||
ipa_get_smmu_params(&in, &out);
|
||||
ipa3_get_smmu_params(&in, &out);
|
||||
|
||||
IPA_WIGIG_DBG("exit (%d)\n", out.smmu_enable);
|
||||
|
||||
@@ -235,7 +235,7 @@ static int ipa_wigig_init_smmu_params(void)
|
||||
IPA_WIGIG_DBG("\n");
|
||||
|
||||
in.smmu_client = IPA_SMMU_WIGIG_CLIENT;
|
||||
ret = ipa_get_smmu_params(&in, &out);
|
||||
ret = ipa3_get_smmu_params(&in, &out);
|
||||
if (ret) {
|
||||
IPA_WIGIG_ERR("couldn't get SMMU params %d\n", ret);
|
||||
return ret;
|
||||
@@ -623,7 +623,7 @@ static int ipa_wigig_conn_rx_pipe_internal(struct ipa_wigig_conn_rx_in_params *i
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
ret = ipa_uc_state_check();
|
||||
ret = ipa3_uc_state_check();
|
||||
if (ret) {
|
||||
IPA_WIGIG_ERR("uC not ready\n");
|
||||
return ret;
|
||||
@@ -649,7 +649,7 @@ static int ipa_wigig_conn_rx_pipe_internal(struct ipa_wigig_conn_rx_in_params *i
|
||||
}
|
||||
IPA_WIGIG_DBG("pm hdl %d\n", ipa_wigig_ctx->ipa_pm_hdl);
|
||||
|
||||
ret = ipa_wigig_uc_msi_init(true,
|
||||
ret = ipa3_wigig_uc_msi_init(true,
|
||||
ipa_wigig_ctx->periph_baddr_pa,
|
||||
ipa_wigig_ctx->pseudo_cause_pa,
|
||||
ipa_wigig_ctx->int_gen_tx_pa,
|
||||
@@ -661,7 +661,7 @@ static int ipa_wigig_conn_rx_pipe_internal(struct ipa_wigig_conn_rx_in_params *i
|
||||
goto fail_msi;
|
||||
}
|
||||
|
||||
if (ipa_conn_wigig_rx_pipe_i(in, out, &ipa_wigig_ctx->parent)) {
|
||||
if (ipa3_conn_wigig_rx_pipe_i(in, out, &ipa_wigig_ctx->parent)) {
|
||||
IPA_WIGIG_ERR("fail to connect rx pipe\n");
|
||||
ret = -EFAULT;
|
||||
goto fail_connect_pipe;
|
||||
@@ -684,7 +684,7 @@ static int ipa_wigig_conn_rx_pipe_internal(struct ipa_wigig_conn_rx_in_params *i
|
||||
return 0;
|
||||
|
||||
fail_connect_pipe:
|
||||
ipa_wigig_uc_msi_init(false,
|
||||
ipa3_wigig_uc_msi_init(false,
|
||||
ipa_wigig_ctx->periph_baddr_pa,
|
||||
ipa_wigig_ctx->pseudo_cause_pa,
|
||||
ipa_wigig_ctx->int_gen_tx_pa,
|
||||
@@ -1400,7 +1400,7 @@ static int ipa_wigig_conn_rx_pipe_smmu_internal(
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
ret = ipa_uc_state_check();
|
||||
ret = ipa3_uc_state_check();
|
||||
if (ret) {
|
||||
IPA_WIGIG_ERR("uC not ready\n");
|
||||
return ret;
|
||||
@@ -1425,7 +1425,7 @@ static int ipa_wigig_conn_rx_pipe_smmu_internal(
|
||||
goto fail_pm;
|
||||
}
|
||||
|
||||
ret = ipa_wigig_uc_msi_init(true,
|
||||
ret = ipa3_wigig_uc_msi_init(true,
|
||||
ipa_wigig_ctx->periph_baddr_pa,
|
||||
ipa_wigig_ctx->pseudo_cause_pa,
|
||||
ipa_wigig_ctx->int_gen_tx_pa,
|
||||
@@ -1437,7 +1437,7 @@ static int ipa_wigig_conn_rx_pipe_smmu_internal(
|
||||
goto fail_msi;
|
||||
}
|
||||
|
||||
if (ipa_conn_wigig_rx_pipe_i(in, out, &ipa_wigig_ctx->parent)) {
|
||||
if (ipa3_conn_wigig_rx_pipe_i(in, out, &ipa_wigig_ctx->parent)) {
|
||||
IPA_WIGIG_ERR("fail to connect rx pipe\n");
|
||||
ret = -EFAULT;
|
||||
goto fail_connect_pipe;
|
||||
@@ -1463,11 +1463,11 @@ static int ipa_wigig_conn_rx_pipe_smmu_internal(
|
||||
return 0;
|
||||
|
||||
fail_smmu_store:
|
||||
ipa_disconn_wigig_pipe_i(IPA_CLIENT_WIGIG_PROD,
|
||||
ipa3_disconn_wigig_pipe_i(IPA_CLIENT_WIGIG_PROD,
|
||||
&in->pipe_smmu,
|
||||
&in->dbuff_smmu);
|
||||
fail_connect_pipe:
|
||||
ipa_wigig_uc_msi_init(false,
|
||||
ipa3_wigig_uc_msi_init(false,
|
||||
ipa_wigig_ctx->periph_baddr_pa,
|
||||
ipa_wigig_ctx->pseudo_cause_pa,
|
||||
ipa_wigig_ctx->int_gen_tx_pa,
|
||||
@@ -1562,7 +1562,7 @@ static int ipa_wigig_conn_client_internal(struct ipa_wigig_conn_tx_in_params *in
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
if (ipa_uc_state_check()) {
|
||||
if (ipa3_uc_state_check()) {
|
||||
IPA_WIGIG_ERR("uC not ready\n");
|
||||
return -EFAULT;
|
||||
}
|
||||
@@ -1572,7 +1572,7 @@ static int ipa_wigig_conn_client_internal(struct ipa_wigig_conn_tx_in_params *in
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
if (ipa_conn_wigig_client_i(in, out, ipa_wigig_ctx->tx_notify,
|
||||
if (ipa3_conn_wigig_client_i(in, out, ipa_wigig_ctx->tx_notify,
|
||||
ipa_wigig_ctx->priv)) {
|
||||
IPA_WIGIG_ERR(
|
||||
"fail to connect client. MAC [%X][%X][%X][%X][%X][%X]\n"
|
||||
@@ -1607,7 +1607,7 @@ static int ipa_wigig_conn_client_internal(struct ipa_wigig_conn_tx_in_params *in
|
||||
fail_sendmsg:
|
||||
ipa_wigig_clean_pipe_info(idx);
|
||||
fail_convert_client_to_idx:
|
||||
ipa_disconn_wigig_pipe_i(out->client, NULL, NULL);
|
||||
ipa3_disconn_wigig_pipe_i(out->client, NULL, NULL);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -1643,7 +1643,7 @@ static int ipa_wigig_conn_client_smmu_internal(
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
ret = ipa_uc_state_check();
|
||||
ret = ipa3_uc_state_check();
|
||||
if (ret) {
|
||||
IPA_WIGIG_ERR("uC not ready\n");
|
||||
return ret;
|
||||
@@ -1654,7 +1654,7 @@ static int ipa_wigig_conn_client_smmu_internal(
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
if (ipa_conn_wigig_client_i(in, out, ipa_wigig_ctx->tx_notify,
|
||||
if (ipa3_conn_wigig_client_i(in, out, ipa_wigig_ctx->tx_notify,
|
||||
ipa_wigig_ctx->priv)) {
|
||||
IPA_WIGIG_ERR(
|
||||
"fail to connect client. MAC [%X][%X][%X][%X][%X][%X]\n"
|
||||
@@ -1693,7 +1693,7 @@ fail_smmu:
|
||||
ipa_wigig_send_wlan_msg(WLAN_CLIENT_DISCONNECT, netdev_name,
|
||||
in->client_mac);
|
||||
fail_sendmsg:
|
||||
ipa_disconn_wigig_pipe_i(out->client, &in->pipe_smmu, &in->dbuff_smmu);
|
||||
ipa3_disconn_wigig_pipe_i(out->client, &in->pipe_smmu, &in->dbuff_smmu);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -1751,7 +1751,7 @@ static int ipa_wigig_disconn_pipe_internal(enum ipa_client_type client)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = ipa_disconn_wigig_pipe_i(client,
|
||||
ret = ipa3_disconn_wigig_pipe_i(client,
|
||||
pipe_smmu,
|
||||
rx_dbuff_smmu);
|
||||
} else {
|
||||
@@ -1760,13 +1760,13 @@ static int ipa_wigig_disconn_pipe_internal(enum ipa_client_type client)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = ipa_disconn_wigig_pipe_i(client,
|
||||
ret = ipa3_disconn_wigig_pipe_i(client,
|
||||
pipe_smmu,
|
||||
tx_dbuff_smmu);
|
||||
}
|
||||
|
||||
} else {
|
||||
ret = ipa_disconn_wigig_pipe_i(client, NULL, NULL);
|
||||
ret = ipa3_disconn_wigig_pipe_i(client, NULL, NULL);
|
||||
}
|
||||
|
||||
if (ret) {
|
||||
@@ -1777,7 +1777,7 @@ static int ipa_wigig_disconn_pipe_internal(enum ipa_client_type client)
|
||||
/* RX will be disconnected last, deinit uC msi config */
|
||||
if (client == IPA_CLIENT_WIGIG_PROD) {
|
||||
IPA_WIGIG_DBG("Rx pipe disconnected, deIniting uc\n");
|
||||
ret = ipa_wigig_uc_msi_init(false,
|
||||
ret = ipa3_wigig_uc_msi_init(false,
|
||||
ipa_wigig_ctx->periph_baddr_pa,
|
||||
ipa_wigig_ctx->pseudo_cause_pa,
|
||||
ipa_wigig_ctx->int_gen_tx_pa,
|
||||
@@ -1829,7 +1829,7 @@ static int ipa_wigig_enable_pipe_internal(enum ipa_client_type client)
|
||||
|
||||
IPA_WIGIG_DBG("enabling pipe %d\n", client);
|
||||
|
||||
ret = ipa_enable_wigig_pipe_i(client);
|
||||
ret = ipa3_enable_wigig_pipe_i(client);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -1847,7 +1847,7 @@ static int ipa_wigig_enable_pipe_internal(enum ipa_client_type client)
|
||||
return 0;
|
||||
|
||||
fail_pm_active:
|
||||
ipa_disable_wigig_pipe_i(client);
|
||||
ipa3_disable_wigig_pipe_i(client);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -1861,7 +1861,7 @@ static int ipa_wigig_disable_pipe_internal(enum ipa_client_type client)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = ipa_disable_wigig_pipe_i(client);
|
||||
ret = ipa3_disable_wigig_pipe_i(client);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@@ -1951,7 +1951,7 @@ static int rndis_ipa_ep_registers_cfg(
|
||||
}
|
||||
|
||||
usb_to_ipa_ep_cfg->deaggr.max_packet_len = max_xfer_size_bytes_to_dev;
|
||||
result = ipa_cfg_ep(usb_to_ipa_hdl, usb_to_ipa_ep_cfg);
|
||||
result = ipa3_cfg_ep(usb_to_ipa_hdl, usb_to_ipa_ep_cfg);
|
||||
if (result) {
|
||||
pr_err("failed to configure USB to IPA point\n");
|
||||
return result;
|
||||
@@ -1981,7 +1981,7 @@ static int rndis_ipa_ep_registers_cfg(
|
||||
/* enable hdr_metadata_reg_valid */
|
||||
usb_to_ipa_ep_cfg->hdr.hdr_metadata_reg_valid = true;
|
||||
|
||||
result = ipa_cfg_ep(ipa_to_usb_hdl, &ipa_to_usb_ep_cfg);
|
||||
result = ipa3_cfg_ep(ipa_to_usb_hdl, &ipa_to_usb_ep_cfg);
|
||||
if (result) {
|
||||
pr_err("failed to configure IPA to USB end-point\n");
|
||||
return result;
|
||||
@@ -2372,7 +2372,7 @@ static ssize_t rndis_ipa_debugfs_aggr_write
|
||||
return -EFAULT;
|
||||
rndis_ipa_ctx = file->private_data;
|
||||
|
||||
result = ipa_cfg_ep(rndis_ipa_ctx->usb_to_ipa_hdl, &ipa_to_usb_ep_cfg);
|
||||
result = ipa3_cfg_ep(rndis_ipa_ctx->usb_to_ipa_hdl, &ipa_to_usb_ep_cfg);
|
||||
if (result) {
|
||||
pr_err("failed to re-configure USB to IPA point\n");
|
||||
return result;
|
||||
|
@@ -51,56 +51,56 @@
|
||||
do { \
|
||||
struct ipa_active_client_logging_info log_info; \
|
||||
IPA_ACTIVE_CLIENTS_PREP_EP(log_info, client); \
|
||||
ipa_inc_client_enable_clks(&log_info); \
|
||||
ipa3_inc_client_enable_clks(&log_info); \
|
||||
} while (0)
|
||||
|
||||
#define IPA_ACTIVE_CLIENTS_DEC_EP(client) \
|
||||
do { \
|
||||
struct ipa_active_client_logging_info log_info; \
|
||||
IPA_ACTIVE_CLIENTS_PREP_EP(log_info, client); \
|
||||
ipa_dec_client_disable_clks(&log_info); \
|
||||
ipa3_dec_client_disable_clks(&log_info); \
|
||||
} while (0)
|
||||
|
||||
#define IPA_ACTIVE_CLIENTS_INC_SIMPLE() \
|
||||
do { \
|
||||
struct ipa_active_client_logging_info log_info; \
|
||||
IPA_ACTIVE_CLIENTS_PREP_SIMPLE(log_info); \
|
||||
ipa_inc_client_enable_clks(&log_info); \
|
||||
ipa3_inc_client_enable_clks(&log_info); \
|
||||
} while (0)
|
||||
|
||||
#define IPA_ACTIVE_CLIENTS_DEC_SIMPLE() \
|
||||
do { \
|
||||
struct ipa_active_client_logging_info log_info; \
|
||||
IPA_ACTIVE_CLIENTS_PREP_SIMPLE(log_info); \
|
||||
ipa_dec_client_disable_clks(&log_info); \
|
||||
ipa3_dec_client_disable_clks(&log_info); \
|
||||
} while (0)
|
||||
|
||||
#define IPA_ACTIVE_CLIENTS_INC_RESOURCE(resource_name) \
|
||||
do { \
|
||||
struct ipa_active_client_logging_info log_info; \
|
||||
IPA_ACTIVE_CLIENTS_PREP_RESOURCE(log_info, resource_name); \
|
||||
ipa_inc_client_enable_clks(&log_info); \
|
||||
ipa3_inc_client_enable_clks(&log_info); \
|
||||
} while (0)
|
||||
|
||||
#define IPA_ACTIVE_CLIENTS_DEC_RESOURCE(resource_name) \
|
||||
do { \
|
||||
struct ipa_active_client_logging_info log_info; \
|
||||
IPA_ACTIVE_CLIENTS_PREP_RESOURCE(log_info, resource_name); \
|
||||
ipa_dec_client_disable_clks(&log_info); \
|
||||
ipa3_dec_client_disable_clks(&log_info); \
|
||||
} while (0)
|
||||
|
||||
#define IPA_ACTIVE_CLIENTS_INC_SPECIAL(id_str) \
|
||||
do { \
|
||||
struct ipa_active_client_logging_info log_info; \
|
||||
IPA_ACTIVE_CLIENTS_PREP_SPECIAL(log_info, id_str); \
|
||||
ipa_inc_client_enable_clks(&log_info); \
|
||||
ipa3_inc_client_enable_clks(&log_info); \
|
||||
} while (0)
|
||||
|
||||
#define IPA_ACTIVE_CLIENTS_DEC_SPECIAL(id_str) \
|
||||
do { \
|
||||
struct ipa_active_client_logging_info log_info; \
|
||||
IPA_ACTIVE_CLIENTS_PREP_SPECIAL(log_info, id_str); \
|
||||
ipa_dec_client_disable_clks(&log_info); \
|
||||
ipa3_dec_client_disable_clks(&log_info); \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
@@ -450,64 +450,64 @@ extern const char *ipa_clients_strings[];
|
||||
## args); \
|
||||
} while (0)
|
||||
|
||||
void ipa_inc_client_enable_clks(struct ipa_active_client_logging_info *id);
|
||||
void ipa_dec_client_disable_clks(struct ipa_active_client_logging_info *id);
|
||||
int ipa_inc_client_enable_clks_no_block(
|
||||
void ipa3_inc_client_enable_clks(struct ipa_active_client_logging_info *id);
|
||||
void ipa3_dec_client_disable_clks(struct ipa_active_client_logging_info *id);
|
||||
int ipa3_inc_client_enable_clks_no_block(
|
||||
struct ipa_active_client_logging_info *id);
|
||||
int ipa_suspend_resource_no_block(enum ipa_rm_resource_name resource);
|
||||
int ipa_resume_resource(enum ipa_rm_resource_name name);
|
||||
int ipa_suspend_resource_sync(enum ipa_rm_resource_name resource);
|
||||
int ipa_set_required_perf_profile(enum ipa_voltage_level floor_voltage,
|
||||
int ipa3_suspend_resource_no_block(enum ipa_rm_resource_name resource);
|
||||
int ipa3_resume_resource(enum ipa_rm_resource_name name);
|
||||
int ipa3_suspend_resource_sync(enum ipa_rm_resource_name resource);
|
||||
int ipa3_set_required_perf_profile(enum ipa_voltage_level floor_voltage,
|
||||
u32 bandwidth_mbps);
|
||||
void *ipa_get_ipc_logbuf(void);
|
||||
void *ipa_get_ipc_logbuf_low(void);
|
||||
void *ipa3_get_ipc_logbuf(void);
|
||||
void *ipa3_get_ipc_logbuf_low(void);
|
||||
void ipa_assert(void);
|
||||
|
||||
/* MHI */
|
||||
int ipa_mhi_init_engine(struct ipa_mhi_init_engine *params);
|
||||
int ipa_connect_mhi_pipe(struct ipa_mhi_connect_params_internal *in,
|
||||
int ipa3_mhi_init_engine(struct ipa_mhi_init_engine *params);
|
||||
int ipa3_connect_mhi_pipe(struct ipa_mhi_connect_params_internal *in,
|
||||
u32 *clnt_hdl);
|
||||
int ipa_disconnect_mhi_pipe(u32 clnt_hdl);
|
||||
bool ipa_mhi_stop_gsi_channel(enum ipa_client_type client);
|
||||
int ipa_qmi_enable_force_clear_datapath_send(
|
||||
int ipa3_disconnect_mhi_pipe(u32 clnt_hdl);
|
||||
bool ipa3_mhi_stop_gsi_channel(enum ipa_client_type client);
|
||||
int ipa3_qmi_enable_force_clear_datapath_send(
|
||||
struct ipa_enable_force_clear_datapath_req_msg_v01 *req);
|
||||
int ipa_qmi_disable_force_clear_datapath_send(
|
||||
int ipa3_qmi_disable_force_clear_datapath_send(
|
||||
struct ipa_disable_force_clear_datapath_req_msg_v01 *req);
|
||||
int ipa_generate_tag_process(void);
|
||||
int ipa_disable_sps_pipe(enum ipa_client_type client);
|
||||
int ipa_mhi_reset_channel_internal(enum ipa_client_type client);
|
||||
int ipa_mhi_start_channel_internal(enum ipa_client_type client);
|
||||
bool ipa_mhi_sps_channel_empty(enum ipa_client_type client);
|
||||
int ipa_mhi_resume_channels_internal(enum ipa_client_type client,
|
||||
int ipa3_generate_tag_process(void);
|
||||
int ipa3_disable_sps_pipe(enum ipa_client_type client);
|
||||
int ipa3_mhi_reset_channel_internal(enum ipa_client_type client);
|
||||
int ipa3_mhi_start_channel_internal(enum ipa_client_type client);
|
||||
bool ipa3_mhi_sps_channel_empty(enum ipa_client_type client);
|
||||
int ipa3_mhi_resume_channels_internal(enum ipa_client_type client,
|
||||
bool LPTransitionRejected, bool brstmode_enabled,
|
||||
union __packed gsi_channel_scratch ch_scratch, u8 index);
|
||||
int ipa_mhi_query_ch_info(enum ipa_client_type client,
|
||||
int ipa3_mhi_query_ch_info(enum ipa_client_type client,
|
||||
struct gsi_chan_info *ch_info);
|
||||
int ipa_mhi_destroy_channel(enum ipa_client_type client);
|
||||
int ipa3_mhi_destroy_channel(enum ipa_client_type client);
|
||||
int ipa_mhi_is_using_dma(bool *flag);
|
||||
|
||||
/* MHI uC */
|
||||
int ipa_uc_mhi_send_dl_ul_sync_info(union IpaHwMhiDlUlSyncCmdData_t *cmd);
|
||||
int ipa_uc_mhi_init
|
||||
int ipa3_uc_mhi_send_dl_ul_sync_info(union IpaHwMhiDlUlSyncCmdData_t *cmd);
|
||||
int ipa3_uc_mhi_init
|
||||
(void (*ready_cb)(void), void (*wakeup_request_cb)(void));
|
||||
void ipa_uc_mhi_cleanup(void);
|
||||
int ipa_uc_mhi_reset_channel(int channelHandle);
|
||||
int ipa_uc_mhi_suspend_channel(int channelHandle);
|
||||
int ipa_uc_mhi_stop_event_update_channel(int channelHandle);
|
||||
int ipa_uc_mhi_print_stats(char *dbg_buff, int size);
|
||||
void ipa3_uc_mhi_cleanup(void);
|
||||
int ipa3_uc_mhi_reset_channel(int channelHandle);
|
||||
int ipa3_uc_mhi_suspend_channel(int channelHandle);
|
||||
int ipa3_uc_mhi_stop_event_update_channel(int channelHandle);
|
||||
int ipa3_uc_mhi_print_stats(char *dbg_buff, int size);
|
||||
|
||||
/* uC */
|
||||
int ipa_uc_state_check(void);
|
||||
int ipa3_uc_state_check(void);
|
||||
|
||||
/* general */
|
||||
void ipa_get_holb(int ep_idx, struct ipa_ep_cfg_holb *holb);
|
||||
void ipa_set_tag_process_before_gating(bool val);
|
||||
bool ipa_has_open_aggr_frame(enum ipa_client_type client);
|
||||
int ipa_setup_uc_ntn_pipes(struct ipa_ntn_conn_in_params *in,
|
||||
void ipa3_get_holb(int ep_idx, struct ipa_ep_cfg_holb *holb);
|
||||
void ipa3_set_tag_process_before_gating(bool val);
|
||||
bool ipa3_has_open_aggr_frame(enum ipa_client_type client);
|
||||
int ipa3_setup_uc_ntn_pipes(struct ipa_ntn_conn_in_params *in,
|
||||
ipa_notify_cb notify, void *priv, u8 hdr_len,
|
||||
struct ipa_ntn_conn_out_params *outp);
|
||||
|
||||
int ipa_tear_down_uc_offload_pipes(int ipa_ep_idx_ul, int ipa_ep_idx_dl,
|
||||
int ipa3_tear_down_uc_offload_pipes(int ipa_ep_idx_ul, int ipa_ep_idx_dl,
|
||||
struct ipa_ntn_conn_in_params *params);
|
||||
u8 *ipa_write_64(u64 w, u8 *dest);
|
||||
u8 *ipa_write_32(u32 w, u8 *dest);
|
||||
@@ -515,22 +515,22 @@ u8 *ipa_write_16(u16 hw, u8 *dest);
|
||||
u8 *ipa_write_8(u8 b, u8 *dest);
|
||||
u8 *ipa_pad_to_64(u8 *dest);
|
||||
u8 *ipa_pad_to_32(u8 *dest);
|
||||
int ipa_ntn_uc_reg_rdyCB(void (*ipauc_ready_cb)(void *user_data),
|
||||
int ipa3_ntn_uc_reg_rdyCB(void (*ipauc_ready_cb)(void *user_data),
|
||||
void *user_data);
|
||||
void ipa_ntn_uc_dereg_rdyCB(void);
|
||||
void ipa3_ntn_uc_dereg_rdyCB(void);
|
||||
|
||||
int ipa_conn_wdi_pipes(struct ipa_wdi_conn_in_params *in,
|
||||
int ipa3_conn_wdi3_pipes(struct ipa_wdi_conn_in_params *in,
|
||||
struct ipa_wdi_conn_out_params *out,
|
||||
ipa_wdi_meter_notifier_cb wdi_notify);
|
||||
|
||||
int ipa_disconn_wdi_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx);
|
||||
int ipa3_disconn_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx);
|
||||
|
||||
int ipa_enable_wdi_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx);
|
||||
int ipa3_enable_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx);
|
||||
|
||||
int ipa_disable_wdi_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx);
|
||||
int ipa3_disable_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx);
|
||||
|
||||
const char *ipa_get_version_string(enum ipa_hw_type ver);
|
||||
int ipa_start_gsi_channel(u32 clnt_hdl);
|
||||
int ipa3_start_gsi_channel(u32 clnt_hdl);
|
||||
|
||||
int ipa_smmu_store_sgt(struct sg_table **out_ch_ptr,
|
||||
struct sg_table *in_sgt_ptr);
|
||||
@@ -549,19 +549,19 @@ static inline void ipa_ut_module_exit(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
int ipa_wigig_internal_init(
|
||||
int ipa3_wigig_internal_init(
|
||||
struct ipa_wdi_uc_ready_params *inout,
|
||||
ipa_wigig_misc_int_cb int_notify,
|
||||
phys_addr_t *uc_db_pa);
|
||||
|
||||
int ipa_conn_wigig_rx_pipe_i(void *in, struct ipa_wigig_conn_out_params *out,
|
||||
int ipa3_conn_wigig_rx_pipe_i(void *in, struct ipa_wigig_conn_out_params *out,
|
||||
struct dentry **parent);
|
||||
|
||||
int ipa_conn_wigig_client_i(void *in, struct ipa_wigig_conn_out_params *out,
|
||||
int ipa3_conn_wigig_client_i(void *in, struct ipa_wigig_conn_out_params *out,
|
||||
ipa_notify_cb tx_notify,
|
||||
void *priv);
|
||||
|
||||
int ipa_wigig_uc_msi_init(
|
||||
int ipa3_wigig_uc_msi_init(
|
||||
bool init,
|
||||
phys_addr_t periph_baddr_pa,
|
||||
phys_addr_t pseudo_cause_pa,
|
||||
@@ -569,13 +569,13 @@ int ipa_wigig_uc_msi_init(
|
||||
phys_addr_t int_gen_rx_pa,
|
||||
phys_addr_t dma_ep_misc_pa);
|
||||
|
||||
int ipa_disconn_wigig_pipe_i(enum ipa_client_type client,
|
||||
int ipa3_disconn_wigig_pipe_i(enum ipa_client_type client,
|
||||
struct ipa_wigig_pipe_setup_info_smmu *pipe_smmu,
|
||||
void *dbuff);
|
||||
|
||||
int ipa_enable_wigig_pipe_i(enum ipa_client_type client);
|
||||
int ipa3_enable_wigig_pipe_i(enum ipa_client_type client);
|
||||
|
||||
int ipa_disable_wigig_pipe_i(enum ipa_client_type client);
|
||||
int ipa3_disable_wigig_pipe_i(enum ipa_client_type client);
|
||||
|
||||
int ipa_wigig_send_msg(int msg_type,
|
||||
const char *netdev_name, u8 *mac,
|
||||
@@ -584,19 +584,19 @@ int ipa_wigig_send_msg(int msg_type,
|
||||
int ipa_wigig_send_wlan_msg(enum ipa_wlan_event msg_type,
|
||||
const char *netdev_name, u8 *mac);
|
||||
|
||||
void ipa_register_client_callback(int (*client_cb)(bool is_lock),
|
||||
void ipa3_register_client_callback(int (*client_cb)(bool is_lock),
|
||||
bool (*teth_port_state)(void), u32 ipa_ep_idx);
|
||||
|
||||
void ipa_deregister_client_callback(u32 ipa_ep_idx);
|
||||
void ipa3_deregister_client_callback(u32 ipa_ep_idx);
|
||||
|
||||
/*
|
||||
* Configuration
|
||||
*/
|
||||
int ipa_cfg_ep(u32 clnt_hdl, const struct ipa_ep_cfg *ipa_ep_cfg);
|
||||
int ipa3_cfg_ep(u32 clnt_hdl, const struct ipa_ep_cfg *ipa_ep_cfg);
|
||||
|
||||
int ipa_cfg_ep_nat(u32 clnt_hdl, const struct ipa_ep_cfg_nat *ipa_ep_cfg);
|
||||
int ipa3_cfg_ep_nat(u32 clnt_hdl, const struct ipa_ep_cfg_nat *ipa_ep_cfg);
|
||||
|
||||
int ipa_cfg_ep_conn_track(u32 clnt_hdl,
|
||||
int ipa3_cfg_ep_conn_track(u32 clnt_hdl,
|
||||
const struct ipa_ep_cfg_conn_track *ep_conn_track);
|
||||
|
||||
int ipa_cfg_ep_hdr(u32 clnt_hdl, const struct ipa_ep_cfg_hdr *ipa_ep_cfg);
|
||||
@@ -630,124 +630,106 @@ int ipa3_add_hdr(struct ipa_ioc_add_hdr *hdrs);
|
||||
|
||||
int ipa3_del_hdr(struct ipa_ioc_del_hdr *hdls);
|
||||
|
||||
int ipa_add_hdr_usr(struct ipa_ioc_add_hdr *hdrs, bool user_only);
|
||||
int ipa3_add_hdr_usr(struct ipa_ioc_add_hdr *hdrs, bool user_only);
|
||||
|
||||
int ipa_reset_hdr(bool user_only);
|
||||
int ipa3_reset_hdr(bool user_only);
|
||||
|
||||
/*
|
||||
* Header Processing Context
|
||||
*/
|
||||
int ipa_add_hdr_proc_ctx(struct ipa_ioc_add_hdr_proc_ctx *proc_ctxs,
|
||||
int ipa3_add_hdr_proc_ctx(struct ipa_ioc_add_hdr_proc_ctx *proc_ctxs,
|
||||
bool user_only);
|
||||
|
||||
int ipa_del_hdr_proc_ctx(struct ipa_ioc_del_hdr_proc_ctx *hdls);
|
||||
int ipa3_del_hdr_proc_ctx(struct ipa_ioc_del_hdr_proc_ctx *hdls);
|
||||
|
||||
/*
|
||||
* Routing
|
||||
*/
|
||||
|
||||
int ipa_add_rt_rule_v2(struct ipa_ioc_add_rt_rule_v2 *rules);
|
||||
int ipa3_add_rt_rule_v2(struct ipa_ioc_add_rt_rule_v2 *rules);
|
||||
|
||||
int ipa_add_rt_rule_usr(struct ipa_ioc_add_rt_rule *rules, bool user_only);
|
||||
int ipa3_add_rt_rule_usr(struct ipa_ioc_add_rt_rule *rules, bool user_only);
|
||||
|
||||
int ipa_add_rt_rule_usr_v2(struct ipa_ioc_add_rt_rule_v2 *rules,
|
||||
int ipa3_add_rt_rule_usr_v2(struct ipa_ioc_add_rt_rule_v2 *rules,
|
||||
bool user_only);
|
||||
|
||||
int ipa_del_rt_rule(struct ipa_ioc_del_rt_rule *hdls);
|
||||
int ipa3_del_rt_rule(struct ipa_ioc_del_rt_rule *hdls);
|
||||
|
||||
int ipa_commit_rt(enum ipa_ip_type ip);
|
||||
int ipa3_commit_rt(enum ipa_ip_type ip);
|
||||
|
||||
int ipa_reset_rt(enum ipa_ip_type ip, bool user_only);
|
||||
|
||||
int ipa_query_rt_index(struct ipa_ioc_get_rt_tbl_indx *in);
|
||||
|
||||
int ipa_mdfy_rt_rule(struct ipa_ioc_mdfy_rt_rule *rules);
|
||||
|
||||
int ipa_mdfy_rt_rule_v2(struct ipa_ioc_mdfy_rt_rule_v2 *rules);
|
||||
|
||||
int ipa_get_rt_tbl(struct ipa_ioc_get_rt_tbl *lookup);
|
||||
int ipa3_reset_rt(enum ipa_ip_type ip, bool user_only);
|
||||
|
||||
/*
|
||||
* Filtering
|
||||
*/
|
||||
int ipa_add_flt_rule(struct ipa_ioc_add_flt_rule *rules);
|
||||
|
||||
int ipa_add_flt_rule_v2(struct ipa_ioc_add_flt_rule_v2 *rules);
|
||||
int ipa3_del_flt_rule(struct ipa_ioc_del_flt_rule *hdls);
|
||||
|
||||
int ipa_add_flt_rule_usr(struct ipa_ioc_add_flt_rule *rules, bool user_only);
|
||||
int ipa3_mdfy_flt_rule(struct ipa_ioc_mdfy_flt_rule *rules);
|
||||
|
||||
int ipa_add_flt_rule_usr_v2(struct ipa_ioc_add_flt_rule_v2 *rules,
|
||||
bool user_only);
|
||||
int ipa3_mdfy_flt_rule_v2(struct ipa_ioc_mdfy_flt_rule_v2 *rules);
|
||||
|
||||
int ipa_del_flt_rule(struct ipa_ioc_del_flt_rule *hdls);
|
||||
|
||||
int ipa_mdfy_flt_rule(struct ipa_ioc_mdfy_flt_rule *rules);
|
||||
|
||||
int ipa_mdfy_flt_rule_v2(struct ipa_ioc_mdfy_flt_rule_v2 *rules);
|
||||
|
||||
int ipa_commit_flt(enum ipa_ip_type ip);
|
||||
|
||||
int ipa_reset_flt(enum ipa_ip_type ip, bool user_only);
|
||||
int ipa3_reset_flt(enum ipa_ip_type ip, bool user_only);
|
||||
|
||||
/*
|
||||
* NAT\IPv6CT
|
||||
*/
|
||||
int ipa_allocate_nat_device(struct ipa_ioc_nat_alloc_mem *mem);
|
||||
int ipa_allocate_nat_table(struct ipa_ioc_nat_ipv6ct_table_alloc *table_alloc);
|
||||
int ipa_allocate_ipv6ct_table(
|
||||
int ipa3_allocate_nat_device(struct ipa_ioc_nat_alloc_mem *mem);
|
||||
int ipa3_allocate_nat_table(struct ipa_ioc_nat_ipv6ct_table_alloc *table_alloc);
|
||||
int ipa3_allocate_ipv6ct_table(
|
||||
struct ipa_ioc_nat_ipv6ct_table_alloc *table_alloc);
|
||||
|
||||
int ipa_nat_init_cmd(struct ipa_ioc_v4_nat_init *init);
|
||||
int ipa_ipv6ct_init_cmd(struct ipa_ioc_ipv6ct_init *init);
|
||||
int ipa3_nat_init_cmd(struct ipa_ioc_v4_nat_init *init);
|
||||
int ipa3_ipv6ct_init_cmd(struct ipa_ioc_ipv6ct_init *init);
|
||||
|
||||
int ipa_nat_dma_cmd(struct ipa_ioc_nat_dma_cmd *dma);
|
||||
int ipa_table_dma_cmd(struct ipa_ioc_nat_dma_cmd *dma);
|
||||
int ipa3_nat_dma_cmd(struct ipa_ioc_nat_dma_cmd *dma);
|
||||
int ipa3_table_dma_cmd(struct ipa_ioc_nat_dma_cmd *dma);
|
||||
|
||||
int ipa_nat_del_cmd(struct ipa_ioc_v4_nat_del *del);
|
||||
int ipa_del_nat_table(struct ipa_ioc_nat_ipv6ct_table_del *del);
|
||||
int ipa_del_ipv6ct_table(struct ipa_ioc_nat_ipv6ct_table_del *del);
|
||||
int ipa3_nat_del_cmd(struct ipa_ioc_v4_nat_del *del);
|
||||
int ipa3_del_nat_table(struct ipa_ioc_nat_ipv6ct_table_del *del);
|
||||
int ipa3_del_ipv6ct_table(struct ipa_ioc_nat_ipv6ct_table_del *del);
|
||||
|
||||
int ipa_nat_mdfy_pdn(struct ipa_ioc_nat_pdn_entry *mdfy_pdn);
|
||||
int ipa3_nat_mdfy_pdn(struct ipa_ioc_nat_pdn_entry *mdfy_pdn);
|
||||
|
||||
/*
|
||||
* Data path
|
||||
*/
|
||||
int ipa_rx_poll(u32 clnt_hdl, int budget);
|
||||
void ipa_recycle_wan_skb(struct sk_buff *skb);
|
||||
int ipa3_rx_poll(u32 clnt_hdl, int budget);
|
||||
void ipa3_recycle_wan_skb(struct sk_buff *skb);
|
||||
|
||||
/*
|
||||
* System pipes
|
||||
*/
|
||||
int ipa_set_wlan_tx_info(struct ipa_wdi_tx_info *info);
|
||||
int ipa3_set_wlan_tx_info(struct ipa_wdi_tx_info *info);
|
||||
|
||||
/*
|
||||
* Tethering bridge (Rmnet / MBIM)
|
||||
*/
|
||||
int teth_bridge_init(struct teth_bridge_init_params *params);
|
||||
int ipa3_teth_bridge_init(struct teth_bridge_init_params *params);
|
||||
|
||||
int teth_bridge_disconnect(enum ipa_client_type client);
|
||||
int ipa3_teth_bridge_disconnect(enum ipa_client_type client);
|
||||
|
||||
int teth_bridge_connect(struct teth_bridge_connect_params *connect_params);
|
||||
int ipa3_teth_bridge_connect(struct teth_bridge_connect_params *connect_params);
|
||||
|
||||
/*
|
||||
* Tethering client info
|
||||
*/
|
||||
void ipa_set_client(int index, enum ipacm_client_enum client, bool uplink);
|
||||
void ipa3_set_client(int index, enum ipacm_client_enum client, bool uplink);
|
||||
|
||||
enum ipacm_client_enum ipa_get_client(int pipe_idx);
|
||||
enum ipacm_client_enum ipa3_get_client(int pipe_idx);
|
||||
|
||||
bool ipa_get_client_uplink(int pipe_idx);
|
||||
bool ipa3_get_client_uplink(int pipe_idx);
|
||||
|
||||
/*
|
||||
* mux id
|
||||
*/
|
||||
int ipa_write_qmap_id(struct ipa_ioc_write_qmapid *param_in);
|
||||
int ipa3_write_qmap_id(struct ipa_ioc_write_qmapid *param_in);
|
||||
|
||||
/*
|
||||
* interrupts
|
||||
*/
|
||||
|
||||
int ipa_remove_interrupt_handler(enum ipa_irq_type interrupt);
|
||||
int ipa3_remove_interrupt_handler(enum ipa_irq_type interrupt);
|
||||
|
||||
/*
|
||||
* Interface
|
||||
@@ -763,13 +745,15 @@ int ipa3_deregister_intf(const char *name);
|
||||
* Miscellaneous
|
||||
*/
|
||||
|
||||
int ipa_uc_debug_stats_alloc(
|
||||
int ipa3_uc_debug_stats_alloc(
|
||||
struct IpaHwOffloadStatsAllocCmdData_t cmdinfo);
|
||||
int ipa_uc_debug_stats_dealloc(uint32_t protocol);
|
||||
void ipa_get_gsi_stats(int prot_id,
|
||||
int ipa3_uc_debug_stats_dealloc(uint32_t protocol);
|
||||
void ipa3_get_gsi_stats(int prot_id,
|
||||
struct ipa_uc_dbg_ring_stats *stats);
|
||||
int ipa_get_prot_id(enum ipa_client_type client);
|
||||
int ipa3_get_prot_id(enum ipa_client_type client);
|
||||
bool ipa_is_client_handle_valid(u32 clnt_hdl);
|
||||
int ipa3_get_smmu_params(struct ipa_smmu_in_params *in,
|
||||
struct ipa_smmu_out_params *out);
|
||||
|
||||
/**
|
||||
* ipa_tz_unlock_reg - Unlocks memory regions so that they become accessible
|
||||
@@ -784,6 +768,6 @@ bool ipa_is_client_handle_valid(u32 clnt_hdl);
|
||||
*
|
||||
* Returns: 0 on success, negative on failure
|
||||
*/
|
||||
int ipa_tz_unlock_reg(struct ipa_tz_unlock_reg_info *reg_info, u16 num_regs);
|
||||
int ipa3_tz_unlock_reg(struct ipa_tz_unlock_reg_info *reg_info, u16 num_regs);
|
||||
|
||||
#endif /* _IPA_COMMON_I_H_ */
|
||||
|
@@ -412,7 +412,7 @@ static void ipa_rm_wq_suspend_handler(struct work_struct *work)
|
||||
IPA_RM_ERR("resource is not CONS\n");
|
||||
return;
|
||||
}
|
||||
ipa_suspend_resource_sync(ipa_rm_work->resource_name);
|
||||
ipa3_suspend_resource_sync(ipa_rm_work->resource_name);
|
||||
spin_lock_irqsave(&ipa_rm_ctx->ipa_rm_lock, flags);
|
||||
if (ipa_rm_dep_graph_get_resource(ipa_rm_ctx->dep_graph,
|
||||
ipa_rm_work->resource_name,
|
||||
@@ -626,10 +626,10 @@ static void ipa_rm_perf_profile_notify_to_ipa_work(struct work_struct *work)
|
||||
IPA_RM_DBG_LOW("calling to IPA driver. voltage %d bandwidth %d\n",
|
||||
notify_work->volt, notify_work->bandwidth_mbps);
|
||||
|
||||
res = ipa_set_required_perf_profile(notify_work->volt,
|
||||
res = ipa3_set_required_perf_profile(notify_work->volt,
|
||||
notify_work->bandwidth_mbps);
|
||||
if (res) {
|
||||
IPA_RM_ERR("ipa_set_required_perf_profile failed %d\n", res);
|
||||
IPA_RM_ERR("ipa3_set_required_perf_profile failed %d\n", res);
|
||||
goto bail;
|
||||
}
|
||||
|
||||
|
@@ -17,16 +17,16 @@
|
||||
do { \
|
||||
pr_debug(IPA_RM_DRV_NAME " %s:%d " fmt, __func__, __LINE__, \
|
||||
## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_RM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
#define IPA_RM_DBG(fmt, args...) \
|
||||
do { \
|
||||
pr_debug(IPA_RM_DRV_NAME " %s:%d " fmt, __func__, __LINE__, \
|
||||
## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_RM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_RM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -34,9 +34,9 @@
|
||||
do { \
|
||||
pr_err(IPA_RM_DRV_NAME " %s:%d " fmt, __func__, __LINE__, \
|
||||
## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_RM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_RM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
|
@@ -126,7 +126,7 @@ int ipa_rm_resource_consumer_request_work(struct ipa_rm_resource_cons *consumer,
|
||||
} else {
|
||||
consumer->resource.state = IPA_RM_GRANTED;
|
||||
ipa_rm_perf_profile_change(consumer->resource.name);
|
||||
ipa_resume_resource(consumer->resource.name);
|
||||
ipa3_resume_resource(consumer->resource.name);
|
||||
}
|
||||
} else if (driver_result != -EINPROGRESS) {
|
||||
consumer->resource.state = prev_state;
|
||||
@@ -162,7 +162,7 @@ int ipa_rm_resource_consumer_request(
|
||||
IPA_ACTIVE_CLIENTS_PREP_RESOURCE(log_info,
|
||||
ipa_rm_resource_str(consumer->resource.name));
|
||||
if (prev_state == IPA_RM_RELEASE_IN_PROGRESS ||
|
||||
ipa_inc_client_enable_clks_no_block(&log_info) != 0) {
|
||||
ipa3_inc_client_enable_clks_no_block(&log_info) != 0) {
|
||||
IPA_RM_DBG_LOW("async resume work for %s\n",
|
||||
ipa_rm_resource_str(consumer->resource.name));
|
||||
ipa_rm_wq_send_resume_cmd(consumer->resource.name,
|
||||
@@ -229,7 +229,7 @@ int ipa_rm_resource_consumer_release(
|
||||
if (consumer->usage_count == 0) {
|
||||
consumer->resource.state = IPA_RM_RELEASE_IN_PROGRESS;
|
||||
if (save_state == IPA_RM_REQUEST_IN_PROGRESS ||
|
||||
ipa_suspend_resource_no_block(
|
||||
ipa3_suspend_resource_no_block(
|
||||
consumer->resource.name) != 0) {
|
||||
ipa_rm_wq_send_suspend_cmd(
|
||||
consumer->resource.name,
|
||||
@@ -1015,7 +1015,7 @@ void ipa_rm_resource_consumer_handle_cb(struct ipa_rm_resource_cons *consumer,
|
||||
goto bail;
|
||||
consumer->resource.state = IPA_RM_GRANTED;
|
||||
ipa_rm_perf_profile_change(consumer->resource.name);
|
||||
ipa_resume_resource(consumer->resource.name);
|
||||
ipa3_resume_resource(consumer->resource.name);
|
||||
complete_all(&consumer->request_consumer_in_progress);
|
||||
break;
|
||||
case IPA_RM_RELEASE_IN_PROGRESS:
|
||||
|
@@ -9,14 +9,14 @@
|
||||
#ifndef _IPA_UC_OFFLOAD_COMMON_I_H_
|
||||
#define _IPA_UC_OFFLOAD_COMMON_I_H_
|
||||
|
||||
int ipa_setup_uc_ntn_pipes(struct ipa_ntn_conn_in_params *in,
|
||||
int ipa3_setup_uc_ntn_pipes(struct ipa_ntn_conn_in_params *in,
|
||||
ipa_notify_cb notify, void *priv, u8 hdr_len,
|
||||
struct ipa_ntn_conn_out_params *outp);
|
||||
|
||||
int ipa_tear_down_uc_offload_pipes(int ipa_ep_idx_ul, int ipa_ep_idx_dl,
|
||||
int ipa3_tear_down_uc_offload_pipes(int ipa_ep_idx_ul, int ipa_ep_idx_dl,
|
||||
struct ipa_ntn_conn_in_params *params);
|
||||
|
||||
int ipa_ntn_uc_reg_rdyCB(void (*ipauc_ready_cb)(void *user_data),
|
||||
int ipa3_ntn_uc_reg_rdyCB(void (*ipauc_ready_cb)(void *user_data),
|
||||
void *user_data);
|
||||
void ipa_ntn_uc_dereg_rdyCB(void);
|
||||
void ipa3_ntn_uc_dereg_rdyCB(void);
|
||||
#endif /* _IPA_UC_OFFLOAD_COMMON_I_H_ */
|
||||
|
@@ -44,6 +44,8 @@
|
||||
|
||||
#endif
|
||||
|
||||
#define DRV_NAME "ipa"
|
||||
|
||||
#define IPA_SUBSYSTEM_NAME "ipa_fws"
|
||||
#define IPA_UC_SUBSYSTEM_NAME "ipa_uc"
|
||||
|
||||
@@ -144,6 +146,296 @@ static struct clk *ipa3_clk;
|
||||
|
||||
struct ipa3_context *ipa3_ctx = NULL;
|
||||
|
||||
int ipa3_plat_drv_probe(struct platform_device *pdev_p);
|
||||
int ipa3_pci_drv_probe(
|
||||
struct pci_dev *pci_dev,
|
||||
const struct pci_device_id *ent);
|
||||
|
||||
/**
|
||||
* ipa_get_hw_type() - Return IPA HW version
|
||||
*
|
||||
* Return value: enum ipa_hw_type
|
||||
*/
|
||||
enum ipa_hw_type ipa_get_hw_type_internal(void)
|
||||
{
|
||||
if (ipa3_ctx == NULL)
|
||||
return IPA_HW_None;
|
||||
|
||||
return ipa3_ctx->ipa_hw_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* ipa_assert() - general function for assertion
|
||||
*/
|
||||
void ipa_assert(void)
|
||||
{
|
||||
pr_err("IPA: unrecoverable error has occurred, asserting\n");
|
||||
BUG();
|
||||
}
|
||||
EXPORT_SYMBOL(ipa_assert);
|
||||
|
||||
#if defined(CONFIG_IPA_EMULATION)
|
||||
static bool running_emulation = true;
|
||||
#else
|
||||
static bool running_emulation;
|
||||
#endif
|
||||
|
||||
static const struct of_device_id ipa_pci_drv_match[] = {
|
||||
{ .compatible = "qcom,ipa", },
|
||||
{}
|
||||
};
|
||||
|
||||
#define LOCAL_VENDOR 0x17CB
|
||||
#define LOCAL_DEVICE 0x00ff
|
||||
|
||||
static const char ipa_pci_driver_name[] = "qcipav3";
|
||||
|
||||
static const struct pci_device_id ipa_pci_tbl[] = {
|
||||
{ PCI_DEVICE(LOCAL_VENDOR, LOCAL_DEVICE) },
|
||||
{ 0, 0, 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
MODULE_DEVICE_TABLE(pci, ipa_pci_tbl);
|
||||
|
||||
static void ipa_pci_remove(struct pci_dev *pci_dev)
|
||||
{
|
||||
}
|
||||
|
||||
static void ipa_pci_shutdown(struct pci_dev *pci_dev)
|
||||
{
|
||||
}
|
||||
|
||||
static pci_ers_result_t ipa_pci_io_error_detected(struct pci_dev *pci_dev,
|
||||
pci_channel_state_t state)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static pci_ers_result_t ipa_pci_io_slot_reset(struct pci_dev *pci_dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ipa_pci_io_resume(struct pci_dev *pci_dev)
|
||||
{
|
||||
}
|
||||
|
||||
/* PCI Error Recovery */
|
||||
static const struct pci_error_handlers ipa_pci_err_handler = {
|
||||
.error_detected = ipa_pci_io_error_detected,
|
||||
.slot_reset = ipa_pci_io_slot_reset,
|
||||
.resume = ipa_pci_io_resume,
|
||||
};
|
||||
|
||||
static struct pci_driver ipa_pci_driver = {
|
||||
.name = ipa_pci_driver_name,
|
||||
.id_table = ipa_pci_tbl,
|
||||
.probe = ipa3_pci_drv_probe,
|
||||
.remove = ipa_pci_remove,
|
||||
.shutdown = ipa_pci_shutdown,
|
||||
.err_handler = &ipa_pci_err_handler
|
||||
};
|
||||
|
||||
static const struct of_device_id ipa_plat_drv_match[] = {
|
||||
{ .compatible = "qcom,ipa", },
|
||||
{ .compatible = "qcom,ipa-smmu-ap-cb", },
|
||||
{ .compatible = "qcom,ipa-smmu-wlan-cb", },
|
||||
{ .compatible = "qcom,ipa-smmu-uc-cb", },
|
||||
{ .compatible = "qcom,ipa-smmu-11ad-cb", },
|
||||
{ .compatible = "qcom,smp2p-map-ipa-1-in", },
|
||||
{ .compatible = "qcom,smp2p-map-ipa-1-out", },
|
||||
{}
|
||||
};
|
||||
|
||||
/**
|
||||
* ipa_write_64() - convert 64 bit value to byte array
|
||||
* @w: 64 bit integer
|
||||
* @dest: byte array
|
||||
*
|
||||
* Return value: converted value
|
||||
*/
|
||||
u8 *ipa_write_64(u64 w, u8 *dest)
|
||||
{
|
||||
if (unlikely(dest == NULL)) {
|
||||
pr_err("%s: NULL address\n", __func__);
|
||||
return dest;
|
||||
}
|
||||
*dest++ = (u8)((w) & 0xFF);
|
||||
*dest++ = (u8)((w >> 8) & 0xFF);
|
||||
*dest++ = (u8)((w >> 16) & 0xFF);
|
||||
*dest++ = (u8)((w >> 24) & 0xFF);
|
||||
*dest++ = (u8)((w >> 32) & 0xFF);
|
||||
*dest++ = (u8)((w >> 40) & 0xFF);
|
||||
*dest++ = (u8)((w >> 48) & 0xFF);
|
||||
*dest++ = (u8)((w >> 56) & 0xFF);
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
/**
|
||||
* ipa_write_32() - convert 32 bit value to byte array
|
||||
* @w: 32 bit integer
|
||||
* @dest: byte array
|
||||
*
|
||||
* Return value: converted value
|
||||
*/
|
||||
u8 *ipa_write_32(u32 w, u8 *dest)
|
||||
{
|
||||
if (unlikely(dest == NULL)) {
|
||||
pr_err("%s: NULL address\n", __func__);
|
||||
return dest;
|
||||
}
|
||||
*dest++ = (u8)((w) & 0xFF);
|
||||
*dest++ = (u8)((w >> 8) & 0xFF);
|
||||
*dest++ = (u8)((w >> 16) & 0xFF);
|
||||
*dest++ = (u8)((w >> 24) & 0xFF);
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
/**
|
||||
* ipa_write_16() - convert 16 bit value to byte array
|
||||
* @hw: 16 bit integer
|
||||
* @dest: byte array
|
||||
*
|
||||
* Return value: converted value
|
||||
*/
|
||||
u8 *ipa_write_16(u16 hw, u8 *dest)
|
||||
{
|
||||
if (unlikely(dest == NULL)) {
|
||||
pr_err("%s: NULL address\n", __func__);
|
||||
return dest;
|
||||
}
|
||||
*dest++ = (u8)((hw) & 0xFF);
|
||||
*dest++ = (u8)((hw >> 8) & 0xFF);
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
/**
|
||||
* ipa_write_8() - convert 8 bit value to byte array
|
||||
* @hw: 8 bit integer
|
||||
* @dest: byte array
|
||||
*
|
||||
* Return value: converted value
|
||||
*/
|
||||
u8 *ipa_write_8(u8 b, u8 *dest)
|
||||
{
|
||||
if (unlikely(dest == NULL)) {
|
||||
WARN(1, "%s: NULL address\n", __func__);
|
||||
return dest;
|
||||
}
|
||||
*dest++ = (b) & 0xFF;
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
/**
|
||||
* ipa_pad_to_64() - pad byte array to 64 bit value
|
||||
* @dest: byte array
|
||||
*
|
||||
* Return value: padded value
|
||||
*/
|
||||
u8 *ipa_pad_to_64(u8 *dest)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
|
||||
if (unlikely(dest == NULL)) {
|
||||
WARN(1, "%s: NULL address\n", __func__);
|
||||
return dest;
|
||||
}
|
||||
|
||||
i = (long)dest & 0x7;
|
||||
|
||||
if (i)
|
||||
for (j = 0; j < (8 - i); j++)
|
||||
*dest++ = 0;
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
/**
|
||||
* ipa_pad_to_32() - pad byte array to 32 bit value
|
||||
* @dest: byte array
|
||||
*
|
||||
* Return value: padded value
|
||||
*/
|
||||
u8 *ipa_pad_to_32(u8 *dest)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
|
||||
if (unlikely(dest == NULL)) {
|
||||
WARN(1, "%s: NULL address\n", __func__);
|
||||
return dest;
|
||||
}
|
||||
|
||||
i = (long)dest & 0x7;
|
||||
|
||||
if (i)
|
||||
for (j = 0; j < (4 - i); j++)
|
||||
*dest++ = 0;
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
int ipa_smmu_store_sgt(struct sg_table **out_ch_ptr,
|
||||
struct sg_table *in_sgt_ptr)
|
||||
{
|
||||
unsigned int nents;
|
||||
|
||||
if (in_sgt_ptr != NULL) {
|
||||
*out_ch_ptr = kzalloc(sizeof(struct sg_table), GFP_KERNEL);
|
||||
if (*out_ch_ptr == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
nents = in_sgt_ptr->nents;
|
||||
|
||||
(*out_ch_ptr)->sgl =
|
||||
kcalloc(nents, sizeof(struct scatterlist),
|
||||
GFP_KERNEL);
|
||||
if ((*out_ch_ptr)->sgl == NULL) {
|
||||
kfree(*out_ch_ptr);
|
||||
*out_ch_ptr = NULL;
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
memcpy((*out_ch_ptr)->sgl, in_sgt_ptr->sgl,
|
||||
nents*sizeof((*out_ch_ptr)->sgl));
|
||||
(*out_ch_ptr)->nents = nents;
|
||||
(*out_ch_ptr)->orig_nents = in_sgt_ptr->orig_nents;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa_smmu_store_sgt);
|
||||
|
||||
int ipa_smmu_free_sgt(struct sg_table **out_sgt_ptr)
|
||||
{
|
||||
if (*out_sgt_ptr != NULL) {
|
||||
kfree((*out_sgt_ptr)->sgl);
|
||||
(*out_sgt_ptr)->sgl = NULL;
|
||||
kfree(*out_sgt_ptr);
|
||||
*out_sgt_ptr = NULL;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa_smmu_free_sgt);
|
||||
|
||||
static const struct dev_pm_ops ipa_pm_ops = {
|
||||
.suspend_late = ipa3_ap_suspend,
|
||||
.resume_early = ipa3_ap_resume,
|
||||
};
|
||||
|
||||
static struct platform_driver ipa_plat_drv = {
|
||||
.probe = ipa3_plat_drv_probe,
|
||||
.driver = {
|
||||
.name = DRV_NAME,
|
||||
.pm = &ipa_pm_ops,
|
||||
.of_match_table = ipa_plat_drv_match,
|
||||
},
|
||||
};
|
||||
|
||||
static struct {
|
||||
bool present[IPA_SMMU_CB_MAX];
|
||||
bool arm_smmu;
|
||||
@@ -5052,6 +5344,7 @@ void ipa3_inc_client_enable_clks(struct ipa_active_client_logging_info *id)
|
||||
atomic_read(&ipa3_ctx->ipa3_active_clients.cnt));
|
||||
mutex_unlock(&ipa3_ctx->ipa3_active_clients.mutex);
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_inc_client_enable_clks);
|
||||
|
||||
static void ipa3_handle_gsi_differ_irq(void)
|
||||
{
|
||||
@@ -5091,6 +5384,7 @@ int ipa3_inc_client_enable_clks_no_block(struct ipa_active_client_logging_info
|
||||
|
||||
return -EPERM;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_inc_client_enable_clks_no_block);
|
||||
|
||||
static void __ipa3_dec_client_disable_clks(void)
|
||||
{
|
||||
@@ -5169,6 +5463,7 @@ void ipa3_dec_client_disable_clks(struct ipa_active_client_logging_info *id)
|
||||
ipa3_active_clients_log_dec(id, false);
|
||||
__ipa3_dec_client_disable_clks();
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_dec_client_disable_clks);
|
||||
|
||||
static void ipa_dec_clients_disable_clks_on_wq(struct work_struct *work)
|
||||
{
|
||||
@@ -5406,6 +5701,7 @@ int ipa3_set_required_perf_profile(enum ipa_voltage_level floor_voltage,
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_set_required_perf_profile);
|
||||
|
||||
static void ipa3_process_irq_schedule_rel(void)
|
||||
{
|
||||
@@ -7501,7 +7797,7 @@ static int get_ipa_dts_configuration(struct platform_device *pdev,
|
||||
/* Get IPA HW Version */
|
||||
result = of_property_read_u32(pdev->dev.of_node, "qcom,ipa-hw-ver",
|
||||
&ipa_drv_res->ipa_hw_type);
|
||||
if ((result) || (ipa_drv_res->ipa_hw_type == 0)) {
|
||||
if ((result) || (ipa_drv_res->ipa_hw_type == IPA_HW_None)) {
|
||||
IPAERR(":get resource failed for ipa-hw-ver\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
@@ -8522,14 +8818,46 @@ static void ipa_smmu_update_fw_loader(void)
|
||||
}
|
||||
}
|
||||
|
||||
int ipa3_plat_drv_probe(struct platform_device *pdev_p,
|
||||
struct ipa_api_controller *api_ctrl,
|
||||
const struct of_device_id *pdrv_match)
|
||||
int ipa3_plat_drv_probe(struct platform_device *pdev_p)
|
||||
{
|
||||
int result;
|
||||
struct device *dev = &pdev_p->dev;
|
||||
struct ipa_smmu_cb_ctx *cb;
|
||||
|
||||
/*
|
||||
* IPA probe function can be called for multiple times as the same probe
|
||||
* function handles multiple compatibilities
|
||||
*/
|
||||
pr_debug("ipa: IPA driver probing started for %s\n",
|
||||
pdev_p->dev.of_node->name);
|
||||
|
||||
if (ipa3_ctx == NULL) {
|
||||
IPAERR("ipa3_ctx was not initialized\n");
|
||||
return -EPROBE_DEFER;
|
||||
}
|
||||
|
||||
if (ipa3_ctx->ipa_hw_type == 0) {
|
||||
|
||||
/* Get IPA HW Version */
|
||||
result = of_property_read_u32(pdev_p->dev.of_node,
|
||||
"qcom,ipa-hw-ver", &ipa3_ctx->ipa_hw_type);
|
||||
if ((result) || (ipa3_ctx->ipa_hw_type == IPA_HW_None)) {
|
||||
pr_err("ipa: get resource failed for ipa-hw-ver!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
pr_debug("ipa: ipa_hw_type = %d\n", ipa3_ctx->ipa_hw_type);
|
||||
}
|
||||
|
||||
if (ipa3_ctx->ipa_hw_type < IPA_HW_v3_0) {
|
||||
pr_err(":IPA version below 3.0 not supported\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
if (ipa3_ctx->ipa_hw_type >= IPA_HW_MAX) {
|
||||
pr_err(":IPA version is greater than the MAX\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
IPADBG("IPA driver probing started\n");
|
||||
IPADBG("dev->of_node->name = %s\n", dev->of_node->name);
|
||||
|
||||
@@ -8601,12 +8929,6 @@ int ipa3_plat_drv_probe(struct platform_device *pdev_p,
|
||||
/* Get GSI version */
|
||||
ipa3_ctx->gsi_ver = ipa3_get_gsi_ver(ipa3_res.ipa_hw_type);
|
||||
|
||||
result = ipa3_bind_api_controller(ipa3_res.ipa_hw_type, api_ctrl);
|
||||
if (result) {
|
||||
IPAERR("IPA API binding failed\n");
|
||||
return result;
|
||||
}
|
||||
|
||||
if (of_property_read_bool(pdev_p->dev.of_node, "qcom,arm-smmu")) {
|
||||
if (of_property_read_bool(pdev_p->dev.of_node,
|
||||
"qcom,use-64-bit-dma-mask"))
|
||||
@@ -8640,12 +8962,15 @@ int ipa3_plat_drv_probe(struct platform_device *pdev_p,
|
||||
}
|
||||
|
||||
result = of_platform_populate(pdev_p->dev.of_node,
|
||||
pdrv_match, NULL, &pdev_p->dev);
|
||||
ipa_plat_drv_match, NULL, &pdev_p->dev);
|
||||
if (result) {
|
||||
IPAERR("failed to populate platform\n");
|
||||
return result;
|
||||
}
|
||||
|
||||
if (result && result != -EPROBE_DEFER)
|
||||
IPAERR("ipa: ipa_plat_drv_probe failed\n");
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -8877,6 +9202,7 @@ int ipa3_get_smmu_params(struct ipa_smmu_in_params *in,
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_get_smmu_params);
|
||||
|
||||
#define MAX_LEN 96
|
||||
|
||||
@@ -8925,8 +9251,7 @@ void ipa_pc_qmp_enable(void)
|
||||
|
||||
int ipa3_pci_drv_probe(
|
||||
struct pci_dev *pci_dev,
|
||||
struct ipa_api_controller *api_ctrl,
|
||||
const struct of_device_id *pdrv_match)
|
||||
const struct pci_device_id *ent)
|
||||
{
|
||||
int result;
|
||||
struct ipa3_plat_drv_res *ipa_drv_res;
|
||||
@@ -8938,13 +9263,29 @@ int ipa3_pci_drv_probe(
|
||||
struct device *dev;
|
||||
static struct platform_device platform_dev;
|
||||
|
||||
if (!pci_dev || !api_ctrl || !pdrv_match) {
|
||||
IPAERR(
|
||||
"Bad arg: pci_dev (%pK) and/or api_ctrl (%pK) and/or pdrv_match (%pK)\n",
|
||||
pci_dev, api_ctrl, pdrv_match);
|
||||
if (!pci_dev || !ent) {
|
||||
pr_err(
|
||||
"Bad arg: pci_dev (%pK) and/or ent (%pK)\n",
|
||||
pci_dev, ent);
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
if (ipa3_ctx == NULL) {
|
||||
IPAERR("ipa3_ctx was not initialized\n");
|
||||
return -EPROBE_DEFER;
|
||||
}
|
||||
|
||||
if (ipa3_ctx->ipa_hw_type == 0) {
|
||||
/* Get IPA HW Version */
|
||||
result = of_property_read_u32(NULL,
|
||||
"qcom,ipa-hw-ver", &ipa3_ctx->ipa_hw_type);
|
||||
if (result || ipa3_ctx->ipa_hw_type == IPA_HW_None) {
|
||||
pr_err("ipa: get resource failed for ipa-hw-ver!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
pr_debug("ipa: ipa_hw_type = %d\n", ipa3_ctx->ipa_hw_type);
|
||||
}
|
||||
|
||||
dev = &(pci_dev->dev);
|
||||
|
||||
IPADBG("IPA PCI driver probing started\n");
|
||||
@@ -9041,14 +9382,6 @@ int ipa3_pci_drv_probe(
|
||||
IPADBG("emulator_intcntrlr_mem_size = 0x%x\n",
|
||||
ipa_drv_res->emulator_intcntrlr_mem_size);
|
||||
|
||||
result = ipa3_bind_api_controller(ipa_drv_res->ipa_hw_type, api_ctrl);
|
||||
if (result != 0) {
|
||||
IPAERR("ipa3_bind_api_controller() failed\n");
|
||||
pci_release_region(pci_dev, 0);
|
||||
pci_disable_device(pci_dev);
|
||||
return result;
|
||||
}
|
||||
|
||||
bits = (ipa_drv_res->use_64_bit_dma_mask) ? 64 : 32;
|
||||
|
||||
if (dma_set_mask(dev, DMA_BIT_MASK(bits)) != 0) {
|
||||
@@ -9114,6 +9447,37 @@ uint ipa3_get_emulation_type(void)
|
||||
return emulation_type;
|
||||
}
|
||||
|
||||
static int __init ipa_module_init(void)
|
||||
{
|
||||
pr_debug("IPA module init\n");
|
||||
|
||||
ipa3_ctx = kzalloc(sizeof(*ipa3_ctx), GFP_KERNEL);
|
||||
if (!ipa3_ctx) {
|
||||
return -ENOMEM;
|
||||
}
|
||||
mutex_init(&ipa3_ctx->lock);
|
||||
|
||||
if (running_emulation) {
|
||||
/* Register as a PCI device driver */
|
||||
return pci_register_driver(&ipa_pci_driver);
|
||||
}
|
||||
/* Register as a platform device driver */
|
||||
return platform_driver_register(&ipa_plat_drv);
|
||||
}
|
||||
subsys_initcall(ipa_module_init);
|
||||
|
||||
static void __exit ipa_module_exit(void)
|
||||
{
|
||||
if (running_emulation)
|
||||
pci_unregister_driver(&ipa_pci_driver);
|
||||
platform_driver_unregister(&ipa_plat_drv);
|
||||
kfree(ipa3_ctx);
|
||||
ipa3_ctx = NULL;
|
||||
}
|
||||
module_exit(ipa_module_exit);
|
||||
|
||||
MODULE_SOFTDEP("pre: subsys-pil-tz");
|
||||
MODULE_SOFTDEP("pre: qcom-arm-smmu-mod");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_DESCRIPTION("IPA HW device driver");
|
||||
|
||||
|
@@ -479,6 +479,7 @@ void ipa3_register_client_callback(int (*client_cb)(bool is_lock),
|
||||
ipa3_ctx->get_teth_port_state[client] = teth_port_state;
|
||||
IPADBG("exit\n");
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_register_client_callback);
|
||||
|
||||
void ipa3_deregister_client_callback(enum ipa_client_type client_type)
|
||||
{
|
||||
@@ -500,6 +501,7 @@ void ipa3_deregister_client_callback(enum ipa_client_type client_type)
|
||||
ipa3_ctx->get_teth_port_state[client_cb] = NULL;
|
||||
IPADBG("exit\n");
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_deregister_client_callback);
|
||||
|
||||
static void client_lock_unlock_cb(enum ipa_client_type client, bool is_lock)
|
||||
{
|
||||
|
@@ -29,9 +29,9 @@
|
||||
do { \
|
||||
pr_debug(IPADMA_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPADMA_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPADMA_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
do { \
|
||||
pr_debug(IPADMA_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPADMA_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -47,9 +47,9 @@
|
||||
do { \
|
||||
pr_err(IPADMA_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPADMA_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPADMA_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
|
@@ -23,7 +23,6 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/firmware.h>
|
||||
#include "ipa_qmi_service.h"
|
||||
#include "ipa_api.h"
|
||||
#include "ipahal_reg.h"
|
||||
#include "ipahal.h"
|
||||
#include "ipahal_fltrt.h"
|
||||
@@ -2435,8 +2434,6 @@ int ipa3_request_gsi_channel(struct ipa_request_gsi_channel_params *params,
|
||||
|
||||
int ipa3_release_gsi_channel(u32 clnt_hdl);
|
||||
|
||||
int ipa3_start_gsi_channel(u32 clnt_hdl);
|
||||
|
||||
int ipa3_stop_gsi_channel(u32 clnt_hdl);
|
||||
|
||||
int ipa3_reset_gsi_channel(u32 clnt_hdl);
|
||||
@@ -2454,10 +2451,6 @@ int ipa3_xdci_connect(u32 clnt_hdl);
|
||||
int ipa3_xdci_disconnect(u32 clnt_hdl, bool should_force_clear, u32 qmi_req_id);
|
||||
|
||||
void ipa3_xdci_ep_delay_rm(u32 clnt_hdl);
|
||||
void ipa3_register_client_callback(int (*client_cb)(bool),
|
||||
bool (*teth_port_state)(void),
|
||||
enum ipa_client_type client_type);
|
||||
void ipa3_deregister_client_callback(enum ipa_client_type client_type);
|
||||
int ipa3_set_reset_client_prod_pipe_delay(bool set_reset,
|
||||
enum ipa_client_type client);
|
||||
int ipa3_start_stop_client_prod_gsi_chnl(enum ipa_client_type client,
|
||||
@@ -2481,15 +2474,8 @@ int ipa3_clear_endpoint_delay(u32 clnt_hdl);
|
||||
/*
|
||||
* Configuration
|
||||
*/
|
||||
int ipa3_cfg_ep(u32 clnt_hdl, const struct ipa_ep_cfg *ipa_ep_cfg);
|
||||
|
||||
int ipa3_cfg_ep_seq(u32 clnt_hdl, const struct ipa_ep_cfg_seq *seq_cfg);
|
||||
|
||||
int ipa3_cfg_ep_nat(u32 clnt_hdl, const struct ipa_ep_cfg_nat *ipa_ep_cfg);
|
||||
|
||||
int ipa3_cfg_ep_conn_track(u32 clnt_hdl,
|
||||
const struct ipa_ep_cfg_conn_track *ep_conn_track);
|
||||
|
||||
int ipa3_cfg_ep_hdr(u32 clnt_hdl, const struct ipa_ep_cfg_hdr *ipa_ep_cfg);
|
||||
|
||||
int ipa3_cfg_ep_hdr_ext(u32 clnt_hdl,
|
||||
@@ -2523,15 +2509,10 @@ int ipa3_cfg_ep_ctrl(u32 clnt_hdl, const struct ipa_ep_cfg_ctrl *ep_ctrl);
|
||||
* Header removal / addition
|
||||
*/
|
||||
|
||||
|
||||
int ipa3_add_hdr_usr(struct ipa_ioc_add_hdr *hdrs, bool by_user);
|
||||
|
||||
int ipa3_del_hdr_by_user(struct ipa_ioc_del_hdr *hdls, bool by_user);
|
||||
|
||||
int ipa3_commit_hdr(void);
|
||||
|
||||
int ipa3_reset_hdr(bool user_only);
|
||||
|
||||
int ipa3_get_hdr(struct ipa_ioc_get_hdr *lookup);
|
||||
|
||||
int ipa3_put_hdr(u32 hdr_hdl);
|
||||
@@ -2541,10 +2522,6 @@ int ipa3_copy_hdr(struct ipa_ioc_copy_hdr *copy);
|
||||
/*
|
||||
* Header Processing Context
|
||||
*/
|
||||
int ipa3_add_hdr_proc_ctx(struct ipa_ioc_add_hdr_proc_ctx *proc_ctxs,
|
||||
bool user_only);
|
||||
|
||||
int ipa3_del_hdr_proc_ctx(struct ipa_ioc_del_hdr_proc_ctx *hdls);
|
||||
|
||||
int ipa3_del_hdr_proc_ctx_by_user(struct ipa_ioc_del_hdr_proc_ctx *hdls,
|
||||
bool by_user);
|
||||
@@ -2554,14 +2531,6 @@ int ipa3_del_hdr_proc_ctx_by_user(struct ipa_ioc_del_hdr_proc_ctx *hdls,
|
||||
*/
|
||||
int ipa3_add_rt_rule(struct ipa_ioc_add_rt_rule *rules);
|
||||
|
||||
int ipa3_add_rt_rule_v2(struct ipa_ioc_add_rt_rule_v2 *rules);
|
||||
|
||||
int ipa3_add_rt_rule_usr(struct ipa_ioc_add_rt_rule *rules,
|
||||
bool user_only);
|
||||
|
||||
int ipa3_add_rt_rule_usr_v2(struct ipa_ioc_add_rt_rule_v2 *rules,
|
||||
bool user_only);
|
||||
|
||||
int ipa3_add_rt_rule_ext(struct ipa_ioc_add_rt_rule_ext *rules);
|
||||
|
||||
int ipa3_add_rt_rule_ext_v2(struct ipa_ioc_add_rt_rule_ext_v2 *rules);
|
||||
@@ -2571,12 +2540,6 @@ int ipa3_add_rt_rule_after(struct ipa_ioc_add_rt_rule_after *rules);
|
||||
int ipa3_add_rt_rule_after_v2(struct ipa_ioc_add_rt_rule_after_v2
|
||||
*rules);
|
||||
|
||||
int ipa3_del_rt_rule(struct ipa_ioc_del_rt_rule *hdls);
|
||||
|
||||
int ipa3_commit_rt(enum ipa_ip_type ip);
|
||||
|
||||
int ipa3_reset_rt(enum ipa_ip_type ip, bool user_only);
|
||||
|
||||
int ipa3_get_rt_tbl(struct ipa_ioc_get_rt_tbl *lookup);
|
||||
|
||||
int ipa3_put_rt_tbl(u32 rt_tbl_hdl);
|
||||
@@ -2605,8 +2568,6 @@ int ipa3_add_flt_rule_after(struct ipa_ioc_add_flt_rule_after *rules);
|
||||
int ipa3_add_flt_rule_after_v2(struct ipa_ioc_add_flt_rule_after_v2
|
||||
*rules);
|
||||
|
||||
int ipa3_del_flt_rule(struct ipa_ioc_del_flt_rule *hdls);
|
||||
|
||||
int ipa3_mdfy_flt_rule(struct ipa_ioc_mdfy_flt_rule *rules);
|
||||
|
||||
int ipa3_mdfy_flt_rule_v2(struct ipa_ioc_mdfy_flt_rule_v2 *rules);
|
||||
@@ -2626,18 +2587,6 @@ int ipa3_allocate_nat_table(
|
||||
struct ipa_ioc_nat_ipv6ct_table_alloc *table_alloc);
|
||||
int ipa3_allocate_ipv6ct_table(
|
||||
struct ipa_ioc_nat_ipv6ct_table_alloc *table_alloc);
|
||||
|
||||
int ipa3_nat_init_cmd(struct ipa_ioc_v4_nat_init *init);
|
||||
int ipa3_ipv6ct_init_cmd(struct ipa_ioc_ipv6ct_init *init);
|
||||
|
||||
int ipa3_table_dma_cmd(struct ipa_ioc_nat_dma_cmd *dma);
|
||||
int ipa3_nat_dma_cmd(struct ipa_ioc_nat_dma_cmd *dma);
|
||||
|
||||
int ipa3_nat_del_cmd(struct ipa_ioc_v4_nat_del *del);
|
||||
int ipa3_del_nat_table(struct ipa_ioc_nat_ipv6ct_table_del *del);
|
||||
int ipa3_del_ipv6ct_table(struct ipa_ioc_nat_ipv6ct_table_del *del);
|
||||
|
||||
int ipa3_nat_mdfy_pdn(struct ipa_ioc_nat_pdn_entry *mdfy_pdn);
|
||||
int ipa3_nat_get_sram_info(struct ipa_nat_in_sram_info *info_ptr);
|
||||
int ipa3_app_clk_vote(enum ipa_app_clock_vote_type vote_type);
|
||||
|
||||
@@ -2692,15 +2641,6 @@ int ipa3_setup_sys_pipe(struct ipa_sys_connect_params *sys_in, u32 *clnt_hdl);
|
||||
|
||||
int ipa3_teardown_sys_pipe(u32 clnt_hdl);
|
||||
|
||||
int ipa3_sys_setup(struct ipa_sys_connect_params *sys_in,
|
||||
unsigned long *ipa_transport_hdl,
|
||||
u32 *ipa_pipe_num, u32 *clnt_hdl, bool en_status);
|
||||
|
||||
int ipa3_sys_teardown(u32 clnt_hdl);
|
||||
|
||||
int ipa3_sys_update_gsi_hdls(u32 clnt_hdl, unsigned long gsi_ch_hdl,
|
||||
unsigned long gsi_ev_hdl);
|
||||
|
||||
int ipa3_connect_wdi_pipe(struct ipa_wdi_in_params *in,
|
||||
struct ipa_wdi_out_params *out);
|
||||
int ipa3_connect_gsi_wdi_pipe(struct ipa_wdi_in_params *in,
|
||||
@@ -2715,53 +2655,13 @@ int ipa3_disconnect_gsi_wdi_pipe(u32 clnt_hdl);
|
||||
int ipa3_resume_wdi_pipe(u32 clnt_hdl);
|
||||
int ipa3_resume_gsi_wdi_pipe(u32 clnt_hdl);
|
||||
int ipa3_suspend_wdi_pipe(u32 clnt_hdl);
|
||||
void ipa3_get_gsi_stats(int prot_id,
|
||||
struct ipa_uc_dbg_ring_stats *stats);
|
||||
int ipa3_get_wdi_gsi_stats(struct ipa_uc_dbg_ring_stats *stats);
|
||||
int ipa3_get_wdi3_gsi_stats(struct ipa_uc_dbg_ring_stats *stats);
|
||||
int ipa3_get_usb_gsi_stats(struct ipa_uc_dbg_ring_stats *stats);
|
||||
int ipa3_get_aqc_gsi_stats(struct ipa_uc_dbg_ring_stats *stats);
|
||||
int ipa3_get_wdi_stats(struct IpaHwStatsWDIInfoData_t *stats);
|
||||
int ipa3_get_prot_id(enum ipa_client_type client);
|
||||
u16 ipa3_get_smem_restr_bytes(void);
|
||||
int ipa3_broadcast_wdi_quota_reach_ind(uint32_t fid, uint64_t num_bytes);
|
||||
int ipa3_setup_uc_ntn_pipes(struct ipa_ntn_conn_in_params *in,
|
||||
ipa_notify_cb notify, void *priv, u8 hdr_len,
|
||||
struct ipa_ntn_conn_out_params *outp);
|
||||
int ipa3_tear_down_uc_offload_pipes(int ipa_ep_idx_ul, int ipa_ep_idx_dl,
|
||||
struct ipa_ntn_conn_in_params *params);
|
||||
int ipa3_ntn_uc_reg_rdyCB(void (*ipauc_ready_cb)(void *), void *priv);
|
||||
void ipa3_ntn_uc_dereg_rdyCB(void);
|
||||
int ipa3_conn_wdi3_pipes(struct ipa_wdi_conn_in_params *in,
|
||||
struct ipa_wdi_conn_out_params *out,
|
||||
ipa_wdi_meter_notifier_cb wdi_notify);
|
||||
int ipa3_disconn_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx);
|
||||
int ipa3_enable_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx);
|
||||
int ipa3_disable_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx);
|
||||
|
||||
int ipa3_conn_wigig_rx_pipe_i(void *in,
|
||||
struct ipa_wigig_conn_out_params *out,
|
||||
struct dentry **parent);
|
||||
|
||||
int ipa3_conn_wigig_client_i(void *in,
|
||||
struct ipa_wigig_conn_out_params *out,
|
||||
ipa_notify_cb tx_notify,
|
||||
void *priv);
|
||||
|
||||
int ipa3_wigig_uc_msi_init(bool init,
|
||||
phys_addr_t periph_baddr_pa,
|
||||
phys_addr_t pseudo_cause_pa,
|
||||
phys_addr_t int_gen_tx_pa,
|
||||
phys_addr_t int_gen_rx_pa,
|
||||
phys_addr_t dma_ep_misc_pa);
|
||||
|
||||
int ipa3_disconn_wigig_pipe_i(enum ipa_client_type client,
|
||||
struct ipa_wigig_pipe_setup_info_smmu *pipe_smmu,
|
||||
void *dbuff);
|
||||
|
||||
int ipa3_enable_wigig_pipe_i(enum ipa_client_type client);
|
||||
|
||||
int ipa3_disable_wigig_pipe_i(enum ipa_client_type client);
|
||||
|
||||
int ipa3_wigig_init_debugfs_i(struct dentry *dent);
|
||||
|
||||
@@ -2795,22 +2695,12 @@ void ipa3_release_wdi3_gsi_smmu_mappings(u8 dir);
|
||||
/*
|
||||
* Tethering bridge (Rmnet / MBIM)
|
||||
*/
|
||||
int ipa3_teth_bridge_init(struct teth_bridge_init_params *params);
|
||||
|
||||
int ipa3_teth_bridge_disconnect(enum ipa_client_type client);
|
||||
|
||||
int ipa3_teth_bridge_connect(struct teth_bridge_connect_params *connect_params);
|
||||
|
||||
int ipa3_teth_bridge_get_pm_hdl(void);
|
||||
|
||||
/*
|
||||
* Tethering client info
|
||||
*/
|
||||
void ipa3_set_client(int index, enum ipacm_client_enum client, bool uplink);
|
||||
|
||||
enum ipacm_client_enum ipa3_get_client(int pipe_idx);
|
||||
|
||||
bool ipa3_get_client_uplink(int pipe_idx);
|
||||
|
||||
int ipa3_get_wlan_stats(struct ipa_get_wdi_sap_stats *wdi_sap_stats);
|
||||
|
||||
@@ -2840,32 +2730,9 @@ void ipa3_dma_destroy(void);
|
||||
* MHI
|
||||
*/
|
||||
|
||||
int ipa3_mhi_init_engine(struct ipa_mhi_init_engine *params);
|
||||
|
||||
int ipa3_connect_mhi_pipe(
|
||||
struct ipa_mhi_connect_params_internal *in,
|
||||
u32 *clnt_hdl);
|
||||
|
||||
int ipa3_disconnect_mhi_pipe(u32 clnt_hdl);
|
||||
|
||||
bool ipa3_mhi_stop_gsi_channel(enum ipa_client_type client);
|
||||
|
||||
int ipa3_mhi_reset_channel_internal(enum ipa_client_type client);
|
||||
|
||||
int ipa3_mhi_start_channel_internal(enum ipa_client_type client);
|
||||
|
||||
bool ipa3_has_open_aggr_frame(enum ipa_client_type client);
|
||||
|
||||
int ipa3_mhi_resume_channels_internal(enum ipa_client_type client,
|
||||
bool LPTransitionRejected, bool brstmode_enabled,
|
||||
union __packed gsi_channel_scratch ch_scratch, u8 index);
|
||||
|
||||
int ipa3_mhi_destroy_channel(enum ipa_client_type client);
|
||||
|
||||
/*
|
||||
* mux id
|
||||
*/
|
||||
int ipa3_write_qmap_id(struct ipa_ioc_write_qmapid *param_in);
|
||||
|
||||
/*
|
||||
* interrupts
|
||||
@@ -2875,8 +2742,6 @@ int ipa3_add_interrupt_handler(enum ipa_irq_type interrupt,
|
||||
bool deferred_flag,
|
||||
void *private_data);
|
||||
|
||||
int ipa3_remove_interrupt_handler(enum ipa_irq_type interrupt);
|
||||
|
||||
/*
|
||||
* Miscellaneous
|
||||
*/
|
||||
@@ -2904,9 +2769,6 @@ bool ipa3_get_modem_cfg_emb_pipe_flt(void);
|
||||
|
||||
u8 ipa3_get_qmb_master_sel(enum ipa_client_type client);
|
||||
|
||||
int ipa3_get_smmu_params(struct ipa_smmu_in_params *in,
|
||||
struct ipa_smmu_out_params *out);
|
||||
|
||||
bool ipa3_get_lan_rx_napi(void);
|
||||
|
||||
bool ipa3_get_qmap_pipe_enable(void);
|
||||
@@ -2915,9 +2777,6 @@ bool ipa3_get_qmap_pipe_enable(void);
|
||||
|
||||
u8 ipa3_get_hw_type_index(void);
|
||||
|
||||
int ipa3_bind_api_controller(enum ipa_hw_type ipa_hw_type,
|
||||
struct ipa_api_controller *api_ctrl);
|
||||
|
||||
bool ipa_is_modem_pipe(int pipe_idx);
|
||||
|
||||
int ipa3_send_one(struct ipa3_sys_context *sys, struct ipa3_desc *desc,
|
||||
@@ -2957,10 +2816,8 @@ int ipa3_straddle_boundary(u32 start, u32 end, u32 boundary);
|
||||
struct ipa3_context *ipa3_get_ctx(void);
|
||||
void ipa3_enable_clks(void);
|
||||
void ipa3_disable_clks(void);
|
||||
void ipa3_inc_client_enable_clks(struct ipa_active_client_logging_info *id);
|
||||
int ipa3_inc_client_enable_clks_no_block(struct ipa_active_client_logging_info
|
||||
*id);
|
||||
void ipa3_dec_client_disable_clks(struct ipa_active_client_logging_info *id);
|
||||
void ipa3_dec_client_disable_clks_no_block(
|
||||
struct ipa_active_client_logging_info *id);
|
||||
void ipa3_active_clients_log_dec(struct ipa_active_client_logging_info *id,
|
||||
@@ -3030,15 +2887,9 @@ int ipa3_enable_force_clear(u32 request_id, bool throttle_source,
|
||||
u32 source_pipe_bitmask);
|
||||
int ipa3_disable_force_clear(u32 request_id);
|
||||
|
||||
int ipa3_set_required_perf_profile(enum ipa_voltage_level floor_voltage,
|
||||
u32 bandwidth_mbps);
|
||||
|
||||
int ipa3_cfg_ep_status(u32 clnt_hdl,
|
||||
const struct ipahal_reg_ep_cfg_status *ipa_ep_cfg);
|
||||
|
||||
int ipa3_suspend_resource_no_block(enum ipa_rm_resource_name name);
|
||||
int ipa3_suspend_resource_sync(enum ipa_rm_resource_name name);
|
||||
int ipa3_resume_resource(enum ipa_rm_resource_name name);
|
||||
bool ipa3_should_pipe_be_suspended(enum ipa_client_type client);
|
||||
int ipa3_tag_aggr_force_close(int pipe_num);
|
||||
|
||||
@@ -3057,12 +2908,9 @@ void ipa3_update_ssr_state(bool is_ssr);
|
||||
int ipa3_init_q6_smem(void);
|
||||
|
||||
int ipa3_mhi_handle_ipa_config_req(struct ipa_config_req_msg_v01 *config_req);
|
||||
int ipa3_mhi_query_ch_info(enum ipa_client_type client,
|
||||
struct gsi_chan_info *ch_info);
|
||||
|
||||
int ipa3_uc_interface_init(void);
|
||||
int ipa3_uc_is_gsi_channel_empty(enum ipa_client_type ipa_client);
|
||||
int ipa3_uc_state_check(void);
|
||||
int ipa3_uc_loaded_check(void);
|
||||
int ipa3_uc_holb_enabled_check(void);
|
||||
int ipa3_uc_register_ready_cb(struct notifier_block *nb);
|
||||
@@ -3079,24 +2927,11 @@ void ipa3_dma_async_memcpy_notify_cb(void *priv,
|
||||
|
||||
int ipa3_uc_update_hw_flags(u32 flags);
|
||||
|
||||
int ipa3_uc_mhi_init(void (*ready_cb)(void), void (*wakeup_request_cb)(void));
|
||||
void ipa3_uc_mhi_cleanup(void);
|
||||
int ipa3_uc_mhi_send_dl_ul_sync_info(union IpaHwMhiDlUlSyncCmdData_t *cmd);
|
||||
int ipa3_uc_mhi_init_engine(struct ipa_mhi_msi_info *msi, u32 mmio_addr,
|
||||
u32 host_ctrl_addr, u32 host_data_addr, u32 first_ch_idx,
|
||||
u32 first_evt_idx);
|
||||
int ipa3_uc_mhi_init_channel(int ipa_ep_idx, int channelHandle,
|
||||
int contexArrayIndex, int channelDirection);
|
||||
int ipa3_uc_mhi_reset_channel(int channelHandle);
|
||||
int ipa3_uc_mhi_suspend_channel(int channelHandle);
|
||||
int ipa3_uc_mhi_resume_channel(int channelHandle, bool LPTransitionRejected);
|
||||
int ipa3_uc_mhi_stop_event_update_channel(int channelHandle);
|
||||
int ipa3_uc_mhi_print_stats(char *dbg_buff, int size);
|
||||
int ipa3_uc_memcpy(phys_addr_t dest, phys_addr_t src, int len);
|
||||
int ipa3_uc_send_remote_ipa_info(u32 remote_addr, uint32_t mbox_n);
|
||||
int ipa3_uc_debug_stats_alloc(
|
||||
struct IpaHwOffloadStatsAllocCmdData_t cmdinfo);
|
||||
int ipa3_uc_debug_stats_dealloc(uint32_t protocol);
|
||||
int ipa3_uc_quota_monitor(uint64_t quota);
|
||||
int ipa3_uc_enable_holb_monitor(uint32_t polling_period);
|
||||
int ipa3_uc_add_holb_monitor(uint16_t gsi_ch, uint32_t action_mask,
|
||||
@@ -3105,17 +2940,11 @@ int ipa3_uc_del_holb_monitor(uint16_t gsi_ch, uint8_t ee);
|
||||
int ipa3_uc_disable_holb_monitor(void);
|
||||
int ipa3_uc_bw_monitor(struct ipa_wdi_bw_info *info);
|
||||
int ipa3_uc_setup_event_ring(void);
|
||||
int ipa3_set_wlan_tx_info(struct ipa_wdi_tx_info *info);
|
||||
int ipa3_uc_debug_stats_dealloc(uint32_t prot_id);
|
||||
void ipa3_tag_destroy_imm(void *user1, int user2);
|
||||
const struct ipa_gsi_ep_config *ipa3_get_gsi_ep_info
|
||||
(enum ipa_client_type client);
|
||||
|
||||
int ipa3_wigig_init_i(void);
|
||||
int ipa3_wigig_internal_init(
|
||||
struct ipa_wdi_uc_ready_params *inout,
|
||||
ipa_wigig_misc_int_cb int_notify,
|
||||
phys_addr_t *uc_db_pa);
|
||||
|
||||
/* Hardware stats */
|
||||
|
||||
@@ -3227,7 +3056,6 @@ int ipa3_teardown_apps_low_lat_pipes(void);
|
||||
void ipa3_rmnet_ctl_ready_notifier(void);
|
||||
const char *ipa_hw_error_str(enum ipa3_hw_errors err_type);
|
||||
int ipa_gsi_ch20_wa(void);
|
||||
int ipa3_rx_poll(u32 clnt_hdl, int budget);
|
||||
int ipa3_lan_rx_poll(u32 clnt_hdl, int weight);
|
||||
int ipa3_smmu_map_peer_reg(phys_addr_t phys_addr, bool map,
|
||||
enum ipa_smmu_cb_type cb_type);
|
||||
@@ -3237,7 +3065,6 @@ void ipa3_reset_freeze_vote(void);
|
||||
int ipa3_ntn_init(void);
|
||||
int ipa3_get_ntn_stats(struct Ipa3HwStatsNTNInfoData_t *stats);
|
||||
struct dentry *ipa_debugfs_get_root(void);
|
||||
struct device *ipa3_get_pdev(void);
|
||||
void ipa3_enable_dcd(void);
|
||||
void ipa3_disable_prefetch(enum ipa_client_type client);
|
||||
int ipa3_alloc_common_event_ring(void);
|
||||
@@ -3247,7 +3074,6 @@ int ipa3_allocate_coal_close_frame(void);
|
||||
void ipa3_free_coal_close_frame(void);
|
||||
int ipa3_set_clock_plan_from_pm(int idx);
|
||||
void __ipa_gsi_irq_rx_scedule_poll(struct ipa3_sys_context *sys);
|
||||
int ipa3_tz_unlock_reg(struct ipa_tz_unlock_reg_info *reg_info, u16 num_regs);
|
||||
void ipa3_init_imm_cmd_desc(struct ipa3_desc *desc,
|
||||
struct ipahal_imm_cmd_pyld *cmd_pyld);
|
||||
int ipa3_is_vlan_mode(enum ipa_vlan_ifaces iface, bool *res);
|
||||
|
@@ -23,9 +23,9 @@
|
||||
do { \
|
||||
pr_debug(IPA_MHI_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_MHI_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_MHI_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
do { \
|
||||
pr_debug(IPA_MHI_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_MHI_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -42,9 +42,9 @@
|
||||
do { \
|
||||
pr_err(IPA_MHI_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_MHI_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_MHI_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -99,6 +99,7 @@ bool ipa3_mhi_stop_gsi_channel(enum ipa_client_type client)
|
||||
|
||||
return false;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_mhi_stop_gsi_channel);
|
||||
|
||||
static int ipa3_mhi_reset_gsi_channel(enum ipa_client_type client)
|
||||
{
|
||||
@@ -143,6 +144,7 @@ int ipa3_mhi_reset_channel_internal(enum ipa_client_type client)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_mhi_reset_channel_internal);
|
||||
|
||||
int ipa3_mhi_start_channel_internal(enum ipa_client_type client)
|
||||
{
|
||||
@@ -473,6 +475,7 @@ int ipa3_mhi_init_engine(struct ipa_mhi_init_engine *params)
|
||||
fail_init_engine:
|
||||
return res;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_mhi_init_engine);
|
||||
|
||||
/**
|
||||
* ipa3_connect_mhi_pipe() - Connect pipe to IPA and start corresponding
|
||||
@@ -546,6 +549,7 @@ fail_start_channel:
|
||||
memset(ep, 0, offsetof(struct ipa3_ep_context, sys));
|
||||
return -EPERM;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_connect_mhi_pipe);
|
||||
|
||||
/**
|
||||
* ipa3_disconnect_mhi_pipe() - Disconnect pipe from IPA and reset corresponding
|
||||
@@ -612,6 +616,7 @@ int ipa3_disconnect_mhi_pipe(u32 clnt_hdl)
|
||||
fail_reset_channel:
|
||||
return res;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_disconnect_mhi_pipe);
|
||||
|
||||
int ipa3_mhi_resume_channels_internal(enum ipa_client_type client,
|
||||
bool LPTransitionRejected, bool brstmode_enabled,
|
||||
@@ -683,6 +688,7 @@ int ipa3_mhi_resume_channels_internal(enum ipa_client_type client,
|
||||
IPA_MHI_FUNC_EXIT();
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_mhi_resume_channels_internal);
|
||||
|
||||
int ipa3_mhi_query_ch_info(enum ipa_client_type client,
|
||||
struct gsi_chan_info *ch_info)
|
||||
@@ -708,6 +714,7 @@ int ipa3_mhi_query_ch_info(enum ipa_client_type client,
|
||||
IPA_MHI_FUNC_EXIT();
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_mhi_query_ch_info);
|
||||
|
||||
bool ipa3_has_open_aggr_frame(enum ipa_client_type client)
|
||||
{
|
||||
@@ -728,6 +735,7 @@ bool ipa3_has_open_aggr_frame(enum ipa_client_type client)
|
||||
|
||||
return false;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_has_open_aggr_frame);
|
||||
|
||||
int ipa3_mhi_destroy_channel(enum ipa_client_type client)
|
||||
{
|
||||
@@ -771,6 +779,7 @@ fail:
|
||||
IPA_ACTIVE_CLIENTS_DEC_EP(client);
|
||||
return res;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_mhi_destroy_channel);
|
||||
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_DESCRIPTION("IPA MHI driver");
|
||||
|
@@ -19,9 +19,9 @@
|
||||
do { \
|
||||
pr_debug(IMP_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IMP_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IMP_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
do { \
|
||||
pr_debug(IMP_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IMP_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
do { \
|
||||
pr_err(IMP_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IMP_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IMP_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
|
@@ -23,9 +23,9 @@
|
||||
do { \
|
||||
pr_debug(IPA_MPM_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_MPM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_MPM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
do { \
|
||||
pr_debug(IPA_MPM_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_MPM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -42,9 +42,9 @@
|
||||
do { \
|
||||
pr_err(IPA_MPM_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_MPM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_MPM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -3003,7 +3003,7 @@ static int ipa_mpm_populate_smmu_info(struct platform_device *pdev)
|
||||
|
||||
/* get IPA SMMU enabled status */
|
||||
smmu_in.smmu_client = IPA_SMMU_AP_CLIENT;
|
||||
if (ipa_get_smmu_params(&smmu_in, &smmu_out))
|
||||
if (ipa3_get_smmu_params(&smmu_in, &smmu_out))
|
||||
ipa_mpm_ctx->dev_info.ipa_smmu_enabled = false;
|
||||
else
|
||||
ipa_mpm_ctx->dev_info.ipa_smmu_enabled =
|
||||
|
@@ -14,25 +14,25 @@
|
||||
do { \
|
||||
pr_debug(IPA_PM_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_PM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_PM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
#define IPA_PM_DBG_LOW(fmt, args...) \
|
||||
do { \
|
||||
pr_debug(IPA_PM_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_PM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
#define IPA_PM_ERR(fmt, args...) \
|
||||
do { \
|
||||
pr_err(IPA_PM_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_PM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_PM_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
#define IPA_PM_DBG_STATE(hdl, name, state) \
|
||||
|
@@ -1258,6 +1258,7 @@ int ipa3_qmi_enable_force_clear_datapath_send(
|
||||
resp.resp.result,
|
||||
resp.resp.error, "ipa_enable_force_clear_datapath");
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_qmi_enable_force_clear_datapath_send);
|
||||
|
||||
int ipa3_qmi_disable_force_clear_datapath_send(
|
||||
struct ipa_disable_force_clear_datapath_req_msg_v01 *req)
|
||||
@@ -1315,6 +1316,7 @@ int ipa3_qmi_disable_force_clear_datapath_send(
|
||||
resp.resp.result,
|
||||
resp.resp.error, "ipa_disable_force_clear_datapath");
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_qmi_disable_force_clear_datapath_send);
|
||||
|
||||
/* sending filter-installed-notify-request to modem*/
|
||||
int ipa3_qmi_filter_notify_send(
|
||||
|
@@ -30,9 +30,9 @@
|
||||
do { \
|
||||
pr_debug(DEV_NAME " %s:%d " fmt, __func__,\
|
||||
__LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
DEV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
DEV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
do { \
|
||||
pr_debug(DEV_NAME " %s:%d " fmt, __func__,\
|
||||
__LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
DEV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -49,9 +49,9 @@
|
||||
do { \
|
||||
pr_err(DEV_NAME " %s:%d " fmt, __func__,\
|
||||
__LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
DEV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
DEV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -59,9 +59,9 @@
|
||||
do { \
|
||||
pr_err_ratelimited_ipa(DEV_NAME " %s:%d " fmt, __func__,\
|
||||
__LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
DEV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
DEV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -69,9 +69,9 @@
|
||||
do { \
|
||||
pr_info(DEV_NAME " %s:%d " fmt, __func__,\
|
||||
__LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
DEV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
DEV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
|
@@ -617,6 +617,7 @@ int ipa3_uc_state_check(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_uc_state_check);
|
||||
|
||||
/**
|
||||
* ipa3_uc_loaded_check() - Check the uC has been loaded
|
||||
@@ -1761,6 +1762,7 @@ int ipa3_set_wlan_tx_info(struct ipa_wdi_tx_info *info)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_set_wlan_tx_info);
|
||||
|
||||
int ipa3_uc_send_enable_flow_control(uint16_t gsi_chid,
|
||||
uint16_t redMarkerThreshold)
|
||||
|
@@ -136,12 +136,14 @@ int ipa3_ntn_uc_reg_rdyCB(void (*ipa_ready_cb)(void *), void *user_data)
|
||||
|
||||
return -EEXIST;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_ntn_uc_reg_rdyCB);
|
||||
|
||||
void ipa3_ntn_uc_dereg_rdyCB(void)
|
||||
{
|
||||
ipa3_ctx->uc_ntn_ctx.uc_ready_cb = NULL;
|
||||
ipa3_ctx->uc_ntn_ctx.priv = NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_ntn_uc_dereg_rdyCB);
|
||||
|
||||
static void ipa3_uc_ntn_loaded_handler(void)
|
||||
{
|
||||
@@ -522,6 +524,7 @@ fail:
|
||||
IPA_ACTIVE_CLIENTS_DEC_SIMPLE();
|
||||
return result;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_setup_uc_ntn_pipes);
|
||||
|
||||
/**
|
||||
* ipa3_tear_down_uc_offload_pipes() - tear down uc offload pipes
|
||||
@@ -633,3 +636,4 @@ fail:
|
||||
IPA_ACTIVE_CLIENTS_DEC_SIMPLE();
|
||||
return result;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_tear_down_uc_offload_pipes);
|
||||
|
@@ -3549,6 +3549,186 @@ static struct ipa3_mem_partition ipa_4_9_mem_part = {
|
||||
.end_ofst = 0x4850,
|
||||
};
|
||||
|
||||
|
||||
|
||||
const char *ipa_clients_strings[IPA_CLIENT_MAX] = {
|
||||
__stringify(IPA_CLIENT_HSIC1_PROD),
|
||||
__stringify(IPA_CLIENT_HSIC1_CONS),
|
||||
__stringify(IPA_CLIENT_HSIC2_PROD),
|
||||
__stringify(IPA_CLIENT_HSIC2_CONS),
|
||||
__stringify(IPA_CLIENT_HSIC3_PROD),
|
||||
__stringify(IPA_CLIENT_HSIC3_CONS),
|
||||
__stringify(IPA_CLIENT_HSIC4_PROD),
|
||||
__stringify(IPA_CLIENT_HSIC4_CONS),
|
||||
__stringify(IPA_CLIENT_HSIC5_PROD),
|
||||
__stringify(IPA_CLIENT_HSIC5_CONS),
|
||||
__stringify(IPA_CLIENT_WLAN1_PROD),
|
||||
__stringify(IPA_CLIENT_WLAN1_CONS),
|
||||
__stringify(IPA_CLIENT_WLAN2_PROD),
|
||||
__stringify(IPA_CLIENT_WLAN2_CONS),
|
||||
__stringify(RESERVED_PROD_14),
|
||||
__stringify(IPA_CLIENT_WLAN3_CONS),
|
||||
__stringify(RESERVED_PROD_16),
|
||||
__stringify(IPA_CLIENT_WLAN4_CONS),
|
||||
__stringify(IPA_CLIENT_USB_PROD),
|
||||
__stringify(IPA_CLIENT_USB_CONS),
|
||||
__stringify(IPA_CLIENT_USB2_PROD),
|
||||
__stringify(IPA_CLIENT_USB2_CONS),
|
||||
__stringify(IPA_CLIENT_USB3_PROD),
|
||||
__stringify(IPA_CLIENT_USB3_CONS),
|
||||
__stringify(IPA_CLIENT_USB4_PROD),
|
||||
__stringify(IPA_CLIENT_USB4_CONS),
|
||||
__stringify(IPA_CLIENT_UC_USB_PROD),
|
||||
__stringify(IPA_CLIENT_USB_DPL_CONS),
|
||||
__stringify(IPA_CLIENT_A2_EMBEDDED_PROD),
|
||||
__stringify(IPA_CLIENT_A2_EMBEDDED_CONS),
|
||||
__stringify(IPA_CLIENT_A2_TETHERED_PROD),
|
||||
__stringify(IPA_CLIENT_A2_TETHERED_CONS),
|
||||
__stringify(IPA_CLIENT_APPS_LAN_PROD),
|
||||
__stringify(IPA_CLIENT_APPS_LAN_CONS),
|
||||
__stringify(IPA_CLIENT_APPS_WAN_PROD),
|
||||
__stringify(IPA_CLIENT_APPS_WAN_CONS),
|
||||
__stringify(IPA_CLIENT_APPS_CMD_PROD),
|
||||
__stringify(IPA_CLIENT_A5_LAN_WAN_CONS),
|
||||
__stringify(IPA_CLIENT_ODU_PROD),
|
||||
__stringify(IPA_CLIENT_ODU_EMB_CONS),
|
||||
__stringify(RESERVED_PROD_40),
|
||||
__stringify(IPA_CLIENT_ODU_TETH_CONS),
|
||||
__stringify(IPA_CLIENT_MHI_PROD),
|
||||
__stringify(IPA_CLIENT_MHI_CONS),
|
||||
__stringify(IPA_CLIENT_MEMCPY_DMA_SYNC_PROD),
|
||||
__stringify(IPA_CLIENT_MEMCPY_DMA_SYNC_CONS),
|
||||
__stringify(IPA_CLIENT_MEMCPY_DMA_ASYNC_PROD),
|
||||
__stringify(IPA_CLIENT_MEMCPY_DMA_ASYNC_CONS),
|
||||
__stringify(IPA_CLIENT_ETHERNET_PROD),
|
||||
__stringify(IPA_CLIENT_ETHERNET_CONS),
|
||||
__stringify(IPA_CLIENT_Q6_LAN_PROD),
|
||||
__stringify(IPA_CLIENT_Q6_LAN_CONS),
|
||||
__stringify(IPA_CLIENT_Q6_WAN_PROD),
|
||||
__stringify(IPA_CLIENT_Q6_WAN_CONS),
|
||||
__stringify(IPA_CLIENT_Q6_CMD_PROD),
|
||||
__stringify(IPA_CLIENT_Q6_DUN_CONS),
|
||||
__stringify(IPA_CLIENT_Q6_DECOMP_PROD),
|
||||
__stringify(IPA_CLIENT_Q6_DECOMP_CONS),
|
||||
__stringify(IPA_CLIENT_Q6_DECOMP2_PROD),
|
||||
__stringify(IPA_CLIENT_Q6_DECOMP2_CONS),
|
||||
__stringify(RESERVED_PROD_60),
|
||||
__stringify(IPA_CLIENT_Q6_LTE_WIFI_AGGR_CONS),
|
||||
__stringify(IPA_CLIENT_TEST_PROD),
|
||||
__stringify(IPA_CLIENT_TEST_CONS),
|
||||
__stringify(IPA_CLIENT_TEST1_PROD),
|
||||
__stringify(IPA_CLIENT_TEST1_CONS),
|
||||
__stringify(IPA_CLIENT_TEST2_PROD),
|
||||
__stringify(IPA_CLIENT_TEST2_CONS),
|
||||
__stringify(IPA_CLIENT_TEST3_PROD),
|
||||
__stringify(IPA_CLIENT_TEST3_CONS),
|
||||
__stringify(IPA_CLIENT_TEST4_PROD),
|
||||
__stringify(IPA_CLIENT_TEST4_CONS),
|
||||
__stringify(RESERVED_PROD_72),
|
||||
__stringify(IPA_CLIENT_DUMMY_CONS),
|
||||
__stringify(IPA_CLIENT_Q6_DL_NLO_DATA_PROD),
|
||||
__stringify(IPA_CLIENT_Q6_UL_NLO_DATA_CONS),
|
||||
__stringify(RESERVED_PROD_76),
|
||||
__stringify(IPA_CLIENT_Q6_UL_NLO_ACK_CONS),
|
||||
__stringify(RESERVED_PROD_78),
|
||||
__stringify(IPA_CLIENT_Q6_QBAP_STATUS_CONS),
|
||||
__stringify(RESERVED_PROD_80),
|
||||
__stringify(IPA_CLIENT_MHI_DPL_CONS),
|
||||
__stringify(RESERVED_PROD_82),
|
||||
__stringify(IPA_CLIENT_ODL_DPL_CONS),
|
||||
__stringify(IPA_CLIENT_Q6_AUDIO_DMA_MHI_PROD),
|
||||
__stringify(IPA_CLIENT_Q6_AUDIO_DMA_MHI_CONS),
|
||||
__stringify(IPA_CLIENT_WIGIG_PROD),
|
||||
__stringify(IPA_CLIENT_WIGIG1_CONS),
|
||||
__stringify(RESERVERD_PROD_88),
|
||||
__stringify(IPA_CLIENT_WIGIG2_CONS),
|
||||
__stringify(RESERVERD_PROD_90),
|
||||
__stringify(IPA_CLIENT_WIGIG3_CONS),
|
||||
__stringify(RESERVERD_PROD_92),
|
||||
__stringify(IPA_CLIENT_WIGIG4_CONS),
|
||||
__stringify(RESERVERD_PROD_94),
|
||||
__stringify(IPA_CLIENT_APPS_WAN_COAL_CONS),
|
||||
__stringify(IPA_CLIENT_MHI_PRIME_RMNET_PROD),
|
||||
__stringify(IPA_CLIENT_MHI_PRIME_RMNET_CONS),
|
||||
__stringify(IPA_CLIENT_MHI_PRIME_TETH_PROD),
|
||||
__stringify(IPA_CLIENT_MHI_PRIME_TETH_CONS),
|
||||
__stringify(IPA_CLIENT_MHI_PRIME_DPL_PROD),
|
||||
__stringify(RESERVERD_CONS_101),
|
||||
__stringify(IPA_CLIENT_AQC_ETHERNET_PROD),
|
||||
__stringify(IPA_CLIENT_AQC_ETHERNET_CONS),
|
||||
__stringify(IPA_CLIENT_APPS_WAN_LOW_LAT_PROD),
|
||||
__stringify(IPA_CLIENT_APPS_WAN_LOW_LAT_CONS),
|
||||
};
|
||||
EXPORT_SYMBOL(ipa_clients_strings);
|
||||
|
||||
/**
|
||||
* ipa_get_version_string() - Get string representation of IPA version
|
||||
* @ver: IPA version
|
||||
*
|
||||
* Return: Constant string representation
|
||||
*/
|
||||
const char *ipa_get_version_string(enum ipa_hw_type ver)
|
||||
{
|
||||
const char *str;
|
||||
|
||||
switch (ver) {
|
||||
case IPA_HW_v1_0:
|
||||
str = "1.0";
|
||||
break;
|
||||
case IPA_HW_v1_1:
|
||||
str = "1.1";
|
||||
break;
|
||||
case IPA_HW_v2_0:
|
||||
str = "2.0";
|
||||
break;
|
||||
case IPA_HW_v2_1:
|
||||
str = "2.1";
|
||||
break;
|
||||
case IPA_HW_v2_5:
|
||||
str = "2.5/2.6";
|
||||
break;
|
||||
case IPA_HW_v2_6L:
|
||||
str = "2.6L";
|
||||
break;
|
||||
case IPA_HW_v3_0:
|
||||
str = "3.0";
|
||||
break;
|
||||
case IPA_HW_v3_1:
|
||||
str = "3.1";
|
||||
break;
|
||||
case IPA_HW_v3_5:
|
||||
str = "3.5";
|
||||
break;
|
||||
case IPA_HW_v3_5_1:
|
||||
str = "3.5.1";
|
||||
break;
|
||||
case IPA_HW_v4_0:
|
||||
str = "4.0";
|
||||
break;
|
||||
case IPA_HW_v4_1:
|
||||
str = "4.1";
|
||||
break;
|
||||
case IPA_HW_v4_2:
|
||||
str = "4.2";
|
||||
break;
|
||||
case IPA_HW_v4_5:
|
||||
str = "4.5";
|
||||
break;
|
||||
case IPA_HW_v4_7:
|
||||
str = "4.7";
|
||||
break;
|
||||
case IPA_HW_v4_9:
|
||||
str = "4.9";
|
||||
break;
|
||||
default:
|
||||
str = "Invalid version";
|
||||
break;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa_get_version_string);
|
||||
|
||||
/**
|
||||
* ipa3_get_clients_from_rm_resource() - get IPA clients which are related to an
|
||||
* IPA_RM resource
|
||||
@@ -4519,6 +4699,7 @@ enum ipacm_client_enum ipa3_get_client(int pipe_idx)
|
||||
return ipa3_ctx->ipacm_client[pipe_idx].client_enum;
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_get_client);
|
||||
|
||||
/**
|
||||
* ipa2_get_client_uplink() - provide client mapping
|
||||
@@ -4775,6 +4956,7 @@ int ipa3_cfg_ep(u32 clnt_hdl, const struct ipa_ep_cfg *ipa_ep_cfg)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_cfg_ep);
|
||||
|
||||
static const char *ipa3_get_nat_en_str(enum ipa_nat_en_type nat_en)
|
||||
{
|
||||
@@ -5614,6 +5796,7 @@ success:
|
||||
ep_holb->tmr_val);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_cfg_ep_holb);
|
||||
|
||||
/**
|
||||
* ipa3_cfg_ep_holb_by_client() - IPA end-point holb configuration
|
||||
@@ -7135,31 +7318,34 @@ int ipa3_disable_apps_wan_cons_deaggr(uint32_t agg_size, uint32_t agg_count)
|
||||
return res;
|
||||
}
|
||||
|
||||
static void *ipa3_get_ipc_logbuf(void)
|
||||
void *ipa3_get_ipc_logbuf(void)
|
||||
{
|
||||
if (ipa3_ctx)
|
||||
return ipa3_ctx->logbuf;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_get_ipc_logbuf);
|
||||
|
||||
static void *ipa3_get_ipc_logbuf_low(void)
|
||||
void *ipa3_get_ipc_logbuf_low(void)
|
||||
{
|
||||
if (ipa3_ctx)
|
||||
return ipa3_ctx->logbuf_low;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_get_ipc_logbuf_low);
|
||||
|
||||
static void ipa3_get_holb(int ep_idx, struct ipa_ep_cfg_holb *holb)
|
||||
void ipa3_get_holb(int ep_idx, struct ipa_ep_cfg_holb *holb)
|
||||
{
|
||||
*holb = ipa3_ctx->ep[ep_idx].holb;
|
||||
}
|
||||
|
||||
static void ipa3_set_tag_process_before_gating(bool val)
|
||||
void ipa3_set_tag_process_before_gating(bool val)
|
||||
{
|
||||
ipa3_ctx->tag_process_before_gating = val;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_set_tag_process_before_gating);
|
||||
|
||||
/**
|
||||
* ipa3_is_vlan_mode - check if a LAN driver should load in VLAN mode
|
||||
@@ -7193,152 +7379,6 @@ int ipa3_is_vlan_mode(enum ipa_vlan_ifaces iface, bool *res)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ipa3_bind_api_controller(enum ipa_hw_type ipa_hw_type,
|
||||
struct ipa_api_controller *api_ctrl)
|
||||
{
|
||||
if (ipa_hw_type < IPA_HW_v3_0) {
|
||||
IPAERR("Unsupported IPA HW version %d\n", ipa_hw_type);
|
||||
WARN_ON(1);
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
api_ctrl->ipa_cfg_ep = ipa3_cfg_ep;
|
||||
api_ctrl->ipa_cfg_ep_nat = ipa3_cfg_ep_nat;
|
||||
api_ctrl->ipa_cfg_ep_conn_track = ipa3_cfg_ep_conn_track;
|
||||
api_ctrl->ipa_cfg_ep_hdr = ipa3_cfg_ep_hdr;
|
||||
api_ctrl->ipa_cfg_ep_hdr_ext = ipa3_cfg_ep_hdr_ext;
|
||||
api_ctrl->ipa_cfg_ep_mode = ipa3_cfg_ep_mode;
|
||||
api_ctrl->ipa_cfg_ep_aggr = ipa3_cfg_ep_aggr;
|
||||
api_ctrl->ipa_cfg_ep_deaggr = ipa3_cfg_ep_deaggr;
|
||||
api_ctrl->ipa_cfg_ep_route = ipa3_cfg_ep_route;
|
||||
api_ctrl->ipa_cfg_ep_holb = ipa3_cfg_ep_holb;
|
||||
api_ctrl->ipa_get_holb = ipa3_get_holb;
|
||||
api_ctrl->ipa_set_tag_process_before_gating =
|
||||
ipa3_set_tag_process_before_gating;
|
||||
api_ctrl->ipa_cfg_ep_cfg = ipa3_cfg_ep_cfg;
|
||||
api_ctrl->ipa_cfg_ep_metadata_mask = ipa3_cfg_ep_metadata_mask;
|
||||
api_ctrl->ipa_cfg_ep_holb_by_client = ipa3_cfg_ep_holb_by_client;
|
||||
api_ctrl->ipa_add_hdr_usr = ipa3_add_hdr_usr;
|
||||
api_ctrl->ipa_reset_hdr = ipa3_reset_hdr;
|
||||
api_ctrl->ipa_add_hdr_proc_ctx = ipa3_add_hdr_proc_ctx;
|
||||
api_ctrl->ipa_del_hdr_proc_ctx = ipa3_del_hdr_proc_ctx;
|
||||
api_ctrl->ipa_add_rt_rule_v2 = ipa3_add_rt_rule_v2;
|
||||
api_ctrl->ipa_add_rt_rule_usr = ipa3_add_rt_rule_usr;
|
||||
api_ctrl->ipa_add_rt_rule_usr_v2 = ipa3_add_rt_rule_usr_v2;
|
||||
api_ctrl->ipa_del_rt_rule = ipa3_del_rt_rule;
|
||||
api_ctrl->ipa_commit_rt = ipa3_commit_rt;
|
||||
api_ctrl->ipa_reset_rt = ipa3_reset_rt;
|
||||
api_ctrl->ipa_get_rt_tbl = ipa3_get_rt_tbl;
|
||||
api_ctrl->ipa_query_rt_index = ipa3_query_rt_index;
|
||||
api_ctrl->ipa_mdfy_rt_rule = ipa3_mdfy_rt_rule;
|
||||
api_ctrl->ipa_mdfy_rt_rule_v2 = ipa3_mdfy_rt_rule_v2;
|
||||
api_ctrl->ipa_add_flt_rule = ipa3_add_flt_rule;
|
||||
api_ctrl->ipa_add_flt_rule_v2 = ipa3_add_flt_rule_v2;
|
||||
api_ctrl->ipa_add_flt_rule_usr = ipa3_add_flt_rule_usr;
|
||||
api_ctrl->ipa_add_flt_rule_usr_v2 = ipa3_add_flt_rule_usr_v2;
|
||||
api_ctrl->ipa_del_flt_rule = ipa3_del_flt_rule;
|
||||
api_ctrl->ipa_mdfy_flt_rule = ipa3_mdfy_flt_rule;
|
||||
api_ctrl->ipa_mdfy_flt_rule_v2 = ipa3_mdfy_flt_rule_v2;
|
||||
api_ctrl->ipa_commit_flt = ipa3_commit_flt;
|
||||
api_ctrl->ipa_reset_flt = ipa3_reset_flt;
|
||||
api_ctrl->ipa_allocate_nat_device = ipa3_allocate_nat_device;
|
||||
api_ctrl->ipa_allocate_nat_table = ipa3_allocate_nat_table;
|
||||
api_ctrl->ipa_allocate_ipv6ct_table = ipa3_allocate_ipv6ct_table;
|
||||
api_ctrl->ipa_nat_init_cmd = ipa3_nat_init_cmd;
|
||||
api_ctrl->ipa_ipv6ct_init_cmd = ipa3_ipv6ct_init_cmd;
|
||||
api_ctrl->ipa_nat_dma_cmd = ipa3_nat_dma_cmd;
|
||||
api_ctrl->ipa_table_dma_cmd = ipa3_table_dma_cmd;
|
||||
api_ctrl->ipa_nat_del_cmd = ipa3_nat_del_cmd;
|
||||
api_ctrl->ipa_del_nat_table = ipa3_del_nat_table;
|
||||
api_ctrl->ipa_del_ipv6ct_table = ipa3_del_ipv6ct_table;
|
||||
api_ctrl->ipa_nat_mdfy_pdn = ipa3_nat_mdfy_pdn;
|
||||
api_ctrl->ipa_sys_setup = ipa3_sys_setup;
|
||||
api_ctrl->ipa_sys_teardown = ipa3_sys_teardown;
|
||||
api_ctrl->ipa_sys_update_gsi_hdls = ipa3_sys_update_gsi_hdls;
|
||||
api_ctrl->ipa_set_wlan_tx_info = ipa3_set_wlan_tx_info;
|
||||
api_ctrl->teth_bridge_init = ipa3_teth_bridge_init;
|
||||
api_ctrl->teth_bridge_disconnect = ipa3_teth_bridge_disconnect;
|
||||
api_ctrl->teth_bridge_connect = ipa3_teth_bridge_connect;
|
||||
api_ctrl->ipa_set_client = ipa3_set_client;
|
||||
api_ctrl->ipa_get_client = ipa3_get_client;
|
||||
api_ctrl->ipa_get_client_uplink = ipa3_get_client_uplink;
|
||||
api_ctrl->ipa_mhi_init_engine = ipa3_mhi_init_engine;
|
||||
api_ctrl->ipa_connect_mhi_pipe = ipa3_connect_mhi_pipe;
|
||||
api_ctrl->ipa_disconnect_mhi_pipe = ipa3_disconnect_mhi_pipe;
|
||||
api_ctrl->ipa_mhi_stop_gsi_channel = ipa3_mhi_stop_gsi_channel;
|
||||
api_ctrl->ipa_uc_mhi_reset_channel = ipa3_uc_mhi_reset_channel;
|
||||
api_ctrl->ipa_qmi_enable_force_clear_datapath_send =
|
||||
ipa3_qmi_enable_force_clear_datapath_send;
|
||||
api_ctrl->ipa_qmi_disable_force_clear_datapath_send =
|
||||
ipa3_qmi_disable_force_clear_datapath_send;
|
||||
api_ctrl->ipa_mhi_reset_channel_internal =
|
||||
ipa3_mhi_reset_channel_internal;
|
||||
api_ctrl->ipa_mhi_start_channel_internal =
|
||||
ipa3_mhi_start_channel_internal;
|
||||
api_ctrl->ipa_mhi_query_ch_info = ipa3_mhi_query_ch_info;
|
||||
api_ctrl->ipa_mhi_resume_channels_internal =
|
||||
ipa3_mhi_resume_channels_internal;
|
||||
api_ctrl->ipa_has_open_aggr_frame = ipa3_has_open_aggr_frame;
|
||||
api_ctrl->ipa_mhi_destroy_channel = ipa3_mhi_destroy_channel;
|
||||
api_ctrl->ipa_uc_mhi_send_dl_ul_sync_info =
|
||||
ipa3_uc_mhi_send_dl_ul_sync_info;
|
||||
api_ctrl->ipa_uc_mhi_init = ipa3_uc_mhi_init;
|
||||
api_ctrl->ipa_uc_mhi_suspend_channel = ipa3_uc_mhi_suspend_channel;
|
||||
api_ctrl->ipa_uc_mhi_stop_event_update_channel =
|
||||
ipa3_uc_mhi_stop_event_update_channel;
|
||||
api_ctrl->ipa_uc_mhi_cleanup = ipa3_uc_mhi_cleanup;
|
||||
api_ctrl->ipa_uc_state_check = ipa3_uc_state_check;
|
||||
api_ctrl->ipa_write_qmap_id = ipa3_write_qmap_id;
|
||||
api_ctrl->ipa_remove_interrupt_handler = ipa3_remove_interrupt_handler;
|
||||
api_ctrl->ipa_ap_suspend = ipa3_ap_suspend;
|
||||
api_ctrl->ipa_ap_resume = ipa3_ap_resume;
|
||||
api_ctrl->ipa_start_gsi_channel = ipa3_start_gsi_channel;
|
||||
api_ctrl->ipa_inc_client_enable_clks = ipa3_inc_client_enable_clks;
|
||||
api_ctrl->ipa_dec_client_disable_clks = ipa3_dec_client_disable_clks;
|
||||
api_ctrl->ipa_inc_client_enable_clks_no_block =
|
||||
ipa3_inc_client_enable_clks_no_block;
|
||||
api_ctrl->ipa_suspend_resource_no_block =
|
||||
ipa3_suspend_resource_no_block;
|
||||
api_ctrl->ipa_resume_resource = ipa3_resume_resource;
|
||||
api_ctrl->ipa_suspend_resource_sync = ipa3_suspend_resource_sync;
|
||||
api_ctrl->ipa_set_required_perf_profile =
|
||||
ipa3_set_required_perf_profile;
|
||||
api_ctrl->ipa_get_ipc_logbuf = ipa3_get_ipc_logbuf;
|
||||
api_ctrl->ipa_get_ipc_logbuf_low = ipa3_get_ipc_logbuf_low;
|
||||
api_ctrl->ipa_rx_poll = ipa3_rx_poll;
|
||||
api_ctrl->ipa_setup_uc_ntn_pipes = ipa3_setup_uc_ntn_pipes;
|
||||
api_ctrl->ipa_tear_down_uc_offload_pipes =
|
||||
ipa3_tear_down_uc_offload_pipes;
|
||||
api_ctrl->ipa_get_pdev = ipa3_get_pdev;
|
||||
api_ctrl->ipa_ntn_uc_reg_rdyCB = ipa3_ntn_uc_reg_rdyCB;
|
||||
api_ctrl->ipa_ntn_uc_dereg_rdyCB = ipa3_ntn_uc_dereg_rdyCB;
|
||||
api_ctrl->ipa_conn_wdi_pipes = ipa3_conn_wdi3_pipes;
|
||||
api_ctrl->ipa_disconn_wdi_pipes = ipa3_disconn_wdi3_pipes;
|
||||
api_ctrl->ipa_enable_wdi_pipes = ipa3_enable_wdi3_pipes;
|
||||
api_ctrl->ipa_disable_wdi_pipes = ipa3_disable_wdi3_pipes;
|
||||
api_ctrl->ipa_tz_unlock_reg = ipa3_tz_unlock_reg;
|
||||
api_ctrl->ipa_wigig_internal_init = ipa3_wigig_internal_init;
|
||||
api_ctrl->ipa_conn_wigig_rx_pipe_i = ipa3_conn_wigig_rx_pipe_i;
|
||||
api_ctrl->ipa_conn_wigig_client_i = ipa3_conn_wigig_client_i;
|
||||
api_ctrl->ipa_disconn_wigig_pipe_i = ipa3_disconn_wigig_pipe_i;
|
||||
api_ctrl->ipa_wigig_uc_msi_init = ipa3_wigig_uc_msi_init;
|
||||
api_ctrl->ipa_enable_wigig_pipe_i = ipa3_enable_wigig_pipe_i;
|
||||
api_ctrl->ipa_disable_wigig_pipe_i = ipa3_disable_wigig_pipe_i;
|
||||
api_ctrl->ipa_register_client_callback =
|
||||
ipa3_register_client_callback;
|
||||
api_ctrl->ipa_deregister_client_callback =
|
||||
ipa3_deregister_client_callback;
|
||||
api_ctrl->ipa_uc_debug_stats_alloc =
|
||||
ipa3_uc_debug_stats_alloc;
|
||||
api_ctrl->ipa_uc_debug_stats_dealloc =
|
||||
ipa3_uc_debug_stats_dealloc;
|
||||
api_ctrl->ipa_get_gsi_stats =
|
||||
ipa3_get_gsi_stats;
|
||||
api_ctrl->ipa_get_prot_id =
|
||||
ipa3_get_prot_id;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* ipa_is_modem_pipe()- Checks if pipe is owned by the modem
|
||||
*
|
||||
|
@@ -663,6 +663,7 @@ fail:
|
||||
IPA_ACTIVE_CLIENTS_DEC_SIMPLE();
|
||||
return result;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_conn_wdi3_pipes);
|
||||
|
||||
int ipa3_disconn_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx)
|
||||
{
|
||||
@@ -738,6 +739,7 @@ exit:
|
||||
IPA_ACTIVE_CLIENTS_DEC_EP(ipa3_get_client_by_pipe(ipa_ep_idx_tx));
|
||||
return result;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_disconn_wdi3_pipes);
|
||||
|
||||
int ipa3_enable_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx)
|
||||
{
|
||||
@@ -834,6 +836,7 @@ exit:
|
||||
IPA_ACTIVE_CLIENTS_DEC_EP(ipa3_get_client_mapping(ipa_ep_idx_tx));
|
||||
return result;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_enable_wdi3_pipes);
|
||||
|
||||
int ipa3_disable_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx)
|
||||
{
|
||||
@@ -929,6 +932,7 @@ fail:
|
||||
return result;
|
||||
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_disable_wdi3_pipes);
|
||||
|
||||
int ipa3_write_qmapid_wdi3_gsi_pipe(u32 clnt_hdl, u8 qmap_id)
|
||||
{
|
||||
|
@@ -128,6 +128,7 @@ int ipa3_wigig_internal_init(
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_wigig_internal_init);
|
||||
|
||||
static int ipa3_wigig_tx_bit_to_ep(
|
||||
const u8 tx_bit_num,
|
||||
@@ -1143,6 +1144,7 @@ fail:
|
||||
IPA_ACTIVE_CLIENTS_DEC_SIMPLE();
|
||||
return result;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_conn_wigig_rx_pipe_i);
|
||||
|
||||
int ipa3_conn_wigig_client_i(void *in,
|
||||
struct ipa_wigig_conn_out_params *out,
|
||||
@@ -1374,6 +1376,7 @@ fail:
|
||||
IPA_ACTIVE_CLIENTS_DEC_SIMPLE();
|
||||
return result;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_conn_wigig_client_i);
|
||||
|
||||
int ipa3_disconn_wigig_pipe_i(enum ipa_client_type client,
|
||||
struct ipa_wigig_pipe_setup_info_smmu *pipe_smmu,
|
||||
@@ -1488,6 +1491,7 @@ fail:
|
||||
IPA_ACTIVE_CLIENTS_DEC_SIMPLE();
|
||||
return result;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_disconn_wigig_pipe_i);
|
||||
|
||||
int ipa3_wigig_uc_msi_init(bool init,
|
||||
phys_addr_t periph_baddr_pa,
|
||||
@@ -1642,6 +1646,7 @@ fail_gen_tx:
|
||||
fail:
|
||||
return result;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_wigig_uc_msi_init);
|
||||
|
||||
int ipa3_enable_wigig_pipe_i(enum ipa_client_type client)
|
||||
{
|
||||
@@ -1763,6 +1768,7 @@ fail_enable_datapath:
|
||||
IPA_ACTIVE_CLIENTS_DEC_EP(client);
|
||||
return res;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_enable_wigig_pipe_i);
|
||||
|
||||
int ipa3_disable_wigig_pipe_i(enum ipa_client_type client)
|
||||
{
|
||||
@@ -1869,6 +1875,7 @@ fail_stop_channel:
|
||||
ipa_assert();
|
||||
return res;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_disable_wigig_pipe_i);
|
||||
|
||||
static void ipa_wigig_free_msg(void *msg, uint32_t len, uint32_t type)
|
||||
{
|
||||
|
@@ -15,9 +15,9 @@
|
||||
do { \
|
||||
pr_debug(IPAHAL_DRV_NAME " %s:%d " fmt, __func__, __LINE__, \
|
||||
## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPAHAL_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPAHAL_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
do { \
|
||||
pr_debug(IPAHAL_DRV_NAME " %s:%d " fmt, __func__, __LINE__, \
|
||||
## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPAHAL_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -33,9 +33,9 @@
|
||||
do { \
|
||||
pr_err(IPAHAL_DRV_NAME " %s:%d " fmt, __func__, __LINE__, \
|
||||
## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPAHAL_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPAHAL_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -43,9 +43,9 @@
|
||||
do { \
|
||||
pr_err_ratelimited_ipa(IPAHAL_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPAHAL_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPAHAL_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
|
@@ -471,7 +471,7 @@ static void ipa3_del_dflt_wan_rt_tables(void)
|
||||
|
||||
IPAWANERR("Deleting Route hdl:(0x%x) with ip type: %d\n",
|
||||
rt_rule_entry->hdl, IPA_IP_v4);
|
||||
if (ipa_del_rt_rule(rt_rule) ||
|
||||
if (ipa3_del_rt_rule(rt_rule) ||
|
||||
(rt_rule_entry->status)) {
|
||||
IPAWANERR("Routing rule deletion failed\n");
|
||||
}
|
||||
@@ -480,7 +480,7 @@ static void ipa3_del_dflt_wan_rt_tables(void)
|
||||
rt_rule_entry->hdl = rmnet_ipa3_ctx->dflt_v6_wan_rt_hdl;
|
||||
IPAWANERR("Deleting Route hdl:(0x%x) with ip type: %d\n",
|
||||
rt_rule_entry->hdl, IPA_IP_v6);
|
||||
if (ipa_del_rt_rule(rt_rule) ||
|
||||
if (ipa3_del_rt_rule(rt_rule) ||
|
||||
(rt_rule_entry->status)) {
|
||||
IPAWANERR("Routing rule deletion failed\n");
|
||||
}
|
||||
@@ -795,7 +795,7 @@ static int ipa3_wwan_add_ul_flt_rule_to_ipa(void)
|
||||
sizeof(struct ipa_ipfltri_rule_eq));
|
||||
memcpy(&(param->rules[0]), &flt_rule_entry,
|
||||
sizeof(struct ipa_flt_rule_add));
|
||||
if (ipa_add_flt_rule((struct ipa_ioc_add_flt_rule *)param)) {
|
||||
if (ipa3_add_flt_rule((struct ipa_ioc_add_flt_rule *)param)) {
|
||||
retval = -EFAULT;
|
||||
IPAWANERR("add A7 UL filter rule(%d) failed\n", i);
|
||||
} else {
|
||||
@@ -857,7 +857,7 @@ static int ipa3_wwan_del_ul_flt_rule_to_ipa(void)
|
||||
IPAWANDBG("delete-IPA rule index(%d)\n", i);
|
||||
memcpy(&(param->hdl[0]), &flt_rule_entry,
|
||||
sizeof(struct ipa_flt_rule_del));
|
||||
if (ipa_del_flt_rule((struct ipa_ioc_del_flt_rule *)param)) {
|
||||
if (ipa3_del_flt_rule((struct ipa_ioc_del_flt_rule *)param)) {
|
||||
IPAWANERR("del A7 UL filter rule(%d) failed\n", i);
|
||||
kfree(param);
|
||||
return -EFAULT;
|
||||
@@ -3287,10 +3287,10 @@ int rmnet_ipa3_set_tether_client_pipe(
|
||||
IPAWANDBG("UL index-%d pipe %d\n", i,
|
||||
data->ul_src_pipe_list[i]);
|
||||
if (data->reset_client)
|
||||
ipa_set_client(data->ul_src_pipe_list[i],
|
||||
ipa3_set_client(data->ul_src_pipe_list[i],
|
||||
0, false);
|
||||
else
|
||||
ipa_set_client(data->ul_src_pipe_list[i],
|
||||
ipa3_set_client(data->ul_src_pipe_list[i],
|
||||
data->ipa_client, true);
|
||||
}
|
||||
number = data->dl_dst_pipe_len;
|
||||
@@ -3298,10 +3298,10 @@ int rmnet_ipa3_set_tether_client_pipe(
|
||||
IPAWANDBG("DL index-%d pipe %d\n", i,
|
||||
data->dl_dst_pipe_list[i]);
|
||||
if (data->reset_client)
|
||||
ipa_set_client(data->dl_dst_pipe_list[i],
|
||||
ipa3_set_client(data->dl_dst_pipe_list[i],
|
||||
0, false);
|
||||
else
|
||||
ipa_set_client(data->dl_dst_pipe_list[i],
|
||||
ipa3_set_client(data->dl_dst_pipe_list[i],
|
||||
data->ipa_client, false);
|
||||
}
|
||||
return 0;
|
||||
@@ -3418,9 +3418,9 @@ static int rmnet_ipa3_query_tethering_stats_modem(
|
||||
IPAWANDBG_LOW("dl_b_v4(%lu)v6(%lu)\n",
|
||||
(unsigned long) stat_ptr->num_ipv4_bytes,
|
||||
(unsigned long) stat_ptr->num_ipv6_bytes);
|
||||
if (ipa_get_client_uplink(
|
||||
if (ipa3_get_client_uplink(
|
||||
stat_ptr->pipe_index) == false) {
|
||||
if (data->ipa_client == ipa_get_client(
|
||||
if (data->ipa_client == ipa3_get_client(
|
||||
stat_ptr->pipe_index)) {
|
||||
/* update the DL stats */
|
||||
data->ipv4_rx_packets +=
|
||||
@@ -3456,9 +3456,9 @@ static int rmnet_ipa3_query_tethering_stats_modem(
|
||||
IPAWANDBG_LOW("ul_b_v4(%lu)v6(%lu)\n",
|
||||
(unsigned long)stat_ptr->num_ipv4_bytes,
|
||||
(unsigned long) stat_ptr->num_ipv6_bytes);
|
||||
if (ipa_get_client_uplink(
|
||||
if (ipa3_get_client_uplink(
|
||||
stat_ptr->pipe_index) == true) {
|
||||
if (data->ipa_client == ipa_get_client(
|
||||
if (data->ipa_client == ipa3_get_client(
|
||||
stat_ptr->pipe_index)) {
|
||||
/* update the DL stats */
|
||||
data->ipv4_tx_packets +=
|
||||
@@ -4985,7 +4985,7 @@ static int ipa3_rmnet_poll(struct napi_struct *napi, int budget)
|
||||
{
|
||||
int rcvd_pkts = 0;
|
||||
|
||||
rcvd_pkts = ipa_rx_poll(rmnet_ipa3_ctx->ipa3_to_apps_hdl,
|
||||
rcvd_pkts = ipa3_rx_poll(rmnet_ipa3_ctx->ipa3_to_apps_hdl,
|
||||
NAPI_WEIGHT);
|
||||
IPAWANDBG_LOW("rcvd packets: %d\n", rcvd_pkts);
|
||||
return rcvd_pkts;
|
||||
|
@@ -106,6 +106,7 @@ int ipa3_teth_bridge_init(struct teth_bridge_init_params *params)
|
||||
TETH_DBG_FUNC_EXIT();
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_teth_bridge_init);
|
||||
|
||||
/**
|
||||
* ipa3_teth_bridge_get_pm_hdl() - Get the Tethering bridge Driver pm hdl
|
||||
@@ -150,6 +151,7 @@ int ipa3_teth_bridge_disconnect(enum ipa_client_type client)
|
||||
|
||||
return res;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_teth_bridge_disconnect);
|
||||
|
||||
/**
|
||||
* ipa3_teth_bridge_connect() - Connect bridge for a tethered Rmnet / MBIM call
|
||||
@@ -187,6 +189,7 @@ int ipa3_teth_bridge_connect(struct teth_bridge_connect_params *connect_params)
|
||||
TETH_DBG_FUNC_EXIT();
|
||||
return res;
|
||||
}
|
||||
EXPORT_SYMBOL(ipa3_teth_bridge_connect);
|
||||
|
||||
static long ipa3_teth_bridge_ioctl(struct file *filp,
|
||||
unsigned int cmd,
|
||||
|
@@ -227,13 +227,13 @@ static int ipa_test_hw_stats_add_FnR(void *priv)
|
||||
rt_rule->rules)[0].rule.cnt_idx = ctx->rt4_usb_cnt_id;
|
||||
((struct ipa_rt_rule_add_v2 *)
|
||||
rt_rule->rules)[0].rule.enable_stats = true;
|
||||
if (ipa_add_rt_rule_v2(rt_rule) || ((struct ipa_rt_rule_add_v2 *)
|
||||
if (ipa3_add_rt_rule_v2(rt_rule) || ((struct ipa_rt_rule_add_v2 *)
|
||||
rt_rule->rules)[0].status) {
|
||||
IPA_UT_ERR("failed to install V4 rules\n");
|
||||
ret = -EFAULT;
|
||||
goto free_query;
|
||||
}
|
||||
if (ipa_get_rt_tbl(&rt_lookup)) {
|
||||
if (ipa3_get_rt_tbl(&rt_lookup)) {
|
||||
IPA_UT_ERR("failed to query V4 rules\n");
|
||||
ret = -EFAULT;
|
||||
goto free_query;
|
||||
@@ -261,13 +261,13 @@ static int ipa_test_hw_stats_add_FnR(void *priv)
|
||||
rt_rule->rules)[0].rule.cnt_idx = ctx->rt6_usb_cnt_id;
|
||||
((struct ipa_rt_rule_add_v2 *)
|
||||
rt_rule->rules)[0].rule.enable_stats = true;
|
||||
if (ipa_add_rt_rule_v2(rt_rule) || ((struct ipa_rt_rule_add_v2 *)
|
||||
if (ipa3_add_rt_rule_v2(rt_rule) || ((struct ipa_rt_rule_add_v2 *)
|
||||
rt_rule->rules)[0].status) {
|
||||
IPA_UT_ERR("failed to install V4 rules\n");
|
||||
ret = -EFAULT;
|
||||
goto free_query;
|
||||
}
|
||||
if (ipa_get_rt_tbl(&rt_lookup)) {
|
||||
if (ipa3_get_rt_tbl(&rt_lookup)) {
|
||||
IPA_UT_ERR("failed to query V4 rules\n");
|
||||
ret = -EFAULT;
|
||||
goto free_query;
|
||||
@@ -295,13 +295,13 @@ static int ipa_test_hw_stats_add_FnR(void *priv)
|
||||
rt_rule->rules)[0].rule.cnt_idx = ctx->rt4_odu_cnt_id;
|
||||
((struct ipa_rt_rule_add_v2 *)
|
||||
rt_rule->rules)[0].rule.enable_stats = true;
|
||||
if (ipa_add_rt_rule_v2(rt_rule) || ((struct ipa_rt_rule_add_v2 *)
|
||||
if (ipa3_add_rt_rule_v2(rt_rule) || ((struct ipa_rt_rule_add_v2 *)
|
||||
rt_rule->rules)[0].status) {
|
||||
IPA_UT_ERR("failed to install V4 rules\n");
|
||||
ret = -EFAULT;
|
||||
goto free_query;
|
||||
}
|
||||
if (ipa_get_rt_tbl(&rt_lookup)) {
|
||||
if (ipa3_get_rt_tbl(&rt_lookup)) {
|
||||
IPA_UT_ERR("failed to query V4 rules\n");
|
||||
ret = -EFAULT;
|
||||
goto free_query;
|
||||
@@ -329,13 +329,13 @@ static int ipa_test_hw_stats_add_FnR(void *priv)
|
||||
rt_rule->rules)[0].rule.cnt_idx = ctx->rt6_odu_cnt_id;
|
||||
((struct ipa_rt_rule_add_v2 *)
|
||||
rt_rule->rules)[0].rule.enable_stats = true;
|
||||
if (ipa_add_rt_rule_v2(rt_rule) || ((struct ipa_rt_rule_add_v2 *)
|
||||
if (ipa3_add_rt_rule_v2(rt_rule) || ((struct ipa_rt_rule_add_v2 *)
|
||||
rt_rule->rules)[0].status) {
|
||||
IPA_UT_ERR("failed to install V4 rules\n");
|
||||
ret = -EFAULT;
|
||||
goto free_query;
|
||||
}
|
||||
if (ipa_get_rt_tbl(&rt_lookup)) {
|
||||
if (ipa3_get_rt_tbl(&rt_lookup)) {
|
||||
IPA_UT_ERR("failed to query V4 rules\n");
|
||||
ret = -EFAULT;
|
||||
goto free_query;
|
||||
@@ -364,7 +364,7 @@ static int ipa_test_hw_stats_add_FnR(void *priv)
|
||||
flt_rule->rules)[0].rule.cnt_idx = ctx->flt4_usb_cnt_id;
|
||||
((struct ipa_flt_rule_add_v2 *)
|
||||
flt_rule->rules)[0].rule.enable_stats = true;
|
||||
if (ipa_add_flt_rule_v2(flt_rule) || ((struct ipa_flt_rule_add_v2 *)
|
||||
if (ipa3_add_flt_rule_v2(flt_rule) || ((struct ipa_flt_rule_add_v2 *)
|
||||
flt_rule->rules)[0].status) {
|
||||
IPA_UT_ERR("failed to install V4 rules\n");
|
||||
ret = -EFAULT;
|
||||
@@ -393,7 +393,7 @@ static int ipa_test_hw_stats_add_FnR(void *priv)
|
||||
flt_rule->rules)[0].rule.cnt_idx = ctx->flt6_usb_cnt_id;
|
||||
((struct ipa_flt_rule_add_v2 *)
|
||||
flt_rule->rules)[0].rule.enable_stats = true;
|
||||
if (ipa_add_flt_rule_v2(flt_rule) || ((struct ipa_flt_rule_add_v2 *)
|
||||
if (ipa3_add_flt_rule_v2(flt_rule) || ((struct ipa_flt_rule_add_v2 *)
|
||||
flt_rule->rules)[0].status) {
|
||||
IPA_UT_ERR("failed to install V6 rules\n");
|
||||
ret = -EFAULT;
|
||||
@@ -422,7 +422,7 @@ static int ipa_test_hw_stats_add_FnR(void *priv)
|
||||
flt_rule->rules)[0].rule.cnt_idx = ctx->flt4_odu_cnt_id;
|
||||
((struct ipa_flt_rule_add_v2 *)
|
||||
flt_rule->rules)[0].rule.enable_stats = true;
|
||||
if (ipa_add_flt_rule_v2(flt_rule) || ((struct ipa_flt_rule_add_v2 *)
|
||||
if (ipa3_add_flt_rule_v2(flt_rule) || ((struct ipa_flt_rule_add_v2 *)
|
||||
flt_rule->rules)[0].status) {
|
||||
IPA_UT_ERR("failed to install V4 rules\n");
|
||||
ret = -EFAULT;
|
||||
@@ -451,7 +451,7 @@ static int ipa_test_hw_stats_add_FnR(void *priv)
|
||||
flt_rule->rules)[0].rule.cnt_idx = ctx->flt6_odu_cnt_id;
|
||||
((struct ipa_flt_rule_add_v2 *)
|
||||
flt_rule->rules)[0].rule.enable_stats = true;
|
||||
if (ipa_add_flt_rule_v2(flt_rule) || ((struct ipa_flt_rule_add_v2 *)
|
||||
if (ipa3_add_flt_rule_v2(flt_rule) || ((struct ipa_flt_rule_add_v2 *)
|
||||
flt_rule->rules)[0].status) {
|
||||
IPA_UT_ERR("failed to install V6 rules\n");
|
||||
ret = -EFAULT;
|
||||
|
@@ -812,7 +812,7 @@ static int ipa_wdi3_test_single_transfer(void *priv)
|
||||
|
||||
ep_cfg.seq.set_dynamic = true;
|
||||
|
||||
ipa_cfg_ep(ipa_get_ep_mapping(IPA_CLIENT_WLAN2_PROD), &ep_cfg);
|
||||
ipa3_cfg_ep(ipa_get_ep_mapping(IPA_CLIENT_WLAN2_PROD), &ep_cfg);
|
||||
|
||||
if (ipa_wdi3_send_one_packet()) {
|
||||
IPA_UT_ERR("fail to transfer packet.\n");
|
||||
@@ -1014,7 +1014,7 @@ static int ipa_wdi3_test_multi_transfer(void *priv)
|
||||
|
||||
ep_cfg.seq.set_dynamic = true;
|
||||
|
||||
ipa_cfg_ep(ipa_get_ep_mapping(IPA_CLIENT_WLAN2_PROD), &ep_cfg);
|
||||
ipa3_cfg_ep(ipa_get_ep_mapping(IPA_CLIENT_WLAN2_PROD), &ep_cfg);
|
||||
|
||||
if (ipa_wdi3_send_multi_packet()) {
|
||||
IPA_UT_ERR("fail to transfer packet.\n");
|
||||
@@ -1058,7 +1058,7 @@ static int ipa_wdi3_test_multi_transfer2(void *priv)
|
||||
|
||||
ep_cfg.seq.set_dynamic = true;
|
||||
|
||||
ipa_cfg_ep(ipa_get_ep_mapping(IPA_CLIENT_WLAN2_PROD), &ep_cfg);
|
||||
ipa3_cfg_ep(ipa_get_ep_mapping(IPA_CLIENT_WLAN2_PROD), &ep_cfg);
|
||||
|
||||
IPA_UT_DBG("-----start transfer 32 pkt----\n");
|
||||
for (i = 0; i < 32; i++) {
|
||||
@@ -1106,7 +1106,7 @@ static int ipa_wdi3_test_multi_transfer3(void *priv)
|
||||
|
||||
ep_cfg.seq.set_dynamic = true;
|
||||
|
||||
ipa_cfg_ep(ipa_get_ep_mapping(IPA_CLIENT_WLAN2_PROD), &ep_cfg);
|
||||
ipa3_cfg_ep(ipa_get_ep_mapping(IPA_CLIENT_WLAN2_PROD), &ep_cfg);
|
||||
|
||||
IPA_UT_DBG("-----start transfer 256 pkt----\n");
|
||||
for (i = 0; i < 32; i++) {
|
||||
|
@@ -16,9 +16,9 @@
|
||||
do { \
|
||||
pr_debug(IPA_UT_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_UT_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_UT_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
do { \
|
||||
pr_debug(IPA_UT_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_UT_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -34,9 +34,9 @@
|
||||
do { \
|
||||
pr_err(IPA_UT_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_UT_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_UT_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
@@ -44,9 +44,9 @@
|
||||
do { \
|
||||
pr_info(IPA_UT_DRV_NAME " %s:%d " fmt, \
|
||||
__func__, __LINE__, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf(), \
|
||||
IPA_UT_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
IPA_IPC_LOGGING(ipa_get_ipc_logbuf_low(), \
|
||||
IPA_IPC_LOGGING(ipa3_get_ipc_logbuf_low(), \
|
||||
IPA_UT_DRV_NAME " %s:%d " fmt, ## args); \
|
||||
} while (0)
|
||||
|
||||
|
Odkázat v novém úkolu
Zablokovat Uživatele