|
@@ -162,6 +162,7 @@
|
|
#define IPA_v4_5_GROUP_UL_DL (1)
|
|
#define IPA_v4_5_GROUP_UL_DL (1)
|
|
#define IPA_v4_5_MHI_GROUP_DDR (1)
|
|
#define IPA_v4_5_MHI_GROUP_DDR (1)
|
|
#define IPA_v4_5_MHI_GROUP_DMA (2)
|
|
#define IPA_v4_5_MHI_GROUP_DMA (2)
|
|
|
|
+#define IPA_v4_5_GROUP_CV2X (2)
|
|
#define IPA_v4_5_MHI_GROUP_QDSS (3)
|
|
#define IPA_v4_5_MHI_GROUP_QDSS (3)
|
|
#define IPA_v4_5_GROUP_UC_RX_Q (4)
|
|
#define IPA_v4_5_GROUP_UC_RX_Q (4)
|
|
#define IPA_v4_5_SRC_GROUP_MAX (5)
|
|
#define IPA_v4_5_SRC_GROUP_MAX (5)
|
|
@@ -282,6 +283,8 @@ enum ipa_ver {
|
|
IPA_4_5,
|
|
IPA_4_5,
|
|
IPA_4_5_MHI,
|
|
IPA_4_5_MHI,
|
|
IPA_4_5_APQ,
|
|
IPA_4_5_APQ,
|
|
|
|
+ IPA_4_5_AUTO,
|
|
|
|
+ IPA_4_5_AUTO_MHI,
|
|
IPA_4_7,
|
|
IPA_4_7,
|
|
IPA_4_9,
|
|
IPA_4_9,
|
|
IPA_4_11,
|
|
IPA_4_11,
|
|
@@ -4675,6 +4678,11 @@ const char *ipa_clients_strings[IPA_CLIENT_MAX] = {
|
|
__stringify(IPA_CLIENT_MHI_QDSS_CONS),
|
|
__stringify(IPA_CLIENT_MHI_QDSS_CONS),
|
|
__stringify(IPA_CLIENT_MHI_LOW_LAT_PROD),
|
|
__stringify(IPA_CLIENT_MHI_LOW_LAT_PROD),
|
|
__stringify(IPA_CLIENT_MHI_LOW_LAT_CONS),
|
|
__stringify(IPA_CLIENT_MHI_LOW_LAT_CONS),
|
|
|
|
+ __stringify(RESERVERD_CONS_103),
|
|
|
|
+ __stringify(IPA_CLIENT_MHI2_PROD),
|
|
|
|
+ __stringify(IPA_CLIENT_MHI2_CONS),
|
|
|
|
+ __stringify(IPA_CLIENT_Q6_CV2X_PROD),
|
|
|
|
+ __stringify(IPA_CLIENT_Q6_CV2X_CONS),
|
|
};
|
|
};
|
|
EXPORT_SYMBOL(ipa_clients_strings);
|
|
EXPORT_SYMBOL(ipa_clients_strings);
|
|
|
|
|
|
@@ -5159,6 +5167,11 @@ u8 ipa3_get_hw_type_index(void)
|
|
hw_type_index = IPA_4_5_MHI;
|
|
hw_type_index = IPA_4_5_MHI;
|
|
if (ipa3_ctx->platform_type == IPA_PLAT_TYPE_APQ)
|
|
if (ipa3_ctx->platform_type == IPA_PLAT_TYPE_APQ)
|
|
hw_type_index = IPA_4_5_APQ;
|
|
hw_type_index = IPA_4_5_APQ;
|
|
|
|
+ if (ipa3_ctx->ipa_config_is_auto)
|
|
|
|
+ hw_type_index = IPA_4_5_AUTO;
|
|
|
|
+ if (ipa3_ctx->ipa_config_is_auto &&
|
|
|
|
+ ipa3_ctx->ipa_config_is_mhi)
|
|
|
|
+ hw_type_index = IPA_4_5_AUTO_MHI;
|
|
break;
|
|
break;
|
|
case IPA_HW_v4_7:
|
|
case IPA_HW_v4_7:
|
|
hw_type_index = IPA_4_7;
|
|
hw_type_index = IPA_4_7;
|
|
@@ -8717,6 +8730,8 @@ static void ipa3_write_rsrc_grp_type_reg(int group_index,
|
|
case IPA_4_5:
|
|
case IPA_4_5:
|
|
case IPA_4_5_MHI:
|
|
case IPA_4_5_MHI:
|
|
case IPA_4_5_APQ:
|
|
case IPA_4_5_APQ:
|
|
|
|
+ case IPA_4_5_AUTO:
|
|
|
|
+ case IPA_4_5_AUTO_MHI:
|
|
if (src) {
|
|
if (src) {
|
|
switch (group_index) {
|
|
switch (group_index) {
|
|
case IPA_v4_5_MHI_GROUP_PCIE:
|
|
case IPA_v4_5_MHI_GROUP_PCIE:
|
|
@@ -9089,6 +9104,13 @@ void ipa3_set_resorce_groups_min_max_limits(void)
|
|
src_grp_idx_max = IPA_v4_5_SRC_GROUP_MAX;
|
|
src_grp_idx_max = IPA_v4_5_SRC_GROUP_MAX;
|
|
dst_grp_idx_max = IPA_v4_5_DST_GROUP_MAX;
|
|
dst_grp_idx_max = IPA_v4_5_DST_GROUP_MAX;
|
|
break;
|
|
break;
|
|
|
|
+ case IPA_4_5_AUTO:
|
|
|
|
+ case IPA_4_5_AUTO_MHI:
|
|
|
|
+ src_rsrc_type_max = IPA_v4_0_RSRC_GRP_TYPE_SRC_MAX;
|
|
|
|
+ dst_rsrc_type_max = IPA_v4_0_RSRC_GRP_TYPE_DST_MAX;
|
|
|
|
+ src_grp_idx_max = IPA_v4_5_SRC_GROUP_MAX;
|
|
|
|
+ dst_grp_idx_max = IPA_v4_5_DST_GROUP_MAX;
|
|
|
|
+ break;
|
|
case IPA_4_7:
|
|
case IPA_4_7:
|
|
src_rsrc_type_max = IPA_v4_0_RSRC_GRP_TYPE_SRC_MAX;
|
|
src_rsrc_type_max = IPA_v4_0_RSRC_GRP_TYPE_SRC_MAX;
|
|
dst_rsrc_type_max = IPA_v4_0_RSRC_GRP_TYPE_DST_MAX;
|
|
dst_rsrc_type_max = IPA_v4_0_RSRC_GRP_TYPE_DST_MAX;
|