Commit cf9a10bd authored by Alex Elder's avatar Alex Elder Committed by David S. Miller

net: ipa: move ipa_resource_type definition

Most platforms have the same set of source and destination resource
types.  But some older platforms have some additional ones, and it's
possible different resources will be used in the future.

Move the definition of the ipa_resource_type enumerated type so it
is defined for each platform in its configuration data file.  This
permits each to have a distinct set of resources.

Shorten the data files slightly, by putting the min and max limit
values on the same line.
Signed-off-by: default avatarAlex Elder <elder@linaro.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4bcfb35e
...@@ -9,6 +9,20 @@ ...@@ -9,6 +9,20 @@
#include "ipa_endpoint.h" #include "ipa_endpoint.h"
#include "ipa_mem.h" #include "ipa_mem.h"
/** enum ipa_resource_type - IPA resource types */
enum ipa_resource_type {
/* Source resource types; first must have value 0 */
IPA_RESOURCE_TYPE_SRC_PKT_CONTEXTS = 0,
IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_LISTS,
IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_BUFF,
IPA_RESOURCE_TYPE_SRC_HPS_DMARS,
IPA_RESOURCE_TYPE_SRC_ACK_ENTRIES,
/* Destination resource types; first must have value 0 */
IPA_RESOURCE_TYPE_DST_DATA_SECTORS = 0,
IPA_RESOURCE_TYPE_DST_DPS_DMARS,
};
/* Resource groups used for the SC7180 SoC */ /* Resource groups used for the SC7180 SoC */
enum ipa_rsrc_group_id { enum ipa_rsrc_group_id {
/* Source resource group identifiers */ /* Source resource group identifiers */
...@@ -152,32 +166,27 @@ static const struct ipa_gsi_endpoint_data ipa_gsi_endpoint_data[] = { ...@@ -152,32 +166,27 @@ static const struct ipa_gsi_endpoint_data ipa_gsi_endpoint_data[] = {
static const struct ipa_resource_src ipa_resource_src[] = { static const struct ipa_resource_src ipa_resource_src[] = {
[IPA_RESOURCE_TYPE_SRC_PKT_CONTEXTS] = { [IPA_RESOURCE_TYPE_SRC_PKT_CONTEXTS] = {
.limits[IPA_RSRC_GROUP_SRC_UL_DL] = { .limits[IPA_RSRC_GROUP_SRC_UL_DL] = {
.min = 3, .min = 3, .max = 63,
.max = 63,
}, },
}, },
[IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_LISTS] = { [IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_LISTS] = {
.limits[IPA_RSRC_GROUP_SRC_UL_DL] = { .limits[IPA_RSRC_GROUP_SRC_UL_DL] = {
.min = 3, .min = 3, .max = 3,
.max = 3,
}, },
}, },
[IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_BUFF] = { [IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_BUFF] = {
.limits[IPA_RSRC_GROUP_SRC_UL_DL] = { .limits[IPA_RSRC_GROUP_SRC_UL_DL] = {
.min = 10, .min = 10, .max = 10,
.max = 10,
}, },
}, },
[IPA_RESOURCE_TYPE_SRC_HPS_DMARS] = { [IPA_RESOURCE_TYPE_SRC_HPS_DMARS] = {
.limits[IPA_RSRC_GROUP_SRC_UL_DL] = { .limits[IPA_RSRC_GROUP_SRC_UL_DL] = {
.min = 1, .min = 1, .max = 1,
.max = 1,
}, },
}, },
[IPA_RESOURCE_TYPE_SRC_ACK_ENTRIES] = { [IPA_RESOURCE_TYPE_SRC_ACK_ENTRIES] = {
.limits[IPA_RSRC_GROUP_SRC_UL_DL] = { .limits[IPA_RSRC_GROUP_SRC_UL_DL] = {
.min = 5, .min = 5, .max = 5,
.max = 5,
}, },
}, },
}; };
...@@ -186,14 +195,12 @@ static const struct ipa_resource_src ipa_resource_src[] = { ...@@ -186,14 +195,12 @@ static const struct ipa_resource_src ipa_resource_src[] = {
static const struct ipa_resource_dst ipa_resource_dst[] = { static const struct ipa_resource_dst ipa_resource_dst[] = {
[IPA_RESOURCE_TYPE_DST_DATA_SECTORS] = { [IPA_RESOURCE_TYPE_DST_DATA_SECTORS] = {
.limits[IPA_RSRC_GROUP_DST_UL_DL_DPL] = { .limits[IPA_RSRC_GROUP_DST_UL_DL_DPL] = {
.min = 3, .min = 3, .max = 3,
.max = 3,
}, },
}, },
[IPA_RESOURCE_TYPE_DST_DPS_DMARS] = { [IPA_RESOURCE_TYPE_DST_DPS_DMARS] = {
.limits[IPA_RSRC_GROUP_DST_UL_DL_DPL] = { .limits[IPA_RSRC_GROUP_DST_UL_DL_DPL] = {
.min = 1, .min = 1, .max = 63,
.max = 63,
}, },
}, },
}; };
......
...@@ -11,6 +11,20 @@ ...@@ -11,6 +11,20 @@
#include "ipa_endpoint.h" #include "ipa_endpoint.h"
#include "ipa_mem.h" #include "ipa_mem.h"
/** enum ipa_resource_type - IPA resource types */
enum ipa_resource_type {
/* Source resource types; first must have value 0 */
IPA_RESOURCE_TYPE_SRC_PKT_CONTEXTS = 0,
IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_LISTS,
IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_BUFF,
IPA_RESOURCE_TYPE_SRC_HPS_DMARS,
IPA_RESOURCE_TYPE_SRC_ACK_ENTRIES,
/* Destination resource types; first must have value 0 */
IPA_RESOURCE_TYPE_DST_DATA_SECTORS = 0,
IPA_RESOURCE_TYPE_DST_DPS_DMARS,
};
/* Resource groups used for the SDM845 SoC */ /* Resource groups used for the SDM845 SoC */
enum ipa_rsrc_group_id { enum ipa_rsrc_group_id {
/* Source resource group identifiers */ /* Source resource group identifiers */
...@@ -170,76 +184,60 @@ static const struct ipa_gsi_endpoint_data ipa_gsi_endpoint_data[] = { ...@@ -170,76 +184,60 @@ static const struct ipa_gsi_endpoint_data ipa_gsi_endpoint_data[] = {
static const struct ipa_resource_src ipa_resource_src[] = { static const struct ipa_resource_src ipa_resource_src[] = {
[IPA_RESOURCE_TYPE_SRC_PKT_CONTEXTS] = { [IPA_RESOURCE_TYPE_SRC_PKT_CONTEXTS] = {
.limits[IPA_RSRC_GROUP_SRC_LWA_DL] = { .limits[IPA_RSRC_GROUP_SRC_LWA_DL] = {
.min = 1, .min = 1, .max = 255,
.max = 255,
}, },
.limits[IPA_RSRC_GROUP_SRC_UL_DL] = { .limits[IPA_RSRC_GROUP_SRC_UL_DL] = {
.min = 1, .min = 1, .max = 255,
.max = 255,
}, },
.limits[IPA_RSRC_GROUP_SRC_UC_RX_Q] = { .limits[IPA_RSRC_GROUP_SRC_UC_RX_Q] = {
.min = 1, .min = 1, .max = 63,
.max = 63,
}, },
}, },
[IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_LISTS] = { [IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_LISTS] = {
.limits[IPA_RSRC_GROUP_SRC_LWA_DL] = { .limits[IPA_RSRC_GROUP_SRC_LWA_DL] = {
.min = 10, .min = 10, .max = 10,
.max = 10,
}, },
.limits[IPA_RSRC_GROUP_SRC_UL_DL] = { .limits[IPA_RSRC_GROUP_SRC_UL_DL] = {
.min = 10, .min = 10, .max = 10,
.max = 10,
}, },
.limits[IPA_RSRC_GROUP_SRC_UC_RX_Q] = { .limits[IPA_RSRC_GROUP_SRC_UC_RX_Q] = {
.min = 8, .min = 8, .max = 8,
.max = 8,
}, },
}, },
[IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_BUFF] = { [IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_BUFF] = {
.limits[IPA_RSRC_GROUP_SRC_LWA_DL] = { .limits[IPA_RSRC_GROUP_SRC_LWA_DL] = {
.min = 12, .min = 12, .max = 12,
.max = 12,
}, },
.limits[IPA_RSRC_GROUP_SRC_UL_DL] = { .limits[IPA_RSRC_GROUP_SRC_UL_DL] = {
.min = 14, .min = 14, .max = 14,
.max = 14,
}, },
.limits[IPA_RSRC_GROUP_SRC_UC_RX_Q] = { .limits[IPA_RSRC_GROUP_SRC_UC_RX_Q] = {
.min = 8, .min = 8, .max = 8,
.max = 8,
}, },
}, },
[IPA_RESOURCE_TYPE_SRC_HPS_DMARS] = { [IPA_RESOURCE_TYPE_SRC_HPS_DMARS] = {
.limits[IPA_RSRC_GROUP_SRC_LWA_DL] = { .limits[IPA_RSRC_GROUP_SRC_LWA_DL] = {
.min = 0, .min = 0, .max = 63,
.max = 63,
}, },
.limits[IPA_RSRC_GROUP_SRC_UL_DL] = { .limits[IPA_RSRC_GROUP_SRC_UL_DL] = {
.min = 0, .min = 0, .max = 63,
.max = 63,
}, },
.limits[IPA_RSRC_GROUP_SRC_MHI_DMA] = { .limits[IPA_RSRC_GROUP_SRC_MHI_DMA] = {
.min = 0, .min = 0, .max = 63,
.max = 63,
}, },
.limits[IPA_RSRC_GROUP_SRC_UC_RX_Q] = { .limits[IPA_RSRC_GROUP_SRC_UC_RX_Q] = {
.min = 0, .min = 0, .max = 63,
.max = 63,
}, },
}, },
[IPA_RESOURCE_TYPE_SRC_ACK_ENTRIES] = { [IPA_RESOURCE_TYPE_SRC_ACK_ENTRIES] = {
.limits[IPA_RSRC_GROUP_SRC_LWA_DL] = { .limits[IPA_RSRC_GROUP_SRC_LWA_DL] = {
.min = 14, .min = 14, .max = 14,
.max = 14,
}, },
.limits[IPA_RSRC_GROUP_SRC_UL_DL] = { .limits[IPA_RSRC_GROUP_SRC_UL_DL] = {
.min = 20, .min = 20, .max = 20,
.max = 20,
}, },
.limits[IPA_RSRC_GROUP_SRC_UC_RX_Q] = { .limits[IPA_RSRC_GROUP_SRC_UC_RX_Q] = {
.min = 14, .min = 14, .max = 14,
.max = 14,
}, },
}, },
}; };
...@@ -248,30 +246,24 @@ static const struct ipa_resource_src ipa_resource_src[] = { ...@@ -248,30 +246,24 @@ static const struct ipa_resource_src ipa_resource_src[] = {
static const struct ipa_resource_dst ipa_resource_dst[] = { static const struct ipa_resource_dst ipa_resource_dst[] = {
[IPA_RESOURCE_TYPE_DST_DATA_SECTORS] = { [IPA_RESOURCE_TYPE_DST_DATA_SECTORS] = {
.limits[IPA_RSRC_GROUP_DST_LWA_DL] = { .limits[IPA_RSRC_GROUP_DST_LWA_DL] = {
.min = 4, .min = 4, .max = 4,
.max = 4,
}, },
.limits[1] = { .limits[1] = {
.min = 4, .min = 4, .max = 4,
.max = 4,
}, },
.limits[IPA_RSRC_GROUP_DST_UNUSED_2] = { .limits[IPA_RSRC_GROUP_DST_UNUSED_2] = {
.min = 3, .min = 3, .max = 3,
.max = 3,
} }
}, },
[IPA_RESOURCE_TYPE_DST_DPS_DMARS] = { [IPA_RESOURCE_TYPE_DST_DPS_DMARS] = {
.limits[IPA_RSRC_GROUP_DST_LWA_DL] = { .limits[IPA_RSRC_GROUP_DST_LWA_DL] = {
.min = 2, .min = 2, .max = 63,
.max = 63,
}, },
.limits[IPA_RSRC_GROUP_DST_UL_DL_DPL] = { .limits[IPA_RSRC_GROUP_DST_UL_DL_DPL] = {
.min = 1, .min = 1, .max = 63,
.max = 63,
}, },
.limits[IPA_RSRC_GROUP_DST_UNUSED_2] = { .limits[IPA_RSRC_GROUP_DST_UNUSED_2] = {
.min = 1, .min = 1, .max = 2,
.max = 2,
} }
}, },
}; };
......
...@@ -194,20 +194,6 @@ struct ipa_gsi_endpoint_data { ...@@ -194,20 +194,6 @@ struct ipa_gsi_endpoint_data {
struct ipa_endpoint_data endpoint; struct ipa_endpoint_data endpoint;
}; };
/** enum ipa_resource_type - IPA resource types */
enum ipa_resource_type {
/* Source resource types; first must have value 0 */
IPA_RESOURCE_TYPE_SRC_PKT_CONTEXTS = 0,
IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_LISTS,
IPA_RESOURCE_TYPE_SRC_DESCRIPTOR_BUFF,
IPA_RESOURCE_TYPE_SRC_HPS_DMARS,
IPA_RESOURCE_TYPE_SRC_ACK_ENTRIES,
/* Destination resource types; first must have value 0 */
IPA_RESOURCE_TYPE_DST_DATA_SECTORS = 0,
IPA_RESOURCE_TYPE_DST_DPS_DMARS,
};
/** /**
* struct ipa_resource_limits - minimum and maximum resource counts * struct ipa_resource_limits - minimum and maximum resource counts
* @min: minimum number of resources of a given type * @min: minimum number of resources of a given type
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment