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

Commit e4b0a93f authored by Michael Adisumarta's avatar Michael Adisumarta
Browse files

msm: ipa3: Enable QDSS IPA offload



Add required EP config for QDSS accelerated logging for MHI and
adding a new consumer pipe.

Change-Id: I4f7325f234279cf00760e6be5d174b0810485f9b
Acked-by: default avatarSuhas mallesh <smallesh@codeaurora.org>
Signed-off-by: default avatarMichael Adisumarta <madisuma@codeaurora.org>
parent 83d8a7fc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -542,7 +542,7 @@
		qcom,ipa-hw-mode = <0>;
		qcom,ee = <0>;
		qcom,use-ipa-tethering-bridge;
		qcom,mhi-event-ring-id-limits = <9 11>; /* start and end */
		qcom,mhi-event-ring-id-limits = <9 14>; /* start and end */
		qcom,modem-cfg-emb-pipe-flt;
		qcom,use-ipa-pm;
		qcom,arm-smmu;
+2 −0
Original line number Diff line number Diff line
@@ -222,6 +222,8 @@ const char *ipa_clients_strings[IPA_CLIENT_MAX] = {
	__stringify(IPA_CLIENT_Q6_CV2X_CONS),
	__stringify(IPA_CLIENT_MHI_QMAP_PROD),
	__stringify(IPA_CLIENT_MHI_QMAP_CONS),
	__stringify(RESERVERD_PROD_110),
	__stringify(IPA_CLIENT_MHI_QDSS_CONS),
};

/**
+2 −2
Original line number Diff line number Diff line
/* Copyright (c) 2015, 2017-2019 The Linux Foundation. All rights reserved.
/* Copyright (c) 2015, 2017-2020 The Linux Foundation. All rights reserved.
 *
 * 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
@@ -64,7 +64,7 @@
#define IPA_MHI_SUSPEND_SLEEP_MAX 1100

#define IPA_MHI_MAX_UL_CHANNELS 3
#define IPA_MHI_MAX_DL_CHANNELS 4
#define IPA_MHI_MAX_DL_CHANNELS 5

/* bit #40 in address should be asserted for MHI transfers over pcie */
#define IPA_MHI_CLIENT_HOST_ADDR_COND(addr) \
+2 −1
Original line number Diff line number Diff line
@@ -69,7 +69,8 @@ int ipa3_enable_data_path(u32 clnt_hdl)
		 * on other end from IPA hw.
		 */
		if ((ep->client == IPA_CLIENT_USB_DPL_CONS) ||
				(ep->client == IPA_CLIENT_MHI_DPL_CONS))
				(ep->client == IPA_CLIENT_MHI_DPL_CONS) ||
				(ep->client == IPA_CLIENT_MHI_QDSS_CONS))
			holb_cfg.en = IPA_HOLB_TMR_EN;
		else
			holb_cfg.en = IPA_HOLB_TMR_DIS;
+7 −0
Original line number Diff line number Diff line
@@ -2700,6 +2700,12 @@ static const struct ipa_ep_configuration ipa3_ep_mapping
			IPA_DPS_HPS_SEQ_TYPE_INVALID,
			QMB_MASTER_SELECT_PCIE,
			{ 30, 6, 9, 9, IPA_EE_AP, GSI_SMART_PRE_FETCH, 4 } },
	[IPA_4_5_MHI][IPA_CLIENT_MHI_QDSS_CONS] = {
			true, IPA_v4_5_MHI_GROUP_PCIE,
			false,
			IPA_DPS_HPS_SEQ_TYPE_INVALID,
			QMB_MASTER_SELECT_PCIE,
			{ 24, 3, 8, 14, IPA_EE_AP, GSI_SMART_PRE_FETCH, 3 } },
	/* Dummy consumer (pipe 31) is used in L2TP rt rule */
	[IPA_4_5_MHI][IPA_CLIENT_DUMMY_CONS]          = {
			true, QMB_MASTER_SELECT_DDR,
@@ -3538,6 +3544,7 @@ bool ipa3_should_pipe_be_suspended(enum ipa_client_type client)
	if (client == IPA_CLIENT_USB_CONS     ||
		client == IPA_CLIENT_USB2_CONS    ||
	    client == IPA_CLIENT_USB_DPL_CONS ||
	    client == IPA_CLIENT_MHI_QDSS_CONS ||
	    client == IPA_CLIENT_MHI_CONS     ||
	    client == IPA_CLIENT_MHI_DPL_CONS ||
	    client == IPA_CLIENT_HSIC1_CONS   ||
Loading