Commit 14ab6a20 authored by Alex Elder's avatar Alex Elder Committed by David S. Miller
Browse files

net: ipa: store memory region id in descriptor



Store the memory region ID in the memory descriptor structure.  This
is a move toward *not* indexing the array by the ID, but for now we
must still specify those index values.  Define an explicitly
undefined region ID, value 0, so uninitialized entries in the array
won't use an otherwise valid ID.

Signed-off-by: default avatarAlex Elder <elder@linaro.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f636a836
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -272,76 +272,91 @@ static const struct ipa_resource_data ipa_resource_data = {
/* IPA-resident memory region data for an SoC having IPA v3.5.1 */
static const struct ipa_mem ipa_mem_local_data[] = {
	[IPA_MEM_UC_SHARED] = {
		.id		= IPA_MEM_UC_SHARED,
		.offset		= 0x0000,
		.size		= 0x0080,
		.canary_count	= 0,
	},
	[IPA_MEM_UC_INFO] = {
		.id		= IPA_MEM_UC_INFO,
		.offset		= 0x0080,
		.size		= 0x0200,
		.canary_count	= 0,
	},
	[IPA_MEM_V4_FILTER_HASHED] = {
		.id		= IPA_MEM_V4_FILTER_HASHED,
		.offset		= 0x0288,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_FILTER] = {
		.id		= IPA_MEM_V4_FILTER,
		.offset		= 0x0308,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_FILTER_HASHED] = {
		.id		= IPA_MEM_V6_FILTER_HASHED,
		.offset		= 0x0388,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_FILTER] = {
		.id		= IPA_MEM_V6_FILTER,
		.offset		= 0x0408,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_ROUTE_HASHED] = {
		.id		= IPA_MEM_V4_ROUTE_HASHED,
		.offset		= 0x0488,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_ROUTE] = {
		.id		= IPA_MEM_V4_ROUTE,
		.offset		= 0x0508,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_ROUTE_HASHED] = {
		.id		= IPA_MEM_V6_ROUTE_HASHED,
		.offset		= 0x0588,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_ROUTE] = {
		.id		= IPA_MEM_V6_ROUTE,
		.offset		= 0x0608,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_MODEM_HEADER] = {
		.id		= IPA_MEM_MODEM_HEADER,
		.offset		= 0x0688,
		.size		= 0x0140,
		.canary_count	= 2,
	},
	[IPA_MEM_MODEM_PROC_CTX] = {
		.id		= IPA_MEM_MODEM_PROC_CTX,
		.offset		= 0x07d0,
		.size		= 0x0200,
		.canary_count	= 2,
	},
	[IPA_MEM_AP_PROC_CTX] = {
		.id		= IPA_MEM_AP_PROC_CTX,
		.offset		= 0x09d0,
		.size		= 0x0200,
		.canary_count	= 0,
	},
	[IPA_MEM_MODEM] = {
		.id		= IPA_MEM_MODEM,
		.offset		= 0x0bd8,
		.size		= 0x1024,
		.canary_count	= 0,
	},
	[IPA_MEM_UC_EVENT_RING] = {
		.id		= IPA_MEM_UC_EVENT_RING,
		.offset		= 0x1c00,
		.size		= 0x0400,
		.canary_count	= 1,
+22 −0
Original line number Diff line number Diff line
@@ -221,111 +221,133 @@ static const struct ipa_resource_data ipa_resource_data = {
/* IPA-resident memory region data for an SoC having IPA v4.11 */
static const struct ipa_mem ipa_mem_local_data[] = {
	[IPA_MEM_UC_SHARED] = {
		.id		= IPA_MEM_UC_SHARED,
		.offset		= 0x0000,
		.size		= 0x0080,
		.canary_count	= 0,
	},
	[IPA_MEM_UC_INFO] = {
		.id		= IPA_MEM_UC_INFO,
		.offset		= 0x0080,
		.size		= 0x0200,
		.canary_count	= 0,
	},
	[IPA_MEM_V4_FILTER_HASHED] = {
		.id		= IPA_MEM_V4_FILTER_HASHED,
		.offset		= 0x0288,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_FILTER] = {
		.id		= IPA_MEM_V4_FILTER,
		.offset		= 0x0308,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_FILTER_HASHED] = {
		.id		= IPA_MEM_V6_FILTER_HASHED,
		.offset		= 0x0388,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_FILTER] = {
		.id		= IPA_MEM_V6_FILTER,
		.offset		= 0x0408,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_ROUTE_HASHED] = {
		.id		= IPA_MEM_V4_ROUTE_HASHED,
		.offset		= 0x0488,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_ROUTE] = {
		.id		= IPA_MEM_V4_ROUTE,
		.offset		= 0x0508,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_ROUTE_HASHED] = {
		.id		= IPA_MEM_V6_ROUTE_HASHED,
		.offset		= 0x0588,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_ROUTE] = {
		.id		= IPA_MEM_V6_ROUTE,
		.offset		= 0x0608,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_MODEM_HEADER] = {
		.id		= IPA_MEM_MODEM_HEADER,
		.offset		= 0x0688,
		.size		= 0x0240,
		.canary_count	= 2,
	},
	[IPA_MEM_AP_HEADER] = {
		.id		= IPA_MEM_AP_HEADER,
		.offset		= 0x08c8,
		.size		= 0x0200,
		.canary_count	= 0,
	},
	[IPA_MEM_MODEM_PROC_CTX] = {
		.id		= IPA_MEM_MODEM_PROC_CTX,
		.offset		= 0x0ad0,
		.size		= 0x0200,
		.canary_count	= 2,
	},
	[IPA_MEM_AP_PROC_CTX] = {
		.id		= IPA_MEM_AP_PROC_CTX,
		.offset		= 0x0cd0,
		.size		= 0x0200,
		.canary_count	= 0,
	},
	[IPA_MEM_NAT_TABLE] = {
		.id		= IPA_MEM_NAT_TABLE,
		.offset		= 0x0ee0,
		.size		= 0x0d00,
		.canary_count	= 4,
	},
	[IPA_MEM_PDN_CONFIG] = {
		.id		= IPA_MEM_PDN_CONFIG,
		.offset		= 0x1be8,
		.size		= 0x0050,
		.canary_count	= 0,
	},
	[IPA_MEM_STATS_QUOTA_MODEM] = {
		.id		= IPA_MEM_STATS_QUOTA_MODEM,
		.offset		= 0x1c40,
		.size		= 0x0030,
		.canary_count	= 4,
	},
	[IPA_MEM_STATS_QUOTA_AP] = {
		.id		= IPA_MEM_STATS_QUOTA_AP,
		.offset		= 0x1c70,
		.size		= 0x0048,
		.canary_count	= 0,
	},
	[IPA_MEM_STATS_TETHERING] = {
		.id		= IPA_MEM_STATS_TETHERING,
		.offset		= 0x1cb8,
		.size		= 0x0238,
		.canary_count	= 0,
	},
	[IPA_MEM_STATS_DROP] = {
		.id		= IPA_MEM_STATS_DROP,
		.offset		= 0x1ef0,
		.size		= 0x0020,
		.canary_count	= 0,
	},
	[IPA_MEM_MODEM] = {
		.id		= IPA_MEM_MODEM,
		.offset		= 0x1f18,
		.size		= 0x100c,
		.canary_count	= 2,
	},
	[IPA_MEM_END_MARKER] = {
		.id		= IPA_MEM_END_MARKER,
		.offset		= 0x3000,
		.size		= 0x0000,
		.canary_count	= 1,
+18 −0
Original line number Diff line number Diff line
@@ -220,91 +220,109 @@ static const struct ipa_resource_data ipa_resource_data = {
/* IPA-resident memory region data for an SoC having IPA v4.2 */
static const struct ipa_mem ipa_mem_local_data[] = {
	[IPA_MEM_UC_SHARED] = {
		.id		= IPA_MEM_UC_SHARED,
		.offset		= 0x0000,
		.size		= 0x0080,
		.canary_count	= 0,
	},
	[IPA_MEM_UC_INFO] = {
		.id		= IPA_MEM_UC_INFO,
		.offset		= 0x0080,
		.size		= 0x0200,
		.canary_count	= 0,
	},
	[IPA_MEM_V4_FILTER_HASHED] = {
		.id		= IPA_MEM_V4_FILTER_HASHED,
		.offset		= 0x0288,
		.size		= 0,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_FILTER] = {
		.id		= IPA_MEM_V4_FILTER,
		.offset		= 0x0290,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_FILTER_HASHED] = {
		.id		= IPA_MEM_V6_FILTER_HASHED,
		.offset		= 0x0310,
		.size		= 0,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_FILTER] = {
		.id		= IPA_MEM_V6_FILTER,
		.offset		= 0x0318,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_ROUTE_HASHED] = {
		.id		= IPA_MEM_V4_ROUTE_HASHED,
		.offset		= 0x0398,
		.size		= 0,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_ROUTE] = {
		.id		= IPA_MEM_V4_ROUTE,
		.offset		= 0x03a0,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_ROUTE_HASHED] = {
		.id		= IPA_MEM_V6_ROUTE_HASHED,
		.offset		= 0x0420,
		.size		= 0,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_ROUTE] = {
		.id		= IPA_MEM_V6_ROUTE,
		.offset		= 0x0428,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_MODEM_HEADER] = {
		.id		= IPA_MEM_MODEM_HEADER,
		.offset		= 0x04a8,
		.size		= 0x0140,
		.canary_count	= 2,
	},
	[IPA_MEM_MODEM_PROC_CTX] = {
		.id		= IPA_MEM_MODEM_PROC_CTX,
		.offset		= 0x05f0,
		.size		= 0x0200,
		.canary_count	= 2,
	},
	[IPA_MEM_AP_PROC_CTX] = {
		.id		= IPA_MEM_AP_PROC_CTX,
		.offset		= 0x07f0,
		.size		= 0x0200,
		.canary_count	= 0,
	},
	[IPA_MEM_PDN_CONFIG] = {
		.id		= IPA_MEM_PDN_CONFIG,
		.offset		= 0x09f8,
		.size		= 0x0050,
		.canary_count	= 2,
	},
	[IPA_MEM_STATS_QUOTA_MODEM] = {
		.id		= IPA_MEM_STATS_QUOTA_MODEM,
		.offset		= 0x0a50,
		.size		= 0x0060,
		.canary_count	= 2,
	},
	[IPA_MEM_STATS_TETHERING] = {
		.id		= IPA_MEM_STATS_TETHERING,
		.offset		= 0x0ab0,
		.size		= 0x0140,
		.canary_count	= 0,
	},
	[IPA_MEM_MODEM] = {
		.id		= IPA_MEM_MODEM,
		.offset		= 0x0bf0,
		.size		= 0x140c,
		.canary_count	= 0,
	},
	[IPA_MEM_END_MARKER] = {
		.id		= IPA_MEM_END_MARKER,
		.offset		= 0x2000,
		.size		= 0,
		.canary_count	= 1,
+23 −0
Original line number Diff line number Diff line
@@ -266,116 +266,139 @@ static const struct ipa_resource_data ipa_resource_data = {
/* IPA-resident memory region data for an SoC having IPA v4.5 */
static const struct ipa_mem ipa_mem_local_data[] = {
	[IPA_MEM_UC_SHARED] = {
		.id		= IPA_MEM_UC_SHARED,
		.offset		= 0x0000,
		.size		= 0x0080,
		.canary_count	= 0,
	},
	[IPA_MEM_UC_INFO] = {
		.id		= IPA_MEM_UC_INFO,
		.offset		= 0x0080,
		.size		= 0x0200,
		.canary_count	= 0,
	},
	[IPA_MEM_V4_FILTER_HASHED] = {
		.id		= IPA_MEM_V4_FILTER_HASHED,
		.offset		= 0x0288,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_FILTER] = {
		.id		= IPA_MEM_V4_FILTER,
		.offset		= 0x0308,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_FILTER_HASHED] = {
		.id		= IPA_MEM_V6_FILTER_HASHED,
		.offset		= 0x0388,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_FILTER] = {
		.id		= IPA_MEM_V6_FILTER,
		.offset		= 0x0408,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_ROUTE_HASHED] = {
		.id		= IPA_MEM_V4_ROUTE_HASHED,
		.offset		= 0x0488,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_ROUTE] = {
		.id		= IPA_MEM_V4_ROUTE,
		.offset		= 0x0508,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_ROUTE_HASHED] = {
		.id		= IPA_MEM_V6_ROUTE_HASHED,
		.offset		= 0x0588,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_ROUTE] = {
		.id		= IPA_MEM_V6_ROUTE,
		.offset		= 0x0608,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_MODEM_HEADER] = {
		.id		= IPA_MEM_MODEM_HEADER,
		.offset		= 0x0688,
		.size		= 0x0240,
		.canary_count	= 2,
	},
	[IPA_MEM_AP_HEADER] = {
		.id		= IPA_MEM_AP_HEADER,
		.offset		= 0x08c8,
		.size		= 0x0200,
		.canary_count	= 0,
	},
	[IPA_MEM_MODEM_PROC_CTX] = {
		.id		= IPA_MEM_MODEM_PROC_CTX,
		.offset		= 0x0ad0,
		.size		= 0x0b20,
		.canary_count	= 2,
	},
	[IPA_MEM_AP_PROC_CTX] = {
		.id		= IPA_MEM_AP_PROC_CTX,
		.offset		= 0x15f0,
		.size		= 0x0200,
		.canary_count	= 0,
	},
	[IPA_MEM_NAT_TABLE] = {
		.id		= IPA_MEM_NAT_TABLE,
		.offset		= 0x1800,
		.size		= 0x0d00,
		.canary_count	= 4,
	},
	[IPA_MEM_STATS_QUOTA_MODEM] = {
		.id		= IPA_MEM_STATS_QUOTA_MODEM,
		.offset		= 0x2510,
		.size		= 0x0030,
		.canary_count	= 4,
	},
	[IPA_MEM_STATS_QUOTA_AP] = {
		.id		= IPA_MEM_STATS_QUOTA_AP,
		.offset		= 0x2540,
		.size		= 0x0048,
		.canary_count	= 0,
	},
	[IPA_MEM_STATS_TETHERING] = {
		.id		= IPA_MEM_STATS_TETHERING,
		.offset		= 0x2588,
		.size		= 0x0238,
		.canary_count	= 0,
	},
	[IPA_MEM_STATS_FILTER_ROUTE] = {
		.id		= IPA_MEM_STATS_FILTER_ROUTE,
		.offset		= 0x27c0,
		.size		= 0x0800,
		.canary_count	= 0,
	},
	[IPA_MEM_STATS_DROP] = {
		.id		= IPA_MEM_STATS_DROP,
		.offset		= 0x2fc0,
		.size		= 0x0020,
		.canary_count	= 0,
	},
	[IPA_MEM_MODEM] = {
		.id		= IPA_MEM_MODEM,
		.offset		= 0x2fe8,
		.size		= 0x0800,
		.canary_count	= 2,
	},
	[IPA_MEM_UC_EVENT_RING] = {
		.id		= IPA_MEM_UC_EVENT_RING,
		.offset		= 0x3800,
		.size		= 0x1000,
		.canary_count	= 1,
	},
	[IPA_MEM_PDN_CONFIG] = {
		.id		= IPA_MEM_PDN_CONFIG,
		.offset		= 0x4800,
		.size		= 0x0050,
		.canary_count	= 0,
+25 −1
Original line number Diff line number Diff line
@@ -264,115 +264,139 @@ static const struct ipa_resource_data ipa_resource_data = {
/* IPA-resident memory region data for an SoC having IPA v4.9 */
static const struct ipa_mem ipa_mem_local_data[] = {
	[IPA_MEM_UC_SHARED] = {
		.id		= IPA_MEM_UC_SHARED,
		.offset		= 0x0000,
		.size		= 0x0080,
		.canary_count	= 0,
	},
	[IPA_MEM_UC_INFO] = {
		.id		= IPA_MEM_UC_INFO,
		.offset		= 0x0080,
		.size		= 0x0200,
		.canary_count	= 0,
	},
	[IPA_MEM_V4_FILTER_HASHED] = { .offset		= 0x0288,
	[IPA_MEM_V4_FILTER_HASHED] = {
		.id		= IPA_MEM_V4_FILTER_HASHED,
		.offset		= 0x0288,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_FILTER] = {
		.id		= IPA_MEM_V4_FILTER,
		.offset		= 0x0308,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_FILTER_HASHED] = {
		.id		= IPA_MEM_V6_FILTER_HASHED,
		.offset		= 0x0388,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_FILTER] = {
		.id		= IPA_MEM_V6_FILTER,
		.offset		= 0x0408,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_ROUTE_HASHED] = {
		.id		= IPA_MEM_V4_ROUTE_HASHED,
		.offset		= 0x0488,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V4_ROUTE] = {
		.id		= IPA_MEM_V4_ROUTE,
		.offset		= 0x0508,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_ROUTE_HASHED] = {
		.id		= IPA_MEM_V6_ROUTE_HASHED,
		.offset		= 0x0588,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_V6_ROUTE] = {
		.id		= IPA_MEM_V6_ROUTE,
		.offset		= 0x0608,
		.size		= 0x0078,
		.canary_count	= 2,
	},
	[IPA_MEM_MODEM_HEADER] = {
		.id		= IPA_MEM_MODEM_HEADER,
		.offset		= 0x0688,
		.size		= 0x0240,
		.canary_count	= 2,
	},
	[IPA_MEM_AP_HEADER] = {
		.id		= IPA_MEM_AP_HEADER,
		.offset		= 0x08c8,
		.size		= 0x0200,
		.canary_count	= 0,
	},
	[IPA_MEM_MODEM_PROC_CTX] = {
		.id		= IPA_MEM_MODEM_PROC_CTX,
		.offset		= 0x0ad0,
		.size		= 0x0b20,
		.canary_count	= 2,
	},
	[IPA_MEM_AP_PROC_CTX] = {
		.id		= IPA_MEM_AP_PROC_CTX,
		.offset		= 0x15f0,
		.size		= 0x0200,
		.canary_count	= 0,
	},
	[IPA_MEM_NAT_TABLE] = {
		.id		= IPA_MEM_NAT_TABLE,
		.offset		= 0x1800,
		.size		= 0x0d00,
		.canary_count	= 4,
	},
	[IPA_MEM_STATS_QUOTA_MODEM] = {
		.id		= IPA_MEM_STATS_QUOTA_MODEM,
		.offset		= 0x2510,
		.size		= 0x0030,
		.canary_count	= 4,
	},
	[IPA_MEM_STATS_QUOTA_AP] = {
		.id		= IPA_MEM_STATS_QUOTA_AP,
		.offset		= 0x2540,
		.size		= 0x0048,
		.canary_count	= 0,
	},
	[IPA_MEM_STATS_TETHERING] = {
		.id		= IPA_MEM_STATS_TETHERING,
		.offset		= 0x2588,
		.size		= 0x0238,
		.canary_count	= 0,
	},
	[IPA_MEM_STATS_FILTER_ROUTE] = {
		.id		= IPA_MEM_STATS_FILTER_ROUTE,
		.offset		= 0x27c0,
		.size		= 0x0800,
		.canary_count	= 0,
	},
	[IPA_MEM_STATS_DROP] = {
		.id		= IPA_MEM_STATS_DROP,
		.offset		= 0x2fc0,
		.size		= 0x0020,
		.canary_count	= 0,
	},
	[IPA_MEM_MODEM] = {
		.id		= IPA_MEM_MODEM,
		.offset		= 0x2fe8,
		.size		= 0x0800,
		.canary_count	= 2,
	},
	[IPA_MEM_UC_EVENT_RING] = {
		.id		= IPA_MEM_UC_EVENT_RING,
		.offset		= 0x3800,
		.size		= 0x1000,
		.canary_count	= 1,
	},
	[IPA_MEM_PDN_CONFIG] = {
		.id		= IPA_MEM_PDN_CONFIG,
		.offset		= 0x4800,
		.size		= 0x0050,
		.canary_count	= 0,
Loading