Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: ipa: start generalizing "ipa_reg"

IPA register definitions have evolved with each new version. The
changes required to support more than 32 endpoints in IPA v5.0 made
it best to define a unified mechanism for defining registers and
their fields.

GSI register definitions, meanwhile, have remained fairly stable.
And even as the total number of IPA endpoints goes beyond 32, the
number of GSI channels on a given EE that underly endpoints still
remains 32 or less.

Despite that, GSI v3.0 (which is used with IPA v5.0) extends the
number of channels (and events) it supports to be about 256, and as
a result, many GSI register definitions must change significantly.
To address this, we'll use the same "ipa_reg" mechanism to define
the GSI registers.

As a first step in generalizing the "ipa_reg" to also support GSI
registers, isolate the definitions of the "ipa_reg" and "ipa_regs"
structure types (and some supporting macros) into a new header file,
and remove the "ipa_" and "IPA_" from symbol names.

Separate the IPA register ID validity checking from the generic
check that a register ID is in range. Aside from that, this is
intended to have no functional effect on the code.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Alex Elder and committed by
David S. Miller
81772e44 0ec573ef

+1080 -1084
+1 -1
drivers/net/ipa/ipa.h
··· 97 97 bool uc_loaded; 98 98 99 99 void __iomem *reg_virt; 100 - const struct ipa_regs *regs; 100 + const struct regs *regs; 101 101 102 102 dma_addr_t mem_addr; 103 103 void *mem_virt;
+1 -1
drivers/net/ipa/ipa_cmd.c
··· 287 287 /* Check whether offsets passed to register_write are valid */ 288 288 static bool ipa_cmd_register_write_valid(struct ipa *ipa) 289 289 { 290 - const struct ipa_reg *reg; 290 + const struct reg *reg; 291 291 const char *name; 292 292 u32 offset; 293 293
+24 -24
drivers/net/ipa/ipa_endpoint.c
··· 241 241 242 242 if (!data->toward_ipa) { 243 243 const struct ipa_endpoint_rx *rx_config; 244 - const struct ipa_reg *reg; 244 + const struct reg *reg; 245 245 u32 buffer_size; 246 246 u32 aggr_size; 247 247 u32 limit; ··· 447 447 ipa_endpoint_init_ctrl(struct ipa_endpoint *endpoint, bool suspend_delay) 448 448 { 449 449 struct ipa *ipa = endpoint->ipa; 450 - const struct ipa_reg *reg; 450 + const struct reg *reg; 451 451 u32 field_id; 452 452 u32 offset; 453 453 bool state; ··· 493 493 u32 endpoint_id = endpoint->endpoint_id; 494 494 struct ipa *ipa = endpoint->ipa; 495 495 u32 unit = endpoint_id / 32; 496 - const struct ipa_reg *reg; 496 + const struct reg *reg; 497 497 u32 val; 498 498 499 499 WARN_ON(!test_bit(endpoint_id, ipa->available)); ··· 510 510 u32 mask = BIT(endpoint_id % 32); 511 511 struct ipa *ipa = endpoint->ipa; 512 512 u32 unit = endpoint_id / 32; 513 - const struct ipa_reg *reg; 513 + const struct reg *reg; 514 514 515 515 WARN_ON(!test_bit(endpoint_id, ipa->available)); 516 516 ··· 613 613 614 614 for_each_set_bit(endpoint_id, ipa->defined, ipa->endpoint_count) { 615 615 struct ipa_endpoint *endpoint; 616 - const struct ipa_reg *reg; 616 + const struct reg *reg; 617 617 u32 offset; 618 618 619 619 /* We only reset modem TX endpoints */ ··· 645 645 u32 endpoint_id = endpoint->endpoint_id; 646 646 struct ipa *ipa = endpoint->ipa; 647 647 enum ipa_cs_offload_en enabled; 648 - const struct ipa_reg *reg; 648 + const struct reg *reg; 649 649 u32 val = 0; 650 650 651 651 reg = ipa_reg(ipa, ENDP_INIT_CFG); ··· 681 681 { 682 682 u32 endpoint_id = endpoint->endpoint_id; 683 683 struct ipa *ipa = endpoint->ipa; 684 - const struct ipa_reg *reg; 684 + const struct reg *reg; 685 685 u32 val; 686 686 687 687 if (!endpoint->toward_ipa) ··· 716 716 717 717 /* Encoded value for ENDP_INIT_HDR register HDR_LEN* field(s) */ 718 718 static u32 ipa_header_size_encode(enum ipa_version version, 719 - const struct ipa_reg *reg, u32 header_size) 719 + const struct reg *reg, u32 header_size) 720 720 { 721 721 u32 field_max = ipa_reg_field_max(reg, HDR_LEN); 722 722 u32 val; ··· 738 738 739 739 /* Encoded value for ENDP_INIT_HDR register OFST_METADATA* field(s) */ 740 740 static u32 ipa_metadata_offset_encode(enum ipa_version version, 741 - const struct ipa_reg *reg, u32 offset) 741 + const struct reg *reg, u32 offset) 742 742 { 743 743 u32 field_max = ipa_reg_field_max(reg, HDR_OFST_METADATA); 744 744 u32 val; ··· 783 783 { 784 784 u32 endpoint_id = endpoint->endpoint_id; 785 785 struct ipa *ipa = endpoint->ipa; 786 - const struct ipa_reg *reg; 786 + const struct reg *reg; 787 787 u32 val = 0; 788 788 789 789 reg = ipa_reg(ipa, ENDP_INIT_HDR); ··· 828 828 u32 pad_align = endpoint->config.rx.pad_align; 829 829 u32 endpoint_id = endpoint->endpoint_id; 830 830 struct ipa *ipa = endpoint->ipa; 831 - const struct ipa_reg *reg; 831 + const struct reg *reg; 832 832 u32 val = 0; 833 833 834 834 reg = ipa_reg(ipa, ENDP_INIT_HDR_EXT); ··· 879 879 { 880 880 u32 endpoint_id = endpoint->endpoint_id; 881 881 struct ipa *ipa = endpoint->ipa; 882 - const struct ipa_reg *reg; 882 + const struct reg *reg; 883 883 u32 val = 0; 884 884 u32 offset; 885 885 ··· 899 899 static void ipa_endpoint_init_mode(struct ipa_endpoint *endpoint) 900 900 { 901 901 struct ipa *ipa = endpoint->ipa; 902 - const struct ipa_reg *reg; 902 + const struct reg *reg; 903 903 u32 offset; 904 904 u32 val; 905 905 ··· 963 963 } 964 964 965 965 /* Encode the aggregation timer limit (microseconds) based on IPA version */ 966 - static u32 aggr_time_limit_encode(struct ipa *ipa, const struct ipa_reg *reg, 966 + static u32 aggr_time_limit_encode(struct ipa *ipa, const struct reg *reg, 967 967 u32 microseconds) 968 968 { 969 969 u32 ticks; ··· 994 994 { 995 995 u32 endpoint_id = endpoint->endpoint_id; 996 996 struct ipa *ipa = endpoint->ipa; 997 - const struct ipa_reg *reg; 997 + const struct reg *reg; 998 998 u32 val = 0; 999 999 1000 1000 reg = ipa_reg(ipa, ENDP_INIT_AGGR); ··· 1043 1043 * Return the encoded value representing the timeout period provided 1044 1044 * that should be written to the ENDP_INIT_HOL_BLOCK_TIMER register. 1045 1045 */ 1046 - static u32 hol_block_timer_encode(struct ipa *ipa, const struct ipa_reg *reg, 1046 + static u32 hol_block_timer_encode(struct ipa *ipa, const struct reg *reg, 1047 1047 u32 microseconds) 1048 1048 { 1049 1049 u32 width; ··· 1109 1109 { 1110 1110 u32 endpoint_id = endpoint->endpoint_id; 1111 1111 struct ipa *ipa = endpoint->ipa; 1112 - const struct ipa_reg *reg; 1112 + const struct reg *reg; 1113 1113 u32 val; 1114 1114 1115 1115 /* This should only be changed when HOL_BLOCK_EN is disabled */ ··· 1124 1124 { 1125 1125 u32 endpoint_id = endpoint->endpoint_id; 1126 1126 struct ipa *ipa = endpoint->ipa; 1127 - const struct ipa_reg *reg; 1127 + const struct reg *reg; 1128 1128 u32 offset; 1129 1129 u32 val; 1130 1130 ··· 1171 1171 { 1172 1172 u32 endpoint_id = endpoint->endpoint_id; 1173 1173 struct ipa *ipa = endpoint->ipa; 1174 - const struct ipa_reg *reg; 1174 + const struct reg *reg; 1175 1175 u32 val = 0; 1176 1176 1177 1177 if (!endpoint->toward_ipa) ··· 1191 1191 u32 resource_group = endpoint->config.resource_group; 1192 1192 u32 endpoint_id = endpoint->endpoint_id; 1193 1193 struct ipa *ipa = endpoint->ipa; 1194 - const struct ipa_reg *reg; 1194 + const struct reg *reg; 1195 1195 u32 val; 1196 1196 1197 1197 reg = ipa_reg(ipa, ENDP_INIT_RSRC_GRP); ··· 1204 1204 { 1205 1205 u32 endpoint_id = endpoint->endpoint_id; 1206 1206 struct ipa *ipa = endpoint->ipa; 1207 - const struct ipa_reg *reg; 1207 + const struct reg *reg; 1208 1208 u32 val; 1209 1209 1210 1210 if (!endpoint->toward_ipa) ··· 1270 1270 { 1271 1271 u32 endpoint_id = endpoint->endpoint_id; 1272 1272 struct ipa *ipa = endpoint->ipa; 1273 - const struct ipa_reg *reg; 1273 + const struct reg *reg; 1274 1274 u32 val = 0; 1275 1275 1276 1276 reg = ipa_reg(ipa, ENDP_STATUS); ··· 1636 1636 1637 1637 void ipa_endpoint_default_route_set(struct ipa *ipa, u32 endpoint_id) 1638 1638 { 1639 - const struct ipa_reg *reg; 1639 + const struct reg *reg; 1640 1640 u32 val; 1641 1641 1642 1642 reg = ipa_reg(ipa, ROUTE); ··· 1985 1985 int ipa_endpoint_config(struct ipa *ipa) 1986 1986 { 1987 1987 struct device *dev = &ipa->pdev->dev; 1988 - const struct ipa_reg *reg; 1988 + const struct reg *reg; 1989 1989 u32 endpoint_id; 1990 1990 u32 hw_limit; 1991 1991 u32 tx_count;
+6 -6
drivers/net/ipa/ipa_interrupt.c
··· 47 47 static void ipa_interrupt_process(struct ipa_interrupt *interrupt, u32 irq_id) 48 48 { 49 49 struct ipa *ipa = interrupt->ipa; 50 - const struct ipa_reg *reg; 50 + const struct reg *reg; 51 51 u32 mask = BIT(irq_id); 52 52 u32 offset; 53 53 ··· 85 85 struct ipa_interrupt *interrupt = dev_id; 86 86 struct ipa *ipa = interrupt->ipa; 87 87 u32 enabled = interrupt->enabled; 88 - const struct ipa_reg *reg; 88 + const struct reg *reg; 89 89 struct device *dev; 90 90 u32 pending; 91 91 u32 offset; ··· 132 132 133 133 static void ipa_interrupt_enabled_update(struct ipa *ipa) 134 134 { 135 - const struct ipa_reg *reg = ipa_reg(ipa, IPA_IRQ_EN); 135 + const struct reg *reg = ipa_reg(ipa, IPA_IRQ_EN); 136 136 137 137 iowrite32(ipa->interrupt->enabled, ipa->reg_virt + ipa_reg_offset(reg)); 138 138 } ··· 170 170 struct ipa *ipa = interrupt->ipa; 171 171 u32 mask = BIT(endpoint_id % 32); 172 172 u32 unit = endpoint_id / 32; 173 - const struct ipa_reg *reg; 173 + const struct reg *reg; 174 174 u32 offset; 175 175 u32 val; 176 176 ··· 215 215 216 216 unit_count = roundup(ipa->endpoint_count, 32); 217 217 for (unit = 0; unit < unit_count; unit++) { 218 - const struct ipa_reg *reg; 218 + const struct reg *reg; 219 219 u32 val; 220 220 221 221 reg = ipa_reg(ipa, IRQ_SUSPEND_INFO); ··· 241 241 { 242 242 struct device *dev = &ipa->pdev->dev; 243 243 struct ipa_interrupt *interrupt; 244 - const struct ipa_reg *reg; 244 + const struct reg *reg; 245 245 unsigned int irq; 246 246 int ret; 247 247
+9 -9
drivers/net/ipa/ipa_main.c
··· 203 203 static void 204 204 ipa_hardware_config_bcr(struct ipa *ipa, const struct ipa_data *data) 205 205 { 206 - const struct ipa_reg *reg; 206 + const struct reg *reg; 207 207 u32 val; 208 208 209 209 /* IPA v4.5+ has no backward compatibility register */ ··· 218 218 static void ipa_hardware_config_tx(struct ipa *ipa) 219 219 { 220 220 enum ipa_version version = ipa->version; 221 - const struct ipa_reg *reg; 221 + const struct reg *reg; 222 222 u32 offset; 223 223 u32 val; 224 224 ··· 239 239 static void ipa_hardware_config_clkon(struct ipa *ipa) 240 240 { 241 241 enum ipa_version version = ipa->version; 242 - const struct ipa_reg *reg; 242 + const struct reg *reg; 243 243 u32 val; 244 244 245 245 if (version >= IPA_VERSION_4_5) ··· 265 265 /* Configure bus access behavior for IPA components */ 266 266 static void ipa_hardware_config_comp(struct ipa *ipa) 267 267 { 268 - const struct ipa_reg *reg; 268 + const struct reg *reg; 269 269 u32 offset; 270 270 u32 val; 271 271 ··· 299 299 { 300 300 const struct ipa_qsb_data *data0; 301 301 const struct ipa_qsb_data *data1; 302 - const struct ipa_reg *reg; 302 + const struct reg *reg; 303 303 u32 val; 304 304 305 305 /* QMB 0 represents DDR; QMB 1 (if present) represents PCIe */ ··· 368 368 */ 369 369 static void ipa_qtime_config(struct ipa *ipa) 370 370 { 371 - const struct ipa_reg *reg; 371 + const struct reg *reg; 372 372 u32 offset; 373 373 u32 val; 374 374 ··· 416 416 static void ipa_hardware_config_counter(struct ipa *ipa) 417 417 { 418 418 u32 granularity = ipa_aggr_granularity_val(IPA_AGGR_GRANULARITY); 419 - const struct ipa_reg *reg; 419 + const struct reg *reg; 420 420 u32 val; 421 421 422 422 reg = ipa_reg(ipa, COUNTER_CFG); ··· 435 435 436 436 static void ipa_hardware_config_hashing(struct ipa *ipa) 437 437 { 438 - const struct ipa_reg *reg; 438 + const struct reg *reg; 439 439 440 440 /* Other than IPA v4.2, all versions enable "hashing". Starting 441 441 * with IPA v5.0, the filter and router tables are implemented ··· 458 458 u32 enter_idle_debounce_thresh, 459 459 bool const_non_idle_enable) 460 460 { 461 - const struct ipa_reg *reg; 461 + const struct reg *reg; 462 462 u32 val; 463 463 464 464 if (ipa->version < IPA_VERSION_3_5_1)
+2 -2
drivers/net/ipa/ipa_mem.c
··· 75 75 int ipa_mem_setup(struct ipa *ipa) 76 76 { 77 77 dma_addr_t addr = ipa->zero_addr; 78 - const struct ipa_reg *reg; 78 + const struct reg *reg; 79 79 const struct ipa_mem *mem; 80 80 struct gsi_trans *trans; 81 81 u32 offset; ··· 318 318 int ipa_mem_config(struct ipa *ipa) 319 319 { 320 320 struct device *dev = &ipa->pdev->dev; 321 - const struct ipa_reg *reg; 322 321 const struct ipa_mem *mem; 322 + const struct reg *reg; 323 323 dma_addr_t addr; 324 324 u32 mem_size; 325 325 void *virt;
+15 -33
drivers/net/ipa/ipa_reg.c
··· 13 13 static bool ipa_reg_id_valid(struct ipa *ipa, enum ipa_reg_id reg_id) 14 14 { 15 15 enum ipa_version version = ipa->version; 16 - bool valid; 17 - 18 - /* Check for bogus (out of range) register IDs */ 19 - if ((u32)reg_id >= ipa->regs->reg_count) 20 - return false; 21 16 22 17 switch (reg_id) { 23 18 case IPA_BCR: 24 19 case COUNTER_CFG: 25 - valid = version < IPA_VERSION_4_5; 26 - break; 20 + return version < IPA_VERSION_4_5; 27 21 28 22 case IPA_TX_CFG: 29 23 case FLAVOR_0: 30 24 case IDLE_INDICATION_CFG: 31 - valid = version >= IPA_VERSION_3_5; 32 - break; 25 + return version >= IPA_VERSION_3_5; 33 26 34 27 case QTIME_TIMESTAMP_CFG: 35 28 case TIMERS_XO_CLK_DIV_CFG: 36 29 case TIMERS_PULSE_GRAN_CFG: 37 - valid = version >= IPA_VERSION_4_5; 38 - break; 30 + return version >= IPA_VERSION_4_5; 39 31 40 32 case SRC_RSRC_GRP_45_RSRC_TYPE: 41 33 case DST_RSRC_GRP_45_RSRC_TYPE: 42 - valid = version <= IPA_VERSION_3_1 || 43 - version == IPA_VERSION_4_5; 44 - break; 34 + return version <= IPA_VERSION_3_1 || 35 + version == IPA_VERSION_4_5; 45 36 46 37 case SRC_RSRC_GRP_67_RSRC_TYPE: 47 38 case DST_RSRC_GRP_67_RSRC_TYPE: 48 - valid = version <= IPA_VERSION_3_1; 49 - break; 39 + return version <= IPA_VERSION_3_1; 50 40 51 41 case ENDP_FILTER_ROUTER_HSH_CFG: 52 - valid = version != IPA_VERSION_4_2; 53 - break; 42 + return version != IPA_VERSION_4_2; 54 43 55 44 case IRQ_SUSPEND_EN: 56 45 case IRQ_SUSPEND_CLR: 57 - valid = version >= IPA_VERSION_3_1; 58 - break; 46 + return version >= IPA_VERSION_3_1; 59 47 60 48 case COMP_CFG: 61 49 case CLKON_CFG: ··· 83 95 case IPA_IRQ_CLR: 84 96 case IPA_IRQ_UC: 85 97 case IRQ_SUSPEND_INFO: 86 - valid = true; /* These should be defined for all versions */ 87 - break; 98 + return true; /* These should be defined for all versions */ 88 99 89 100 default: 90 - valid = false; 91 - break; 101 + return false; 92 102 } 93 - 94 - /* To be valid, it must be defined */ 95 - 96 - return valid && ipa->regs->reg[reg_id]; 97 103 } 98 104 99 - const struct ipa_reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id) 105 + const struct reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id) 100 106 { 101 - if (WARN_ON(!ipa_reg_id_valid(ipa, reg_id))) 107 + if (WARN(!ipa_reg_id_valid(ipa, reg_id), "invalid reg %u\n", reg_id)) 102 108 return NULL; 103 109 104 - return ipa->regs->reg[reg_id]; 110 + return reg(ipa->regs, reg_id); 105 111 } 106 112 107 - static const struct ipa_regs *ipa_regs(enum ipa_version version) 113 + static const struct regs *ipa_regs(enum ipa_version version) 108 114 { 109 115 switch (version) { 110 116 case IPA_VERSION_3_1: ··· 123 141 int ipa_reg_init(struct ipa *ipa) 124 142 { 125 143 struct device *dev = &ipa->pdev->dev; 126 - const struct ipa_regs *regs; 144 + const struct regs *regs; 127 145 struct resource *res; 128 146 129 147 regs = ipa_regs(ipa->version);
+16 -65
drivers/net/ipa/ipa_reg.h
··· 10 10 #include <linux/bug.h> 11 11 12 12 #include "ipa_version.h" 13 + #include "reg.h" 13 14 14 15 struct ipa; 15 16 ··· 109 108 IRQ_SUSPEND_EN, /* IPA v3.1+ */ 110 109 IRQ_SUSPEND_CLR, /* IPA v3.1+ */ 111 110 IPA_REG_ID_COUNT, /* Last; not an ID */ 112 - }; 113 - 114 - /** 115 - * struct ipa_reg - An IPA register descriptor 116 - * @offset: Register offset relative to base of the "ipa-reg" memory 117 - * @stride: Distance between two instances, if parameterized 118 - * @fcount: Number of entries in the @fmask array 119 - * @fmask: Array of mask values defining position and width of fields 120 - * @name: Upper-case name of the IPA register 121 - */ 122 - struct ipa_reg { 123 - u32 offset; 124 - u32 stride; 125 - u32 fcount; 126 - const u32 *fmask; /* BIT(nr) or GENMASK(h, l) */ 127 - const char *name; 128 - }; 129 - 130 - /* Helper macro for defining "simple" (non-parameterized) registers */ 131 - #define IPA_REG(__NAME, __reg_id, __offset) \ 132 - IPA_REG_STRIDE(__NAME, __reg_id, __offset, 0) 133 - 134 - /* Helper macro for defining parameterized registers, specifying stride */ 135 - #define IPA_REG_STRIDE(__NAME, __reg_id, __offset, __stride) \ 136 - static const struct ipa_reg ipa_reg_ ## __reg_id = { \ 137 - .name = #__NAME, \ 138 - .offset = __offset, \ 139 - .stride = __stride, \ 140 - } 141 - 142 - #define IPA_REG_FIELDS(__NAME, __name, __offset) \ 143 - IPA_REG_STRIDE_FIELDS(__NAME, __name, __offset, 0) 144 - 145 - #define IPA_REG_STRIDE_FIELDS(__NAME, __name, __offset, __stride) \ 146 - static const struct ipa_reg ipa_reg_ ## __name = { \ 147 - .name = #__NAME, \ 148 - .offset = __offset, \ 149 - .stride = __stride, \ 150 - .fcount = ARRAY_SIZE(ipa_reg_ ## __name ## _fmask), \ 151 - .fmask = ipa_reg_ ## __name ## _fmask, \ 152 - } 153 - 154 - /** 155 - * struct ipa_regs - Description of registers supported by hardware 156 - * @reg_count: Number of registers in the @reg[] array 157 - * @reg: Array of register descriptors 158 - */ 159 - struct ipa_regs { 160 - u32 reg_count; 161 - const struct ipa_reg **reg; 162 111 }; 163 112 164 113 /* COMP_CFG register */ ··· 638 687 UC_INTR, 639 688 }; 640 689 641 - extern const struct ipa_regs ipa_regs_v3_1; 642 - extern const struct ipa_regs ipa_regs_v3_5_1; 643 - extern const struct ipa_regs ipa_regs_v4_2; 644 - extern const struct ipa_regs ipa_regs_v4_5; 645 - extern const struct ipa_regs ipa_regs_v4_7; 646 - extern const struct ipa_regs ipa_regs_v4_9; 647 - extern const struct ipa_regs ipa_regs_v4_11; 690 + extern const struct regs ipa_regs_v3_1; 691 + extern const struct regs ipa_regs_v3_5_1; 692 + extern const struct regs ipa_regs_v4_2; 693 + extern const struct regs ipa_regs_v4_5; 694 + extern const struct regs ipa_regs_v4_7; 695 + extern const struct regs ipa_regs_v4_9; 696 + extern const struct regs ipa_regs_v4_11; 648 697 649 698 /* Return the field mask for a field in a register */ 650 - static inline u32 ipa_reg_fmask(const struct ipa_reg *reg, u32 field_id) 699 + static inline u32 ipa_reg_fmask(const struct reg *reg, u32 field_id) 651 700 { 652 701 if (!reg || WARN_ON(field_id >= reg->fcount)) 653 702 return 0; ··· 656 705 } 657 706 658 707 /* Return the mask for a single-bit field in a register */ 659 - static inline u32 ipa_reg_bit(const struct ipa_reg *reg, u32 field_id) 708 + static inline u32 ipa_reg_bit(const struct reg *reg, u32 field_id) 660 709 { 661 710 u32 fmask = ipa_reg_fmask(reg, field_id); 662 711 ··· 667 716 668 717 /* Encode a value into the given field of a register */ 669 718 static inline u32 670 - ipa_reg_encode(const struct ipa_reg *reg, u32 field_id, u32 val) 719 + ipa_reg_encode(const struct reg *reg, u32 field_id, u32 val) 671 720 { 672 721 u32 fmask = ipa_reg_fmask(reg, field_id); 673 722 ··· 683 732 684 733 /* Given a register value, decode (extract) the value in the given field */ 685 734 static inline u32 686 - ipa_reg_decode(const struct ipa_reg *reg, u32 field_id, u32 val) 735 + ipa_reg_decode(const struct reg *reg, u32 field_id, u32 val) 687 736 { 688 737 u32 fmask = ipa_reg_fmask(reg, field_id); 689 738 ··· 691 740 } 692 741 693 742 /* Return the maximum value representable by the given field; always 2^n - 1 */ 694 - static inline u32 ipa_reg_field_max(const struct ipa_reg *reg, u32 field_id) 743 + static inline u32 ipa_reg_field_max(const struct reg *reg, u32 field_id) 695 744 { 696 745 u32 fmask = ipa_reg_fmask(reg, field_id); 697 746 698 747 return fmask ? fmask >> __ffs(fmask) : 0; 699 748 } 700 749 701 - const struct ipa_reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id); 750 + const struct reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id); 702 751 703 752 /* Returns 0 for NULL reg; warning will have already been issued */ 704 - static inline u32 ipa_reg_offset(const struct ipa_reg *reg) 753 + static inline u32 ipa_reg_offset(const struct reg *reg) 705 754 { 706 755 return reg ? reg->offset : 0; 707 756 } 708 757 709 758 /* Returns 0 for NULL reg; warning will have already been issued */ 710 - static inline u32 ipa_reg_n_offset(const struct ipa_reg *reg, u32 n) 759 + static inline u32 ipa_reg_n_offset(const struct reg *reg, u32 n) 711 760 { 712 761 return reg ? reg->offset + n * reg->stride : 0; 713 762 }
+3 -3
drivers/net/ipa/ipa_resource.c
··· 70 70 71 71 static void 72 72 ipa_resource_config_common(struct ipa *ipa, u32 resource_type, 73 - const struct ipa_reg *reg, 73 + const struct reg *reg, 74 74 const struct ipa_resource_limits *xlimits, 75 75 const struct ipa_resource_limits *ylimits) 76 76 { ··· 92 92 u32 group_count = data->rsrc_group_src_count; 93 93 const struct ipa_resource_limits *ylimits; 94 94 const struct ipa_resource *resource; 95 - const struct ipa_reg *reg; 95 + const struct reg *reg; 96 96 97 97 resource = &data->resource_src[resource_type]; 98 98 ··· 129 129 u32 group_count = data->rsrc_group_dst_count; 130 130 const struct ipa_resource_limits *ylimits; 131 131 const struct ipa_resource *resource; 132 - const struct ipa_reg *reg; 132 + const struct reg *reg; 133 133 134 134 resource = &data->resource_dst[resource_type]; 135 135
+3 -3
drivers/net/ipa/ipa_table.c
··· 345 345 346 346 int ipa_table_hash_flush(struct ipa *ipa) 347 347 { 348 - const struct ipa_reg *reg; 349 348 struct gsi_trans *trans; 349 + const struct reg *reg; 350 350 u32 offset; 351 351 u32 val; 352 352 ··· 495 495 { 496 496 u32 endpoint_id = endpoint->endpoint_id; 497 497 struct ipa *ipa = endpoint->ipa; 498 - const struct ipa_reg *reg; 498 + const struct reg *reg; 499 499 u32 offset; 500 500 u32 val; 501 501 ··· 554 554 */ 555 555 static void ipa_route_tuple_zero(struct ipa *ipa, u32 route_id) 556 556 { 557 - const struct ipa_reg *reg; 557 + const struct reg *reg; 558 558 u32 offset; 559 559 u32 val; 560 560
+1 -1
drivers/net/ipa/ipa_uc.c
··· 231 231 static void send_uc_command(struct ipa *ipa, u32 command, u32 command_param) 232 232 { 233 233 struct ipa_uc_mem_area *shared = ipa_uc_shared(ipa); 234 - const struct ipa_reg *reg; 234 + const struct reg *reg; 235 235 u32 val; 236 236 237 237 /* Fill in the command data */
+70
drivers/net/ipa/reg.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0 */ 2 + 3 + /* *Copyright (C) 2022-2023 Linaro Ltd. */ 4 + 5 + #ifndef _REG_H_ 6 + #define _REG_H_ 7 + 8 + #include <linux/types.h> 9 + #include <linux/bits.h> 10 + 11 + /** 12 + * struct reg - A register descriptor 13 + * @offset: Register offset relative to base of register memory 14 + * @stride: Distance between two instances, if parameterized 15 + * @fcount: Number of entries in the @fmask array 16 + * @fmask: Array of mask values defining position and width of fields 17 + * @name: Upper-case name of the register 18 + */ 19 + struct reg { 20 + u32 offset; 21 + u32 stride; 22 + u32 fcount; 23 + const u32 *fmask; /* BIT(nr) or GENMASK(h, l) */ 24 + const char *name; 25 + }; 26 + 27 + /* Helper macro for defining "simple" (non-parameterized) registers */ 28 + #define REG(__NAME, __reg_id, __offset) \ 29 + REG_STRIDE(__NAME, __reg_id, __offset, 0) 30 + 31 + /* Helper macro for defining parameterized registers, specifying stride */ 32 + #define REG_STRIDE(__NAME, __reg_id, __offset, __stride) \ 33 + static const struct reg reg_ ## __reg_id = { \ 34 + .name = #__NAME, \ 35 + .offset = __offset, \ 36 + .stride = __stride, \ 37 + } 38 + 39 + #define REG_FIELDS(__NAME, __name, __offset) \ 40 + REG_STRIDE_FIELDS(__NAME, __name, __offset, 0) 41 + 42 + #define REG_STRIDE_FIELDS(__NAME, __name, __offset, __stride) \ 43 + static const struct reg reg_ ## __name = { \ 44 + .name = #__NAME, \ 45 + .offset = __offset, \ 46 + .stride = __stride, \ 47 + .fcount = ARRAY_SIZE(reg_ ## __name ## _fmask), \ 48 + .fmask = reg_ ## __name ## _fmask, \ 49 + } 50 + 51 + /** 52 + * struct regs - Description of registers supported by hardware 53 + * @reg_count: Number of registers in the @reg[] array 54 + * @reg: Array of register descriptors 55 + */ 56 + struct regs { 57 + u32 reg_count; 58 + const struct reg **reg; 59 + }; 60 + 61 + static inline const struct reg *reg(const struct regs *regs, u32 reg_id) 62 + { 63 + if (WARN(reg_id >= regs->reg_count, 64 + "reg out of range (%u > %u)\n", reg_id, regs->reg_count - 1)) 65 + return NULL; 66 + 67 + return regs->reg[reg_id]; 68 + } 69 + 70 + #endif /* _REG_H_ */
+138 -139
drivers/net/ipa/reg/ipa_reg-v3.1.c
··· 7 7 #include "../ipa.h" 8 8 #include "../ipa_reg.h" 9 9 10 - static const u32 ipa_reg_comp_cfg_fmask[] = { 10 + static const u32 reg_comp_cfg_fmask[] = { 11 11 [COMP_CFG_ENABLE] = BIT(0), 12 12 [GSI_SNOC_BYPASS_DIS] = BIT(1), 13 13 [GEN_QMB_0_SNOC_BYPASS_DIS] = BIT(2), ··· 16 16 /* Bits 5-31 reserved */ 17 17 }; 18 18 19 - IPA_REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 19 + REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 20 20 21 - static const u32 ipa_reg_clkon_cfg_fmask[] = { 21 + static const u32 reg_clkon_cfg_fmask[] = { 22 22 [CLKON_RX] = BIT(0), 23 23 [CLKON_PROC] = BIT(1), 24 24 [TX_WRAPPER] = BIT(2), ··· 39 39 /* Bits 17-31 reserved */ 40 40 }; 41 41 42 - IPA_REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 42 + REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 43 43 44 - static const u32 ipa_reg_route_fmask[] = { 44 + static const u32 reg_route_fmask[] = { 45 45 [ROUTE_DIS] = BIT(0), 46 46 [ROUTE_DEF_PIPE] = GENMASK(5, 1), 47 47 [ROUTE_DEF_HDR_TABLE] = BIT(6), ··· 52 52 /* Bits 25-31 reserved */ 53 53 }; 54 54 55 - IPA_REG_FIELDS(ROUTE, route, 0x00000048); 55 + REG_FIELDS(ROUTE, route, 0x00000048); 56 56 57 - static const u32 ipa_reg_shared_mem_size_fmask[] = { 57 + static const u32 reg_shared_mem_size_fmask[] = { 58 58 [MEM_SIZE] = GENMASK(15, 0), 59 59 [MEM_BADDR] = GENMASK(31, 16), 60 60 }; 61 61 62 - IPA_REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 62 + REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 63 63 64 - static const u32 ipa_reg_qsb_max_writes_fmask[] = { 64 + static const u32 reg_qsb_max_writes_fmask[] = { 65 65 [GEN_QMB_0_MAX_WRITES] = GENMASK(3, 0), 66 66 [GEN_QMB_1_MAX_WRITES] = GENMASK(7, 4), 67 67 /* Bits 8-31 reserved */ 68 68 }; 69 69 70 - IPA_REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 70 + REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 71 71 72 - static const u32 ipa_reg_qsb_max_reads_fmask[] = { 72 + static const u32 reg_qsb_max_reads_fmask[] = { 73 73 [GEN_QMB_0_MAX_READS] = GENMASK(3, 0), 74 74 [GEN_QMB_1_MAX_READS] = GENMASK(7, 4), 75 75 }; 76 76 77 - IPA_REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 77 + REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 78 78 79 - static const u32 ipa_reg_filt_rout_hash_en_fmask[] = { 79 + static const u32 reg_filt_rout_hash_en_fmask[] = { 80 80 [IPV6_ROUTER_HASH] = BIT(0), 81 81 /* Bits 1-3 reserved */ 82 82 [IPV6_FILTER_HASH] = BIT(4), ··· 87 87 /* Bits 13-31 reserved */ 88 88 }; 89 89 90 - IPA_REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x000008c); 90 + REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x000008c); 91 91 92 - static const u32 ipa_reg_filt_rout_hash_flush_fmask[] = { 92 + static const u32 reg_filt_rout_hash_flush_fmask[] = { 93 93 [IPV6_ROUTER_HASH] = BIT(0), 94 94 /* Bits 1-3 reserved */ 95 95 [IPV6_FILTER_HASH] = BIT(4), ··· 100 100 /* Bits 13-31 reserved */ 101 101 }; 102 102 103 - IPA_REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x0000090); 103 + REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x0000090); 104 104 105 105 /* Valid bits defined by ipa->available */ 106 - IPA_REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x0000010c, 0x0004); 106 + REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x0000010c, 0x0004); 107 107 108 - IPA_REG(IPA_BCR, ipa_bcr, 0x000001d0); 108 + REG(IPA_BCR, ipa_bcr, 0x000001d0); 109 109 110 - static const u32 ipa_reg_local_pkt_proc_cntxt_fmask[] = { 110 + static const u32 reg_local_pkt_proc_cntxt_fmask[] = { 111 111 [IPA_BASE_ADDR] = GENMASK(16, 0), 112 112 /* Bits 17-31 reserved */ 113 113 }; 114 114 115 115 /* Offset must be a multiple of 8 */ 116 - IPA_REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 116 + REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 117 117 118 118 /* Valid bits defined by ipa->available */ 119 - IPA_REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 119 + REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 120 120 121 - static const u32 ipa_reg_counter_cfg_fmask[] = { 121 + static const u32 reg_counter_cfg_fmask[] = { 122 122 [EOT_COAL_GRANULARITY] = GENMASK(3, 0), 123 123 [AGGR_GRANULARITY] = GENMASK(8, 4), 124 124 /* Bits 5-31 reserved */ 125 125 }; 126 126 127 - IPA_REG_FIELDS(COUNTER_CFG, counter_cfg, 0x000001f0); 127 + REG_FIELDS(COUNTER_CFG, counter_cfg, 0x000001f0); 128 128 129 - static const u32 ipa_reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 129 + static const u32 reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 130 130 [X_MIN_LIM] = GENMASK(7, 0), 131 131 [X_MAX_LIM] = GENMASK(15, 8), 132 132 [Y_MIN_LIM] = GENMASK(23, 16), 133 133 [Y_MAX_LIM] = GENMASK(31, 24), 134 134 }; 135 135 136 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 137 - 0x00000400, 0x0020); 136 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 137 + 0x00000400, 0x0020); 138 138 139 - static const u32 ipa_reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 139 + static const u32 reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 140 140 [X_MIN_LIM] = GENMASK(7, 0), 141 141 [X_MAX_LIM] = GENMASK(15, 8), 142 142 [Y_MIN_LIM] = GENMASK(23, 16), 143 143 [Y_MAX_LIM] = GENMASK(31, 24), 144 144 }; 145 145 146 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 147 - 0x00000404, 0x0020); 146 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 147 + 0x00000404, 0x0020); 148 148 149 - static const u32 ipa_reg_src_rsrc_grp_45_rsrc_type_fmask[] = { 149 + static const u32 reg_src_rsrc_grp_45_rsrc_type_fmask[] = { 150 150 [X_MIN_LIM] = GENMASK(7, 0), 151 151 [X_MAX_LIM] = GENMASK(15, 8), 152 152 [Y_MIN_LIM] = GENMASK(23, 16), 153 153 [Y_MAX_LIM] = GENMASK(31, 24), 154 154 }; 155 155 156 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_45_RSRC_TYPE, src_rsrc_grp_45_rsrc_type, 157 - 0x00000408, 0x0020); 156 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_45_RSRC_TYPE, src_rsrc_grp_45_rsrc_type, 157 + 0x00000408, 0x0020); 158 158 159 - static const u32 ipa_reg_src_rsrc_grp_67_rsrc_type_fmask[] = { 159 + static const u32 reg_src_rsrc_grp_67_rsrc_type_fmask[] = { 160 160 [X_MIN_LIM] = GENMASK(7, 0), 161 161 [X_MAX_LIM] = GENMASK(15, 8), 162 162 [Y_MIN_LIM] = GENMASK(23, 16), 163 163 [Y_MAX_LIM] = GENMASK(31, 24), 164 164 }; 165 165 166 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_67_RSRC_TYPE, src_rsrc_grp_67_rsrc_type, 167 - 0x0000040c, 0x0020); 166 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_67_RSRC_TYPE, src_rsrc_grp_67_rsrc_type, 167 + 0x0000040c, 0x0020); 168 168 169 - static const u32 ipa_reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 169 + static const u32 reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 170 170 [X_MIN_LIM] = GENMASK(7, 0), 171 171 [X_MAX_LIM] = GENMASK(15, 8), 172 172 [Y_MIN_LIM] = GENMASK(23, 16), 173 173 [Y_MAX_LIM] = GENMASK(31, 24), 174 174 }; 175 175 176 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 177 - 0x00000500, 0x0020); 176 + REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 177 + 0x00000500, 0x0020); 178 178 179 - static const u32 ipa_reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 179 + static const u32 reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 180 180 [X_MIN_LIM] = GENMASK(7, 0), 181 181 [X_MAX_LIM] = GENMASK(15, 8), 182 182 [Y_MIN_LIM] = GENMASK(23, 16), 183 183 [Y_MAX_LIM] = GENMASK(31, 24), 184 184 }; 185 185 186 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 187 - 0x00000504, 0x0020); 186 + REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 187 + 0x00000504, 0x0020); 188 188 189 - static const u32 ipa_reg_dst_rsrc_grp_45_rsrc_type_fmask[] = { 189 + static const u32 reg_dst_rsrc_grp_45_rsrc_type_fmask[] = { 190 190 [X_MIN_LIM] = GENMASK(7, 0), 191 191 [X_MAX_LIM] = GENMASK(15, 8), 192 192 [Y_MIN_LIM] = GENMASK(23, 16), 193 193 [Y_MAX_LIM] = GENMASK(31, 24), 194 194 }; 195 195 196 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_45_RSRC_TYPE, dst_rsrc_grp_45_rsrc_type, 197 - 0x00000508, 0x0020); 196 + REG_STRIDE_FIELDS(DST_RSRC_GRP_45_RSRC_TYPE, dst_rsrc_grp_45_rsrc_type, 197 + 0x00000508, 0x0020); 198 198 199 - static const u32 ipa_reg_dst_rsrc_grp_67_rsrc_type_fmask[] = { 199 + static const u32 reg_dst_rsrc_grp_67_rsrc_type_fmask[] = { 200 200 [X_MIN_LIM] = GENMASK(7, 0), 201 201 [X_MAX_LIM] = GENMASK(15, 8), 202 202 [Y_MIN_LIM] = GENMASK(23, 16), 203 203 [Y_MAX_LIM] = GENMASK(31, 24), 204 204 }; 205 205 206 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_67_RSRC_TYPE, dst_rsrc_grp_67_rsrc_type, 207 - 0x0000050c, 0x0020); 206 + REG_STRIDE_FIELDS(DST_RSRC_GRP_67_RSRC_TYPE, dst_rsrc_grp_67_rsrc_type, 207 + 0x0000050c, 0x0020); 208 208 209 - static const u32 ipa_reg_endp_init_ctrl_fmask[] = { 209 + static const u32 reg_endp_init_ctrl_fmask[] = { 210 210 [ENDP_SUSPEND] = BIT(0), 211 211 [ENDP_DELAY] = BIT(1), 212 212 /* Bits 2-31 reserved */ 213 213 }; 214 214 215 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_CTRL, endp_init_ctrl, 0x00000800, 0x0070); 215 + REG_STRIDE_FIELDS(ENDP_INIT_CTRL, endp_init_ctrl, 0x00000800, 0x0070); 216 216 217 - static const u32 ipa_reg_endp_init_cfg_fmask[] = { 217 + static const u32 reg_endp_init_cfg_fmask[] = { 218 218 [FRAG_OFFLOAD_EN] = BIT(0), 219 219 [CS_OFFLOAD_EN] = GENMASK(2, 1), 220 220 [CS_METADATA_HDR_OFFSET] = GENMASK(6, 3), ··· 223 223 /* Bits 9-31 reserved */ 224 224 }; 225 225 226 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 226 + REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 227 227 228 - static const u32 ipa_reg_endp_init_nat_fmask[] = { 228 + static const u32 reg_endp_init_nat_fmask[] = { 229 229 [NAT_EN] = GENMASK(1, 0), 230 230 /* Bits 2-31 reserved */ 231 231 }; 232 232 233 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 233 + REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 234 234 235 - static const u32 ipa_reg_endp_init_hdr_fmask[] = { 235 + static const u32 reg_endp_init_hdr_fmask[] = { 236 236 [HDR_LEN] = GENMASK(5, 0), 237 237 [HDR_OFST_METADATA_VALID] = BIT(6), 238 238 [HDR_OFST_METADATA] = GENMASK(12, 7), ··· 245 245 /* Bits 29-31 reserved */ 246 246 }; 247 247 248 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 248 + REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 249 249 250 - static const u32 ipa_reg_endp_init_hdr_ext_fmask[] = { 250 + static const u32 reg_endp_init_hdr_ext_fmask[] = { 251 251 [HDR_ENDIANNESS] = BIT(0), 252 252 [HDR_TOTAL_LEN_OR_PAD_VALID] = BIT(1), 253 253 [HDR_TOTAL_LEN_OR_PAD] = BIT(2), ··· 257 257 /* Bits 14-31 reserved */ 258 258 }; 259 259 260 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 260 + REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 261 261 262 - IPA_REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 263 - 0x00000818, 0x0070); 262 + REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 263 + 0x00000818, 0x0070); 264 264 265 - static const u32 ipa_reg_endp_init_mode_fmask[] = { 265 + static const u32 reg_endp_init_mode_fmask[] = { 266 266 [ENDP_MODE] = GENMASK(2, 0), 267 267 /* Bit 3 reserved */ 268 268 [DEST_PIPE_INDEX] = GENMASK(8, 4), ··· 274 274 /* Bit 31 reserved */ 275 275 }; 276 276 277 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 277 + REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 278 278 279 - static const u32 ipa_reg_endp_init_aggr_fmask[] = { 279 + static const u32 reg_endp_init_aggr_fmask[] = { 280 280 [AGGR_EN] = GENMASK(1, 0), 281 281 [AGGR_TYPE] = GENMASK(4, 2), 282 282 [BYTE_LIMIT] = GENMASK(9, 5), ··· 289 289 /* Bits 25-31 reserved */ 290 290 }; 291 291 292 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 292 + REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 293 293 294 - static const u32 ipa_reg_endp_init_hol_block_en_fmask[] = { 294 + static const u32 reg_endp_init_hol_block_en_fmask[] = { 295 295 [HOL_BLOCK_EN] = BIT(0), 296 296 /* Bits 1-31 reserved */ 297 297 }; 298 298 299 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 300 - 0x0000082c, 0x0070); 299 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 300 + 0x0000082c, 0x0070); 301 301 302 302 /* Entire register is a tick count */ 303 - static const u32 ipa_reg_endp_init_hol_block_timer_fmask[] = { 303 + static const u32 reg_endp_init_hol_block_timer_fmask[] = { 304 304 [TIMER_BASE_VALUE] = GENMASK(31, 0), 305 305 }; 306 306 307 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 308 - 0x00000830, 0x0070); 307 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 308 + 0x00000830, 0x0070); 309 309 310 - static const u32 ipa_reg_endp_init_deaggr_fmask[] = { 310 + static const u32 reg_endp_init_deaggr_fmask[] = { 311 311 [DEAGGR_HDR_LEN] = GENMASK(5, 0), 312 312 [SYSPIPE_ERR_DETECTION] = BIT(6), 313 313 [PACKET_OFFSET_VALID] = BIT(7), ··· 317 317 [MAX_PACKET_LEN] = GENMASK(31, 16), 318 318 }; 319 319 320 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 320 + REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 321 321 322 - static const u32 ipa_reg_endp_init_rsrc_grp_fmask[] = { 322 + static const u32 reg_endp_init_rsrc_grp_fmask[] = { 323 323 [ENDP_RSRC_GRP] = GENMASK(2, 0), 324 324 /* Bits 3-31 reserved */ 325 325 }; 326 326 327 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 328 - 0x00000838, 0x0070); 327 + REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 0x00000838, 0x0070); 329 328 330 - static const u32 ipa_reg_endp_init_seq_fmask[] = { 329 + static const u32 reg_endp_init_seq_fmask[] = { 331 330 [SEQ_TYPE] = GENMASK(7, 0), 332 331 [SEQ_REP_TYPE] = GENMASK(15, 8), 333 332 /* Bits 16-31 reserved */ 334 333 }; 335 334 336 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 335 + REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 337 336 338 - static const u32 ipa_reg_endp_status_fmask[] = { 337 + static const u32 reg_endp_status_fmask[] = { 339 338 [STATUS_EN] = BIT(0), 340 339 [STATUS_ENDP] = GENMASK(5, 1), 341 340 /* Bits 6-7 reserved */ ··· 342 343 /* Bits 9-31 reserved */ 343 344 }; 344 345 345 - IPA_REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 346 + REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 346 347 347 - static const u32 ipa_reg_endp_filter_router_hsh_cfg_fmask[] = { 348 + static const u32 reg_endp_filter_router_hsh_cfg_fmask[] = { 348 349 [FILTER_HASH_MSK_SRC_ID] = BIT(0), 349 350 [FILTER_HASH_MSK_SRC_IP] = BIT(1), 350 351 [FILTER_HASH_MSK_DST_IP] = BIT(2), ··· 365 366 /* Bits 23-31 reserved */ 366 367 }; 367 368 368 - IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG, endp_filter_router_hsh_cfg, 369 - 0x0000085c, 0x0070); 369 + REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG, endp_filter_router_hsh_cfg, 370 + 0x0000085c, 0x0070); 370 371 371 372 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 372 - IPA_REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); 373 + REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); 373 374 374 375 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 375 - IPA_REG(IPA_IRQ_EN, ipa_irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); 376 + REG(IPA_IRQ_EN, ipa_irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); 376 377 377 378 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 378 - IPA_REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); 379 + REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); 379 380 380 - static const u32 ipa_reg_ipa_irq_uc_fmask[] = { 381 + static const u32 reg_ipa_irq_uc_fmask[] = { 381 382 [UC_INTR] = BIT(0), 382 383 /* Bits 1-31 reserved */ 383 384 }; 384 385 385 - IPA_REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); 386 + REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); 386 387 387 388 /* Valid bits defined by ipa->available */ 388 - IPA_REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 389 - 0x00003030 + 0x1000 * GSI_EE_AP, 0x0004); 389 + REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 390 + 0x00003030 + 0x1000 * GSI_EE_AP, 0x0004); 390 391 391 392 /* Valid bits defined by ipa->available */ 392 - IPA_REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 393 - 0x00003034 + 0x1000 * GSI_EE_AP, 0x0004); 393 + REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 394 + 0x00003034 + 0x1000 * GSI_EE_AP, 0x0004); 394 395 395 396 /* Valid bits defined by ipa->available */ 396 - IPA_REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 397 - 0x00003038 + 0x1000 * GSI_EE_AP, 0x0004); 397 + REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 398 + 0x00003038 + 0x1000 * GSI_EE_AP, 0x0004); 398 399 399 - static const struct ipa_reg *ipa_reg_array[] = { 400 - [COMP_CFG] = &ipa_reg_comp_cfg, 401 - [CLKON_CFG] = &ipa_reg_clkon_cfg, 402 - [ROUTE] = &ipa_reg_route, 403 - [SHARED_MEM_SIZE] = &ipa_reg_shared_mem_size, 404 - [QSB_MAX_WRITES] = &ipa_reg_qsb_max_writes, 405 - [QSB_MAX_READS] = &ipa_reg_qsb_max_reads, 406 - [FILT_ROUT_HASH_EN] = &ipa_reg_filt_rout_hash_en, 407 - [FILT_ROUT_HASH_FLUSH] = &ipa_reg_filt_rout_hash_flush, 408 - [STATE_AGGR_ACTIVE] = &ipa_reg_state_aggr_active, 409 - [IPA_BCR] = &ipa_reg_ipa_bcr, 410 - [LOCAL_PKT_PROC_CNTXT] = &ipa_reg_local_pkt_proc_cntxt, 411 - [AGGR_FORCE_CLOSE] = &ipa_reg_aggr_force_close, 412 - [COUNTER_CFG] = &ipa_reg_counter_cfg, 413 - [SRC_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_01_rsrc_type, 414 - [SRC_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_23_rsrc_type, 415 - [SRC_RSRC_GRP_45_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_45_rsrc_type, 416 - [SRC_RSRC_GRP_67_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_67_rsrc_type, 417 - [DST_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_01_rsrc_type, 418 - [DST_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_23_rsrc_type, 419 - [DST_RSRC_GRP_45_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_45_rsrc_type, 420 - [DST_RSRC_GRP_67_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_67_rsrc_type, 421 - [ENDP_INIT_CTRL] = &ipa_reg_endp_init_ctrl, 422 - [ENDP_INIT_CFG] = &ipa_reg_endp_init_cfg, 423 - [ENDP_INIT_NAT] = &ipa_reg_endp_init_nat, 424 - [ENDP_INIT_HDR] = &ipa_reg_endp_init_hdr, 425 - [ENDP_INIT_HDR_EXT] = &ipa_reg_endp_init_hdr_ext, 426 - [ENDP_INIT_HDR_METADATA_MASK] = &ipa_reg_endp_init_hdr_metadata_mask, 427 - [ENDP_INIT_MODE] = &ipa_reg_endp_init_mode, 428 - [ENDP_INIT_AGGR] = &ipa_reg_endp_init_aggr, 429 - [ENDP_INIT_HOL_BLOCK_EN] = &ipa_reg_endp_init_hol_block_en, 430 - [ENDP_INIT_HOL_BLOCK_TIMER] = &ipa_reg_endp_init_hol_block_timer, 431 - [ENDP_INIT_DEAGGR] = &ipa_reg_endp_init_deaggr, 432 - [ENDP_INIT_RSRC_GRP] = &ipa_reg_endp_init_rsrc_grp, 433 - [ENDP_INIT_SEQ] = &ipa_reg_endp_init_seq, 434 - [ENDP_STATUS] = &ipa_reg_endp_status, 435 - [ENDP_FILTER_ROUTER_HSH_CFG] = &ipa_reg_endp_filter_router_hsh_cfg, 436 - [IPA_IRQ_STTS] = &ipa_reg_ipa_irq_stts, 437 - [IPA_IRQ_EN] = &ipa_reg_ipa_irq_en, 438 - [IPA_IRQ_CLR] = &ipa_reg_ipa_irq_clr, 439 - [IPA_IRQ_UC] = &ipa_reg_ipa_irq_uc, 440 - [IRQ_SUSPEND_INFO] = &ipa_reg_irq_suspend_info, 441 - [IRQ_SUSPEND_EN] = &ipa_reg_irq_suspend_en, 442 - [IRQ_SUSPEND_CLR] = &ipa_reg_irq_suspend_clr, 400 + static const struct reg *reg_array[] = { 401 + [COMP_CFG] = &reg_comp_cfg, 402 + [CLKON_CFG] = &reg_clkon_cfg, 403 + [ROUTE] = &reg_route, 404 + [SHARED_MEM_SIZE] = &reg_shared_mem_size, 405 + [QSB_MAX_WRITES] = &reg_qsb_max_writes, 406 + [QSB_MAX_READS] = &reg_qsb_max_reads, 407 + [FILT_ROUT_HASH_EN] = &reg_filt_rout_hash_en, 408 + [FILT_ROUT_HASH_FLUSH] = &reg_filt_rout_hash_flush, 409 + [STATE_AGGR_ACTIVE] = &reg_state_aggr_active, 410 + [IPA_BCR] = &reg_ipa_bcr, 411 + [LOCAL_PKT_PROC_CNTXT] = &reg_local_pkt_proc_cntxt, 412 + [AGGR_FORCE_CLOSE] = &reg_aggr_force_close, 413 + [COUNTER_CFG] = &reg_counter_cfg, 414 + [SRC_RSRC_GRP_01_RSRC_TYPE] = &reg_src_rsrc_grp_01_rsrc_type, 415 + [SRC_RSRC_GRP_23_RSRC_TYPE] = &reg_src_rsrc_grp_23_rsrc_type, 416 + [SRC_RSRC_GRP_45_RSRC_TYPE] = &reg_src_rsrc_grp_45_rsrc_type, 417 + [SRC_RSRC_GRP_67_RSRC_TYPE] = &reg_src_rsrc_grp_67_rsrc_type, 418 + [DST_RSRC_GRP_01_RSRC_TYPE] = &reg_dst_rsrc_grp_01_rsrc_type, 419 + [DST_RSRC_GRP_23_RSRC_TYPE] = &reg_dst_rsrc_grp_23_rsrc_type, 420 + [DST_RSRC_GRP_45_RSRC_TYPE] = &reg_dst_rsrc_grp_45_rsrc_type, 421 + [DST_RSRC_GRP_67_RSRC_TYPE] = &reg_dst_rsrc_grp_67_rsrc_type, 422 + [ENDP_INIT_CTRL] = &reg_endp_init_ctrl, 423 + [ENDP_INIT_CFG] = &reg_endp_init_cfg, 424 + [ENDP_INIT_NAT] = &reg_endp_init_nat, 425 + [ENDP_INIT_HDR] = &reg_endp_init_hdr, 426 + [ENDP_INIT_HDR_EXT] = &reg_endp_init_hdr_ext, 427 + [ENDP_INIT_HDR_METADATA_MASK] = &reg_endp_init_hdr_metadata_mask, 428 + [ENDP_INIT_MODE] = &reg_endp_init_mode, 429 + [ENDP_INIT_AGGR] = &reg_endp_init_aggr, 430 + [ENDP_INIT_HOL_BLOCK_EN] = &reg_endp_init_hol_block_en, 431 + [ENDP_INIT_HOL_BLOCK_TIMER] = &reg_endp_init_hol_block_timer, 432 + [ENDP_INIT_DEAGGR] = &reg_endp_init_deaggr, 433 + [ENDP_INIT_RSRC_GRP] = &reg_endp_init_rsrc_grp, 434 + [ENDP_INIT_SEQ] = &reg_endp_init_seq, 435 + [ENDP_STATUS] = &reg_endp_status, 436 + [ENDP_FILTER_ROUTER_HSH_CFG] = &reg_endp_filter_router_hsh_cfg, 437 + [IPA_IRQ_STTS] = &reg_ipa_irq_stts, 438 + [IPA_IRQ_EN] = &reg_ipa_irq_en, 439 + [IPA_IRQ_CLR] = &reg_ipa_irq_clr, 440 + [IPA_IRQ_UC] = &reg_ipa_irq_uc, 441 + [IRQ_SUSPEND_INFO] = &reg_irq_suspend_info, 442 + [IRQ_SUSPEND_EN] = &reg_irq_suspend_en, 443 + [IRQ_SUSPEND_CLR] = &reg_irq_suspend_clr, 443 444 }; 444 445 445 - const struct ipa_regs ipa_regs_v3_1 = { 446 - .reg_count = ARRAY_SIZE(ipa_reg_array), 447 - .reg = ipa_reg_array, 446 + const struct regs ipa_regs_v3_1 = { 447 + .reg_count = ARRAY_SIZE(reg_array), 448 + .reg = reg_array, 448 449 };
+131 -132
drivers/net/ipa/reg/ipa_reg-v3.5.1.c
··· 7 7 #include "../ipa.h" 8 8 #include "../ipa_reg.h" 9 9 10 - static const u32 ipa_reg_comp_cfg_fmask[] = { 10 + static const u32 reg_comp_cfg_fmask[] = { 11 11 [COMP_CFG_ENABLE] = BIT(0), 12 12 [GSI_SNOC_BYPASS_DIS] = BIT(1), 13 13 [GEN_QMB_0_SNOC_BYPASS_DIS] = BIT(2), ··· 16 16 /* Bits 5-31 reserved */ 17 17 }; 18 18 19 - IPA_REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 19 + REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 20 20 21 - static const u32 ipa_reg_clkon_cfg_fmask[] = { 21 + static const u32 reg_clkon_cfg_fmask[] = { 22 22 [CLKON_RX] = BIT(0), 23 23 [CLKON_PROC] = BIT(1), 24 24 [TX_WRAPPER] = BIT(2), ··· 44 44 /* Bits 22-31 reserved */ 45 45 }; 46 46 47 - IPA_REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 47 + REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 48 48 49 - static const u32 ipa_reg_route_fmask[] = { 49 + static const u32 reg_route_fmask[] = { 50 50 [ROUTE_DIS] = BIT(0), 51 51 [ROUTE_DEF_PIPE] = GENMASK(5, 1), 52 52 [ROUTE_DEF_HDR_TABLE] = BIT(6), ··· 57 57 /* Bits 25-31 reserved */ 58 58 }; 59 59 60 - IPA_REG_FIELDS(ROUTE, route, 0x00000048); 60 + REG_FIELDS(ROUTE, route, 0x00000048); 61 61 62 - static const u32 ipa_reg_shared_mem_size_fmask[] = { 62 + static const u32 reg_shared_mem_size_fmask[] = { 63 63 [MEM_SIZE] = GENMASK(15, 0), 64 64 [MEM_BADDR] = GENMASK(31, 16), 65 65 }; 66 66 67 - IPA_REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 67 + REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 68 68 69 - static const u32 ipa_reg_qsb_max_writes_fmask[] = { 69 + static const u32 reg_qsb_max_writes_fmask[] = { 70 70 [GEN_QMB_0_MAX_WRITES] = GENMASK(3, 0), 71 71 [GEN_QMB_1_MAX_WRITES] = GENMASK(7, 4), 72 72 /* Bits 8-31 reserved */ 73 73 }; 74 74 75 - IPA_REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 75 + REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 76 76 77 - static const u32 ipa_reg_qsb_max_reads_fmask[] = { 77 + static const u32 reg_qsb_max_reads_fmask[] = { 78 78 [GEN_QMB_0_MAX_READS] = GENMASK(3, 0), 79 79 [GEN_QMB_1_MAX_READS] = GENMASK(7, 4), 80 80 }; 81 81 82 - IPA_REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 82 + REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 83 83 84 - static const u32 ipa_reg_filt_rout_hash_en_fmask[] = { 84 + static const u32 reg_filt_rout_hash_en_fmask[] = { 85 85 [IPV6_ROUTER_HASH] = BIT(0), 86 86 /* Bits 1-3 reserved */ 87 87 [IPV6_FILTER_HASH] = BIT(4), ··· 92 92 /* Bits 13-31 reserved */ 93 93 }; 94 94 95 - IPA_REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x000008c); 95 + REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x000008c); 96 96 97 - static const u32 ipa_reg_filt_rout_hash_flush_fmask[] = { 97 + static const u32 reg_filt_rout_hash_flush_fmask[] = { 98 98 [IPV6_ROUTER_HASH] = BIT(0), 99 99 /* Bits 1-3 reserved */ 100 100 [IPV6_FILTER_HASH] = BIT(4), ··· 105 105 /* Bits 13-31 reserved */ 106 106 }; 107 107 108 - IPA_REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x0000090); 108 + REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x0000090); 109 109 110 110 /* Valid bits defined by ipa->available */ 111 - IPA_REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x0000010c, 0x0004); 111 + REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x0000010c, 0x0004); 112 112 113 - IPA_REG(IPA_BCR, ipa_bcr, 0x000001d0); 113 + REG(IPA_BCR, ipa_bcr, 0x000001d0); 114 114 115 - static const u32 ipa_reg_local_pkt_proc_cntxt_fmask[] = { 115 + static const u32 reg_local_pkt_proc_cntxt_fmask[] = { 116 116 [IPA_BASE_ADDR] = GENMASK(16, 0), 117 117 /* Bits 17-31 reserved */ 118 118 }; 119 119 120 120 /* Offset must be a multiple of 8 */ 121 - IPA_REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 121 + REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 122 122 123 123 /* Valid bits defined by ipa->available */ 124 - IPA_REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 124 + REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 125 125 126 - static const u32 ipa_reg_counter_cfg_fmask[] = { 126 + static const u32 reg_counter_cfg_fmask[] = { 127 127 /* Bits 0-3 reserved */ 128 128 [AGGR_GRANULARITY] = GENMASK(8, 4), 129 129 /* Bits 5-31 reserved */ 130 130 }; 131 131 132 - IPA_REG_FIELDS(COUNTER_CFG, counter_cfg, 0x000001f0); 132 + REG_FIELDS(COUNTER_CFG, counter_cfg, 0x000001f0); 133 133 134 - static const u32 ipa_reg_ipa_tx_cfg_fmask[] = { 134 + static const u32 reg_ipa_tx_cfg_fmask[] = { 135 135 [TX0_PREFETCH_DISABLE] = BIT(0), 136 136 [TX1_PREFETCH_DISABLE] = BIT(1), 137 137 [PREFETCH_ALMOST_EMPTY_SIZE] = GENMASK(4, 2), 138 138 /* Bits 5-31 reserved */ 139 139 }; 140 140 141 - IPA_REG_FIELDS(IPA_TX_CFG, ipa_tx_cfg, 0x000001fc); 141 + REG_FIELDS(IPA_TX_CFG, ipa_tx_cfg, 0x000001fc); 142 142 143 - static const u32 ipa_reg_flavor_0_fmask[] = { 143 + static const u32 reg_flavor_0_fmask[] = { 144 144 [MAX_PIPES] = GENMASK(3, 0), 145 145 /* Bits 4-7 reserved */ 146 146 [MAX_CONS_PIPES] = GENMASK(12, 8), ··· 151 151 /* Bits 28-31 reserved */ 152 152 }; 153 153 154 - IPA_REG_FIELDS(FLAVOR_0, flavor_0, 0x00000210); 154 + REG_FIELDS(FLAVOR_0, flavor_0, 0x00000210); 155 155 156 - static const u32 ipa_reg_idle_indication_cfg_fmask[] = { 156 + static const u32 reg_idle_indication_cfg_fmask[] = { 157 157 [ENTER_IDLE_DEBOUNCE_THRESH] = GENMASK(15, 0), 158 158 [CONST_NON_IDLE_ENABLE] = BIT(16), 159 159 /* Bits 17-31 reserved */ 160 160 }; 161 161 162 - IPA_REG_FIELDS(IDLE_INDICATION_CFG, idle_indication_cfg, 0x00000220); 162 + REG_FIELDS(IDLE_INDICATION_CFG, idle_indication_cfg, 0x00000220); 163 163 164 - static const u32 ipa_reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 164 + static const u32 reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 165 165 [X_MIN_LIM] = GENMASK(5, 0), 166 166 /* Bits 6-7 reserved */ 167 167 [X_MAX_LIM] = GENMASK(13, 8), ··· 172 172 /* Bits 30-31 reserved */ 173 173 }; 174 174 175 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 176 - 0x00000400, 0x0020); 175 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 176 + 0x00000400, 0x0020); 177 177 178 - static const u32 ipa_reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 178 + static const u32 reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 179 179 [X_MIN_LIM] = GENMASK(5, 0), 180 180 /* Bits 6-7 reserved */ 181 181 [X_MAX_LIM] = GENMASK(13, 8), ··· 186 186 /* Bits 30-31 reserved */ 187 187 }; 188 188 189 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 190 - 0x00000404, 0x0020); 189 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 190 + 0x00000404, 0x0020); 191 191 192 - static const u32 ipa_reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 192 + static const u32 reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 193 193 [X_MIN_LIM] = GENMASK(5, 0), 194 194 /* Bits 6-7 reserved */ 195 195 [X_MAX_LIM] = GENMASK(13, 8), ··· 200 200 /* Bits 30-31 reserved */ 201 201 }; 202 202 203 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 204 - 0x00000500, 0x0020); 203 + REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 204 + 0x00000500, 0x0020); 205 205 206 - static const u32 ipa_reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 206 + static const u32 reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 207 207 [X_MIN_LIM] = GENMASK(5, 0), 208 208 /* Bits 6-7 reserved */ 209 209 [X_MAX_LIM] = GENMASK(13, 8), ··· 214 214 /* Bits 30-31 reserved */ 215 215 }; 216 216 217 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 218 - 0x00000504, 0x0020); 217 + REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 218 + 0x00000504, 0x0020); 219 219 220 - static const u32 ipa_reg_endp_init_ctrl_fmask[] = { 220 + static const u32 reg_endp_init_ctrl_fmask[] = { 221 221 [ENDP_SUSPEND] = BIT(0), 222 222 [ENDP_DELAY] = BIT(1), 223 223 /* Bits 2-31 reserved */ 224 224 }; 225 225 226 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_CTRL, endp_init_ctrl, 0x00000800, 0x0070); 226 + REG_STRIDE_FIELDS(ENDP_INIT_CTRL, endp_init_ctrl, 0x00000800, 0x0070); 227 227 228 - static const u32 ipa_reg_endp_init_cfg_fmask[] = { 228 + static const u32 reg_endp_init_cfg_fmask[] = { 229 229 [FRAG_OFFLOAD_EN] = BIT(0), 230 230 [CS_OFFLOAD_EN] = GENMASK(2, 1), 231 231 [CS_METADATA_HDR_OFFSET] = GENMASK(6, 3), ··· 234 234 /* Bits 9-31 reserved */ 235 235 }; 236 236 237 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 237 + REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 238 238 239 - static const u32 ipa_reg_endp_init_nat_fmask[] = { 239 + static const u32 reg_endp_init_nat_fmask[] = { 240 240 [NAT_EN] = GENMASK(1, 0), 241 241 /* Bits 2-31 reserved */ 242 242 }; 243 243 244 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 244 + REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 245 245 246 - static const u32 ipa_reg_endp_init_hdr_fmask[] = { 246 + static const u32 reg_endp_init_hdr_fmask[] = { 247 247 [HDR_LEN] = GENMASK(5, 0), 248 248 [HDR_OFST_METADATA_VALID] = BIT(6), 249 249 [HDR_OFST_METADATA] = GENMASK(12, 7), ··· 256 256 /* Bits 29-31 reserved */ 257 257 }; 258 258 259 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 259 + REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 260 260 261 - static const u32 ipa_reg_endp_init_hdr_ext_fmask[] = { 261 + static const u32 reg_endp_init_hdr_ext_fmask[] = { 262 262 [HDR_ENDIANNESS] = BIT(0), 263 263 [HDR_TOTAL_LEN_OR_PAD_VALID] = BIT(1), 264 264 [HDR_TOTAL_LEN_OR_PAD] = BIT(2), ··· 268 268 /* Bits 14-31 reserved */ 269 269 }; 270 270 271 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 271 + REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 272 272 273 - IPA_REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 274 - 0x00000818, 0x0070); 273 + REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 274 + 0x00000818, 0x0070); 275 275 276 - static const u32 ipa_reg_endp_init_mode_fmask[] = { 276 + static const u32 reg_endp_init_mode_fmask[] = { 277 277 [ENDP_MODE] = GENMASK(2, 0), 278 278 /* Bit 3 reserved */ 279 279 [DEST_PIPE_INDEX] = GENMASK(8, 4), ··· 285 285 /* Bit 31 reserved */ 286 286 }; 287 287 288 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 288 + REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 289 289 290 - static const u32 ipa_reg_endp_init_aggr_fmask[] = { 290 + static const u32 reg_endp_init_aggr_fmask[] = { 291 291 [AGGR_EN] = GENMASK(1, 0), 292 292 [AGGR_TYPE] = GENMASK(4, 2), 293 293 [BYTE_LIMIT] = GENMASK(9, 5), ··· 300 300 /* Bits 25-31 reserved */ 301 301 }; 302 302 303 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 303 + REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 304 304 305 - static const u32 ipa_reg_endp_init_hol_block_en_fmask[] = { 305 + static const u32 reg_endp_init_hol_block_en_fmask[] = { 306 306 [HOL_BLOCK_EN] = BIT(0), 307 307 /* Bits 1-31 reserved */ 308 308 }; 309 309 310 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 311 - 0x0000082c, 0x0070); 310 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 311 + 0x0000082c, 0x0070); 312 312 313 313 /* Entire register is a tick count */ 314 - static const u32 ipa_reg_endp_init_hol_block_timer_fmask[] = { 314 + static const u32 reg_endp_init_hol_block_timer_fmask[] = { 315 315 [TIMER_BASE_VALUE] = GENMASK(31, 0), 316 316 }; 317 317 318 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 319 - 0x00000830, 0x0070); 318 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 319 + 0x00000830, 0x0070); 320 320 321 - static const u32 ipa_reg_endp_init_deaggr_fmask[] = { 321 + static const u32 reg_endp_init_deaggr_fmask[] = { 322 322 [DEAGGR_HDR_LEN] = GENMASK(5, 0), 323 323 [SYSPIPE_ERR_DETECTION] = BIT(6), 324 324 [PACKET_OFFSET_VALID] = BIT(7), ··· 328 328 [MAX_PACKET_LEN] = GENMASK(31, 16), 329 329 }; 330 330 331 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 331 + REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 332 332 333 - static const u32 ipa_reg_endp_init_rsrc_grp_fmask[] = { 333 + static const u32 reg_endp_init_rsrc_grp_fmask[] = { 334 334 [ENDP_RSRC_GRP] = GENMASK(1, 0), 335 335 /* Bits 2-31 reserved */ 336 336 }; 337 337 338 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 339 - 0x00000838, 0x0070); 338 + REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 0x00000838, 0x0070); 340 339 341 - static const u32 ipa_reg_endp_init_seq_fmask[] = { 340 + static const u32 reg_endp_init_seq_fmask[] = { 342 341 [SEQ_TYPE] = GENMASK(7, 0), 343 342 [SEQ_REP_TYPE] = GENMASK(15, 8), 344 343 /* Bits 16-31 reserved */ 345 344 }; 346 345 347 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 346 + REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 348 347 349 - static const u32 ipa_reg_endp_status_fmask[] = { 348 + static const u32 reg_endp_status_fmask[] = { 350 349 [STATUS_EN] = BIT(0), 351 350 [STATUS_ENDP] = GENMASK(5, 1), 352 351 /* Bits 6-7 reserved */ ··· 353 354 /* Bits 9-31 reserved */ 354 355 }; 355 356 356 - IPA_REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 357 + REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 357 358 358 - static const u32 ipa_reg_endp_filter_router_hsh_cfg_fmask[] = { 359 + static const u32 reg_endp_filter_router_hsh_cfg_fmask[] = { 359 360 [FILTER_HASH_MSK_SRC_ID] = BIT(0), 360 361 [FILTER_HASH_MSK_SRC_IP] = BIT(1), 361 362 [FILTER_HASH_MSK_DST_IP] = BIT(2), ··· 376 377 /* Bits 23-31 reserved */ 377 378 }; 378 379 379 - IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG, endp_filter_router_hsh_cfg, 380 - 0x0000085c, 0x0070); 380 + REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG, endp_filter_router_hsh_cfg, 381 + 0x0000085c, 0x0070); 381 382 382 383 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 383 - IPA_REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); 384 + REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); 384 385 385 386 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 386 - IPA_REG(IPA_IRQ_EN, ipa_irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); 387 + REG(IPA_IRQ_EN, ipa_irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); 387 388 388 389 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 389 - IPA_REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); 390 + REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); 390 391 391 - static const u32 ipa_reg_ipa_irq_uc_fmask[] = { 392 + static const u32 reg_ipa_irq_uc_fmask[] = { 392 393 [UC_INTR] = BIT(0), 393 394 /* Bits 1-31 reserved */ 394 395 }; 395 396 396 - IPA_REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); 397 + REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); 397 398 398 399 /* Valid bits defined by ipa->available */ 399 - IPA_REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 400 - 0x00003030 + 0x1000 * GSI_EE_AP, 0x0004); 400 + REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 401 + 0x00003030 + 0x1000 * GSI_EE_AP, 0x0004); 401 402 402 403 /* Valid bits defined by ipa->available */ 403 - IPA_REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 404 - 0x00003034 + 0x1000 * GSI_EE_AP, 0x0004); 404 + REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 405 + 0x00003034 + 0x1000 * GSI_EE_AP, 0x0004); 405 406 406 407 /* Valid bits defined by ipa->available */ 407 - IPA_REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 408 - 0x00003038 + 0x1000 * GSI_EE_AP, 0x0004); 408 + REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 409 + 0x00003038 + 0x1000 * GSI_EE_AP, 0x0004); 409 410 410 - static const struct ipa_reg *ipa_reg_array[] = { 411 - [COMP_CFG] = &ipa_reg_comp_cfg, 412 - [CLKON_CFG] = &ipa_reg_clkon_cfg, 413 - [ROUTE] = &ipa_reg_route, 414 - [SHARED_MEM_SIZE] = &ipa_reg_shared_mem_size, 415 - [QSB_MAX_WRITES] = &ipa_reg_qsb_max_writes, 416 - [QSB_MAX_READS] = &ipa_reg_qsb_max_reads, 417 - [FILT_ROUT_HASH_EN] = &ipa_reg_filt_rout_hash_en, 418 - [FILT_ROUT_HASH_FLUSH] = &ipa_reg_filt_rout_hash_flush, 419 - [STATE_AGGR_ACTIVE] = &ipa_reg_state_aggr_active, 420 - [IPA_BCR] = &ipa_reg_ipa_bcr, 421 - [LOCAL_PKT_PROC_CNTXT] = &ipa_reg_local_pkt_proc_cntxt, 422 - [AGGR_FORCE_CLOSE] = &ipa_reg_aggr_force_close, 423 - [COUNTER_CFG] = &ipa_reg_counter_cfg, 424 - [IPA_TX_CFG] = &ipa_reg_ipa_tx_cfg, 425 - [FLAVOR_0] = &ipa_reg_flavor_0, 426 - [IDLE_INDICATION_CFG] = &ipa_reg_idle_indication_cfg, 427 - [SRC_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_01_rsrc_type, 428 - [SRC_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_23_rsrc_type, 429 - [DST_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_01_rsrc_type, 430 - [DST_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_23_rsrc_type, 431 - [ENDP_INIT_CTRL] = &ipa_reg_endp_init_ctrl, 432 - [ENDP_INIT_CFG] = &ipa_reg_endp_init_cfg, 433 - [ENDP_INIT_NAT] = &ipa_reg_endp_init_nat, 434 - [ENDP_INIT_HDR] = &ipa_reg_endp_init_hdr, 435 - [ENDP_INIT_HDR_EXT] = &ipa_reg_endp_init_hdr_ext, 436 - [ENDP_INIT_HDR_METADATA_MASK] = &ipa_reg_endp_init_hdr_metadata_mask, 437 - [ENDP_INIT_MODE] = &ipa_reg_endp_init_mode, 438 - [ENDP_INIT_AGGR] = &ipa_reg_endp_init_aggr, 439 - [ENDP_INIT_HOL_BLOCK_EN] = &ipa_reg_endp_init_hol_block_en, 440 - [ENDP_INIT_HOL_BLOCK_TIMER] = &ipa_reg_endp_init_hol_block_timer, 441 - [ENDP_INIT_DEAGGR] = &ipa_reg_endp_init_deaggr, 442 - [ENDP_INIT_RSRC_GRP] = &ipa_reg_endp_init_rsrc_grp, 443 - [ENDP_INIT_SEQ] = &ipa_reg_endp_init_seq, 444 - [ENDP_STATUS] = &ipa_reg_endp_status, 445 - [ENDP_FILTER_ROUTER_HSH_CFG] = &ipa_reg_endp_filter_router_hsh_cfg, 446 - [IPA_IRQ_STTS] = &ipa_reg_ipa_irq_stts, 447 - [IPA_IRQ_EN] = &ipa_reg_ipa_irq_en, 448 - [IPA_IRQ_CLR] = &ipa_reg_ipa_irq_clr, 449 - [IPA_IRQ_UC] = &ipa_reg_ipa_irq_uc, 450 - [IRQ_SUSPEND_INFO] = &ipa_reg_irq_suspend_info, 451 - [IRQ_SUSPEND_EN] = &ipa_reg_irq_suspend_en, 452 - [IRQ_SUSPEND_CLR] = &ipa_reg_irq_suspend_clr, 411 + static const struct reg *reg_array[] = { 412 + [COMP_CFG] = &reg_comp_cfg, 413 + [CLKON_CFG] = &reg_clkon_cfg, 414 + [ROUTE] = &reg_route, 415 + [SHARED_MEM_SIZE] = &reg_shared_mem_size, 416 + [QSB_MAX_WRITES] = &reg_qsb_max_writes, 417 + [QSB_MAX_READS] = &reg_qsb_max_reads, 418 + [FILT_ROUT_HASH_EN] = &reg_filt_rout_hash_en, 419 + [FILT_ROUT_HASH_FLUSH] = &reg_filt_rout_hash_flush, 420 + [STATE_AGGR_ACTIVE] = &reg_state_aggr_active, 421 + [IPA_BCR] = &reg_ipa_bcr, 422 + [LOCAL_PKT_PROC_CNTXT] = &reg_local_pkt_proc_cntxt, 423 + [AGGR_FORCE_CLOSE] = &reg_aggr_force_close, 424 + [COUNTER_CFG] = &reg_counter_cfg, 425 + [IPA_TX_CFG] = &reg_ipa_tx_cfg, 426 + [FLAVOR_0] = &reg_flavor_0, 427 + [IDLE_INDICATION_CFG] = &reg_idle_indication_cfg, 428 + [SRC_RSRC_GRP_01_RSRC_TYPE] = &reg_src_rsrc_grp_01_rsrc_type, 429 + [SRC_RSRC_GRP_23_RSRC_TYPE] = &reg_src_rsrc_grp_23_rsrc_type, 430 + [DST_RSRC_GRP_01_RSRC_TYPE] = &reg_dst_rsrc_grp_01_rsrc_type, 431 + [DST_RSRC_GRP_23_RSRC_TYPE] = &reg_dst_rsrc_grp_23_rsrc_type, 432 + [ENDP_INIT_CTRL] = &reg_endp_init_ctrl, 433 + [ENDP_INIT_CFG] = &reg_endp_init_cfg, 434 + [ENDP_INIT_NAT] = &reg_endp_init_nat, 435 + [ENDP_INIT_HDR] = &reg_endp_init_hdr, 436 + [ENDP_INIT_HDR_EXT] = &reg_endp_init_hdr_ext, 437 + [ENDP_INIT_HDR_METADATA_MASK] = &reg_endp_init_hdr_metadata_mask, 438 + [ENDP_INIT_MODE] = &reg_endp_init_mode, 439 + [ENDP_INIT_AGGR] = &reg_endp_init_aggr, 440 + [ENDP_INIT_HOL_BLOCK_EN] = &reg_endp_init_hol_block_en, 441 + [ENDP_INIT_HOL_BLOCK_TIMER] = &reg_endp_init_hol_block_timer, 442 + [ENDP_INIT_DEAGGR] = &reg_endp_init_deaggr, 443 + [ENDP_INIT_RSRC_GRP] = &reg_endp_init_rsrc_grp, 444 + [ENDP_INIT_SEQ] = &reg_endp_init_seq, 445 + [ENDP_STATUS] = &reg_endp_status, 446 + [ENDP_FILTER_ROUTER_HSH_CFG] = &reg_endp_filter_router_hsh_cfg, 447 + [IPA_IRQ_STTS] = &reg_ipa_irq_stts, 448 + [IPA_IRQ_EN] = &reg_ipa_irq_en, 449 + [IPA_IRQ_CLR] = &reg_ipa_irq_clr, 450 + [IPA_IRQ_UC] = &reg_ipa_irq_uc, 451 + [IRQ_SUSPEND_INFO] = &reg_irq_suspend_info, 452 + [IRQ_SUSPEND_EN] = &reg_irq_suspend_en, 453 + [IRQ_SUSPEND_CLR] = &reg_irq_suspend_clr, 453 454 }; 454 455 455 - const struct ipa_regs ipa_regs_v3_5_1 = { 456 - .reg_count = ARRAY_SIZE(ipa_reg_array), 457 - .reg = ipa_reg_array, 456 + const struct regs ipa_regs_v3_5_1 = { 457 + .reg_count = ARRAY_SIZE(reg_array), 458 + .reg = reg_array, 458 459 };
+132 -133
drivers/net/ipa/reg/ipa_reg-v4.11.c
··· 7 7 #include "../ipa.h" 8 8 #include "../ipa_reg.h" 9 9 10 - static const u32 ipa_reg_comp_cfg_fmask[] = { 10 + static const u32 reg_comp_cfg_fmask[] = { 11 11 [RAM_ARB_PRI_CLIENT_SAMP_FIX_DIS] = BIT(0), 12 12 [GSI_SNOC_BYPASS_DIS] = BIT(1), 13 13 [GEN_QMB_0_SNOC_BYPASS_DIS] = BIT(2), ··· 36 36 [GEN_QMB_0_DYNAMIC_ASIZE] = BIT(31), 37 37 }; 38 38 39 - IPA_REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 39 + REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 40 40 41 - static const u32 ipa_reg_clkon_cfg_fmask[] = { 41 + static const u32 reg_clkon_cfg_fmask[] = { 42 42 [CLKON_RX] = BIT(0), 43 43 [CLKON_PROC] = BIT(1), 44 44 [TX_WRAPPER] = BIT(2), ··· 73 73 [DRBIP] = BIT(31), 74 74 }; 75 75 76 - IPA_REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 76 + REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 77 77 78 - static const u32 ipa_reg_route_fmask[] = { 78 + static const u32 reg_route_fmask[] = { 79 79 [ROUTE_DIS] = BIT(0), 80 80 [ROUTE_DEF_PIPE] = GENMASK(5, 1), 81 81 [ROUTE_DEF_HDR_TABLE] = BIT(6), ··· 86 86 /* Bits 25-31 reserved */ 87 87 }; 88 88 89 - IPA_REG_FIELDS(ROUTE, route, 0x00000048); 89 + REG_FIELDS(ROUTE, route, 0x00000048); 90 90 91 - static const u32 ipa_reg_shared_mem_size_fmask[] = { 91 + static const u32 reg_shared_mem_size_fmask[] = { 92 92 [MEM_SIZE] = GENMASK(15, 0), 93 93 [MEM_BADDR] = GENMASK(31, 16), 94 94 }; 95 95 96 - IPA_REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 96 + REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 97 97 98 - static const u32 ipa_reg_qsb_max_writes_fmask[] = { 98 + static const u32 reg_qsb_max_writes_fmask[] = { 99 99 [GEN_QMB_0_MAX_WRITES] = GENMASK(3, 0), 100 100 [GEN_QMB_1_MAX_WRITES] = GENMASK(7, 4), 101 101 /* Bits 8-31 reserved */ 102 102 }; 103 103 104 - IPA_REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 104 + REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 105 105 106 - static const u32 ipa_reg_qsb_max_reads_fmask[] = { 106 + static const u32 reg_qsb_max_reads_fmask[] = { 107 107 [GEN_QMB_0_MAX_READS] = GENMASK(3, 0), 108 108 [GEN_QMB_1_MAX_READS] = GENMASK(7, 4), 109 109 /* Bits 8-15 reserved */ ··· 111 111 [GEN_QMB_1_MAX_READS_BEATS] = GENMASK(31, 24), 112 112 }; 113 113 114 - IPA_REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 114 + REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 115 115 116 - static const u32 ipa_reg_filt_rout_hash_en_fmask[] = { 116 + static const u32 reg_filt_rout_hash_en_fmask[] = { 117 117 [IPV6_ROUTER_HASH] = BIT(0), 118 118 /* Bits 1-3 reserved */ 119 119 [IPV6_FILTER_HASH] = BIT(4), ··· 124 124 /* Bits 13-31 reserved */ 125 125 }; 126 126 127 - IPA_REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x0000148); 127 + REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x0000148); 128 128 129 - static const u32 ipa_reg_filt_rout_hash_flush_fmask[] = { 129 + static const u32 reg_filt_rout_hash_flush_fmask[] = { 130 130 [IPV6_ROUTER_HASH] = BIT(0), 131 131 /* Bits 1-3 reserved */ 132 132 [IPV6_FILTER_HASH] = BIT(4), ··· 137 137 /* Bits 13-31 reserved */ 138 138 }; 139 139 140 - IPA_REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x000014c); 140 + REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x000014c); 141 141 142 142 /* Valid bits defined by ipa->available */ 143 - IPA_REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x000000b4, 0x0004); 143 + REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x000000b4, 0x0004); 144 144 145 - static const u32 ipa_reg_local_pkt_proc_cntxt_fmask[] = { 145 + static const u32 reg_local_pkt_proc_cntxt_fmask[] = { 146 146 [IPA_BASE_ADDR] = GENMASK(17, 0), 147 147 /* Bits 18-31 reserved */ 148 148 }; 149 149 150 150 /* Offset must be a multiple of 8 */ 151 - IPA_REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 151 + REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 152 152 153 153 /* Valid bits defined by ipa->available */ 154 - IPA_REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 154 + REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 155 155 156 - static const u32 ipa_reg_ipa_tx_cfg_fmask[] = { 156 + static const u32 reg_ipa_tx_cfg_fmask[] = { 157 157 /* Bits 0-1 reserved */ 158 158 [PREFETCH_ALMOST_EMPTY_SIZE_TX0] = GENMASK(5, 2), 159 159 [DMAW_SCND_OUTSD_PRED_THRESHOLD] = GENMASK(9, 6), ··· 166 166 /* Bits 19-31 reserved */ 167 167 }; 168 168 169 - IPA_REG_FIELDS(IPA_TX_CFG, ipa_tx_cfg, 0x000001fc); 169 + REG_FIELDS(IPA_TX_CFG, ipa_tx_cfg, 0x000001fc); 170 170 171 - static const u32 ipa_reg_flavor_0_fmask[] = { 171 + static const u32 reg_flavor_0_fmask[] = { 172 172 [MAX_PIPES] = GENMASK(4, 0), 173 173 /* Bits 5-7 reserved */ 174 174 [MAX_CONS_PIPES] = GENMASK(12, 8), ··· 179 179 /* Bits 28-31 reserved */ 180 180 }; 181 181 182 - IPA_REG_FIELDS(FLAVOR_0, flavor_0, 0x00000210); 182 + REG_FIELDS(FLAVOR_0, flavor_0, 0x00000210); 183 183 184 - static const u32 ipa_reg_idle_indication_cfg_fmask[] = { 184 + static const u32 reg_idle_indication_cfg_fmask[] = { 185 185 [ENTER_IDLE_DEBOUNCE_THRESH] = GENMASK(15, 0), 186 186 [CONST_NON_IDLE_ENABLE] = BIT(16), 187 187 /* Bits 17-31 reserved */ 188 188 }; 189 189 190 - IPA_REG_FIELDS(IDLE_INDICATION_CFG, idle_indication_cfg, 0x00000240); 190 + REG_FIELDS(IDLE_INDICATION_CFG, idle_indication_cfg, 0x00000240); 191 191 192 - static const u32 ipa_reg_qtime_timestamp_cfg_fmask[] = { 192 + static const u32 reg_qtime_timestamp_cfg_fmask[] = { 193 193 [DPL_TIMESTAMP_LSB] = GENMASK(4, 0), 194 194 /* Bits 5-6 reserved */ 195 195 [DPL_TIMESTAMP_SEL] = BIT(7), ··· 199 199 /* Bits 21-31 reserved */ 200 200 }; 201 201 202 - IPA_REG_FIELDS(QTIME_TIMESTAMP_CFG, qtime_timestamp_cfg, 0x0000024c); 202 + REG_FIELDS(QTIME_TIMESTAMP_CFG, qtime_timestamp_cfg, 0x0000024c); 203 203 204 - static const u32 ipa_reg_timers_xo_clk_div_cfg_fmask[] = { 204 + static const u32 reg_timers_xo_clk_div_cfg_fmask[] = { 205 205 [DIV_VALUE] = GENMASK(8, 0), 206 206 /* Bits 9-30 reserved */ 207 207 [DIV_ENABLE] = BIT(31), 208 208 }; 209 209 210 - IPA_REG_FIELDS(TIMERS_XO_CLK_DIV_CFG, timers_xo_clk_div_cfg, 0x00000250); 210 + REG_FIELDS(TIMERS_XO_CLK_DIV_CFG, timers_xo_clk_div_cfg, 0x00000250); 211 211 212 - static const u32 ipa_reg_timers_pulse_gran_cfg_fmask[] = { 212 + static const u32 reg_timers_pulse_gran_cfg_fmask[] = { 213 213 [PULSE_GRAN_0] = GENMASK(2, 0), 214 214 [PULSE_GRAN_1] = GENMASK(5, 3), 215 215 [PULSE_GRAN_2] = GENMASK(8, 6), 216 216 /* Bits 9-31 reserved */ 217 217 }; 218 218 219 - IPA_REG_FIELDS(TIMERS_PULSE_GRAN_CFG, timers_pulse_gran_cfg, 0x00000254); 219 + REG_FIELDS(TIMERS_PULSE_GRAN_CFG, timers_pulse_gran_cfg, 0x00000254); 220 220 221 - static const u32 ipa_reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 221 + static const u32 reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 222 222 [X_MIN_LIM] = GENMASK(5, 0), 223 223 /* Bits 6-7 reserved */ 224 224 [X_MAX_LIM] = GENMASK(13, 8), ··· 229 229 /* Bits 30-31 reserved */ 230 230 }; 231 231 232 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 233 - 0x00000400, 0x0020); 232 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 233 + 0x00000400, 0x0020); 234 234 235 - static const u32 ipa_reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 235 + static const u32 reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 236 236 [X_MIN_LIM] = GENMASK(5, 0), 237 237 /* Bits 6-7 reserved */ 238 238 [X_MAX_LIM] = GENMASK(13, 8), ··· 243 243 /* Bits 30-31 reserved */ 244 244 }; 245 245 246 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 247 - 0x00000404, 0x0020); 246 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 247 + 0x00000404, 0x0020); 248 248 249 - static const u32 ipa_reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 249 + static const u32 reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 250 250 [X_MIN_LIM] = GENMASK(5, 0), 251 251 /* Bits 6-7 reserved */ 252 252 [X_MAX_LIM] = GENMASK(13, 8), ··· 257 257 /* Bits 30-31 reserved */ 258 258 }; 259 259 260 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 261 - 0x00000500, 0x0020); 260 + REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 261 + 0x00000500, 0x0020); 262 262 263 - static const u32 ipa_reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 263 + static const u32 reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 264 264 [X_MIN_LIM] = GENMASK(5, 0), 265 265 /* Bits 6-7 reserved */ 266 266 [X_MAX_LIM] = GENMASK(13, 8), ··· 271 271 /* Bits 30-31 reserved */ 272 272 }; 273 273 274 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 275 - 0x00000504, 0x0020); 274 + REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 275 + 0x00000504, 0x0020); 276 276 277 - static const u32 ipa_reg_endp_init_cfg_fmask[] = { 277 + static const u32 reg_endp_init_cfg_fmask[] = { 278 278 [FRAG_OFFLOAD_EN] = BIT(0), 279 279 [CS_OFFLOAD_EN] = GENMASK(2, 1), 280 280 [CS_METADATA_HDR_OFFSET] = GENMASK(6, 3), ··· 283 283 /* Bits 9-31 reserved */ 284 284 }; 285 285 286 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 286 + REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 287 287 288 - static const u32 ipa_reg_endp_init_nat_fmask[] = { 288 + static const u32 reg_endp_init_nat_fmask[] = { 289 289 [NAT_EN] = GENMASK(1, 0), 290 290 /* Bits 2-31 reserved */ 291 291 }; 292 292 293 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 293 + REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 294 294 295 - static const u32 ipa_reg_endp_init_hdr_fmask[] = { 295 + static const u32 reg_endp_init_hdr_fmask[] = { 296 296 [HDR_LEN] = GENMASK(5, 0), 297 297 [HDR_OFST_METADATA_VALID] = BIT(6), 298 298 [HDR_OFST_METADATA] = GENMASK(12, 7), ··· 305 305 [HDR_OFST_METADATA_MSB] = GENMASK(31, 30), 306 306 }; 307 307 308 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 308 + REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 309 309 310 - static const u32 ipa_reg_endp_init_hdr_ext_fmask[] = { 310 + static const u32 reg_endp_init_hdr_ext_fmask[] = { 311 311 [HDR_ENDIANNESS] = BIT(0), 312 312 [HDR_TOTAL_LEN_OR_PAD_VALID] = BIT(1), 313 313 [HDR_TOTAL_LEN_OR_PAD] = BIT(2), ··· 321 321 /* Bits 22-31 reserved */ 322 322 }; 323 323 324 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 324 + REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 325 325 326 - IPA_REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 327 - 0x00000818, 0x0070); 326 + REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 327 + 0x00000818, 0x0070); 328 328 329 - static const u32 ipa_reg_endp_init_mode_fmask[] = { 329 + static const u32 reg_endp_init_mode_fmask[] = { 330 330 [ENDP_MODE] = GENMASK(2, 0), 331 331 [DCPH_ENABLE] = BIT(3), 332 332 [DEST_PIPE_INDEX] = GENMASK(8, 4), ··· 338 338 /* Bit 31 reserved */ 339 339 }; 340 340 341 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 341 + REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 342 342 343 - static const u32 ipa_reg_endp_init_aggr_fmask[] = { 343 + static const u32 reg_endp_init_aggr_fmask[] = { 344 344 [AGGR_EN] = GENMASK(1, 0), 345 345 [AGGR_TYPE] = GENMASK(4, 2), 346 346 [BYTE_LIMIT] = GENMASK(10, 5), ··· 355 355 /* Bits 28-31 reserved */ 356 356 }; 357 357 358 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 358 + REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 359 359 360 - static const u32 ipa_reg_endp_init_hol_block_en_fmask[] = { 360 + static const u32 reg_endp_init_hol_block_en_fmask[] = { 361 361 [HOL_BLOCK_EN] = BIT(0), 362 362 /* Bits 1-31 reserved */ 363 363 }; 364 364 365 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 366 - 0x0000082c, 0x0070); 365 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 366 + 0x0000082c, 0x0070); 367 367 368 - static const u32 ipa_reg_endp_init_hol_block_timer_fmask[] = { 368 + static const u32 reg_endp_init_hol_block_timer_fmask[] = { 369 369 [TIMER_LIMIT] = GENMASK(4, 0), 370 370 /* Bits 5-7 reserved */ 371 371 [TIMER_GRAN_SEL] = BIT(8), 372 372 /* Bits 9-31 reserved */ 373 373 }; 374 374 375 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 376 - 0x00000830, 0x0070); 375 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 376 + 0x00000830, 0x0070); 377 377 378 - static const u32 ipa_reg_endp_init_deaggr_fmask[] = { 378 + static const u32 reg_endp_init_deaggr_fmask[] = { 379 379 [DEAGGR_HDR_LEN] = GENMASK(5, 0), 380 380 [SYSPIPE_ERR_DETECTION] = BIT(6), 381 381 [PACKET_OFFSET_VALID] = BIT(7), ··· 385 385 [MAX_PACKET_LEN] = GENMASK(31, 16), 386 386 }; 387 387 388 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 388 + REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 389 389 390 - static const u32 ipa_reg_endp_init_rsrc_grp_fmask[] = { 390 + static const u32 reg_endp_init_rsrc_grp_fmask[] = { 391 391 [ENDP_RSRC_GRP] = GENMASK(1, 0), 392 392 /* Bits 2-31 reserved */ 393 393 }; 394 394 395 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 396 - 0x00000838, 0x0070); 395 + REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 0x00000838, 0x0070); 397 396 398 - static const u32 ipa_reg_endp_init_seq_fmask[] = { 397 + static const u32 reg_endp_init_seq_fmask[] = { 399 398 [SEQ_TYPE] = GENMASK(7, 0), 400 399 /* Bits 8-31 reserved */ 401 400 }; 402 401 403 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 402 + REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 404 403 405 - static const u32 ipa_reg_endp_status_fmask[] = { 404 + static const u32 reg_endp_status_fmask[] = { 406 405 [STATUS_EN] = BIT(0), 407 406 [STATUS_ENDP] = GENMASK(5, 1), 408 407 /* Bits 6-8 reserved */ ··· 409 410 /* Bits 10-31 reserved */ 410 411 }; 411 412 412 - IPA_REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 413 + REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 413 414 414 - static const u32 ipa_reg_endp_filter_router_hsh_cfg_fmask[] = { 415 + static const u32 reg_endp_filter_router_hsh_cfg_fmask[] = { 415 416 [FILTER_HASH_MSK_SRC_ID] = BIT(0), 416 417 [FILTER_HASH_MSK_SRC_IP] = BIT(1), 417 418 [FILTER_HASH_MSK_DST_IP] = BIT(2), ··· 432 433 /* Bits 23-31 reserved */ 433 434 }; 434 435 435 - IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG, endp_filter_router_hsh_cfg, 436 - 0x0000085c, 0x0070); 436 + REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG, endp_filter_router_hsh_cfg, 437 + 0x0000085c, 0x0070); 437 438 438 439 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 439 - IPA_REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00004008 + 0x1000 * GSI_EE_AP); 440 + REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00004008 + 0x1000 * GSI_EE_AP); 440 441 441 442 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 442 - IPA_REG(IPA_IRQ_EN, ipa_irq_en, 0x0000400c + 0x1000 * GSI_EE_AP); 443 + REG(IPA_IRQ_EN, ipa_irq_en, 0x0000400c + 0x1000 * GSI_EE_AP); 443 444 444 445 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 445 - IPA_REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00004010 + 0x1000 * GSI_EE_AP); 446 + REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00004010 + 0x1000 * GSI_EE_AP); 446 447 447 - static const u32 ipa_reg_ipa_irq_uc_fmask[] = { 448 + static const u32 reg_ipa_irq_uc_fmask[] = { 448 449 [UC_INTR] = BIT(0), 449 450 /* Bits 1-31 reserved */ 450 451 }; 451 452 452 - IPA_REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000401c + 0x1000 * GSI_EE_AP); 453 + REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000401c + 0x1000 * GSI_EE_AP); 453 454 454 455 /* Valid bits defined by ipa->available */ 455 - IPA_REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 456 - 0x00004030 + 0x1000 * GSI_EE_AP, 0x0004); 456 + REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 457 + 0x00004030 + 0x1000 * GSI_EE_AP, 0x0004); 457 458 458 459 /* Valid bits defined by ipa->available */ 459 - IPA_REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 460 - 0x00004034 + 0x1000 * GSI_EE_AP, 0x0004); 460 + REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 461 + 0x00004034 + 0x1000 * GSI_EE_AP, 0x0004); 461 462 462 463 /* Valid bits defined by ipa->available */ 463 - IPA_REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 464 - 0x00004038 + 0x1000 * GSI_EE_AP, 0x0004); 464 + REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 465 + 0x00004038 + 0x1000 * GSI_EE_AP, 0x0004); 465 466 466 - static const struct ipa_reg *ipa_reg_array[] = { 467 - [COMP_CFG] = &ipa_reg_comp_cfg, 468 - [CLKON_CFG] = &ipa_reg_clkon_cfg, 469 - [ROUTE] = &ipa_reg_route, 470 - [SHARED_MEM_SIZE] = &ipa_reg_shared_mem_size, 471 - [QSB_MAX_WRITES] = &ipa_reg_qsb_max_writes, 472 - [QSB_MAX_READS] = &ipa_reg_qsb_max_reads, 473 - [FILT_ROUT_HASH_EN] = &ipa_reg_filt_rout_hash_en, 474 - [FILT_ROUT_HASH_FLUSH] = &ipa_reg_filt_rout_hash_flush, 475 - [STATE_AGGR_ACTIVE] = &ipa_reg_state_aggr_active, 476 - [LOCAL_PKT_PROC_CNTXT] = &ipa_reg_local_pkt_proc_cntxt, 477 - [AGGR_FORCE_CLOSE] = &ipa_reg_aggr_force_close, 478 - [IPA_TX_CFG] = &ipa_reg_ipa_tx_cfg, 479 - [FLAVOR_0] = &ipa_reg_flavor_0, 480 - [IDLE_INDICATION_CFG] = &ipa_reg_idle_indication_cfg, 481 - [QTIME_TIMESTAMP_CFG] = &ipa_reg_qtime_timestamp_cfg, 482 - [TIMERS_XO_CLK_DIV_CFG] = &ipa_reg_timers_xo_clk_div_cfg, 483 - [TIMERS_PULSE_GRAN_CFG] = &ipa_reg_timers_pulse_gran_cfg, 484 - [SRC_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_01_rsrc_type, 485 - [SRC_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_23_rsrc_type, 486 - [DST_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_01_rsrc_type, 487 - [DST_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_23_rsrc_type, 488 - [ENDP_INIT_CFG] = &ipa_reg_endp_init_cfg, 489 - [ENDP_INIT_NAT] = &ipa_reg_endp_init_nat, 490 - [ENDP_INIT_HDR] = &ipa_reg_endp_init_hdr, 491 - [ENDP_INIT_HDR_EXT] = &ipa_reg_endp_init_hdr_ext, 492 - [ENDP_INIT_HDR_METADATA_MASK] = &ipa_reg_endp_init_hdr_metadata_mask, 493 - [ENDP_INIT_MODE] = &ipa_reg_endp_init_mode, 494 - [ENDP_INIT_AGGR] = &ipa_reg_endp_init_aggr, 495 - [ENDP_INIT_HOL_BLOCK_EN] = &ipa_reg_endp_init_hol_block_en, 496 - [ENDP_INIT_HOL_BLOCK_TIMER] = &ipa_reg_endp_init_hol_block_timer, 497 - [ENDP_INIT_DEAGGR] = &ipa_reg_endp_init_deaggr, 498 - [ENDP_INIT_RSRC_GRP] = &ipa_reg_endp_init_rsrc_grp, 499 - [ENDP_INIT_SEQ] = &ipa_reg_endp_init_seq, 500 - [ENDP_STATUS] = &ipa_reg_endp_status, 501 - [ENDP_FILTER_ROUTER_HSH_CFG] = &ipa_reg_endp_filter_router_hsh_cfg, 502 - [IPA_IRQ_STTS] = &ipa_reg_ipa_irq_stts, 503 - [IPA_IRQ_EN] = &ipa_reg_ipa_irq_en, 504 - [IPA_IRQ_CLR] = &ipa_reg_ipa_irq_clr, 505 - [IPA_IRQ_UC] = &ipa_reg_ipa_irq_uc, 506 - [IRQ_SUSPEND_INFO] = &ipa_reg_irq_suspend_info, 507 - [IRQ_SUSPEND_EN] = &ipa_reg_irq_suspend_en, 508 - [IRQ_SUSPEND_CLR] = &ipa_reg_irq_suspend_clr, 467 + static const struct reg *reg_array[] = { 468 + [COMP_CFG] = &reg_comp_cfg, 469 + [CLKON_CFG] = &reg_clkon_cfg, 470 + [ROUTE] = &reg_route, 471 + [SHARED_MEM_SIZE] = &reg_shared_mem_size, 472 + [QSB_MAX_WRITES] = &reg_qsb_max_writes, 473 + [QSB_MAX_READS] = &reg_qsb_max_reads, 474 + [FILT_ROUT_HASH_EN] = &reg_filt_rout_hash_en, 475 + [FILT_ROUT_HASH_FLUSH] = &reg_filt_rout_hash_flush, 476 + [STATE_AGGR_ACTIVE] = &reg_state_aggr_active, 477 + [LOCAL_PKT_PROC_CNTXT] = &reg_local_pkt_proc_cntxt, 478 + [AGGR_FORCE_CLOSE] = &reg_aggr_force_close, 479 + [IPA_TX_CFG] = &reg_ipa_tx_cfg, 480 + [FLAVOR_0] = &reg_flavor_0, 481 + [IDLE_INDICATION_CFG] = &reg_idle_indication_cfg, 482 + [QTIME_TIMESTAMP_CFG] = &reg_qtime_timestamp_cfg, 483 + [TIMERS_XO_CLK_DIV_CFG] = &reg_timers_xo_clk_div_cfg, 484 + [TIMERS_PULSE_GRAN_CFG] = &reg_timers_pulse_gran_cfg, 485 + [SRC_RSRC_GRP_01_RSRC_TYPE] = &reg_src_rsrc_grp_01_rsrc_type, 486 + [SRC_RSRC_GRP_23_RSRC_TYPE] = &reg_src_rsrc_grp_23_rsrc_type, 487 + [DST_RSRC_GRP_01_RSRC_TYPE] = &reg_dst_rsrc_grp_01_rsrc_type, 488 + [DST_RSRC_GRP_23_RSRC_TYPE] = &reg_dst_rsrc_grp_23_rsrc_type, 489 + [ENDP_INIT_CFG] = &reg_endp_init_cfg, 490 + [ENDP_INIT_NAT] = &reg_endp_init_nat, 491 + [ENDP_INIT_HDR] = &reg_endp_init_hdr, 492 + [ENDP_INIT_HDR_EXT] = &reg_endp_init_hdr_ext, 493 + [ENDP_INIT_HDR_METADATA_MASK] = &reg_endp_init_hdr_metadata_mask, 494 + [ENDP_INIT_MODE] = &reg_endp_init_mode, 495 + [ENDP_INIT_AGGR] = &reg_endp_init_aggr, 496 + [ENDP_INIT_HOL_BLOCK_EN] = &reg_endp_init_hol_block_en, 497 + [ENDP_INIT_HOL_BLOCK_TIMER] = &reg_endp_init_hol_block_timer, 498 + [ENDP_INIT_DEAGGR] = &reg_endp_init_deaggr, 499 + [ENDP_INIT_RSRC_GRP] = &reg_endp_init_rsrc_grp, 500 + [ENDP_INIT_SEQ] = &reg_endp_init_seq, 501 + [ENDP_STATUS] = &reg_endp_status, 502 + [ENDP_FILTER_ROUTER_HSH_CFG] = &reg_endp_filter_router_hsh_cfg, 503 + [IPA_IRQ_STTS] = &reg_ipa_irq_stts, 504 + [IPA_IRQ_EN] = &reg_ipa_irq_en, 505 + [IPA_IRQ_CLR] = &reg_ipa_irq_clr, 506 + [IPA_IRQ_UC] = &reg_ipa_irq_uc, 507 + [IRQ_SUSPEND_INFO] = &reg_irq_suspend_info, 508 + [IRQ_SUSPEND_EN] = &reg_irq_suspend_en, 509 + [IRQ_SUSPEND_CLR] = &reg_irq_suspend_clr, 509 510 }; 510 511 511 - const struct ipa_regs ipa_regs_v4_11 = { 512 - .reg_count = ARRAY_SIZE(ipa_reg_array), 513 - .reg = ipa_reg_array, 512 + const struct regs ipa_regs_v4_11 = { 513 + .reg_count = ARRAY_SIZE(reg_array), 514 + .reg = reg_array, 514 515 };
+124 -125
drivers/net/ipa/reg/ipa_reg-v4.2.c
··· 7 7 #include "../ipa.h" 8 8 #include "../ipa_reg.h" 9 9 10 - static const u32 ipa_reg_comp_cfg_fmask[] = { 10 + static const u32 reg_comp_cfg_fmask[] = { 11 11 /* Bit 0 reserved */ 12 12 [GSI_SNOC_BYPASS_DIS] = BIT(1), 13 13 [GEN_QMB_0_SNOC_BYPASS_DIS] = BIT(2), ··· 29 29 /* Bits 21-31 reserved */ 30 30 }; 31 31 32 - IPA_REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 32 + REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 33 33 34 - static const u32 ipa_reg_clkon_cfg_fmask[] = { 34 + static const u32 reg_clkon_cfg_fmask[] = { 35 35 [CLKON_RX] = BIT(0), 36 36 [CLKON_PROC] = BIT(1), 37 37 [TX_WRAPPER] = BIT(2), ··· 65 65 /* Bits 30-31 reserved */ 66 66 }; 67 67 68 - IPA_REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 68 + REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 69 69 70 - static const u32 ipa_reg_route_fmask[] = { 70 + static const u32 reg_route_fmask[] = { 71 71 [ROUTE_DIS] = BIT(0), 72 72 [ROUTE_DEF_PIPE] = GENMASK(5, 1), 73 73 [ROUTE_DEF_HDR_TABLE] = BIT(6), ··· 78 78 /* Bits 25-31 reserved */ 79 79 }; 80 80 81 - IPA_REG_FIELDS(ROUTE, route, 0x00000048); 81 + REG_FIELDS(ROUTE, route, 0x00000048); 82 82 83 - static const u32 ipa_reg_shared_mem_size_fmask[] = { 83 + static const u32 reg_shared_mem_size_fmask[] = { 84 84 [MEM_SIZE] = GENMASK(15, 0), 85 85 [MEM_BADDR] = GENMASK(31, 16), 86 86 }; 87 87 88 - IPA_REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 88 + REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 89 89 90 - static const u32 ipa_reg_qsb_max_writes_fmask[] = { 90 + static const u32 reg_qsb_max_writes_fmask[] = { 91 91 [GEN_QMB_0_MAX_WRITES] = GENMASK(3, 0), 92 92 [GEN_QMB_1_MAX_WRITES] = GENMASK(7, 4), 93 93 /* Bits 8-31 reserved */ 94 94 }; 95 95 96 - IPA_REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 96 + REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 97 97 98 - static const u32 ipa_reg_qsb_max_reads_fmask[] = { 98 + static const u32 reg_qsb_max_reads_fmask[] = { 99 99 [GEN_QMB_0_MAX_READS] = GENMASK(3, 0), 100 100 [GEN_QMB_1_MAX_READS] = GENMASK(7, 4), 101 101 /* Bits 8-15 reserved */ ··· 103 103 [GEN_QMB_1_MAX_READS_BEATS] = GENMASK(31, 24), 104 104 }; 105 105 106 - IPA_REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 106 + REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 107 107 108 - static const u32 ipa_reg_filt_rout_hash_en_fmask[] = { 108 + static const u32 reg_filt_rout_hash_en_fmask[] = { 109 109 [IPV6_ROUTER_HASH] = BIT(0), 110 110 /* Bits 1-3 reserved */ 111 111 [IPV6_FILTER_HASH] = BIT(4), ··· 116 116 /* Bits 13-31 reserved */ 117 117 }; 118 118 119 - IPA_REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x0000148); 119 + REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x0000148); 120 120 121 - static const u32 ipa_reg_filt_rout_hash_flush_fmask[] = { 121 + static const u32 reg_filt_rout_hash_flush_fmask[] = { 122 122 [IPV6_ROUTER_HASH] = BIT(0), 123 123 /* Bits 1-3 reserved */ 124 124 [IPV6_FILTER_HASH] = BIT(4), ··· 129 129 /* Bits 13-31 reserved */ 130 130 }; 131 131 132 - IPA_REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x000014c); 132 + REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x000014c); 133 133 134 134 /* Valid bits defined by ipa->available */ 135 - IPA_REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x000000b4, 0x0004); 135 + REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x000000b4, 0x0004); 136 136 137 - IPA_REG(IPA_BCR, ipa_bcr, 0x000001d0); 137 + REG(IPA_BCR, ipa_bcr, 0x000001d0); 138 138 139 - static const u32 ipa_reg_local_pkt_proc_cntxt_fmask[] = { 139 + static const u32 reg_local_pkt_proc_cntxt_fmask[] = { 140 140 [IPA_BASE_ADDR] = GENMASK(16, 0), 141 141 /* Bits 17-31 reserved */ 142 142 }; 143 143 144 144 /* Offset must be a multiple of 8 */ 145 - IPA_REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 145 + REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 146 146 147 147 /* Valid bits defined by ipa->available */ 148 - IPA_REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 148 + REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 149 149 150 - static const u32 ipa_reg_counter_cfg_fmask[] = { 150 + static const u32 reg_counter_cfg_fmask[] = { 151 151 /* Bits 0-3 reserved */ 152 152 [AGGR_GRANULARITY] = GENMASK(8, 4), 153 153 /* Bits 9-31 reserved */ 154 154 }; 155 155 156 - IPA_REG_FIELDS(COUNTER_CFG, counter_cfg, 0x000001f0); 156 + REG_FIELDS(COUNTER_CFG, counter_cfg, 0x000001f0); 157 157 158 - static const u32 ipa_reg_ipa_tx_cfg_fmask[] = { 158 + static const u32 reg_ipa_tx_cfg_fmask[] = { 159 159 /* Bits 0-1 reserved */ 160 160 [PREFETCH_ALMOST_EMPTY_SIZE_TX0] = GENMASK(5, 2), 161 161 [DMAW_SCND_OUTSD_PRED_THRESHOLD] = GENMASK(9, 6), ··· 169 169 /* Bits 20-31 reserved */ 170 170 }; 171 171 172 - IPA_REG_FIELDS(IPA_TX_CFG, ipa_tx_cfg, 0x000001fc); 172 + REG_FIELDS(IPA_TX_CFG, ipa_tx_cfg, 0x000001fc); 173 173 174 - static const u32 ipa_reg_flavor_0_fmask[] = { 174 + static const u32 reg_flavor_0_fmask[] = { 175 175 [MAX_PIPES] = GENMASK(3, 0), 176 176 /* Bits 4-7 reserved */ 177 177 [MAX_CONS_PIPES] = GENMASK(12, 8), ··· 182 182 /* Bits 28-31 reserved */ 183 183 }; 184 184 185 - IPA_REG_FIELDS(FLAVOR_0, flavor_0, 0x00000210); 185 + REG_FIELDS(FLAVOR_0, flavor_0, 0x00000210); 186 186 187 - static const u32 ipa_reg_idle_indication_cfg_fmask[] = { 187 + static const u32 reg_idle_indication_cfg_fmask[] = { 188 188 [ENTER_IDLE_DEBOUNCE_THRESH] = GENMASK(15, 0), 189 189 [CONST_NON_IDLE_ENABLE] = BIT(16), 190 190 /* Bits 17-31 reserved */ 191 191 }; 192 192 193 - IPA_REG_FIELDS(IDLE_INDICATION_CFG, idle_indication_cfg, 0x00000240); 193 + REG_FIELDS(IDLE_INDICATION_CFG, idle_indication_cfg, 0x00000240); 194 194 195 - static const u32 ipa_reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 195 + static const u32 reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 196 196 [X_MIN_LIM] = GENMASK(5, 0), 197 197 /* Bits 6-7 reserved */ 198 198 [X_MAX_LIM] = GENMASK(13, 8), ··· 203 203 /* Bits 30-31 reserved */ 204 204 }; 205 205 206 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 207 - 0x00000400, 0x0020); 206 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 207 + 0x00000400, 0x0020); 208 208 209 - static const u32 ipa_reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 209 + static const u32 reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 210 210 [X_MIN_LIM] = GENMASK(5, 0), 211 211 /* Bits 6-7 reserved */ 212 212 [X_MAX_LIM] = GENMASK(13, 8), ··· 217 217 /* Bits 30-31 reserved */ 218 218 }; 219 219 220 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 221 - 0x00000404, 0x0020); 220 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 221 + 0x00000404, 0x0020); 222 222 223 - static const u32 ipa_reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 223 + static const u32 reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 224 224 [X_MIN_LIM] = GENMASK(5, 0), 225 225 /* Bits 6-7 reserved */ 226 226 [X_MAX_LIM] = GENMASK(13, 8), ··· 231 231 /* Bits 30-31 reserved */ 232 232 }; 233 233 234 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 235 - 0x00000500, 0x0020); 234 + REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 235 + 0x00000500, 0x0020); 236 236 237 - static const u32 ipa_reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 237 + static const u32 reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 238 238 [X_MIN_LIM] = GENMASK(5, 0), 239 239 /* Bits 6-7 reserved */ 240 240 [X_MAX_LIM] = GENMASK(13, 8), ··· 245 245 /* Bits 30-31 reserved */ 246 246 }; 247 247 248 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 249 - 0x00000504, 0x0020); 248 + REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 249 + 0x00000504, 0x0020); 250 250 251 - static const u32 ipa_reg_endp_init_cfg_fmask[] = { 251 + static const u32 reg_endp_init_cfg_fmask[] = { 252 252 [FRAG_OFFLOAD_EN] = BIT(0), 253 253 [CS_OFFLOAD_EN] = GENMASK(2, 1), 254 254 [CS_METADATA_HDR_OFFSET] = GENMASK(6, 3), ··· 257 257 /* Bits 9-31 reserved */ 258 258 }; 259 259 260 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 260 + REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 261 261 262 - static const u32 ipa_reg_endp_init_nat_fmask[] = { 262 + static const u32 reg_endp_init_nat_fmask[] = { 263 263 [NAT_EN] = GENMASK(1, 0), 264 264 /* Bits 2-31 reserved */ 265 265 }; 266 266 267 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 267 + REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 268 268 269 - static const u32 ipa_reg_endp_init_hdr_fmask[] = { 269 + static const u32 reg_endp_init_hdr_fmask[] = { 270 270 [HDR_LEN] = GENMASK(5, 0), 271 271 [HDR_OFST_METADATA_VALID] = BIT(6), 272 272 [HDR_OFST_METADATA] = GENMASK(12, 7), ··· 279 279 /* Bits 29-31 reserved */ 280 280 }; 281 281 282 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 282 + REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 283 283 284 - static const u32 ipa_reg_endp_init_hdr_ext_fmask[] = { 284 + static const u32 reg_endp_init_hdr_ext_fmask[] = { 285 285 [HDR_ENDIANNESS] = BIT(0), 286 286 [HDR_TOTAL_LEN_OR_PAD_VALID] = BIT(1), 287 287 [HDR_TOTAL_LEN_OR_PAD] = BIT(2), ··· 291 291 /* Bits 14-31 reserved */ 292 292 }; 293 293 294 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 294 + REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 295 295 296 - IPA_REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 297 - 0x00000818, 0x0070); 296 + REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 297 + 0x00000818, 0x0070); 298 298 299 - static const u32 ipa_reg_endp_init_mode_fmask[] = { 299 + static const u32 reg_endp_init_mode_fmask[] = { 300 300 [ENDP_MODE] = GENMASK(2, 0), 301 301 /* Bit 3 reserved */ 302 302 [DEST_PIPE_INDEX] = GENMASK(8, 4), ··· 308 308 /* Bit 31 reserved */ 309 309 }; 310 310 311 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 311 + REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 312 312 313 - static const u32 ipa_reg_endp_init_aggr_fmask[] = { 313 + static const u32 reg_endp_init_aggr_fmask[] = { 314 314 [AGGR_EN] = GENMASK(1, 0), 315 315 [AGGR_TYPE] = GENMASK(4, 2), 316 316 [BYTE_LIMIT] = GENMASK(9, 5), ··· 323 323 /* Bits 25-31 reserved */ 324 324 }; 325 325 326 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 326 + REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 327 327 328 - static const u32 ipa_reg_endp_init_hol_block_en_fmask[] = { 328 + static const u32 reg_endp_init_hol_block_en_fmask[] = { 329 329 [HOL_BLOCK_EN] = BIT(0), 330 330 /* Bits 1-31 reserved */ 331 331 }; 332 332 333 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 334 - 0x0000082c, 0x0070); 333 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 334 + 0x0000082c, 0x0070); 335 335 336 - static const u32 ipa_reg_endp_init_hol_block_timer_fmask[] = { 336 + static const u32 reg_endp_init_hol_block_timer_fmask[] = { 337 337 [TIMER_BASE_VALUE] = GENMASK(4, 0), 338 338 /* Bits 5-7 reserved */ 339 339 [TIMER_SCALE] = GENMASK(12, 8), 340 340 /* Bits 9-31 reserved */ 341 341 }; 342 342 343 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 344 - 0x00000830, 0x0070); 343 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 344 + 0x00000830, 0x0070); 345 345 346 - static const u32 ipa_reg_endp_init_deaggr_fmask[] = { 346 + static const u32 reg_endp_init_deaggr_fmask[] = { 347 347 [DEAGGR_HDR_LEN] = GENMASK(5, 0), 348 348 [SYSPIPE_ERR_DETECTION] = BIT(6), 349 349 [PACKET_OFFSET_VALID] = BIT(7), ··· 353 353 [MAX_PACKET_LEN] = GENMASK(31, 16), 354 354 }; 355 355 356 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 356 + REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 357 357 358 - static const u32 ipa_reg_endp_init_rsrc_grp_fmask[] = { 358 + static const u32 reg_endp_init_rsrc_grp_fmask[] = { 359 359 [ENDP_RSRC_GRP] = BIT(0), 360 360 /* Bits 1-31 reserved */ 361 361 }; 362 362 363 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 364 - 0x00000838, 0x0070); 363 + REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 0x00000838, 0x0070); 365 364 366 - static const u32 ipa_reg_endp_init_seq_fmask[] = { 365 + static const u32 reg_endp_init_seq_fmask[] = { 367 366 [SEQ_TYPE] = GENMASK(7, 0), 368 367 [SEQ_REP_TYPE] = GENMASK(15, 8), 369 368 /* Bits 16-31 reserved */ 370 369 }; 371 370 372 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 371 + REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 373 372 374 - static const u32 ipa_reg_endp_status_fmask[] = { 373 + static const u32 reg_endp_status_fmask[] = { 375 374 [STATUS_EN] = BIT(0), 376 375 [STATUS_ENDP] = GENMASK(5, 1), 377 376 /* Bits 6-7 reserved */ ··· 379 380 /* Bits 10-31 reserved */ 380 381 }; 381 382 382 - IPA_REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 383 + REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 383 384 384 385 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 385 - IPA_REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); 386 + REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); 386 387 387 388 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 388 - IPA_REG(IPA_IRQ_EN, ipa_irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); 389 + REG(IPA_IRQ_EN, ipa_irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); 389 390 390 391 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 391 - IPA_REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); 392 + REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); 392 393 393 - static const u32 ipa_reg_ipa_irq_uc_fmask[] = { 394 + static const u32 reg_ipa_irq_uc_fmask[] = { 394 395 [UC_INTR] = BIT(0), 395 396 /* Bits 1-31 reserved */ 396 397 }; 397 398 398 - IPA_REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); 399 + REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); 399 400 400 401 /* Valid bits defined by ipa->available */ 401 - IPA_REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 402 - 0x00003030 + 0x1000 * GSI_EE_AP, 0x0004); 402 + REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 403 + 0x00003030 + 0x1000 * GSI_EE_AP, 0x0004); 403 404 404 405 /* Valid bits defined by ipa->available */ 405 - IPA_REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 406 - 0x00003034 + 0x1000 * GSI_EE_AP, 0x0004); 406 + REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 407 + 0x00003034 + 0x1000 * GSI_EE_AP, 0x0004); 407 408 408 409 /* Valid bits defined by ipa->available */ 409 - IPA_REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 410 - 0x00003038 + 0x1000 * GSI_EE_AP, 0x0004); 410 + REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 411 + 0x00003038 + 0x1000 * GSI_EE_AP, 0x0004); 411 412 412 - static const struct ipa_reg *ipa_reg_array[] = { 413 - [COMP_CFG] = &ipa_reg_comp_cfg, 414 - [CLKON_CFG] = &ipa_reg_clkon_cfg, 415 - [ROUTE] = &ipa_reg_route, 416 - [SHARED_MEM_SIZE] = &ipa_reg_shared_mem_size, 417 - [QSB_MAX_WRITES] = &ipa_reg_qsb_max_writes, 418 - [QSB_MAX_READS] = &ipa_reg_qsb_max_reads, 419 - [FILT_ROUT_HASH_EN] = &ipa_reg_filt_rout_hash_en, 420 - [FILT_ROUT_HASH_FLUSH] = &ipa_reg_filt_rout_hash_flush, 421 - [STATE_AGGR_ACTIVE] = &ipa_reg_state_aggr_active, 422 - [IPA_BCR] = &ipa_reg_ipa_bcr, 423 - [LOCAL_PKT_PROC_CNTXT] = &ipa_reg_local_pkt_proc_cntxt, 424 - [AGGR_FORCE_CLOSE] = &ipa_reg_aggr_force_close, 425 - [COUNTER_CFG] = &ipa_reg_counter_cfg, 426 - [IPA_TX_CFG] = &ipa_reg_ipa_tx_cfg, 427 - [FLAVOR_0] = &ipa_reg_flavor_0, 428 - [IDLE_INDICATION_CFG] = &ipa_reg_idle_indication_cfg, 429 - [SRC_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_01_rsrc_type, 430 - [SRC_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_23_rsrc_type, 431 - [DST_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_01_rsrc_type, 432 - [DST_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_23_rsrc_type, 433 - [ENDP_INIT_CFG] = &ipa_reg_endp_init_cfg, 434 - [ENDP_INIT_NAT] = &ipa_reg_endp_init_nat, 435 - [ENDP_INIT_HDR] = &ipa_reg_endp_init_hdr, 436 - [ENDP_INIT_HDR_EXT] = &ipa_reg_endp_init_hdr_ext, 437 - [ENDP_INIT_HDR_METADATA_MASK] = &ipa_reg_endp_init_hdr_metadata_mask, 438 - [ENDP_INIT_MODE] = &ipa_reg_endp_init_mode, 439 - [ENDP_INIT_AGGR] = &ipa_reg_endp_init_aggr, 440 - [ENDP_INIT_HOL_BLOCK_EN] = &ipa_reg_endp_init_hol_block_en, 441 - [ENDP_INIT_HOL_BLOCK_TIMER] = &ipa_reg_endp_init_hol_block_timer, 442 - [ENDP_INIT_DEAGGR] = &ipa_reg_endp_init_deaggr, 443 - [ENDP_INIT_RSRC_GRP] = &ipa_reg_endp_init_rsrc_grp, 444 - [ENDP_INIT_SEQ] = &ipa_reg_endp_init_seq, 445 - [ENDP_STATUS] = &ipa_reg_endp_status, 446 - [IPA_IRQ_STTS] = &ipa_reg_ipa_irq_stts, 447 - [IPA_IRQ_EN] = &ipa_reg_ipa_irq_en, 448 - [IPA_IRQ_CLR] = &ipa_reg_ipa_irq_clr, 449 - [IPA_IRQ_UC] = &ipa_reg_ipa_irq_uc, 450 - [IRQ_SUSPEND_INFO] = &ipa_reg_irq_suspend_info, 451 - [IRQ_SUSPEND_EN] = &ipa_reg_irq_suspend_en, 452 - [IRQ_SUSPEND_CLR] = &ipa_reg_irq_suspend_clr, 413 + static const struct reg *reg_array[] = { 414 + [COMP_CFG] = &reg_comp_cfg, 415 + [CLKON_CFG] = &reg_clkon_cfg, 416 + [ROUTE] = &reg_route, 417 + [SHARED_MEM_SIZE] = &reg_shared_mem_size, 418 + [QSB_MAX_WRITES] = &reg_qsb_max_writes, 419 + [QSB_MAX_READS] = &reg_qsb_max_reads, 420 + [FILT_ROUT_HASH_EN] = &reg_filt_rout_hash_en, 421 + [FILT_ROUT_HASH_FLUSH] = &reg_filt_rout_hash_flush, 422 + [STATE_AGGR_ACTIVE] = &reg_state_aggr_active, 423 + [IPA_BCR] = &reg_ipa_bcr, 424 + [LOCAL_PKT_PROC_CNTXT] = &reg_local_pkt_proc_cntxt, 425 + [AGGR_FORCE_CLOSE] = &reg_aggr_force_close, 426 + [COUNTER_CFG] = &reg_counter_cfg, 427 + [IPA_TX_CFG] = &reg_ipa_tx_cfg, 428 + [FLAVOR_0] = &reg_flavor_0, 429 + [IDLE_INDICATION_CFG] = &reg_idle_indication_cfg, 430 + [SRC_RSRC_GRP_01_RSRC_TYPE] = &reg_src_rsrc_grp_01_rsrc_type, 431 + [SRC_RSRC_GRP_23_RSRC_TYPE] = &reg_src_rsrc_grp_23_rsrc_type, 432 + [DST_RSRC_GRP_01_RSRC_TYPE] = &reg_dst_rsrc_grp_01_rsrc_type, 433 + [DST_RSRC_GRP_23_RSRC_TYPE] = &reg_dst_rsrc_grp_23_rsrc_type, 434 + [ENDP_INIT_CFG] = &reg_endp_init_cfg, 435 + [ENDP_INIT_NAT] = &reg_endp_init_nat, 436 + [ENDP_INIT_HDR] = &reg_endp_init_hdr, 437 + [ENDP_INIT_HDR_EXT] = &reg_endp_init_hdr_ext, 438 + [ENDP_INIT_HDR_METADATA_MASK] = &reg_endp_init_hdr_metadata_mask, 439 + [ENDP_INIT_MODE] = &reg_endp_init_mode, 440 + [ENDP_INIT_AGGR] = &reg_endp_init_aggr, 441 + [ENDP_INIT_HOL_BLOCK_EN] = &reg_endp_init_hol_block_en, 442 + [ENDP_INIT_HOL_BLOCK_TIMER] = &reg_endp_init_hol_block_timer, 443 + [ENDP_INIT_DEAGGR] = &reg_endp_init_deaggr, 444 + [ENDP_INIT_RSRC_GRP] = &reg_endp_init_rsrc_grp, 445 + [ENDP_INIT_SEQ] = &reg_endp_init_seq, 446 + [ENDP_STATUS] = &reg_endp_status, 447 + [IPA_IRQ_STTS] = &reg_ipa_irq_stts, 448 + [IPA_IRQ_EN] = &reg_ipa_irq_en, 449 + [IPA_IRQ_CLR] = &reg_ipa_irq_clr, 450 + [IPA_IRQ_UC] = &reg_ipa_irq_uc, 451 + [IRQ_SUSPEND_INFO] = &reg_irq_suspend_info, 452 + [IRQ_SUSPEND_EN] = &reg_irq_suspend_en, 453 + [IRQ_SUSPEND_CLR] = &reg_irq_suspend_clr, 453 454 }; 454 455 455 - const struct ipa_regs ipa_regs_v4_2 = { 456 - .reg_count = ARRAY_SIZE(ipa_reg_array), 457 - .reg = ipa_reg_array, 456 + const struct regs ipa_regs_v4_2 = { 457 + .reg_count = ARRAY_SIZE(reg_array), 458 + .reg = reg_array, 458 459 };
+140 -141
drivers/net/ipa/reg/ipa_reg-v4.5.c
··· 7 7 #include "../ipa.h" 8 8 #include "../ipa_reg.h" 9 9 10 - static const u32 ipa_reg_comp_cfg_fmask[] = { 10 + static const u32 reg_comp_cfg_fmask[] = { 11 11 /* Bit 0 reserved */ 12 12 [GSI_SNOC_BYPASS_DIS] = BIT(1), 13 13 [GEN_QMB_0_SNOC_BYPASS_DIS] = BIT(2), ··· 30 30 /* Bits 22-31 reserved */ 31 31 }; 32 32 33 - IPA_REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 33 + REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 34 34 35 - static const u32 ipa_reg_clkon_cfg_fmask[] = { 35 + static const u32 reg_clkon_cfg_fmask[] = { 36 36 [CLKON_RX] = BIT(0), 37 37 [CLKON_PROC] = BIT(1), 38 38 [TX_WRAPPER] = BIT(2), ··· 67 67 /* Bit 31 reserved */ 68 68 }; 69 69 70 - IPA_REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 70 + REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 71 71 72 - static const u32 ipa_reg_route_fmask[] = { 72 + static const u32 reg_route_fmask[] = { 73 73 [ROUTE_DIS] = BIT(0), 74 74 [ROUTE_DEF_PIPE] = GENMASK(5, 1), 75 75 [ROUTE_DEF_HDR_TABLE] = BIT(6), ··· 80 80 /* Bits 25-31 reserved */ 81 81 }; 82 82 83 - IPA_REG_FIELDS(ROUTE, route, 0x00000048); 83 + REG_FIELDS(ROUTE, route, 0x00000048); 84 84 85 - static const u32 ipa_reg_shared_mem_size_fmask[] = { 85 + static const u32 reg_shared_mem_size_fmask[] = { 86 86 [MEM_SIZE] = GENMASK(15, 0), 87 87 [MEM_BADDR] = GENMASK(31, 16), 88 88 }; 89 89 90 - IPA_REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 90 + REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 91 91 92 - static const u32 ipa_reg_qsb_max_writes_fmask[] = { 92 + static const u32 reg_qsb_max_writes_fmask[] = { 93 93 [GEN_QMB_0_MAX_WRITES] = GENMASK(3, 0), 94 94 [GEN_QMB_1_MAX_WRITES] = GENMASK(7, 4), 95 95 /* Bits 8-31 reserved */ 96 96 }; 97 97 98 - IPA_REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 98 + REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 99 99 100 - static const u32 ipa_reg_qsb_max_reads_fmask[] = { 100 + static const u32 reg_qsb_max_reads_fmask[] = { 101 101 [GEN_QMB_0_MAX_READS] = GENMASK(3, 0), 102 102 [GEN_QMB_1_MAX_READS] = GENMASK(7, 4), 103 103 /* Bits 8-15 reserved */ ··· 105 105 [GEN_QMB_1_MAX_READS_BEATS] = GENMASK(31, 24), 106 106 }; 107 107 108 - IPA_REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 108 + REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 109 109 110 - static const u32 ipa_reg_filt_rout_hash_en_fmask[] = { 110 + static const u32 reg_filt_rout_hash_en_fmask[] = { 111 111 [IPV6_ROUTER_HASH] = BIT(0), 112 112 /* Bits 1-3 reserved */ 113 113 [IPV6_FILTER_HASH] = BIT(4), ··· 118 118 /* Bits 13-31 reserved */ 119 119 }; 120 120 121 - IPA_REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x0000148); 121 + REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x0000148); 122 122 123 - static const u32 ipa_reg_filt_rout_hash_flush_fmask[] = { 123 + static const u32 reg_filt_rout_hash_flush_fmask[] = { 124 124 [IPV6_ROUTER_HASH] = BIT(0), 125 125 /* Bits 1-3 reserved */ 126 126 [IPV6_FILTER_HASH] = BIT(4), ··· 131 131 /* Bits 13-31 reserved */ 132 132 }; 133 133 134 - IPA_REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x000014c); 134 + REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x000014c); 135 135 136 136 /* Valid bits defined by ipa->available */ 137 - IPA_REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x000000b4, 0x0004); 137 + REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x000000b4, 0x0004); 138 138 139 - static const u32 ipa_reg_local_pkt_proc_cntxt_fmask[] = { 139 + static const u32 reg_local_pkt_proc_cntxt_fmask[] = { 140 140 [IPA_BASE_ADDR] = GENMASK(17, 0), 141 141 /* Bits 18-31 reserved */ 142 142 }; 143 143 144 144 /* Offset must be a multiple of 8 */ 145 - IPA_REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 145 + REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 146 146 147 147 /* Valid bits defined by ipa->available */ 148 - IPA_REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 148 + REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 149 149 150 - static const u32 ipa_reg_ipa_tx_cfg_fmask[] = { 150 + static const u32 reg_ipa_tx_cfg_fmask[] = { 151 151 /* Bits 0-1 reserved */ 152 152 [PREFETCH_ALMOST_EMPTY_SIZE_TX0] = GENMASK(5, 2), 153 153 [DMAW_SCND_OUTSD_PRED_THRESHOLD] = GENMASK(9, 6), ··· 159 159 /* Bits 18-31 reserved */ 160 160 }; 161 161 162 - IPA_REG_FIELDS(IPA_TX_CFG, ipa_tx_cfg, 0x000001fc); 162 + REG_FIELDS(IPA_TX_CFG, ipa_tx_cfg, 0x000001fc); 163 163 164 - static const u32 ipa_reg_flavor_0_fmask[] = { 164 + static const u32 reg_flavor_0_fmask[] = { 165 165 [MAX_PIPES] = GENMASK(3, 0), 166 166 /* Bits 4-7 reserved */ 167 167 [MAX_CONS_PIPES] = GENMASK(12, 8), ··· 172 172 /* Bits 28-31 reserved */ 173 173 }; 174 174 175 - IPA_REG_FIELDS(FLAVOR_0, flavor_0, 0x00000210); 175 + REG_FIELDS(FLAVOR_0, flavor_0, 0x00000210); 176 176 177 - static const u32 ipa_reg_idle_indication_cfg_fmask[] = { 177 + static const u32 reg_idle_indication_cfg_fmask[] = { 178 178 [ENTER_IDLE_DEBOUNCE_THRESH] = GENMASK(15, 0), 179 179 [CONST_NON_IDLE_ENABLE] = BIT(16), 180 180 /* Bits 17-31 reserved */ 181 181 }; 182 182 183 - IPA_REG_FIELDS(IDLE_INDICATION_CFG, idle_indication_cfg, 0x00000240); 183 + REG_FIELDS(IDLE_INDICATION_CFG, idle_indication_cfg, 0x00000240); 184 184 185 - static const u32 ipa_reg_qtime_timestamp_cfg_fmask[] = { 185 + static const u32 reg_qtime_timestamp_cfg_fmask[] = { 186 186 [DPL_TIMESTAMP_LSB] = GENMASK(4, 0), 187 187 /* Bits 5-6 reserved */ 188 188 [DPL_TIMESTAMP_SEL] = BIT(7), ··· 192 192 /* Bits 21-31 reserved */ 193 193 }; 194 194 195 - IPA_REG_FIELDS(QTIME_TIMESTAMP_CFG, qtime_timestamp_cfg, 0x0000024c); 195 + REG_FIELDS(QTIME_TIMESTAMP_CFG, qtime_timestamp_cfg, 0x0000024c); 196 196 197 - static const u32 ipa_reg_timers_xo_clk_div_cfg_fmask[] = { 197 + static const u32 reg_timers_xo_clk_div_cfg_fmask[] = { 198 198 [DIV_VALUE] = GENMASK(8, 0), 199 199 /* Bits 9-30 reserved */ 200 200 [DIV_ENABLE] = BIT(31), 201 201 }; 202 202 203 - IPA_REG_FIELDS(TIMERS_XO_CLK_DIV_CFG, timers_xo_clk_div_cfg, 0x00000250); 203 + REG_FIELDS(TIMERS_XO_CLK_DIV_CFG, timers_xo_clk_div_cfg, 0x00000250); 204 204 205 - static const u32 ipa_reg_timers_pulse_gran_cfg_fmask[] = { 205 + static const u32 reg_timers_pulse_gran_cfg_fmask[] = { 206 206 [PULSE_GRAN_0] = GENMASK(2, 0), 207 207 [PULSE_GRAN_1] = GENMASK(5, 3), 208 208 [PULSE_GRAN_2] = GENMASK(8, 6), 209 209 }; 210 210 211 - IPA_REG_FIELDS(TIMERS_PULSE_GRAN_CFG, timers_pulse_gran_cfg, 0x00000254); 211 + REG_FIELDS(TIMERS_PULSE_GRAN_CFG, timers_pulse_gran_cfg, 0x00000254); 212 212 213 - static const u32 ipa_reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 213 + static const u32 reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 214 214 [X_MIN_LIM] = GENMASK(5, 0), 215 215 /* Bits 6-7 reserved */ 216 216 [X_MAX_LIM] = GENMASK(13, 8), ··· 221 221 /* Bits 30-31 reserved */ 222 222 }; 223 223 224 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 225 - 0x00000400, 0x0020); 224 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 225 + 0x00000400, 0x0020); 226 226 227 - static const u32 ipa_reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 227 + static const u32 reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 228 228 [X_MIN_LIM] = GENMASK(5, 0), 229 229 /* Bits 6-7 reserved */ 230 230 [X_MAX_LIM] = GENMASK(13, 8), ··· 235 235 /* Bits 30-31 reserved */ 236 236 }; 237 237 238 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 239 - 0x00000404, 0x0020); 238 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 239 + 0x00000404, 0x0020); 240 240 241 - static const u32 ipa_reg_src_rsrc_grp_45_rsrc_type_fmask[] = { 241 + static const u32 reg_src_rsrc_grp_45_rsrc_type_fmask[] = { 242 242 [X_MIN_LIM] = GENMASK(5, 0), 243 243 /* Bits 6-7 reserved */ 244 244 [X_MAX_LIM] = GENMASK(13, 8), ··· 249 249 /* Bits 30-31 reserved */ 250 250 }; 251 251 252 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_45_RSRC_TYPE, src_rsrc_grp_45_rsrc_type, 253 - 0x00000408, 0x0020); 252 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_45_RSRC_TYPE, src_rsrc_grp_45_rsrc_type, 253 + 0x00000408, 0x0020); 254 254 255 - static const u32 ipa_reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 255 + static const u32 reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 256 256 [X_MIN_LIM] = GENMASK(5, 0), 257 257 /* Bits 6-7 reserved */ 258 258 [X_MAX_LIM] = GENMASK(13, 8), ··· 263 263 /* Bits 30-31 reserved */ 264 264 }; 265 265 266 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 267 - 0x00000500, 0x0020); 266 + REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 267 + 0x00000500, 0x0020); 268 268 269 - static const u32 ipa_reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 269 + static const u32 reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 270 270 [X_MIN_LIM] = GENMASK(5, 0), 271 271 /* Bits 6-7 reserved */ 272 272 [X_MAX_LIM] = GENMASK(13, 8), ··· 277 277 /* Bits 30-31 reserved */ 278 278 }; 279 279 280 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 281 - 0x00000504, 0x0020); 280 + REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 281 + 0x00000504, 0x0020); 282 282 283 - static const u32 ipa_reg_dst_rsrc_grp_45_rsrc_type_fmask[] = { 283 + static const u32 reg_dst_rsrc_grp_45_rsrc_type_fmask[] = { 284 284 [X_MIN_LIM] = GENMASK(5, 0), 285 285 /* Bits 6-7 reserved */ 286 286 [X_MAX_LIM] = GENMASK(13, 8), ··· 291 291 /* Bits 30-31 reserved */ 292 292 }; 293 293 294 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_45_RSRC_TYPE, dst_rsrc_grp_45_rsrc_type, 295 - 0x00000508, 0x0020); 294 + REG_STRIDE_FIELDS(DST_RSRC_GRP_45_RSRC_TYPE, dst_rsrc_grp_45_rsrc_type, 295 + 0x00000508, 0x0020); 296 296 297 - static const u32 ipa_reg_endp_init_cfg_fmask[] = { 297 + static const u32 reg_endp_init_cfg_fmask[] = { 298 298 [FRAG_OFFLOAD_EN] = BIT(0), 299 299 [CS_OFFLOAD_EN] = GENMASK(2, 1), 300 300 [CS_METADATA_HDR_OFFSET] = GENMASK(6, 3), ··· 303 303 /* Bits 9-31 reserved */ 304 304 }; 305 305 306 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 306 + REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 307 307 308 - static const u32 ipa_reg_endp_init_nat_fmask[] = { 308 + static const u32 reg_endp_init_nat_fmask[] = { 309 309 [NAT_EN] = GENMASK(1, 0), 310 310 /* Bits 2-31 reserved */ 311 311 }; 312 312 313 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 313 + REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 314 314 315 - static const u32 ipa_reg_endp_init_hdr_fmask[] = { 315 + static const u32 reg_endp_init_hdr_fmask[] = { 316 316 [HDR_LEN] = GENMASK(5, 0), 317 317 [HDR_OFST_METADATA_VALID] = BIT(6), 318 318 [HDR_OFST_METADATA] = GENMASK(12, 7), ··· 325 325 [HDR_OFST_METADATA_MSB] = GENMASK(31, 30), 326 326 }; 327 327 328 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 328 + REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 329 329 330 - static const u32 ipa_reg_endp_init_hdr_ext_fmask[] = { 330 + static const u32 reg_endp_init_hdr_ext_fmask[] = { 331 331 [HDR_ENDIANNESS] = BIT(0), 332 332 [HDR_TOTAL_LEN_OR_PAD_VALID] = BIT(1), 333 333 [HDR_TOTAL_LEN_OR_PAD] = BIT(2), ··· 341 341 /* Bits 22-31 reserved */ 342 342 }; 343 343 344 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 344 + REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 345 345 346 - IPA_REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 347 - 0x00000818, 0x0070); 346 + REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 347 + 0x00000818, 0x0070); 348 348 349 - static const u32 ipa_reg_endp_init_mode_fmask[] = { 349 + static const u32 reg_endp_init_mode_fmask[] = { 350 350 [ENDP_MODE] = GENMASK(2, 0), 351 351 [DCPH_ENABLE] = BIT(3), 352 352 [DEST_PIPE_INDEX] = GENMASK(8, 4), ··· 357 357 /* Bits 30-31 reserved */ 358 358 }; 359 359 360 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 360 + REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 361 361 362 - static const u32 ipa_reg_endp_init_aggr_fmask[] = { 362 + static const u32 reg_endp_init_aggr_fmask[] = { 363 363 [AGGR_EN] = GENMASK(1, 0), 364 364 [AGGR_TYPE] = GENMASK(4, 2), 365 365 [BYTE_LIMIT] = GENMASK(10, 5), ··· 374 374 /* Bits 28-31 reserved */ 375 375 }; 376 376 377 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 377 + REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 378 378 379 - static const u32 ipa_reg_endp_init_hol_block_en_fmask[] = { 379 + static const u32 reg_endp_init_hol_block_en_fmask[] = { 380 380 [HOL_BLOCK_EN] = BIT(0), 381 381 /* Bits 1-31 reserved */ 382 382 }; 383 383 384 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 385 - 0x0000082c, 0x0070); 384 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 385 + 0x0000082c, 0x0070); 386 386 387 - static const u32 ipa_reg_endp_init_hol_block_timer_fmask[] = { 387 + static const u32 reg_endp_init_hol_block_timer_fmask[] = { 388 388 [TIMER_LIMIT] = GENMASK(4, 0), 389 389 /* Bits 5-7 reserved */ 390 390 [TIMER_GRAN_SEL] = BIT(8), 391 391 /* Bits 9-31 reserved */ 392 392 }; 393 393 394 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 395 - 0x00000830, 0x0070); 394 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 395 + 0x00000830, 0x0070); 396 396 397 - static const u32 ipa_reg_endp_init_deaggr_fmask[] = { 397 + static const u32 reg_endp_init_deaggr_fmask[] = { 398 398 [DEAGGR_HDR_LEN] = GENMASK(5, 0), 399 399 [SYSPIPE_ERR_DETECTION] = BIT(6), 400 400 [PACKET_OFFSET_VALID] = BIT(7), ··· 404 404 [MAX_PACKET_LEN] = GENMASK(31, 16), 405 405 }; 406 406 407 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 407 + REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 408 408 409 - static const u32 ipa_reg_endp_init_rsrc_grp_fmask[] = { 409 + static const u32 reg_endp_init_rsrc_grp_fmask[] = { 410 410 [ENDP_RSRC_GRP] = GENMASK(2, 0), 411 411 /* Bits 3-31 reserved */ 412 412 }; 413 413 414 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 415 - 0x00000838, 0x0070); 414 + REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 0x00000838, 0x0070); 416 415 417 - static const u32 ipa_reg_endp_init_seq_fmask[] = { 416 + static const u32 reg_endp_init_seq_fmask[] = { 418 417 [SEQ_TYPE] = GENMASK(7, 0), 419 418 /* Bits 8-31 reserved */ 420 419 }; 421 420 422 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 421 + REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 423 422 424 - static const u32 ipa_reg_endp_status_fmask[] = { 423 + static const u32 reg_endp_status_fmask[] = { 425 424 [STATUS_EN] = BIT(0), 426 425 [STATUS_ENDP] = GENMASK(5, 1), 427 426 /* Bits 6-8 reserved */ ··· 428 429 /* Bits 10-31 reserved */ 429 430 }; 430 431 431 - IPA_REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 432 + REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 432 433 433 - static const u32 ipa_reg_endp_filter_router_hsh_cfg_fmask[] = { 434 + static const u32 reg_endp_filter_router_hsh_cfg_fmask[] = { 434 435 [FILTER_HASH_MSK_SRC_ID] = BIT(0), 435 436 [FILTER_HASH_MSK_SRC_IP] = BIT(1), 436 437 [FILTER_HASH_MSK_DST_IP] = BIT(2), ··· 451 452 /* Bits 23-31 reserved */ 452 453 }; 453 454 454 - IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG, endp_filter_router_hsh_cfg, 455 - 0x0000085c, 0x0070); 455 + REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG, endp_filter_router_hsh_cfg, 456 + 0x0000085c, 0x0070); 456 457 457 458 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 458 - IPA_REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); 459 + REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); 459 460 460 461 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 461 - IPA_REG(IPA_IRQ_EN, ipa_irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); 462 + REG(IPA_IRQ_EN, ipa_irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); 462 463 463 464 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 464 - IPA_REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); 465 + REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); 465 466 466 - static const u32 ipa_reg_ipa_irq_uc_fmask[] = { 467 + static const u32 reg_ipa_irq_uc_fmask[] = { 467 468 [UC_INTR] = BIT(0), 468 469 /* Bits 1-31 reserved */ 469 470 }; 470 471 471 - IPA_REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); 472 + REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); 472 473 473 474 /* Valid bits defined by ipa->available */ 474 - IPA_REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 475 - 0x00003030 + 0x1000 * GSI_EE_AP, 0x0004); 475 + REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 476 + 0x00003030 + 0x1000 * GSI_EE_AP, 0x0004); 476 477 477 478 /* Valid bits defined by ipa->available */ 478 - IPA_REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 479 - 0x00003034 + 0x1000 * GSI_EE_AP, 0x0004); 479 + REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 480 + 0x00003034 + 0x1000 * GSI_EE_AP, 0x0004); 480 481 481 482 /* Valid bits defined by ipa->available */ 482 - IPA_REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 483 - 0x00003038 + 0x1000 * GSI_EE_AP, 0x0004); 483 + REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 484 + 0x00003038 + 0x1000 * GSI_EE_AP, 0x0004); 484 485 485 - static const struct ipa_reg *ipa_reg_array[] = { 486 - [COMP_CFG] = &ipa_reg_comp_cfg, 487 - [CLKON_CFG] = &ipa_reg_clkon_cfg, 488 - [ROUTE] = &ipa_reg_route, 489 - [SHARED_MEM_SIZE] = &ipa_reg_shared_mem_size, 490 - [QSB_MAX_WRITES] = &ipa_reg_qsb_max_writes, 491 - [QSB_MAX_READS] = &ipa_reg_qsb_max_reads, 492 - [FILT_ROUT_HASH_EN] = &ipa_reg_filt_rout_hash_en, 493 - [FILT_ROUT_HASH_FLUSH] = &ipa_reg_filt_rout_hash_flush, 494 - [STATE_AGGR_ACTIVE] = &ipa_reg_state_aggr_active, 495 - [LOCAL_PKT_PROC_CNTXT] = &ipa_reg_local_pkt_proc_cntxt, 496 - [AGGR_FORCE_CLOSE] = &ipa_reg_aggr_force_close, 497 - [IPA_TX_CFG] = &ipa_reg_ipa_tx_cfg, 498 - [FLAVOR_0] = &ipa_reg_flavor_0, 499 - [IDLE_INDICATION_CFG] = &ipa_reg_idle_indication_cfg, 500 - [QTIME_TIMESTAMP_CFG] = &ipa_reg_qtime_timestamp_cfg, 501 - [TIMERS_XO_CLK_DIV_CFG] = &ipa_reg_timers_xo_clk_div_cfg, 502 - [TIMERS_PULSE_GRAN_CFG] = &ipa_reg_timers_pulse_gran_cfg, 503 - [SRC_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_01_rsrc_type, 504 - [SRC_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_23_rsrc_type, 505 - [SRC_RSRC_GRP_45_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_45_rsrc_type, 506 - [DST_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_01_rsrc_type, 507 - [DST_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_23_rsrc_type, 508 - [DST_RSRC_GRP_45_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_45_rsrc_type, 509 - [ENDP_INIT_CFG] = &ipa_reg_endp_init_cfg, 510 - [ENDP_INIT_NAT] = &ipa_reg_endp_init_nat, 511 - [ENDP_INIT_HDR] = &ipa_reg_endp_init_hdr, 512 - [ENDP_INIT_HDR_EXT] = &ipa_reg_endp_init_hdr_ext, 513 - [ENDP_INIT_HDR_METADATA_MASK] = &ipa_reg_endp_init_hdr_metadata_mask, 514 - [ENDP_INIT_MODE] = &ipa_reg_endp_init_mode, 515 - [ENDP_INIT_AGGR] = &ipa_reg_endp_init_aggr, 516 - [ENDP_INIT_HOL_BLOCK_EN] = &ipa_reg_endp_init_hol_block_en, 517 - [ENDP_INIT_HOL_BLOCK_TIMER] = &ipa_reg_endp_init_hol_block_timer, 518 - [ENDP_INIT_DEAGGR] = &ipa_reg_endp_init_deaggr, 519 - [ENDP_INIT_RSRC_GRP] = &ipa_reg_endp_init_rsrc_grp, 520 - [ENDP_INIT_SEQ] = &ipa_reg_endp_init_seq, 521 - [ENDP_STATUS] = &ipa_reg_endp_status, 522 - [ENDP_FILTER_ROUTER_HSH_CFG] = &ipa_reg_endp_filter_router_hsh_cfg, 523 - [IPA_IRQ_STTS] = &ipa_reg_ipa_irq_stts, 524 - [IPA_IRQ_EN] = &ipa_reg_ipa_irq_en, 525 - [IPA_IRQ_CLR] = &ipa_reg_ipa_irq_clr, 526 - [IPA_IRQ_UC] = &ipa_reg_ipa_irq_uc, 527 - [IRQ_SUSPEND_INFO] = &ipa_reg_irq_suspend_info, 528 - [IRQ_SUSPEND_EN] = &ipa_reg_irq_suspend_en, 529 - [IRQ_SUSPEND_CLR] = &ipa_reg_irq_suspend_clr, 486 + static const struct reg *reg_array[] = { 487 + [COMP_CFG] = &reg_comp_cfg, 488 + [CLKON_CFG] = &reg_clkon_cfg, 489 + [ROUTE] = &reg_route, 490 + [SHARED_MEM_SIZE] = &reg_shared_mem_size, 491 + [QSB_MAX_WRITES] = &reg_qsb_max_writes, 492 + [QSB_MAX_READS] = &reg_qsb_max_reads, 493 + [FILT_ROUT_HASH_EN] = &reg_filt_rout_hash_en, 494 + [FILT_ROUT_HASH_FLUSH] = &reg_filt_rout_hash_flush, 495 + [STATE_AGGR_ACTIVE] = &reg_state_aggr_active, 496 + [LOCAL_PKT_PROC_CNTXT] = &reg_local_pkt_proc_cntxt, 497 + [AGGR_FORCE_CLOSE] = &reg_aggr_force_close, 498 + [IPA_TX_CFG] = &reg_ipa_tx_cfg, 499 + [FLAVOR_0] = &reg_flavor_0, 500 + [IDLE_INDICATION_CFG] = &reg_idle_indication_cfg, 501 + [QTIME_TIMESTAMP_CFG] = &reg_qtime_timestamp_cfg, 502 + [TIMERS_XO_CLK_DIV_CFG] = &reg_timers_xo_clk_div_cfg, 503 + [TIMERS_PULSE_GRAN_CFG] = &reg_timers_pulse_gran_cfg, 504 + [SRC_RSRC_GRP_01_RSRC_TYPE] = &reg_src_rsrc_grp_01_rsrc_type, 505 + [SRC_RSRC_GRP_23_RSRC_TYPE] = &reg_src_rsrc_grp_23_rsrc_type, 506 + [SRC_RSRC_GRP_45_RSRC_TYPE] = &reg_src_rsrc_grp_45_rsrc_type, 507 + [DST_RSRC_GRP_01_RSRC_TYPE] = &reg_dst_rsrc_grp_01_rsrc_type, 508 + [DST_RSRC_GRP_23_RSRC_TYPE] = &reg_dst_rsrc_grp_23_rsrc_type, 509 + [DST_RSRC_GRP_45_RSRC_TYPE] = &reg_dst_rsrc_grp_45_rsrc_type, 510 + [ENDP_INIT_CFG] = &reg_endp_init_cfg, 511 + [ENDP_INIT_NAT] = &reg_endp_init_nat, 512 + [ENDP_INIT_HDR] = &reg_endp_init_hdr, 513 + [ENDP_INIT_HDR_EXT] = &reg_endp_init_hdr_ext, 514 + [ENDP_INIT_HDR_METADATA_MASK] = &reg_endp_init_hdr_metadata_mask, 515 + [ENDP_INIT_MODE] = &reg_endp_init_mode, 516 + [ENDP_INIT_AGGR] = &reg_endp_init_aggr, 517 + [ENDP_INIT_HOL_BLOCK_EN] = &reg_endp_init_hol_block_en, 518 + [ENDP_INIT_HOL_BLOCK_TIMER] = &reg_endp_init_hol_block_timer, 519 + [ENDP_INIT_DEAGGR] = &reg_endp_init_deaggr, 520 + [ENDP_INIT_RSRC_GRP] = &reg_endp_init_rsrc_grp, 521 + [ENDP_INIT_SEQ] = &reg_endp_init_seq, 522 + [ENDP_STATUS] = &reg_endp_status, 523 + [ENDP_FILTER_ROUTER_HSH_CFG] = &reg_endp_filter_router_hsh_cfg, 524 + [IPA_IRQ_STTS] = &reg_ipa_irq_stts, 525 + [IPA_IRQ_EN] = &reg_ipa_irq_en, 526 + [IPA_IRQ_CLR] = &reg_ipa_irq_clr, 527 + [IPA_IRQ_UC] = &reg_ipa_irq_uc, 528 + [IRQ_SUSPEND_INFO] = &reg_irq_suspend_info, 529 + [IRQ_SUSPEND_EN] = &reg_irq_suspend_en, 530 + [IRQ_SUSPEND_CLR] = &reg_irq_suspend_clr, 530 531 }; 531 532 532 - const struct ipa_regs ipa_regs_v4_5 = { 533 - .reg_count = ARRAY_SIZE(ipa_reg_array), 534 - .reg = ipa_reg_array, 533 + const struct regs ipa_regs_v4_5 = { 534 + .reg_count = ARRAY_SIZE(reg_array), 535 + .reg = reg_array, 535 536 };
+132 -133
drivers/net/ipa/reg/ipa_reg-v4.7.c
··· 7 7 #include "../ipa.h" 8 8 #include "../ipa_reg.h" 9 9 10 - static const u32 ipa_reg_comp_cfg_fmask[] = { 10 + static const u32 reg_comp_cfg_fmask[] = { 11 11 [RAM_ARB_PRI_CLIENT_SAMP_FIX_DIS] = BIT(0), 12 12 [GSI_SNOC_BYPASS_DIS] = BIT(1), 13 13 [GEN_QMB_0_SNOC_BYPASS_DIS] = BIT(2), ··· 30 30 /* Bits 22-31 reserved */ 31 31 }; 32 32 33 - IPA_REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 33 + REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 34 34 35 - static const u32 ipa_reg_clkon_cfg_fmask[] = { 35 + static const u32 reg_clkon_cfg_fmask[] = { 36 36 [CLKON_RX] = BIT(0), 37 37 [CLKON_PROC] = BIT(1), 38 38 [TX_WRAPPER] = BIT(2), ··· 67 67 [DRBIP] = BIT(31), 68 68 }; 69 69 70 - IPA_REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 70 + REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 71 71 72 - static const u32 ipa_reg_route_fmask[] = { 72 + static const u32 reg_route_fmask[] = { 73 73 [ROUTE_DIS] = BIT(0), 74 74 [ROUTE_DEF_PIPE] = GENMASK(5, 1), 75 75 [ROUTE_DEF_HDR_TABLE] = BIT(6), ··· 80 80 /* Bits 25-31 reserved */ 81 81 }; 82 82 83 - IPA_REG_FIELDS(ROUTE, route, 0x00000048); 83 + REG_FIELDS(ROUTE, route, 0x00000048); 84 84 85 - static const u32 ipa_reg_shared_mem_size_fmask[] = { 85 + static const u32 reg_shared_mem_size_fmask[] = { 86 86 [MEM_SIZE] = GENMASK(15, 0), 87 87 [MEM_BADDR] = GENMASK(31, 16), 88 88 }; 89 89 90 - IPA_REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 90 + REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 91 91 92 - static const u32 ipa_reg_qsb_max_writes_fmask[] = { 92 + static const u32 reg_qsb_max_writes_fmask[] = { 93 93 [GEN_QMB_0_MAX_WRITES] = GENMASK(3, 0), 94 94 [GEN_QMB_1_MAX_WRITES] = GENMASK(7, 4), 95 95 /* Bits 8-31 reserved */ 96 96 }; 97 97 98 - IPA_REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 98 + REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 99 99 100 - static const u32 ipa_reg_qsb_max_reads_fmask[] = { 100 + static const u32 reg_qsb_max_reads_fmask[] = { 101 101 [GEN_QMB_0_MAX_READS] = GENMASK(3, 0), 102 102 [GEN_QMB_1_MAX_READS] = GENMASK(7, 4), 103 103 /* Bits 8-15 reserved */ ··· 105 105 [GEN_QMB_1_MAX_READS_BEATS] = GENMASK(31, 24), 106 106 }; 107 107 108 - IPA_REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 108 + REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 109 109 110 - static const u32 ipa_reg_filt_rout_hash_en_fmask[] = { 110 + static const u32 reg_filt_rout_hash_en_fmask[] = { 111 111 [IPV6_ROUTER_HASH] = BIT(0), 112 112 /* Bits 1-3 reserved */ 113 113 [IPV6_FILTER_HASH] = BIT(4), ··· 118 118 /* Bits 13-31 reserved */ 119 119 }; 120 120 121 - IPA_REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x0000148); 121 + REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x0000148); 122 122 123 - static const u32 ipa_reg_filt_rout_hash_flush_fmask[] = { 123 + static const u32 reg_filt_rout_hash_flush_fmask[] = { 124 124 [IPV6_ROUTER_HASH] = BIT(0), 125 125 /* Bits 1-3 reserved */ 126 126 [IPV6_FILTER_HASH] = BIT(4), ··· 131 131 /* Bits 13-31 reserved */ 132 132 }; 133 133 134 - IPA_REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x000014c); 134 + REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x000014c); 135 135 136 136 /* Valid bits defined by ipa->available */ 137 - IPA_REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x000000b4, 0x0004); 137 + REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x000000b4, 0x0004); 138 138 139 - static const u32 ipa_reg_local_pkt_proc_cntxt_fmask[] = { 139 + static const u32 reg_local_pkt_proc_cntxt_fmask[] = { 140 140 [IPA_BASE_ADDR] = GENMASK(17, 0), 141 141 /* Bits 18-31 reserved */ 142 142 }; 143 143 144 144 /* Offset must be a multiple of 8 */ 145 - IPA_REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 145 + REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 146 146 147 147 /* Valid bits defined by ipa->available */ 148 - IPA_REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 148 + REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 149 149 150 - static const u32 ipa_reg_ipa_tx_cfg_fmask[] = { 150 + static const u32 reg_ipa_tx_cfg_fmask[] = { 151 151 /* Bits 0-1 reserved */ 152 152 [PREFETCH_ALMOST_EMPTY_SIZE_TX0] = GENMASK(5, 2), 153 153 [DMAW_SCND_OUTSD_PRED_THRESHOLD] = GENMASK(9, 6), ··· 160 160 /* Bits 19-31 reserved */ 161 161 }; 162 162 163 - IPA_REG_FIELDS(IPA_TX_CFG, ipa_tx_cfg, 0x000001fc); 163 + REG_FIELDS(IPA_TX_CFG, ipa_tx_cfg, 0x000001fc); 164 164 165 - static const u32 ipa_reg_flavor_0_fmask[] = { 165 + static const u32 reg_flavor_0_fmask[] = { 166 166 [MAX_PIPES] = GENMASK(3, 0), 167 167 /* Bits 4-7 reserved */ 168 168 [MAX_CONS_PIPES] = GENMASK(12, 8), ··· 173 173 /* Bits 28-31 reserved */ 174 174 }; 175 175 176 - IPA_REG_FIELDS(FLAVOR_0, flavor_0, 0x00000210); 176 + REG_FIELDS(FLAVOR_0, flavor_0, 0x00000210); 177 177 178 - static const u32 ipa_reg_idle_indication_cfg_fmask[] = { 178 + static const u32 reg_idle_indication_cfg_fmask[] = { 179 179 [ENTER_IDLE_DEBOUNCE_THRESH] = GENMASK(15, 0), 180 180 [CONST_NON_IDLE_ENABLE] = BIT(16), 181 181 /* Bits 17-31 reserved */ 182 182 }; 183 183 184 - IPA_REG_FIELDS(IDLE_INDICATION_CFG, idle_indication_cfg, 0x00000240); 184 + REG_FIELDS(IDLE_INDICATION_CFG, idle_indication_cfg, 0x00000240); 185 185 186 - static const u32 ipa_reg_qtime_timestamp_cfg_fmask[] = { 186 + static const u32 reg_qtime_timestamp_cfg_fmask[] = { 187 187 [DPL_TIMESTAMP_LSB] = GENMASK(4, 0), 188 188 /* Bits 5-6 reserved */ 189 189 [DPL_TIMESTAMP_SEL] = BIT(7), ··· 193 193 /* Bits 21-31 reserved */ 194 194 }; 195 195 196 - IPA_REG_FIELDS(QTIME_TIMESTAMP_CFG, qtime_timestamp_cfg, 0x0000024c); 196 + REG_FIELDS(QTIME_TIMESTAMP_CFG, qtime_timestamp_cfg, 0x0000024c); 197 197 198 - static const u32 ipa_reg_timers_xo_clk_div_cfg_fmask[] = { 198 + static const u32 reg_timers_xo_clk_div_cfg_fmask[] = { 199 199 [DIV_VALUE] = GENMASK(8, 0), 200 200 /* Bits 9-30 reserved */ 201 201 [DIV_ENABLE] = BIT(31), 202 202 }; 203 203 204 - IPA_REG_FIELDS(TIMERS_XO_CLK_DIV_CFG, timers_xo_clk_div_cfg, 0x00000250); 204 + REG_FIELDS(TIMERS_XO_CLK_DIV_CFG, timers_xo_clk_div_cfg, 0x00000250); 205 205 206 - static const u32 ipa_reg_timers_pulse_gran_cfg_fmask[] = { 206 + static const u32 reg_timers_pulse_gran_cfg_fmask[] = { 207 207 [PULSE_GRAN_0] = GENMASK(2, 0), 208 208 [PULSE_GRAN_1] = GENMASK(5, 3), 209 209 [PULSE_GRAN_2] = GENMASK(8, 6), 210 210 }; 211 211 212 - IPA_REG_FIELDS(TIMERS_PULSE_GRAN_CFG, timers_pulse_gran_cfg, 0x00000254); 212 + REG_FIELDS(TIMERS_PULSE_GRAN_CFG, timers_pulse_gran_cfg, 0x00000254); 213 213 214 - static const u32 ipa_reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 214 + static const u32 reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 215 215 [X_MIN_LIM] = GENMASK(5, 0), 216 216 /* Bits 6-7 reserved */ 217 217 [X_MAX_LIM] = GENMASK(13, 8), ··· 222 222 /* Bits 30-31 reserved */ 223 223 }; 224 224 225 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 226 - 0x00000400, 0x0020); 225 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 226 + 0x00000400, 0x0020); 227 227 228 - static const u32 ipa_reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 228 + static const u32 reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 229 229 [X_MIN_LIM] = GENMASK(5, 0), 230 230 /* Bits 6-7 reserved */ 231 231 [X_MAX_LIM] = GENMASK(13, 8), ··· 236 236 /* Bits 30-31 reserved */ 237 237 }; 238 238 239 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 240 - 0x00000404, 0x0020); 239 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 240 + 0x00000404, 0x0020); 241 241 242 - static const u32 ipa_reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 242 + static const u32 reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 243 243 [X_MIN_LIM] = GENMASK(5, 0), 244 244 /* Bits 6-7 reserved */ 245 245 [X_MAX_LIM] = GENMASK(13, 8), ··· 250 250 /* Bits 30-31 reserved */ 251 251 }; 252 252 253 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 254 - 0x00000500, 0x0020); 253 + REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 254 + 0x00000500, 0x0020); 255 255 256 - static const u32 ipa_reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 256 + static const u32 reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 257 257 [X_MIN_LIM] = GENMASK(5, 0), 258 258 /* Bits 6-7 reserved */ 259 259 [X_MAX_LIM] = GENMASK(13, 8), ··· 264 264 /* Bits 30-31 reserved */ 265 265 }; 266 266 267 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 268 - 0x00000504, 0x0020); 267 + REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 268 + 0x00000504, 0x0020); 269 269 270 - static const u32 ipa_reg_endp_init_cfg_fmask[] = { 270 + static const u32 reg_endp_init_cfg_fmask[] = { 271 271 [FRAG_OFFLOAD_EN] = BIT(0), 272 272 [CS_OFFLOAD_EN] = GENMASK(2, 1), 273 273 [CS_METADATA_HDR_OFFSET] = GENMASK(6, 3), ··· 276 276 /* Bits 9-31 reserved */ 277 277 }; 278 278 279 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 279 + REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 280 280 281 - static const u32 ipa_reg_endp_init_nat_fmask[] = { 281 + static const u32 reg_endp_init_nat_fmask[] = { 282 282 [NAT_EN] = GENMASK(1, 0), 283 283 /* Bits 2-31 reserved */ 284 284 }; 285 285 286 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 286 + REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 287 287 288 - static const u32 ipa_reg_endp_init_hdr_fmask[] = { 288 + static const u32 reg_endp_init_hdr_fmask[] = { 289 289 [HDR_LEN] = GENMASK(5, 0), 290 290 [HDR_OFST_METADATA_VALID] = BIT(6), 291 291 [HDR_OFST_METADATA] = GENMASK(12, 7), ··· 298 298 [HDR_OFST_METADATA_MSB] = GENMASK(31, 30), 299 299 }; 300 300 301 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 301 + REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 302 302 303 - static const u32 ipa_reg_endp_init_hdr_ext_fmask[] = { 303 + static const u32 reg_endp_init_hdr_ext_fmask[] = { 304 304 [HDR_ENDIANNESS] = BIT(0), 305 305 [HDR_TOTAL_LEN_OR_PAD_VALID] = BIT(1), 306 306 [HDR_TOTAL_LEN_OR_PAD] = BIT(2), ··· 314 314 /* Bits 22-31 reserved */ 315 315 }; 316 316 317 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 317 + REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 318 318 319 - IPA_REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 320 - 0x00000818, 0x0070); 319 + REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 320 + 0x00000818, 0x0070); 321 321 322 - static const u32 ipa_reg_endp_init_mode_fmask[] = { 322 + static const u32 reg_endp_init_mode_fmask[] = { 323 323 [ENDP_MODE] = GENMASK(2, 0), 324 324 [DCPH_ENABLE] = BIT(3), 325 325 [DEST_PIPE_INDEX] = GENMASK(8, 4), ··· 330 330 /* Bits 30-31 reserved */ 331 331 }; 332 332 333 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 333 + REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 334 334 335 - static const u32 ipa_reg_endp_init_aggr_fmask[] = { 335 + static const u32 reg_endp_init_aggr_fmask[] = { 336 336 [AGGR_EN] = GENMASK(1, 0), 337 337 [AGGR_TYPE] = GENMASK(4, 2), 338 338 [BYTE_LIMIT] = GENMASK(10, 5), ··· 347 347 /* Bits 28-31 reserved */ 348 348 }; 349 349 350 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 350 + REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 351 351 352 - static const u32 ipa_reg_endp_init_hol_block_en_fmask[] = { 352 + static const u32 reg_endp_init_hol_block_en_fmask[] = { 353 353 [HOL_BLOCK_EN] = BIT(0), 354 354 /* Bits 1-31 reserved */ 355 355 }; 356 356 357 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 358 - 0x0000082c, 0x0070); 357 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 358 + 0x0000082c, 0x0070); 359 359 360 - static const u32 ipa_reg_endp_init_hol_block_timer_fmask[] = { 360 + static const u32 reg_endp_init_hol_block_timer_fmask[] = { 361 361 [TIMER_LIMIT] = GENMASK(4, 0), 362 362 /* Bits 5-7 reserved */ 363 363 [TIMER_GRAN_SEL] = BIT(8), 364 364 /* Bits 9-31 reserved */ 365 365 }; 366 366 367 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 368 - 0x00000830, 0x0070); 367 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 368 + 0x00000830, 0x0070); 369 369 370 - static const u32 ipa_reg_endp_init_deaggr_fmask[] = { 370 + static const u32 reg_endp_init_deaggr_fmask[] = { 371 371 [DEAGGR_HDR_LEN] = GENMASK(5, 0), 372 372 [SYSPIPE_ERR_DETECTION] = BIT(6), 373 373 [PACKET_OFFSET_VALID] = BIT(7), ··· 377 377 [MAX_PACKET_LEN] = GENMASK(31, 16), 378 378 }; 379 379 380 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 380 + REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 381 381 382 - static const u32 ipa_reg_endp_init_rsrc_grp_fmask[] = { 382 + static const u32 reg_endp_init_rsrc_grp_fmask[] = { 383 383 [ENDP_RSRC_GRP] = BIT(0), 384 384 /* Bits 1-31 reserved */ 385 385 }; 386 386 387 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 388 - 0x00000838, 0x0070); 387 + REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 0x00000838, 0x0070); 389 388 390 - static const u32 ipa_reg_endp_init_seq_fmask[] = { 389 + static const u32 reg_endp_init_seq_fmask[] = { 391 390 [SEQ_TYPE] = GENMASK(7, 0), 392 391 /* Bits 8-31 reserved */ 393 392 }; 394 393 395 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 394 + REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 396 395 397 - static const u32 ipa_reg_endp_status_fmask[] = { 396 + static const u32 reg_endp_status_fmask[] = { 398 397 [STATUS_EN] = BIT(0), 399 398 [STATUS_ENDP] = GENMASK(5, 1), 400 399 /* Bits 6-8 reserved */ ··· 401 402 /* Bits 10-31 reserved */ 402 403 }; 403 404 404 - IPA_REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 405 + REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 405 406 406 - static const u32 ipa_reg_endp_filter_router_hsh_cfg_fmask[] = { 407 + static const u32 reg_endp_filter_router_hsh_cfg_fmask[] = { 407 408 [FILTER_HASH_MSK_SRC_ID] = BIT(0), 408 409 [FILTER_HASH_MSK_SRC_IP] = BIT(1), 409 410 [FILTER_HASH_MSK_DST_IP] = BIT(2), ··· 424 425 /* Bits 23-31 reserved */ 425 426 }; 426 427 427 - IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG, endp_filter_router_hsh_cfg, 428 - 0x0000085c, 0x0070); 428 + REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG, endp_filter_router_hsh_cfg, 429 + 0x0000085c, 0x0070); 429 430 430 431 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 431 - IPA_REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); 432 + REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); 432 433 433 434 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 434 - IPA_REG(IPA_IRQ_EN, ipa_irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); 435 + REG(IPA_IRQ_EN, ipa_irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); 435 436 436 437 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 437 - IPA_REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); 438 + REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); 438 439 439 - static const u32 ipa_reg_ipa_irq_uc_fmask[] = { 440 + static const u32 reg_ipa_irq_uc_fmask[] = { 440 441 [UC_INTR] = BIT(0), 441 442 /* Bits 1-31 reserved */ 442 443 }; 443 444 444 - IPA_REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); 445 + REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); 445 446 446 447 /* Valid bits defined by ipa->available */ 447 - IPA_REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 448 - 0x00003030 + 0x1000 * GSI_EE_AP, 0x0004); 448 + REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 449 + 0x00003030 + 0x1000 * GSI_EE_AP, 0x0004); 449 450 450 451 /* Valid bits defined by ipa->available */ 451 - IPA_REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 452 - 0x00003034 + 0x1000 * GSI_EE_AP, 0x0004); 452 + REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 453 + 0x00003034 + 0x1000 * GSI_EE_AP, 0x0004); 453 454 454 455 /* Valid bits defined by ipa->available */ 455 - IPA_REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 456 - 0x00003038 + 0x1000 * GSI_EE_AP, 0x0004); 456 + REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 457 + 0x00003038 + 0x1000 * GSI_EE_AP, 0x0004); 457 458 458 - static const struct ipa_reg *ipa_reg_array[] = { 459 - [COMP_CFG] = &ipa_reg_comp_cfg, 460 - [CLKON_CFG] = &ipa_reg_clkon_cfg, 461 - [ROUTE] = &ipa_reg_route, 462 - [SHARED_MEM_SIZE] = &ipa_reg_shared_mem_size, 463 - [QSB_MAX_WRITES] = &ipa_reg_qsb_max_writes, 464 - [QSB_MAX_READS] = &ipa_reg_qsb_max_reads, 465 - [FILT_ROUT_HASH_EN] = &ipa_reg_filt_rout_hash_en, 466 - [FILT_ROUT_HASH_FLUSH] = &ipa_reg_filt_rout_hash_flush, 467 - [STATE_AGGR_ACTIVE] = &ipa_reg_state_aggr_active, 468 - [LOCAL_PKT_PROC_CNTXT] = &ipa_reg_local_pkt_proc_cntxt, 469 - [AGGR_FORCE_CLOSE] = &ipa_reg_aggr_force_close, 470 - [IPA_TX_CFG] = &ipa_reg_ipa_tx_cfg, 471 - [FLAVOR_0] = &ipa_reg_flavor_0, 472 - [IDLE_INDICATION_CFG] = &ipa_reg_idle_indication_cfg, 473 - [QTIME_TIMESTAMP_CFG] = &ipa_reg_qtime_timestamp_cfg, 474 - [TIMERS_XO_CLK_DIV_CFG] = &ipa_reg_timers_xo_clk_div_cfg, 475 - [TIMERS_PULSE_GRAN_CFG] = &ipa_reg_timers_pulse_gran_cfg, 476 - [SRC_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_01_rsrc_type, 477 - [SRC_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_23_rsrc_type, 478 - [DST_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_01_rsrc_type, 479 - [DST_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_23_rsrc_type, 480 - [ENDP_INIT_CFG] = &ipa_reg_endp_init_cfg, 481 - [ENDP_INIT_NAT] = &ipa_reg_endp_init_nat, 482 - [ENDP_INIT_HDR] = &ipa_reg_endp_init_hdr, 483 - [ENDP_INIT_HDR_EXT] = &ipa_reg_endp_init_hdr_ext, 484 - [ENDP_INIT_HDR_METADATA_MASK] = &ipa_reg_endp_init_hdr_metadata_mask, 485 - [ENDP_INIT_MODE] = &ipa_reg_endp_init_mode, 486 - [ENDP_INIT_AGGR] = &ipa_reg_endp_init_aggr, 487 - [ENDP_INIT_HOL_BLOCK_EN] = &ipa_reg_endp_init_hol_block_en, 488 - [ENDP_INIT_HOL_BLOCK_TIMER] = &ipa_reg_endp_init_hol_block_timer, 489 - [ENDP_INIT_DEAGGR] = &ipa_reg_endp_init_deaggr, 490 - [ENDP_INIT_RSRC_GRP] = &ipa_reg_endp_init_rsrc_grp, 491 - [ENDP_INIT_SEQ] = &ipa_reg_endp_init_seq, 492 - [ENDP_STATUS] = &ipa_reg_endp_status, 493 - [ENDP_FILTER_ROUTER_HSH_CFG] = &ipa_reg_endp_filter_router_hsh_cfg, 494 - [IPA_IRQ_STTS] = &ipa_reg_ipa_irq_stts, 495 - [IPA_IRQ_EN] = &ipa_reg_ipa_irq_en, 496 - [IPA_IRQ_CLR] = &ipa_reg_ipa_irq_clr, 497 - [IPA_IRQ_UC] = &ipa_reg_ipa_irq_uc, 498 - [IRQ_SUSPEND_INFO] = &ipa_reg_irq_suspend_info, 499 - [IRQ_SUSPEND_EN] = &ipa_reg_irq_suspend_en, 500 - [IRQ_SUSPEND_CLR] = &ipa_reg_irq_suspend_clr, 459 + static const struct reg *reg_array[] = { 460 + [COMP_CFG] = &reg_comp_cfg, 461 + [CLKON_CFG] = &reg_clkon_cfg, 462 + [ROUTE] = &reg_route, 463 + [SHARED_MEM_SIZE] = &reg_shared_mem_size, 464 + [QSB_MAX_WRITES] = &reg_qsb_max_writes, 465 + [QSB_MAX_READS] = &reg_qsb_max_reads, 466 + [FILT_ROUT_HASH_EN] = &reg_filt_rout_hash_en, 467 + [FILT_ROUT_HASH_FLUSH] = &reg_filt_rout_hash_flush, 468 + [STATE_AGGR_ACTIVE] = &reg_state_aggr_active, 469 + [LOCAL_PKT_PROC_CNTXT] = &reg_local_pkt_proc_cntxt, 470 + [AGGR_FORCE_CLOSE] = &reg_aggr_force_close, 471 + [IPA_TX_CFG] = &reg_ipa_tx_cfg, 472 + [FLAVOR_0] = &reg_flavor_0, 473 + [IDLE_INDICATION_CFG] = &reg_idle_indication_cfg, 474 + [QTIME_TIMESTAMP_CFG] = &reg_qtime_timestamp_cfg, 475 + [TIMERS_XO_CLK_DIV_CFG] = &reg_timers_xo_clk_div_cfg, 476 + [TIMERS_PULSE_GRAN_CFG] = &reg_timers_pulse_gran_cfg, 477 + [SRC_RSRC_GRP_01_RSRC_TYPE] = &reg_src_rsrc_grp_01_rsrc_type, 478 + [SRC_RSRC_GRP_23_RSRC_TYPE] = &reg_src_rsrc_grp_23_rsrc_type, 479 + [DST_RSRC_GRP_01_RSRC_TYPE] = &reg_dst_rsrc_grp_01_rsrc_type, 480 + [DST_RSRC_GRP_23_RSRC_TYPE] = &reg_dst_rsrc_grp_23_rsrc_type, 481 + [ENDP_INIT_CFG] = &reg_endp_init_cfg, 482 + [ENDP_INIT_NAT] = &reg_endp_init_nat, 483 + [ENDP_INIT_HDR] = &reg_endp_init_hdr, 484 + [ENDP_INIT_HDR_EXT] = &reg_endp_init_hdr_ext, 485 + [ENDP_INIT_HDR_METADATA_MASK] = &reg_endp_init_hdr_metadata_mask, 486 + [ENDP_INIT_MODE] = &reg_endp_init_mode, 487 + [ENDP_INIT_AGGR] = &reg_endp_init_aggr, 488 + [ENDP_INIT_HOL_BLOCK_EN] = &reg_endp_init_hol_block_en, 489 + [ENDP_INIT_HOL_BLOCK_TIMER] = &reg_endp_init_hol_block_timer, 490 + [ENDP_INIT_DEAGGR] = &reg_endp_init_deaggr, 491 + [ENDP_INIT_RSRC_GRP] = &reg_endp_init_rsrc_grp, 492 + [ENDP_INIT_SEQ] = &reg_endp_init_seq, 493 + [ENDP_STATUS] = &reg_endp_status, 494 + [ENDP_FILTER_ROUTER_HSH_CFG] = &reg_endp_filter_router_hsh_cfg, 495 + [IPA_IRQ_STTS] = &reg_ipa_irq_stts, 496 + [IPA_IRQ_EN] = &reg_ipa_irq_en, 497 + [IPA_IRQ_CLR] = &reg_ipa_irq_clr, 498 + [IPA_IRQ_UC] = &reg_ipa_irq_uc, 499 + [IRQ_SUSPEND_INFO] = &reg_irq_suspend_info, 500 + [IRQ_SUSPEND_EN] = &reg_irq_suspend_en, 501 + [IRQ_SUSPEND_CLR] = &reg_irq_suspend_clr, 501 502 }; 502 503 503 - const struct ipa_regs ipa_regs_v4_7 = { 504 - .reg_count = ARRAY_SIZE(ipa_reg_array), 505 - .reg = ipa_reg_array, 504 + const struct regs ipa_regs_v4_7 = { 505 + .reg_count = ARRAY_SIZE(reg_array), 506 + .reg = reg_array, 506 507 };
+132 -133
drivers/net/ipa/reg/ipa_reg-v4.9.c
··· 7 7 #include "../ipa.h" 8 8 #include "../ipa_reg.h" 9 9 10 - static const u32 ipa_reg_comp_cfg_fmask[] = { 10 + static const u32 reg_comp_cfg_fmask[] = { 11 11 [RAM_ARB_PRI_CLIENT_SAMP_FIX_DIS] = BIT(0), 12 12 [GSI_SNOC_BYPASS_DIS] = BIT(1), 13 13 [GEN_QMB_0_SNOC_BYPASS_DIS] = BIT(2), ··· 35 35 [GEN_QMB_0_DYNAMIC_ASIZE] = BIT(31), 36 36 }; 37 37 38 - IPA_REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 38 + REG_FIELDS(COMP_CFG, comp_cfg, 0x0000003c); 39 39 40 - static const u32 ipa_reg_clkon_cfg_fmask[] = { 40 + static const u32 reg_clkon_cfg_fmask[] = { 41 41 [CLKON_RX] = BIT(0), 42 42 [CLKON_PROC] = BIT(1), 43 43 [TX_WRAPPER] = BIT(2), ··· 72 72 [DRBIP] = BIT(31), 73 73 }; 74 74 75 - IPA_REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 75 + REG_FIELDS(CLKON_CFG, clkon_cfg, 0x00000044); 76 76 77 - static const u32 ipa_reg_route_fmask[] = { 77 + static const u32 reg_route_fmask[] = { 78 78 [ROUTE_DIS] = BIT(0), 79 79 [ROUTE_DEF_PIPE] = GENMASK(5, 1), 80 80 [ROUTE_DEF_HDR_TABLE] = BIT(6), ··· 85 85 /* Bits 25-31 reserved */ 86 86 }; 87 87 88 - IPA_REG_FIELDS(ROUTE, route, 0x00000048); 88 + REG_FIELDS(ROUTE, route, 0x00000048); 89 89 90 - static const u32 ipa_reg_shared_mem_size_fmask[] = { 90 + static const u32 reg_shared_mem_size_fmask[] = { 91 91 [MEM_SIZE] = GENMASK(15, 0), 92 92 [MEM_BADDR] = GENMASK(31, 16), 93 93 }; 94 94 95 - IPA_REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 95 + REG_FIELDS(SHARED_MEM_SIZE, shared_mem_size, 0x00000054); 96 96 97 - static const u32 ipa_reg_qsb_max_writes_fmask[] = { 97 + static const u32 reg_qsb_max_writes_fmask[] = { 98 98 [GEN_QMB_0_MAX_WRITES] = GENMASK(3, 0), 99 99 [GEN_QMB_1_MAX_WRITES] = GENMASK(7, 4), 100 100 /* Bits 8-31 reserved */ 101 101 }; 102 102 103 - IPA_REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 103 + REG_FIELDS(QSB_MAX_WRITES, qsb_max_writes, 0x00000074); 104 104 105 - static const u32 ipa_reg_qsb_max_reads_fmask[] = { 105 + static const u32 reg_qsb_max_reads_fmask[] = { 106 106 [GEN_QMB_0_MAX_READS] = GENMASK(3, 0), 107 107 [GEN_QMB_1_MAX_READS] = GENMASK(7, 4), 108 108 /* Bits 8-15 reserved */ ··· 110 110 [GEN_QMB_1_MAX_READS_BEATS] = GENMASK(31, 24), 111 111 }; 112 112 113 - IPA_REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 113 + REG_FIELDS(QSB_MAX_READS, qsb_max_reads, 0x00000078); 114 114 115 - static const u32 ipa_reg_filt_rout_hash_en_fmask[] = { 115 + static const u32 reg_filt_rout_hash_en_fmask[] = { 116 116 [IPV6_ROUTER_HASH] = BIT(0), 117 117 /* Bits 1-3 reserved */ 118 118 [IPV6_FILTER_HASH] = BIT(4), ··· 123 123 /* Bits 13-31 reserved */ 124 124 }; 125 125 126 - IPA_REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x0000148); 126 + REG_FIELDS(FILT_ROUT_HASH_EN, filt_rout_hash_en, 0x0000148); 127 127 128 - static const u32 ipa_reg_filt_rout_hash_flush_fmask[] = { 128 + static const u32 reg_filt_rout_hash_flush_fmask[] = { 129 129 [IPV6_ROUTER_HASH] = BIT(0), 130 130 /* Bits 1-3 reserved */ 131 131 [IPV6_FILTER_HASH] = BIT(4), ··· 136 136 /* Bits 13-31 reserved */ 137 137 }; 138 138 139 - IPA_REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x000014c); 139 + REG_FIELDS(FILT_ROUT_HASH_FLUSH, filt_rout_hash_flush, 0x000014c); 140 140 141 141 /* Valid bits defined by ipa->available */ 142 - IPA_REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x000000b4, 0x0004); 142 + REG_STRIDE(STATE_AGGR_ACTIVE, state_aggr_active, 0x000000b4, 0x0004); 143 143 144 - static const u32 ipa_reg_local_pkt_proc_cntxt_fmask[] = { 144 + static const u32 reg_local_pkt_proc_cntxt_fmask[] = { 145 145 [IPA_BASE_ADDR] = GENMASK(17, 0), 146 146 /* Bits 18-31 reserved */ 147 147 }; 148 148 149 149 /* Offset must be a multiple of 8 */ 150 - IPA_REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 150 + REG_FIELDS(LOCAL_PKT_PROC_CNTXT, local_pkt_proc_cntxt, 0x000001e8); 151 151 152 152 /* Valid bits defined by ipa->available */ 153 - IPA_REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 153 + REG_STRIDE(AGGR_FORCE_CLOSE, aggr_force_close, 0x000001ec, 0x0004); 154 154 155 - static const u32 ipa_reg_ipa_tx_cfg_fmask[] = { 155 + static const u32 reg_ipa_tx_cfg_fmask[] = { 156 156 /* Bits 0-1 reserved */ 157 157 [PREFETCH_ALMOST_EMPTY_SIZE_TX0] = GENMASK(5, 2), 158 158 [DMAW_SCND_OUTSD_PRED_THRESHOLD] = GENMASK(9, 6), ··· 165 165 /* Bits 19-31 reserved */ 166 166 }; 167 167 168 - IPA_REG_FIELDS(IPA_TX_CFG, ipa_tx_cfg, 0x000001fc); 168 + REG_FIELDS(IPA_TX_CFG, ipa_tx_cfg, 0x000001fc); 169 169 170 - static const u32 ipa_reg_flavor_0_fmask[] = { 170 + static const u32 reg_flavor_0_fmask[] = { 171 171 [MAX_PIPES] = GENMASK(3, 0), 172 172 /* Bits 4-7 reserved */ 173 173 [MAX_CONS_PIPES] = GENMASK(12, 8), ··· 178 178 /* Bits 28-31 reserved */ 179 179 }; 180 180 181 - IPA_REG_FIELDS(FLAVOR_0, flavor_0, 0x00000210); 181 + REG_FIELDS(FLAVOR_0, flavor_0, 0x00000210); 182 182 183 - static const u32 ipa_reg_idle_indication_cfg_fmask[] = { 183 + static const u32 reg_idle_indication_cfg_fmask[] = { 184 184 [ENTER_IDLE_DEBOUNCE_THRESH] = GENMASK(15, 0), 185 185 [CONST_NON_IDLE_ENABLE] = BIT(16), 186 186 /* Bits 17-31 reserved */ 187 187 }; 188 188 189 - IPA_REG_FIELDS(IDLE_INDICATION_CFG, idle_indication_cfg, 0x00000240); 189 + REG_FIELDS(IDLE_INDICATION_CFG, idle_indication_cfg, 0x00000240); 190 190 191 - static const u32 ipa_reg_qtime_timestamp_cfg_fmask[] = { 191 + static const u32 reg_qtime_timestamp_cfg_fmask[] = { 192 192 [DPL_TIMESTAMP_LSB] = GENMASK(4, 0), 193 193 /* Bits 5-6 reserved */ 194 194 [DPL_TIMESTAMP_SEL] = BIT(7), ··· 198 198 /* Bits 21-31 reserved */ 199 199 }; 200 200 201 - IPA_REG_FIELDS(QTIME_TIMESTAMP_CFG, qtime_timestamp_cfg, 0x0000024c); 201 + REG_FIELDS(QTIME_TIMESTAMP_CFG, qtime_timestamp_cfg, 0x0000024c); 202 202 203 - static const u32 ipa_reg_timers_xo_clk_div_cfg_fmask[] = { 203 + static const u32 reg_timers_xo_clk_div_cfg_fmask[] = { 204 204 [DIV_VALUE] = GENMASK(8, 0), 205 205 /* Bits 9-30 reserved */ 206 206 [DIV_ENABLE] = BIT(31), 207 207 }; 208 208 209 - IPA_REG_FIELDS(TIMERS_XO_CLK_DIV_CFG, timers_xo_clk_div_cfg, 0x00000250); 209 + REG_FIELDS(TIMERS_XO_CLK_DIV_CFG, timers_xo_clk_div_cfg, 0x00000250); 210 210 211 - static const u32 ipa_reg_timers_pulse_gran_cfg_fmask[] = { 211 + static const u32 reg_timers_pulse_gran_cfg_fmask[] = { 212 212 [PULSE_GRAN_0] = GENMASK(2, 0), 213 213 [PULSE_GRAN_1] = GENMASK(5, 3), 214 214 [PULSE_GRAN_2] = GENMASK(8, 6), 215 215 }; 216 216 217 - IPA_REG_FIELDS(TIMERS_PULSE_GRAN_CFG, timers_pulse_gran_cfg, 0x00000254); 217 + REG_FIELDS(TIMERS_PULSE_GRAN_CFG, timers_pulse_gran_cfg, 0x00000254); 218 218 219 - static const u32 ipa_reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 219 + static const u32 reg_src_rsrc_grp_01_rsrc_type_fmask[] = { 220 220 [X_MIN_LIM] = GENMASK(5, 0), 221 221 /* Bits 6-7 reserved */ 222 222 [X_MAX_LIM] = GENMASK(13, 8), ··· 227 227 /* Bits 30-31 reserved */ 228 228 }; 229 229 230 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 231 - 0x00000400, 0x0020); 230 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_01_RSRC_TYPE, src_rsrc_grp_01_rsrc_type, 231 + 0x00000400, 0x0020); 232 232 233 - static const u32 ipa_reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 233 + static const u32 reg_src_rsrc_grp_23_rsrc_type_fmask[] = { 234 234 [X_MIN_LIM] = GENMASK(5, 0), 235 235 /* Bits 6-7 reserved */ 236 236 [X_MAX_LIM] = GENMASK(13, 8), ··· 241 241 /* Bits 30-31 reserved */ 242 242 }; 243 243 244 - IPA_REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 245 - 0x00000404, 0x0020); 244 + REG_STRIDE_FIELDS(SRC_RSRC_GRP_23_RSRC_TYPE, src_rsrc_grp_23_rsrc_type, 245 + 0x00000404, 0x0020); 246 246 247 - static const u32 ipa_reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 247 + static const u32 reg_dst_rsrc_grp_01_rsrc_type_fmask[] = { 248 248 [X_MIN_LIM] = GENMASK(5, 0), 249 249 /* Bits 6-7 reserved */ 250 250 [X_MAX_LIM] = GENMASK(13, 8), ··· 255 255 /* Bits 30-31 reserved */ 256 256 }; 257 257 258 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 259 - 0x00000500, 0x0020); 258 + REG_STRIDE_FIELDS(DST_RSRC_GRP_01_RSRC_TYPE, dst_rsrc_grp_01_rsrc_type, 259 + 0x00000500, 0x0020); 260 260 261 - static const u32 ipa_reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 261 + static const u32 reg_dst_rsrc_grp_23_rsrc_type_fmask[] = { 262 262 [X_MIN_LIM] = GENMASK(5, 0), 263 263 /* Bits 6-7 reserved */ 264 264 [X_MAX_LIM] = GENMASK(13, 8), ··· 269 269 /* Bits 30-31 reserved */ 270 270 }; 271 271 272 - IPA_REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 273 - 0x00000504, 0x0020); 272 + REG_STRIDE_FIELDS(DST_RSRC_GRP_23_RSRC_TYPE, dst_rsrc_grp_23_rsrc_type, 273 + 0x00000504, 0x0020); 274 274 275 - static const u32 ipa_reg_endp_init_cfg_fmask[] = { 275 + static const u32 reg_endp_init_cfg_fmask[] = { 276 276 [FRAG_OFFLOAD_EN] = BIT(0), 277 277 [CS_OFFLOAD_EN] = GENMASK(2, 1), 278 278 [CS_METADATA_HDR_OFFSET] = GENMASK(6, 3), ··· 281 281 /* Bits 9-31 reserved */ 282 282 }; 283 283 284 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 284 + REG_STRIDE_FIELDS(ENDP_INIT_CFG, endp_init_cfg, 0x00000808, 0x0070); 285 285 286 - static const u32 ipa_reg_endp_init_nat_fmask[] = { 286 + static const u32 reg_endp_init_nat_fmask[] = { 287 287 [NAT_EN] = GENMASK(1, 0), 288 288 /* Bits 2-31 reserved */ 289 289 }; 290 290 291 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 291 + REG_STRIDE_FIELDS(ENDP_INIT_NAT, endp_init_nat, 0x0000080c, 0x0070); 292 292 293 - static const u32 ipa_reg_endp_init_hdr_fmask[] = { 293 + static const u32 reg_endp_init_hdr_fmask[] = { 294 294 [HDR_LEN] = GENMASK(5, 0), 295 295 [HDR_OFST_METADATA_VALID] = BIT(6), 296 296 [HDR_OFST_METADATA] = GENMASK(12, 7), ··· 302 302 [HDR_OFST_METADATA_MSB] = GENMASK(31, 30), 303 303 }; 304 304 305 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 305 + REG_STRIDE_FIELDS(ENDP_INIT_HDR, endp_init_hdr, 0x00000810, 0x0070); 306 306 307 - static const u32 ipa_reg_endp_init_hdr_ext_fmask[] = { 307 + static const u32 reg_endp_init_hdr_ext_fmask[] = { 308 308 [HDR_ENDIANNESS] = BIT(0), 309 309 [HDR_TOTAL_LEN_OR_PAD_VALID] = BIT(1), 310 310 [HDR_TOTAL_LEN_OR_PAD] = BIT(2), ··· 318 318 /* Bits 22-31 reserved */ 319 319 }; 320 320 321 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 321 + REG_STRIDE_FIELDS(ENDP_INIT_HDR_EXT, endp_init_hdr_ext, 0x00000814, 0x0070); 322 322 323 - IPA_REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 324 - 0x00000818, 0x0070); 323 + REG_STRIDE(ENDP_INIT_HDR_METADATA_MASK, endp_init_hdr_metadata_mask, 324 + 0x00000818, 0x0070); 325 325 326 - static const u32 ipa_reg_endp_init_mode_fmask[] = { 326 + static const u32 reg_endp_init_mode_fmask[] = { 327 327 [ENDP_MODE] = GENMASK(2, 0), 328 328 [DCPH_ENABLE] = BIT(3), 329 329 [DEST_PIPE_INDEX] = GENMASK(8, 4), ··· 335 335 /* Bit 31 reserved */ 336 336 }; 337 337 338 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 338 + REG_STRIDE_FIELDS(ENDP_INIT_MODE, endp_init_mode, 0x00000820, 0x0070); 339 339 340 - static const u32 ipa_reg_endp_init_aggr_fmask[] = { 340 + static const u32 reg_endp_init_aggr_fmask[] = { 341 341 [AGGR_EN] = GENMASK(1, 0), 342 342 [AGGR_TYPE] = GENMASK(4, 2), 343 343 [BYTE_LIMIT] = GENMASK(10, 5), ··· 352 352 /* Bits 28-31 reserved */ 353 353 }; 354 354 355 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 355 + REG_STRIDE_FIELDS(ENDP_INIT_AGGR, endp_init_aggr, 0x00000824, 0x0070); 356 356 357 - static const u32 ipa_reg_endp_init_hol_block_en_fmask[] = { 357 + static const u32 reg_endp_init_hol_block_en_fmask[] = { 358 358 [HOL_BLOCK_EN] = BIT(0), 359 359 /* Bits 1-31 reserved */ 360 360 }; 361 361 362 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 363 - 0x0000082c, 0x0070); 362 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_EN, endp_init_hol_block_en, 363 + 0x0000082c, 0x0070); 364 364 365 - static const u32 ipa_reg_endp_init_hol_block_timer_fmask[] = { 365 + static const u32 reg_endp_init_hol_block_timer_fmask[] = { 366 366 [TIMER_LIMIT] = GENMASK(4, 0), 367 367 /* Bits 5-7 reserved */ 368 368 [TIMER_GRAN_SEL] = BIT(8), 369 369 /* Bits 9-31 reserved */ 370 370 }; 371 371 372 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 373 - 0x00000830, 0x0070); 372 + REG_STRIDE_FIELDS(ENDP_INIT_HOL_BLOCK_TIMER, endp_init_hol_block_timer, 373 + 0x00000830, 0x0070); 374 374 375 - static const u32 ipa_reg_endp_init_deaggr_fmask[] = { 375 + static const u32 reg_endp_init_deaggr_fmask[] = { 376 376 [DEAGGR_HDR_LEN] = GENMASK(5, 0), 377 377 [SYSPIPE_ERR_DETECTION] = BIT(6), 378 378 [PACKET_OFFSET_VALID] = BIT(7), ··· 382 382 [MAX_PACKET_LEN] = GENMASK(31, 16), 383 383 }; 384 384 385 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 385 + REG_STRIDE_FIELDS(ENDP_INIT_DEAGGR, endp_init_deaggr, 0x00000834, 0x0070); 386 386 387 - static const u32 ipa_reg_endp_init_rsrc_grp_fmask[] = { 387 + static const u32 reg_endp_init_rsrc_grp_fmask[] = { 388 388 [ENDP_RSRC_GRP] = GENMASK(1, 0), 389 389 /* Bits 2-31 reserved */ 390 390 }; 391 391 392 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 393 - 0x00000838, 0x0070); 392 + REG_STRIDE_FIELDS(ENDP_INIT_RSRC_GRP, endp_init_rsrc_grp, 0x00000838, 0x0070); 394 393 395 - static const u32 ipa_reg_endp_init_seq_fmask[] = { 394 + static const u32 reg_endp_init_seq_fmask[] = { 396 395 [SEQ_TYPE] = GENMASK(7, 0), 397 396 /* Bits 8-31 reserved */ 398 397 }; 399 398 400 - IPA_REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 399 + REG_STRIDE_FIELDS(ENDP_INIT_SEQ, endp_init_seq, 0x0000083c, 0x0070); 401 400 402 - static const u32 ipa_reg_endp_status_fmask[] = { 401 + static const u32 reg_endp_status_fmask[] = { 403 402 [STATUS_EN] = BIT(0), 404 403 [STATUS_ENDP] = GENMASK(5, 1), 405 404 /* Bits 6-8 reserved */ ··· 406 407 /* Bits 10-31 reserved */ 407 408 }; 408 409 409 - IPA_REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 410 + REG_STRIDE_FIELDS(ENDP_STATUS, endp_status, 0x00000840, 0x0070); 410 411 411 - static const u32 ipa_reg_endp_filter_router_hsh_cfg_fmask[] = { 412 + static const u32 reg_endp_filter_router_hsh_cfg_fmask[] = { 412 413 [FILTER_HASH_MSK_SRC_ID] = BIT(0), 413 414 [FILTER_HASH_MSK_SRC_IP] = BIT(1), 414 415 [FILTER_HASH_MSK_DST_IP] = BIT(2), ··· 429 430 /* Bits 23-31 reserved */ 430 431 }; 431 432 432 - IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG, endp_filter_router_hsh_cfg, 433 - 0x0000085c, 0x0070); 433 + REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG, endp_filter_router_hsh_cfg, 434 + 0x0000085c, 0x0070); 434 435 435 436 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 436 - IPA_REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00004008 + 0x1000 * GSI_EE_AP); 437 + REG(IPA_IRQ_STTS, ipa_irq_stts, 0x00004008 + 0x1000 * GSI_EE_AP); 437 438 438 439 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 439 - IPA_REG(IPA_IRQ_EN, ipa_irq_en, 0x0000400c + 0x1000 * GSI_EE_AP); 440 + REG(IPA_IRQ_EN, ipa_irq_en, 0x0000400c + 0x1000 * GSI_EE_AP); 440 441 441 442 /* Valid bits defined by enum ipa_irq_id; only used for GSI_EE_AP */ 442 - IPA_REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00004010 + 0x1000 * GSI_EE_AP); 443 + REG(IPA_IRQ_CLR, ipa_irq_clr, 0x00004010 + 0x1000 * GSI_EE_AP); 443 444 444 - static const u32 ipa_reg_ipa_irq_uc_fmask[] = { 445 + static const u32 reg_ipa_irq_uc_fmask[] = { 445 446 [UC_INTR] = BIT(0), 446 447 /* Bits 1-31 reserved */ 447 448 }; 448 449 449 - IPA_REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000401c + 0x1000 * GSI_EE_AP); 450 + REG_FIELDS(IPA_IRQ_UC, ipa_irq_uc, 0x0000401c + 0x1000 * GSI_EE_AP); 450 451 451 452 /* Valid bits defined by ipa->available */ 452 - IPA_REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 453 - 0x00004030 + 0x1000 * GSI_EE_AP, 0x0004); 453 + REG_STRIDE(IRQ_SUSPEND_INFO, irq_suspend_info, 454 + 0x00004030 + 0x1000 * GSI_EE_AP, 0x0004); 454 455 455 456 /* Valid bits defined by ipa->available */ 456 - IPA_REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 457 - 0x00004034 + 0x1000 * GSI_EE_AP, 0x0004); 457 + REG_STRIDE(IRQ_SUSPEND_EN, irq_suspend_en, 458 + 0x00004034 + 0x1000 * GSI_EE_AP, 0x0004); 458 459 459 460 /* Valid bits defined by ipa->available */ 460 - IPA_REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 461 - 0x00004038 + 0x1000 * GSI_EE_AP, 0x0004); 461 + REG_STRIDE(IRQ_SUSPEND_CLR, irq_suspend_clr, 462 + 0x00004038 + 0x1000 * GSI_EE_AP, 0x0004); 462 463 463 - static const struct ipa_reg *ipa_reg_array[] = { 464 - [COMP_CFG] = &ipa_reg_comp_cfg, 465 - [CLKON_CFG] = &ipa_reg_clkon_cfg, 466 - [ROUTE] = &ipa_reg_route, 467 - [SHARED_MEM_SIZE] = &ipa_reg_shared_mem_size, 468 - [QSB_MAX_WRITES] = &ipa_reg_qsb_max_writes, 469 - [QSB_MAX_READS] = &ipa_reg_qsb_max_reads, 470 - [FILT_ROUT_HASH_EN] = &ipa_reg_filt_rout_hash_en, 471 - [FILT_ROUT_HASH_FLUSH] = &ipa_reg_filt_rout_hash_flush, 472 - [STATE_AGGR_ACTIVE] = &ipa_reg_state_aggr_active, 473 - [LOCAL_PKT_PROC_CNTXT] = &ipa_reg_local_pkt_proc_cntxt, 474 - [AGGR_FORCE_CLOSE] = &ipa_reg_aggr_force_close, 475 - [IPA_TX_CFG] = &ipa_reg_ipa_tx_cfg, 476 - [FLAVOR_0] = &ipa_reg_flavor_0, 477 - [IDLE_INDICATION_CFG] = &ipa_reg_idle_indication_cfg, 478 - [QTIME_TIMESTAMP_CFG] = &ipa_reg_qtime_timestamp_cfg, 479 - [TIMERS_XO_CLK_DIV_CFG] = &ipa_reg_timers_xo_clk_div_cfg, 480 - [TIMERS_PULSE_GRAN_CFG] = &ipa_reg_timers_pulse_gran_cfg, 481 - [SRC_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_01_rsrc_type, 482 - [SRC_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_src_rsrc_grp_23_rsrc_type, 483 - [DST_RSRC_GRP_01_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_01_rsrc_type, 484 - [DST_RSRC_GRP_23_RSRC_TYPE] = &ipa_reg_dst_rsrc_grp_23_rsrc_type, 485 - [ENDP_INIT_CFG] = &ipa_reg_endp_init_cfg, 486 - [ENDP_INIT_NAT] = &ipa_reg_endp_init_nat, 487 - [ENDP_INIT_HDR] = &ipa_reg_endp_init_hdr, 488 - [ENDP_INIT_HDR_EXT] = &ipa_reg_endp_init_hdr_ext, 489 - [ENDP_INIT_HDR_METADATA_MASK] = &ipa_reg_endp_init_hdr_metadata_mask, 490 - [ENDP_INIT_MODE] = &ipa_reg_endp_init_mode, 491 - [ENDP_INIT_AGGR] = &ipa_reg_endp_init_aggr, 492 - [ENDP_INIT_HOL_BLOCK_EN] = &ipa_reg_endp_init_hol_block_en, 493 - [ENDP_INIT_HOL_BLOCK_TIMER] = &ipa_reg_endp_init_hol_block_timer, 494 - [ENDP_INIT_DEAGGR] = &ipa_reg_endp_init_deaggr, 495 - [ENDP_INIT_RSRC_GRP] = &ipa_reg_endp_init_rsrc_grp, 496 - [ENDP_INIT_SEQ] = &ipa_reg_endp_init_seq, 497 - [ENDP_STATUS] = &ipa_reg_endp_status, 498 - [ENDP_FILTER_ROUTER_HSH_CFG] = &ipa_reg_endp_filter_router_hsh_cfg, 499 - [IPA_IRQ_STTS] = &ipa_reg_ipa_irq_stts, 500 - [IPA_IRQ_EN] = &ipa_reg_ipa_irq_en, 501 - [IPA_IRQ_CLR] = &ipa_reg_ipa_irq_clr, 502 - [IPA_IRQ_UC] = &ipa_reg_ipa_irq_uc, 503 - [IRQ_SUSPEND_INFO] = &ipa_reg_irq_suspend_info, 504 - [IRQ_SUSPEND_EN] = &ipa_reg_irq_suspend_en, 505 - [IRQ_SUSPEND_CLR] = &ipa_reg_irq_suspend_clr, 464 + static const struct reg *reg_array[] = { 465 + [COMP_CFG] = &reg_comp_cfg, 466 + [CLKON_CFG] = &reg_clkon_cfg, 467 + [ROUTE] = &reg_route, 468 + [SHARED_MEM_SIZE] = &reg_shared_mem_size, 469 + [QSB_MAX_WRITES] = &reg_qsb_max_writes, 470 + [QSB_MAX_READS] = &reg_qsb_max_reads, 471 + [FILT_ROUT_HASH_EN] = &reg_filt_rout_hash_en, 472 + [FILT_ROUT_HASH_FLUSH] = &reg_filt_rout_hash_flush, 473 + [STATE_AGGR_ACTIVE] = &reg_state_aggr_active, 474 + [LOCAL_PKT_PROC_CNTXT] = &reg_local_pkt_proc_cntxt, 475 + [AGGR_FORCE_CLOSE] = &reg_aggr_force_close, 476 + [IPA_TX_CFG] = &reg_ipa_tx_cfg, 477 + [FLAVOR_0] = &reg_flavor_0, 478 + [IDLE_INDICATION_CFG] = &reg_idle_indication_cfg, 479 + [QTIME_TIMESTAMP_CFG] = &reg_qtime_timestamp_cfg, 480 + [TIMERS_XO_CLK_DIV_CFG] = &reg_timers_xo_clk_div_cfg, 481 + [TIMERS_PULSE_GRAN_CFG] = &reg_timers_pulse_gran_cfg, 482 + [SRC_RSRC_GRP_01_RSRC_TYPE] = &reg_src_rsrc_grp_01_rsrc_type, 483 + [SRC_RSRC_GRP_23_RSRC_TYPE] = &reg_src_rsrc_grp_23_rsrc_type, 484 + [DST_RSRC_GRP_01_RSRC_TYPE] = &reg_dst_rsrc_grp_01_rsrc_type, 485 + [DST_RSRC_GRP_23_RSRC_TYPE] = &reg_dst_rsrc_grp_23_rsrc_type, 486 + [ENDP_INIT_CFG] = &reg_endp_init_cfg, 487 + [ENDP_INIT_NAT] = &reg_endp_init_nat, 488 + [ENDP_INIT_HDR] = &reg_endp_init_hdr, 489 + [ENDP_INIT_HDR_EXT] = &reg_endp_init_hdr_ext, 490 + [ENDP_INIT_HDR_METADATA_MASK] = &reg_endp_init_hdr_metadata_mask, 491 + [ENDP_INIT_MODE] = &reg_endp_init_mode, 492 + [ENDP_INIT_AGGR] = &reg_endp_init_aggr, 493 + [ENDP_INIT_HOL_BLOCK_EN] = &reg_endp_init_hol_block_en, 494 + [ENDP_INIT_HOL_BLOCK_TIMER] = &reg_endp_init_hol_block_timer, 495 + [ENDP_INIT_DEAGGR] = &reg_endp_init_deaggr, 496 + [ENDP_INIT_RSRC_GRP] = &reg_endp_init_rsrc_grp, 497 + [ENDP_INIT_SEQ] = &reg_endp_init_seq, 498 + [ENDP_STATUS] = &reg_endp_status, 499 + [ENDP_FILTER_ROUTER_HSH_CFG] = &reg_endp_filter_router_hsh_cfg, 500 + [IPA_IRQ_STTS] = &reg_ipa_irq_stts, 501 + [IPA_IRQ_EN] = &reg_ipa_irq_en, 502 + [IPA_IRQ_CLR] = &reg_ipa_irq_clr, 503 + [IPA_IRQ_UC] = &reg_ipa_irq_uc, 504 + [IRQ_SUSPEND_INFO] = &reg_irq_suspend_info, 505 + [IRQ_SUSPEND_EN] = &reg_irq_suspend_en, 506 + [IRQ_SUSPEND_CLR] = &reg_irq_suspend_clr, 506 507 }; 507 508 508 - const struct ipa_regs ipa_regs_v4_9 = { 509 - .reg_count = ARRAY_SIZE(ipa_reg_array), 510 - .reg = ipa_reg_array, 509 + const struct regs ipa_regs_v4_9 = { 510 + .reg_count = ARRAY_SIZE(reg_array), 511 + .reg = reg_array, 511 512 };