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

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

Merge "msm: ipa3: add support on socksv5 offload"

parents 43287066 f0d996ce
Loading
Loading
Loading
Loading
+34 −1
Original line number Original line Diff line number Diff line
/* Copyright (c) 2015-2019, The Linux Foundation. All rights reserved.
/* Copyright (c) 2015-2020, The Linux Foundation. All rights reserved.
 *
 *
 * This program is free software; you can redistribute it and/or modify
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * it under the terms of the GNU General Public License version 2 and
@@ -3536,6 +3536,39 @@ int ipa_disable_wdi_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx)
	return ret;
	return ret;
}
}



/**
 * ipa_add_socksv5_conn()- Add socksv5 entry in IPA
 *
 * Return value: 0 on success, negative otherwise
 */
int ipa_add_socksv5_conn(struct ipa_socksv5_info *info)
{
	int ret;

	IPA_API_DISPATCH_RETURN(ipa_add_socksv5_conn, info);

	return ret;
}
EXPORT_SYMBOL(ipa_add_socksv5_conn);


/**
 * ipa_del_socksv5_conn()- Del socksv5 entry in IPA
 *
 * Return value: 0 on success, negative otherwise
 */
int ipa_del_socksv5_conn(uint32_t handle)
{
	int ret;

	IPA_API_DISPATCH_RETURN(ipa_del_socksv5_conn, handle);

	return ret;
}
EXPORT_SYMBOL(ipa_del_socksv5_conn);


/**
/**
 * ipa_get_lan_rx_napi() - returns if NAPI is enabled in LAN RX
 * ipa_get_lan_rx_napi() - returns if NAPI is enabled in LAN RX
 */
 */
+6 −1
Original line number Original line Diff line number Diff line
/* Copyright (c) 2015-2019, The Linux Foundation. All rights reserved.
/* Copyright (c) 2015-2020, The Linux Foundation. All rights reserved.
 *
 *
 * This program is free software; you can redistribute it and/or modify
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * it under the terms of the GNU General Public License version 2 and
@@ -487,6 +487,11 @@ struct ipa_api_controller {
		struct ipa_uc_dbg_ring_stats *stats);
		struct ipa_uc_dbg_ring_stats *stats);


	int (*ipa_get_prot_id)(enum ipa_client_type client);
	int (*ipa_get_prot_id)(enum ipa_client_type client);

	int (*ipa_add_socksv5_conn)(struct ipa_socksv5_info *info);

	int (*ipa_del_socksv5_conn)(uint32_t handle);

};
};


#ifdef CONFIG_IPA3
#ifdef CONFIG_IPA3
+8 −1
Original line number Original line Diff line number Diff line
@@ -6238,6 +6238,10 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p,
	mutex_unlock(&ipa3_ctx->lock);
	mutex_unlock(&ipa3_ctx->lock);


	ipa3_trigger_ipa_ready_cbs();
	ipa3_trigger_ipa_ready_cbs();

	/* init uc-activation tbl*/
	ipa3_setup_uc_act_tbl();

	complete_all(&ipa3_ctx->init_completion_obj);
	complete_all(&ipa3_ctx->init_completion_obj);
	pr_info("IPA driver initialization was successful.\n");
	pr_info("IPA driver initialization was successful.\n");


@@ -6745,7 +6749,9 @@ static int ipa3_pre_init(const struct ipa3_plat_drv_res *resource_p,
	ipa3_ctx->secure_debug_check_action =
	ipa3_ctx->secure_debug_check_action =
	    resource_p->secure_debug_check_action;
	    resource_p->secure_debug_check_action;
	ipa3_ctx->ipa_mhi_proxy = resource_p->ipa_mhi_proxy;
	ipa3_ctx->ipa_mhi_proxy = resource_p->ipa_mhi_proxy;
	ipa3_ctx->ipa_config_is_auto = resource_p->ipa_config_is_auto;
	ipa3_ctx->uc_act_tbl_valid = false;
	ipa3_ctx->uc_act_tbl_total = 0;
	ipa3_ctx->uc_act_tbl_next_index = 0;


	if (ipa3_ctx->secure_debug_check_action == USE_SCM) {
	if (ipa3_ctx->secure_debug_check_action == USE_SCM) {
		if (ipa_is_mem_dump_allowed())
		if (ipa_is_mem_dump_allowed())
@@ -7066,6 +7072,7 @@ static int ipa3_pre_init(const struct ipa3_plat_drv_res *resource_p,
	mutex_init(&ipa3_ctx->lock);
	mutex_init(&ipa3_ctx->lock);
	mutex_init(&ipa3_ctx->q6_proxy_clk_vote_mutex);
	mutex_init(&ipa3_ctx->q6_proxy_clk_vote_mutex);
	mutex_init(&ipa3_ctx->ipa_cne_evt_lock);
	mutex_init(&ipa3_ctx->ipa_cne_evt_lock);
	mutex_init(&ipa3_ctx->act_tbl_lock);


	idr_init(&ipa3_ctx->ipa_idr);
	idr_init(&ipa3_ctx->ipa_idr);
	spin_lock_init(&ipa3_ctx->idr_lock);
	spin_lock_init(&ipa3_ctx->idr_lock);
+4 −0
Original line number Original line Diff line number Diff line
@@ -82,6 +82,10 @@ const char *ipa3_event_name[] = {
	__stringify(IPA_GSB_DISCONNECT),
	__stringify(IPA_GSB_DISCONNECT),
	__stringify(IPA_COALESCE_ENABLE),
	__stringify(IPA_COALESCE_ENABLE),
	__stringify(IPA_COALESCE_DISABLE),
	__stringify(IPA_COALESCE_DISABLE),
	__stringify(WIGIG_CLIENT_CONNECT),
	__stringify(WIGIG_FST_SWITCH),
	__stringify(IPA_SOCKV5_ADD),
	__stringify(IPA_SOCKV5_DEL),
};
};


const char *ipa3_hdr_l2_type_name[] = {
const char *ipa3_hdr_l2_type_name[] = {
+13 −0
Original line number Original line Diff line number Diff line
@@ -285,6 +285,8 @@ enum {


#define IPA3_ACTIVE_CLIENTS_TABLE_BUF_SIZE 4096
#define IPA3_ACTIVE_CLIENTS_TABLE_BUF_SIZE 4096


#define IPA_UC_ACT_TBL_SIZE 1000

#define IPA3_ACTIVE_CLIENT_LOG_TYPE_EP 0
#define IPA3_ACTIVE_CLIENT_LOG_TYPE_EP 0
#define IPA3_ACTIVE_CLIENT_LOG_TYPE_SIMPLE 1
#define IPA3_ACTIVE_CLIENT_LOG_TYPE_SIMPLE 1
#define IPA3_ACTIVE_CLIENT_LOG_TYPE_RESOURCE 2
#define IPA3_ACTIVE_CLIENT_LOG_TYPE_RESOURCE 2
@@ -2008,6 +2010,11 @@ struct ipa3_context {
	bool ipa_wan_skb_page;
	bool ipa_wan_skb_page;
	struct ipahal_imm_cmd_pyld *coal_cmd_pyld;
	struct ipahal_imm_cmd_pyld *coal_cmd_pyld;
	struct ipa3_app_clock_vote app_clock_vote;
	struct ipa3_app_clock_vote app_clock_vote;
	struct ipa_mem_buffer uc_act_tbl;
	bool uc_act_tbl_valid;
	struct mutex act_tbl_lock;
	int uc_act_tbl_total;
	int uc_act_tbl_next_index;
};
};


struct ipa3_plat_drv_res {
struct ipa3_plat_drv_res {
@@ -2393,6 +2400,12 @@ int ipa3_cfg_ep_holb_by_client(enum ipa_client_type client,


int ipa3_cfg_ep_ctrl(u32 clnt_hdl, const struct ipa_ep_cfg_ctrl *ep_ctrl);
int ipa3_cfg_ep_ctrl(u32 clnt_hdl, const struct ipa_ep_cfg_ctrl *ep_ctrl);


int ipa3_setup_uc_act_tbl(void);

int ipa3_add_socksv5_conn(struct ipa_socksv5_info *info);

int ipa3_del_socksv5_conn(uint32_t handle);

/*
/*
 * Header removal / addition
 * Header removal / addition
 */
 */
Loading