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: Suhas mallesh <smallesh@codeaurora.org>
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
tirimbino
Michael Adisumarta 5 years ago
parent 83d8a7fcbc
commit e4b0a93fd4
  1. 2
      arch/arm64/boot/dts/qcom/sdxprairie.dtsi
  2. 2
      drivers/platform/msm/ipa/ipa_api.c
  3. 4
      drivers/platform/msm/ipa/ipa_clients/ipa_mhi_client.c
  4. 3
      drivers/platform/msm/ipa/ipa_v3/ipa_client.c
  5. 7
      drivers/platform/msm/ipa/ipa_v3/ipa_utils.c
  6. 9
      include/uapi/linux/msm_ipa.h

@ -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;

@ -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),
};
/**

@ -1,4 +1,4 @@
/* 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) \

@ -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;

@ -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 ||

@ -405,9 +405,12 @@ enum ipa_client_type {
IPA_CLIENT_MHI_QMAP_PROD = 108,
IPA_CLIENT_MHI_QMAP_CONS = 109,
/* RESERVERD PROD = 110, */
IPA_CLIENT_MHI_QDSS_CONS = 111,
};
#define IPA_CLIENT_MAX (IPA_CLIENT_MHI_QMAP_CONS + 1)
#define IPA_CLIENT_MAX (IPA_CLIENT_MHI_QDSS_CONS + 1)
#define IPA_CLIENT_WLAN2_PROD IPA_CLIENT_A5_WLAN_AMPDU_PROD
#define IPA_CLIENT_Q6_DL_NLO_DATA_PROD IPA_CLIENT_Q6_DL_NLO_DATA_PROD
@ -428,6 +431,7 @@ enum ipa_client_type {
#define IPA_CLIENT_MHI_PRIME_RMNET_PROD IPA_CLIENT_MHI_PRIME_RMNET_PROD
#define IPA_CLIENT_MHI_PRIME_RMNET_CONS IPA_CLIENT_MHI_PRIME_RMNET_CONS
#define IPA_CLIENT_MHI_PRIME_DPL_PROD IPA_CLIENT_MHI_PRIME_DPL_PROD
#define IPA_CLIENT_MHI_QDSS_CONS IPA_CLIENT_MHI_QDSS_CONS
#define IPA_CLIENT_IS_APPS_CONS(client) \
((client) == IPA_CLIENT_APPS_LAN_CONS || \
@ -524,7 +528,8 @@ enum ipa_client_type {
(client) == IPA_CLIENT_MHI2_CONS || \
(client) == IPA_CLIENT_MHI_QMAP_PROD || \
(client) == IPA_CLIENT_MHI_QMAP_CONS || \
(client) == IPA_CLIENT_MHI_DPL_CONS)
(client) == IPA_CLIENT_MHI_DPL_CONS || \
(client) == IPA_CLIENT_MHI_QDSS_CONS)
#define IPA_CLIENT_IS_TEST_PROD(client) \
((client) == IPA_CLIENT_TEST_PROD || \

Loading…
Cancel
Save