Lines Matching refs:vcap
50 const struct vcap_props *vcap) in vcap_read_update_ctrl() argument
52 return ocelot_target_read(ocelot, vcap->target, VCAP_CORE_UPDATE_CTRL); in vcap_read_update_ctrl()
55 static void vcap_cmd(struct ocelot *ocelot, const struct vcap_props *vcap, in vcap_cmd() argument
62 if ((sel & VCAP_SEL_ENTRY) && ix >= vcap->entry_count) in vcap_cmd()
74 ocelot_target_write(ocelot, vcap->target, value, VCAP_CORE_UPDATE_CTRL); in vcap_cmd()
78 10, 100000, false, ocelot, vcap); in vcap_cmd()
82 static void vcap_row_cmd(struct ocelot *ocelot, const struct vcap_props *vcap, in vcap_row_cmd() argument
85 vcap_cmd(ocelot, vcap, vcap->entry_count - row - 1, cmd, sel); in vcap_row_cmd()
89 const struct vcap_props *vcap, in vcap_entry2cache() argument
94 entry_words = DIV_ROUND_UP(vcap->entry_width, ENTRY_WIDTH); in vcap_entry2cache()
97 ocelot_target_write_rix(ocelot, vcap->target, data->entry[i], in vcap_entry2cache()
99 ocelot_target_write_rix(ocelot, vcap->target, ~data->mask[i], in vcap_entry2cache()
102 ocelot_target_write(ocelot, vcap->target, data->tg, VCAP_CACHE_TG_DAT); in vcap_entry2cache()
106 const struct vcap_props *vcap, in vcap_cache2entry() argument
111 entry_words = DIV_ROUND_UP(vcap->entry_width, ENTRY_WIDTH); in vcap_cache2entry()
114 data->entry[i] = ocelot_target_read_rix(ocelot, vcap->target, in vcap_cache2entry()
117 data->mask[i] = ~ocelot_target_read_rix(ocelot, vcap->target, in vcap_cache2entry()
120 data->tg = ocelot_target_read(ocelot, vcap->target, VCAP_CACHE_TG_DAT); in vcap_cache2entry()
124 const struct vcap_props *vcap, in vcap_action2cache() argument
131 width = vcap->action_type_width; in vcap_action2cache()
137 action_words = DIV_ROUND_UP(vcap->action_width, ENTRY_WIDTH); in vcap_action2cache()
140 ocelot_target_write_rix(ocelot, vcap->target, data->action[i], in vcap_action2cache()
143 for (i = 0; i < vcap->counter_words; i++) in vcap_action2cache()
144 ocelot_target_write_rix(ocelot, vcap->target, data->counter[i], in vcap_action2cache()
149 const struct vcap_props *vcap, in vcap_cache2action() argument
155 action_words = DIV_ROUND_UP(vcap->action_width, ENTRY_WIDTH); in vcap_cache2action()
158 data->action[i] = ocelot_target_read_rix(ocelot, vcap->target, in vcap_cache2action()
162 for (i = 0; i < vcap->counter_words; i++) in vcap_cache2action()
163 data->counter[i] = ocelot_target_read_rix(ocelot, vcap->target, in vcap_cache2action()
168 width = vcap->action_type_width; in vcap_cache2action()
173 static void vcap_data_offset_get(const struct vcap_props *vcap, in vcap_data_offset_get() argument
178 u32 width = vcap->tg_width; in vcap_data_offset_get()
195 num_subwords_per_entry = (vcap->sw_count / num_entries_per_row); in vcap_data_offset_get()
196 base = (vcap->sw_count - col * num_subwords_per_entry - in vcap_data_offset_get()
208 data->key_offset = (base * vcap->entry_width) / vcap->sw_count; in vcap_data_offset_get()
210 vcap->counter_width); in vcap_data_offset_get()
212 width = vcap->action_table[i].width; in vcap_data_offset_get()
213 num_subwords_per_action = vcap->action_table[i].count; in vcap_data_offset_get()
216 data->action_offset += vcap->action_type_width; in vcap_data_offset_get()
254 static void vcap_key_set(const struct vcap_props *vcap, struct vcap_data *data, in vcap_key_set() argument
257 u32 offset = vcap->keys[field].offset; in vcap_key_set()
258 u32 length = vcap->keys[field].length; in vcap_key_set()
263 static void vcap_key_bytes_set(const struct vcap_props *vcap, in vcap_key_bytes_set() argument
267 u32 offset = vcap->keys[field].offset; in vcap_key_bytes_set()
268 u32 count = vcap->keys[field].length; in vcap_key_bytes_set()
294 static void vcap_key_l4_port_set(const struct vcap_props *vcap, in vcap_key_l4_port_set() argument
298 u32 offset = vcap->keys[field].offset; in vcap_key_l4_port_set()
299 u32 length = vcap->keys[field].length; in vcap_key_l4_port_set()
306 static void vcap_key_bit_set(const struct vcap_props *vcap, in vcap_key_bit_set() argument
312 u32 offset = vcap->keys[field].offset; in vcap_key_bit_set()
313 u32 length = vcap->keys[field].length; in vcap_key_bit_set()
320 static void vcap_action_set(const struct vcap_props *vcap, in vcap_action_set() argument
323 int offset = vcap->actions[field].offset; in vcap_action_set()
324 int length = vcap->actions[field].length; in vcap_action_set()
333 const struct vcap_props *vcap = &ocelot->vcap[VCAP_IS2]; in is2_action_set() local
336 vcap_action_set(vcap, data, VCAP_IS2_ACT_MASK_MODE, a->mask_mode); in is2_action_set()
337 vcap_action_set(vcap, data, VCAP_IS2_ACT_PORT_MASK, a->port_mask); in is2_action_set()
338 vcap_action_set(vcap, data, VCAP_IS2_ACT_MIRROR_ENA, a->mirror_ena); in is2_action_set()
339 vcap_action_set(vcap, data, VCAP_IS2_ACT_POLICE_ENA, a->police_ena); in is2_action_set()
340 vcap_action_set(vcap, data, VCAP_IS2_ACT_POLICE_IDX, a->pol_ix); in is2_action_set()
341 vcap_action_set(vcap, data, VCAP_IS2_ACT_CPU_QU_NUM, a->cpu_qu_num); in is2_action_set()
342 vcap_action_set(vcap, data, VCAP_IS2_ACT_CPU_COPY_ENA, a->cpu_copy_ena); in is2_action_set()
348 const struct vcap_props *vcap = &ocelot->vcap[VCAP_IS2]; in is2_entry_set() local
359 vcap_row_cmd(ocelot, vcap, row, VCAP_CMD_READ, VCAP_SEL_ALL); in is2_entry_set()
360 vcap_cache2entry(ocelot, vcap, &data); in is2_entry_set()
361 vcap_cache2action(ocelot, vcap, &data); in is2_entry_set()
364 vcap_data_offset_get(vcap, &data, ix); in is2_entry_set()
371 vcap_key_set(vcap, &data, VCAP_IS2_HK_PAG, filter->pag, 0xff); in is2_entry_set()
372 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_FIRST, in is2_entry_set()
375 vcap_key_set(vcap, &data, VCAP_IS2_HK_IGR_PORT_MASK, 0, in is2_entry_set()
377 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_HOST_MATCH, in is2_entry_set()
379 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_L2_MC, filter->dmac_mc); in is2_entry_set()
380 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_L2_BC, filter->dmac_bc); in is2_entry_set()
381 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_VLAN_TAGGED, tag->tagged); in is2_entry_set()
382 vcap_key_set(vcap, &data, VCAP_IS2_HK_VID, in is2_entry_set()
384 vcap_key_set(vcap, &data, VCAP_IS2_HK_PCP, in is2_entry_set()
386 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_DEI, tag->dei); in is2_entry_set()
393 vcap_key_bytes_set(vcap, &data, VCAP_IS2_HK_L2_DMAC, in is2_entry_set()
395 vcap_key_bytes_set(vcap, &data, VCAP_IS2_HK_L2_SMAC, in is2_entry_set()
397 vcap_key_bytes_set(vcap, &data, VCAP_IS2_HK_MAC_ETYPE_ETYPE, in is2_entry_set()
400 vcap_key_set(vcap, &data, VCAP_IS2_HK_MAC_ETYPE_L2_PAYLOAD0, in is2_entry_set()
402 vcap_key_set(vcap, &data, VCAP_IS2_HK_MAC_ETYPE_L2_PAYLOAD1, in is2_entry_set()
404 vcap_key_set(vcap, &data, VCAP_IS2_HK_MAC_ETYPE_L2_PAYLOAD2, in is2_entry_set()
406 vcap_key_bytes_set(vcap, &data, in is2_entry_set()
415 vcap_key_bytes_set(vcap, &data, VCAP_IS2_HK_L2_DMAC, in is2_entry_set()
417 vcap_key_bytes_set(vcap, &data, VCAP_IS2_HK_L2_SMAC, in is2_entry_set()
423 vcap_key_bytes_set(vcap, &data, VCAP_IS2_HK_MAC_LLC_L2_LLC, in is2_entry_set()
431 vcap_key_bytes_set(vcap, &data, VCAP_IS2_HK_L2_DMAC, in is2_entry_set()
433 vcap_key_bytes_set(vcap, &data, VCAP_IS2_HK_L2_SMAC, in is2_entry_set()
435 vcap_key_bytes_set(vcap, &data, VCAP_IS2_HK_MAC_SNAP_L2_SNAP, in is2_entry_set()
444 vcap_key_bytes_set(vcap, &data, VCAP_IS2_HK_MAC_ARP_SMAC, in is2_entry_set()
446 vcap_key_bit_set(vcap, &data, in is2_entry_set()
449 vcap_key_bit_set(vcap, &data, in is2_entry_set()
452 vcap_key_bit_set(vcap, &data, in is2_entry_set()
455 vcap_key_bit_set(vcap, &data, in is2_entry_set()
458 vcap_key_bit_set(vcap, &data, in is2_entry_set()
461 vcap_key_bit_set(vcap, &data, in is2_entry_set()
470 vcap_key_set(vcap, &data, VCAP_IS2_HK_MAC_ARP_OPCODE, in is2_entry_set()
472 vcap_key_bytes_set(vcap, &data, in is2_entry_set()
475 vcap_key_bytes_set(vcap, &data, in is2_entry_set()
478 vcap_key_set(vcap, &data, VCAP_IS2_HK_MAC_ARP_DIP_EQ_SIP, in is2_entry_set()
547 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_IP4, in is2_entry_set()
549 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_L3_FRAGMENT, in is2_entry_set()
551 vcap_key_set(vcap, &data, VCAP_IS2_HK_L3_FRAG_OFS_GT0, 0, 0); in is2_entry_set()
552 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_L3_OPTIONS, in is2_entry_set()
554 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_IP4_L3_TTL_GT0, in is2_entry_set()
556 vcap_key_bytes_set(vcap, &data, VCAP_IS2_HK_L3_TOS, in is2_entry_set()
558 vcap_key_bytes_set(vcap, &data, VCAP_IS2_HK_L3_IP4_DIP, in is2_entry_set()
560 vcap_key_bytes_set(vcap, &data, VCAP_IS2_HK_L3_IP4_SIP, in is2_entry_set()
562 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_DIP_EQ_SIP, in is2_entry_set()
571 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_TCP, tcp); in is2_entry_set()
572 vcap_key_l4_port_set(vcap, &data, in is2_entry_set()
574 vcap_key_l4_port_set(vcap, &data, in is2_entry_set()
576 vcap_key_set(vcap, &data, VCAP_IS2_HK_L4_RNG, 0, 0); in is2_entry_set()
577 vcap_key_bit_set(vcap, &data, in is2_entry_set()
580 vcap_key_bit_set(vcap, &data, in is2_entry_set()
583 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_L4_FIN, in is2_entry_set()
585 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_L4_SYN, in is2_entry_set()
587 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_L4_RST, in is2_entry_set()
589 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_L4_PSH, in is2_entry_set()
591 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_L4_ACK, in is2_entry_set()
593 vcap_key_bit_set(vcap, &data, VCAP_IS2_HK_L4_URG, in is2_entry_set()
595 vcap_key_set(vcap, &data, VCAP_IS2_HK_L4_1588_DOM, in is2_entry_set()
597 vcap_key_set(vcap, &data, VCAP_IS2_HK_L4_1588_VER, in is2_entry_set()
611 vcap_key_bytes_set(vcap, &data, in is2_entry_set()
614 vcap_key_bytes_set(vcap, &data, in is2_entry_set()
624 count = vcap->entry_width / 2; in is2_entry_set()
628 for (i = vcap->keys[VCAP_IS2_HK_L2_DMAC].offset; in is2_entry_set()
635 vcap_key_set(vcap, &data, VCAP_IS2_TYPE, type, type_mask); in is2_entry_set()
638 vcap->counter_width, filter->stats.pkts); in is2_entry_set()
641 vcap_entry2cache(ocelot, vcap, &data); in is2_entry_set()
642 vcap_action2cache(ocelot, vcap, &data); in is2_entry_set()
643 vcap_row_cmd(ocelot, vcap, row, VCAP_CMD_WRITE, VCAP_SEL_ALL); in is2_entry_set()
649 const struct vcap_props *vcap = &ocelot->vcap[VCAP_IS1]; in is1_action_set() local
652 vcap_action_set(vcap, data, VCAP_IS1_ACT_VID_REPLACE_ENA, in is1_action_set()
654 vcap_action_set(vcap, data, VCAP_IS1_ACT_VID_ADD_VAL, a->vid); in is1_action_set()
655 vcap_action_set(vcap, data, VCAP_IS1_ACT_VLAN_POP_CNT_ENA, in is1_action_set()
657 vcap_action_set(vcap, data, VCAP_IS1_ACT_VLAN_POP_CNT, in is1_action_set()
659 vcap_action_set(vcap, data, VCAP_IS1_ACT_PCP_DEI_ENA, a->pcp_dei_ena); in is1_action_set()
660 vcap_action_set(vcap, data, VCAP_IS1_ACT_PCP_VAL, a->pcp); in is1_action_set()
661 vcap_action_set(vcap, data, VCAP_IS1_ACT_DEI_VAL, a->dei); in is1_action_set()
662 vcap_action_set(vcap, data, VCAP_IS1_ACT_QOS_ENA, a->qos_ena); in is1_action_set()
663 vcap_action_set(vcap, data, VCAP_IS1_ACT_QOS_VAL, a->qos_val); in is1_action_set()
664 vcap_action_set(vcap, data, VCAP_IS1_ACT_PAG_OVERRIDE_MASK, in is1_action_set()
666 vcap_action_set(vcap, data, VCAP_IS1_ACT_PAG_VAL, a->pag_val); in is1_action_set()
672 const struct vcap_props *vcap = &ocelot->vcap[VCAP_IS1]; in is1_entry_set() local
681 vcap_row_cmd(ocelot, vcap, row, VCAP_CMD_READ, VCAP_SEL_ALL); in is1_entry_set()
682 vcap_cache2entry(ocelot, vcap, &data); in is1_entry_set()
683 vcap_cache2action(ocelot, vcap, &data); in is1_entry_set()
687 vcap_data_offset_get(vcap, &data, ix); in is1_entry_set()
692 vcap_key_set(vcap, &data, VCAP_IS1_HK_LOOKUP, filter->lookup, 0x3); in is1_entry_set()
693 vcap_key_set(vcap, &data, VCAP_IS1_HK_IGR_PORT_MASK, 0, in is1_entry_set()
695 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_L2_MC, filter->dmac_mc); in is1_entry_set()
696 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_L2_BC, filter->dmac_bc); in is1_entry_set()
697 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_VLAN_TAGGED, tag->tagged); in is1_entry_set()
698 vcap_key_set(vcap, &data, VCAP_IS1_HK_VID, in is1_entry_set()
700 vcap_key_set(vcap, &data, VCAP_IS1_HK_PCP, in is1_entry_set()
708 vcap_key_bytes_set(vcap, &data, VCAP_IS1_HK_L2_SMAC, in is1_entry_set()
710 vcap_key_bytes_set(vcap, &data, VCAP_IS1_HK_ETYPE, in is1_entry_set()
723 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_IP_SNAP, in is1_entry_set()
725 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_IP4, in is1_entry_set()
727 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_ETYPE_LEN, in is1_entry_set()
729 vcap_key_bytes_set(vcap, &data, VCAP_IS1_HK_L3_IP4_SIP, in is1_entry_set()
737 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_TCP_UDP, tcp_udp); in is1_entry_set()
745 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_TCP, tcp); in is1_entry_set()
746 vcap_key_l4_port_set(vcap, &data, VCAP_IS1_HK_L4_SPORT, in is1_entry_set()
749 vcap_key_l4_port_set(vcap, &data, VCAP_IS1_HK_ETYPE, in is1_entry_set()
759 vcap_key_bytes_set(vcap, &data, VCAP_IS1_HK_ETYPE, in is1_entry_set()
767 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_TYPE, in is1_entry_set()
772 vcap->counter_width, filter->stats.pkts); in is1_entry_set()
775 vcap_entry2cache(ocelot, vcap, &data); in is1_entry_set()
776 vcap_action2cache(ocelot, vcap, &data); in is1_entry_set()
777 vcap_row_cmd(ocelot, vcap, row, VCAP_CMD_WRITE, VCAP_SEL_ALL); in is1_entry_set()
783 const struct vcap_props *vcap = &ocelot->vcap[VCAP_ES0]; in es0_action_set() local
786 vcap_action_set(vcap, data, VCAP_ES0_ACT_PUSH_OUTER_TAG, in es0_action_set()
788 vcap_action_set(vcap, data, VCAP_ES0_ACT_PUSH_INNER_TAG, in es0_action_set()
790 vcap_action_set(vcap, data, VCAP_ES0_ACT_TAG_A_TPID_SEL, in es0_action_set()
792 vcap_action_set(vcap, data, VCAP_ES0_ACT_TAG_A_VID_SEL, in es0_action_set()
794 vcap_action_set(vcap, data, VCAP_ES0_ACT_TAG_A_PCP_SEL, in es0_action_set()
796 vcap_action_set(vcap, data, VCAP_ES0_ACT_VID_A_VAL, a->vid_a_val); in es0_action_set()
797 vcap_action_set(vcap, data, VCAP_ES0_ACT_PCP_A_VAL, a->pcp_a_val); in es0_action_set()
798 vcap_action_set(vcap, data, VCAP_ES0_ACT_TAG_B_TPID_SEL, in es0_action_set()
800 vcap_action_set(vcap, data, VCAP_ES0_ACT_TAG_B_VID_SEL, in es0_action_set()
802 vcap_action_set(vcap, data, VCAP_ES0_ACT_TAG_B_PCP_SEL, in es0_action_set()
804 vcap_action_set(vcap, data, VCAP_ES0_ACT_VID_B_VAL, a->vid_b_val); in es0_action_set()
805 vcap_action_set(vcap, data, VCAP_ES0_ACT_PCP_B_VAL, a->pcp_b_val); in es0_action_set()
811 const struct vcap_props *vcap = &ocelot->vcap[VCAP_ES0]; in es0_entry_set() local
819 vcap_row_cmd(ocelot, vcap, row, VCAP_CMD_READ, VCAP_SEL_ALL); in es0_entry_set()
820 vcap_cache2entry(ocelot, vcap, &data); in es0_entry_set()
821 vcap_cache2action(ocelot, vcap, &data); in es0_entry_set()
825 vcap_data_offset_get(vcap, &data, ix); in es0_entry_set()
830 vcap_key_set(vcap, &data, VCAP_ES0_IGR_PORT, filter->ingress_port.value, in es0_entry_set()
832 vcap_key_set(vcap, &data, VCAP_ES0_EGR_PORT, filter->egress_port.value, in es0_entry_set()
834 vcap_key_bit_set(vcap, &data, VCAP_ES0_L2_MC, filter->dmac_mc); in es0_entry_set()
835 vcap_key_bit_set(vcap, &data, VCAP_ES0_L2_BC, filter->dmac_bc); in es0_entry_set()
836 vcap_key_set(vcap, &data, VCAP_ES0_VID, in es0_entry_set()
838 vcap_key_set(vcap, &data, VCAP_ES0_PCP, in es0_entry_set()
843 vcap->counter_width, filter->stats.pkts); in es0_entry_set()
846 vcap_entry2cache(ocelot, vcap, &data); in es0_entry_set()
847 vcap_action2cache(ocelot, vcap, &data); in es0_entry_set()
848 vcap_row_cmd(ocelot, vcap, row, VCAP_CMD_WRITE, VCAP_SEL_ALL); in es0_entry_set()
854 const struct vcap_props *vcap = &ocelot->vcap[filter->block_id]; in vcap_entry_get() local
866 vcap_row_cmd(ocelot, vcap, row, VCAP_CMD_READ, VCAP_SEL_COUNTER); in vcap_entry_get()
867 vcap_cache2action(ocelot, vcap, &data); in vcap_entry_get()
868 vcap_data_offset_get(vcap, &data, ix); in vcap_entry_get()
870 vcap->counter_width); in vcap_entry_get()
1315 const struct vcap_props *vcap) in ocelot_vcap_init_one() argument
1321 vcap_entry2cache(ocelot, vcap, &data); in ocelot_vcap_init_one()
1322 ocelot_target_write(ocelot, vcap->target, vcap->entry_count, in ocelot_vcap_init_one()
1324 vcap_cmd(ocelot, vcap, 0, VCAP_CMD_INITIALIZE, VCAP_SEL_ENTRY); in ocelot_vcap_init_one()
1326 vcap_action2cache(ocelot, vcap, &data); in ocelot_vcap_init_one()
1327 ocelot_target_write(ocelot, vcap->target, vcap->action_count, in ocelot_vcap_init_one()
1329 vcap_cmd(ocelot, vcap, 0, VCAP_CMD_INITIALIZE, in ocelot_vcap_init_one()
1334 struct vcap_props *vcap) in ocelot_vcap_detect_constants() argument
1340 version = ocelot_target_read(ocelot, vcap->target, in ocelot_vcap_detect_constants()
1347 vcap->tg_width = ocelot_target_read(ocelot, vcap->target, in ocelot_vcap_detect_constants()
1350 vcap->sw_count = ocelot_target_read(ocelot, vcap->target, in ocelot_vcap_detect_constants()
1355 vcap->entry_count = ocelot_target_read(ocelot, vcap->target, in ocelot_vcap_detect_constants()
1383 vcap->entry_width = ocelot_target_read(ocelot, vcap->target, in ocelot_vcap_detect_constants()
1385 vcap->entry_width -= vcap->tg_width * vcap->sw_count; in ocelot_vcap_detect_constants()
1386 num_default_actions = ocelot_target_read(ocelot, vcap->target, in ocelot_vcap_detect_constants()
1388 vcap->action_count = vcap->entry_count + num_default_actions; in ocelot_vcap_detect_constants()
1389 vcap->action_width = ocelot_target_read(ocelot, vcap->target, in ocelot_vcap_detect_constants()
1396 vcap->counter_words = vcap->sw_count; in ocelot_vcap_detect_constants()
1397 counter_memory_width = ocelot_target_read(ocelot, vcap->target, in ocelot_vcap_detect_constants()
1399 vcap->counter_width = counter_memory_width / vcap->counter_words; in ocelot_vcap_detect_constants()
1419 struct vcap_props *vcap = &ocelot->vcap[i]; in ocelot_vcap_init() local
1423 ocelot_vcap_detect_constants(ocelot, vcap); in ocelot_vcap_init()
1424 ocelot_vcap_init_one(ocelot, vcap); in ocelot_vcap_init()