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

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

Merge "msm: ipa: Support hardware accelerated DIAG over qdss"

parents e663ce57 ea1c45f4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2173,6 +2173,7 @@ static void gsi_program_chan_ctx(struct gsi_chan_props *props, unsigned int ee,
		break;
	case GSI_CHAN_PROT_AQC:
	case GSI_CHAN_PROT_11AD:
	case GSI_CHAN_PROT_QDSS:
		prot_msb = 1;
		break;
	default:
+28 −1
Original line number Diff line number Diff line
@@ -222,7 +222,7 @@ const char *ipa_clients_strings[IPA_CLIENT_MAX] = {
	__stringify(IPA_CLIENT_Q6_CV2X_CONS),
	__stringify(IPA_CLIENT_MHI_LOW_LAT_PROD),
	__stringify(IPA_CLIENT_MHI_LOW_LAT_CONS),
	__stringify(RESERVERD_PROD_110),
	__stringify(IPA_CLIENT_QDSS_PROD),
	__stringify(IPA_CLIENT_MHI_QDSS_CONS),
};

@@ -3809,6 +3809,33 @@ bool ipa_pm_is_used(void)
	return ret;
}

/**
 * ipa_conn_qdss_pipes() - connect qdss pipes
 */
int ipa_qdss_conn_pipes(struct ipa_qdss_conn_in_params *in,
	struct ipa_qdss_conn_out_params *out)
{
	int ret;

	IPA_API_DISPATCH_RETURN(ipa_conn_qdss_pipes, in, out);

	return ret;
}
EXPORT_SYMBOL(ipa_qdss_conn_pipes);

/**
 * ipa_disconn_qdss_pipes() - disconnect qdss pipes
 */
int ipa_qdss_disconn_pipes(void)
{
	int ret;

	IPA_API_DISPATCH_RETURN(ipa_disconn_qdss_pipes);

	return ret;
}
EXPORT_SYMBOL(ipa_qdss_disconn_pipes);

static const struct dev_pm_ops ipa_pm_ops = {
	.suspend_noirq = ipa_ap_suspend,
	.resume_noirq = ipa_ap_resume,
+6 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#include <linux/ipa_mhi.h>
#include <linux/ipa_uc_offload.h>
#include <linux/ipa_wdi3.h>
#include <linux/ipa_qdss.h>
#include "ipa_common_i.h"

#ifndef _IPA_API_H_
@@ -498,6 +499,11 @@ struct ipa_api_controller {

	int (*ipa_del_socksv5_conn)(uint32_t handle);

	int (*ipa_conn_qdss_pipes)(struct ipa_qdss_conn_in_params *in,
		struct ipa_qdss_conn_out_params *out);

	int (*ipa_disconn_qdss_pipes)(void);

};

#ifdef CONFIG_IPA
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ obj-$(CONFIG_IPA3) += ipat.o
ipat-y := ipa.o ipa_debugfs.o ipa_hdr.o ipa_flt.o ipa_rt.o ipa_dp.o ipa_client.o \
	ipa_utils.o ipa_nat.o ipa_intf.o teth_bridge.o ipa_interrupts.o \
	ipa_uc.o ipa_uc_wdi.o ipa_dma.o ipa_uc_mhi.o ipa_mhi.o ipa_uc_ntn.o \
	ipa_hw_stats.o ipa_pm.o ipa_wdi3_i.o ipa_odl.o ipa_wigig_i.o
	ipa_hw_stats.o ipa_pm.o ipa_wdi3_i.o ipa_odl.o ipa_wigig_i.o ipa_qdss.o

ipat-$(CONFIG_IPA_EMULATION) += ipa_dt_replacement.o

+7 −0
Original line number Diff line number Diff line
@@ -2394,6 +2394,9 @@ int ipa3_cfg_ep_route(u32 clnt_hdl, const struct ipa_ep_cfg_route *ipa_ep_cfg);

int ipa3_cfg_ep_holb(u32 clnt_hdl, const struct ipa_ep_cfg_holb *ipa_ep_cfg);

int ipa3_force_cfg_ep_holb(u32 clnt_hdl,
	struct ipa_ep_cfg_holb *ipa_ep_cfg);

void ipa3_cal_ep_holb_scale_base_val(u32 tmr_val,
				struct ipa_ep_cfg_holb *ep_holb);

@@ -2823,6 +2826,10 @@ void ipa3_debugfs_post_init(void);
void ipa3_debugfs_remove(void);

void ipa3_dump_buff_internal(void *base, dma_addr_t phy_base, u32 size);

int ipa3_conn_qdss_pipes(struct ipa_qdss_conn_in_params *in,
	struct ipa_qdss_conn_out_params *out);
int ipa3_disconn_qdss_pipes(void);
#ifdef IPA_DEBUG
#define IPA_DUMP_BUFF(base, phy_base, size) \
	ipa3_dump_buff_internal(base, phy_base, size)
Loading