Merge "dataipa: ipa_eth: Dynamic NTN3 client moderation configuration"
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_eth_i.c b/drivers/platform/msm/ipa/ipa_v3/ipa_eth_i.c
index ff0d085..dd90faf 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_eth_i.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_eth_i.c
@@ -719,7 +719,7 @@
return result;
}
-static int ipa_eth_setup_ntn3_gsi_channel(
+static int ipa_eth_setup_ntn_gsi_channel(
struct ipa_eth_client_pipe_info *pipe,
struct ipa3_ep_context *ep)
{
@@ -751,11 +751,8 @@
gsi_evt_ring_props.int_modt = IPA_ETH_NTN_MODT;
/* len / RE_SIZE == len in counts (convert from bytes) */
len = pipe->info.transfer_ring_size;
- /*
- * int_modc = 2 is experiments based best value for tput.
- * we shall use a framework setup in the future.
- */
- gsi_evt_ring_props.int_modc = 2;
+ gsi_evt_ring_props.int_modc = len * IPA_ETH_AQC_MODC_FACTOR /
+ (100 * GSI_EVT_RING_RE_SIZE_16B);
gsi_evt_ring_props.exclusive = true;
gsi_evt_ring_props.err_cb = ipa_eth_gsi_evt_ring_err_cb;
gsi_evt_ring_props.user_data = NULL;
@@ -1025,7 +1022,7 @@
result = ipa_eth_setup_aqc_gsi_channel(pipe, ep);
break;
case IPA_HW_PROTOCOL_NTN3:
- result = ipa_eth_setup_ntn3_gsi_channel(pipe, ep);
+ result = ipa_eth_setup_ntn_gsi_channel(pipe, ep);
break;
default:
IPAERR("unknown protocol %d\n", prot);
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c b/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c
index 4fabe64..8aef35c 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c
@@ -989,6 +989,8 @@
[IPA_4_7][IPA_QMB_INSTANCE_DDR] = {13, 12, 120},
[IPA_4_9][IPA_QMB_INSTANCE_DDR] = {16, 8, 120},
[IPA_4_11][IPA_QMB_INSTANCE_DDR] = {13, 12, 120},
+ [IPA_5_5][IPA_QMB_INSTANCE_DDR] = {16, 12, 0},
+ [IPA_5_5][IPA_QMB_INSTANCE_PCIE] = {16, 8, 0},
};
enum ipa_tx_instance {