| /kernel/linux/linux-6.6/drivers/net/ethernet/mscc/ |
| D | ocelot_vcap.c | 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() 81 /* Convert from 0-based row to VCAP entry row and run command */ 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 [all …]
|
| D | ocelot_flower.c | 12 /* Arbitrarily chosen constants for encoding the VCAP block and lookup number 97 /* Can't offload GOTO in VCAP ES0 */ in ocelot_is_goto_target_valid() 103 /* VCAP IS1 can be skipped, either partially or completely */ in ocelot_is_goto_target_valid() 117 /* Lookup 2 of VCAP IS1 can really support non-optional GOTOs, in ocelot_is_goto_target_valid() 119 * value encoding a VCAP IS2 target chain. in ocelot_is_goto_target_valid() 129 /* Non-optional GOTO from VCAP IS2 lookup 0 to lookup 1. in ocelot_is_goto_target_valid() 136 /* VCAP IS2 lookup 1 can goto to PSFP block if hardware support */ in ocelot_is_goto_target_valid() 268 "Drop action can only be offloaded to VCAP IS2"); in ocelot_flower_parse_action() 287 "Accept action can only be offloaded to VCAP chains"); in ocelot_flower_parse_action() 302 "Trap action can only be offloaded to VCAP IS2 lookup 0"); in ocelot_flower_parse_action() [all …]
|
| /kernel/linux/linux-5.10/drivers/net/ethernet/mscc/ |
| D | ocelot_vcap.c | 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() 81 /* Convert from 0-based row to VCAP entry row and run command */ 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 [all …]
|
| D | ocelot_flower.c | 11 /* Arbitrarily chosen constants for encoding the VCAP block and lookup number 90 /* Can't offload GOTO in VCAP ES0 */ in ocelot_is_goto_target_valid() 96 /* VCAP IS1 can be skipped, either partially or completely */ in ocelot_is_goto_target_valid() 109 /* Lookup 2 of VCAP IS1 can really support non-optional GOTOs, in ocelot_is_goto_target_valid() 111 * value encoding a VCAP IS2 target chain. in ocelot_is_goto_target_valid() 121 /* Non-optional GOTO from VCAP IS2 lookup 0 to lookup 1. in ocelot_is_goto_target_valid() 128 /* VCAP IS2 lookup 1 cannot jump anywhere */ in ocelot_is_goto_target_valid() 194 "Drop action can only be offloaded to VCAP IS2"); in ocelot_flower_parse_action() 212 "Trap action can only be offloaded to VCAP IS2 lookup 0"); in ocelot_flower_parse_action() 230 "Police action can only be offloaded to VCAP IS2 lookup 0"); in ocelot_flower_parse_action() [all …]
|
| D | ocelot_vcap.h | 206 /* VCAP ES0 */ 224 /* VCAP IS1 */ 239 /* VCAP IS2 */ 277 /* For VCAP IS1 and IS2 */ 279 /* For VCAP ES0 */
|
| /kernel/linux/linux-5.10/drivers/media/test-drivers/vimc/ |
| D | vimc-capture.c | 68 struct vimc_cap_device *vcap = container_of(ved, struct vimc_cap_device, in vimc_cap_get_format() local 71 *fmt = vcap->format; in vimc_cap_get_format() 77 struct vimc_cap_device *vcap = video_drvdata(file); in vimc_cap_g_fmt_vid_cap() local 79 f->fmt.pix = vcap->format; in vimc_cap_g_fmt_vid_cap() 119 struct vimc_cap_device *vcap = video_drvdata(file); in vimc_cap_s_fmt_vid_cap() local 123 if (vb2_is_busy(&vcap->queue)) in vimc_cap_s_fmt_vid_cap() 130 dev_dbg(vcap->ved.dev, "%s: format update: " in vimc_cap_s_fmt_vid_cap() 132 "new:%dx%d (0x%x, %d, %d, %d, %d)\n", vcap->vdev.name, in vimc_cap_s_fmt_vid_cap() 134 vcap->format.width, vcap->format.height, in vimc_cap_s_fmt_vid_cap() 135 vcap->format.pixelformat, vcap->format.colorspace, in vimc_cap_s_fmt_vid_cap() [all …]
|
| /kernel/linux/linux-6.6/drivers/net/ethernet/microchip/vcap/ |
| D | Kconfig | 3 # Microchip VCAP API configuration 8 config VCAP config 9 bool "VCAP (Versatile Content-Aware Processor) library" 11 Provides the basic VCAP functionality for multiple Microchip switchcores 13 A VCAP is essentially a TCAM with rules consisting of 19 Besides this each VCAP has: 24 The VCAP implementation provides switchcore independent handling of rules 31 of the VCAP instances are attached to the VCAP API and a client can then 33 limitations that each VCAP has in terms of its supported keys and actions. 35 Different switchcores will have different VCAP instances with different [all …]
|
| D | vcap_api.h | 3 * Microchip VCAP API 38 /* Known users of the VCAP API */ 56 /* VCAP information used for displaying data */ 66 /* VCAP key/action field type, position and width */ 73 /* VCAP keyset or actionset type and width */ 80 /* VCAP typegroup position and bitvalue */ 87 /* VCAP model data */ 97 u16 version; /* vcap rtl version */ 127 /* VCAP rule data towards the VCAP cache */ 144 /* Commands towards the VCAP cache */ [all …]
|
| D | vcap_api_client.h | 3 * Microchip VCAP API 16 /* Client supplied VCAP rule key control part */ 63 /* Client supplied VCAP rule field data */ 77 /* Client supplied VCAP rule key (value, mask) */ 83 /* Client supplied VCAP rule action control part */ 151 /* Enable/Disable the VCAP instance lookups */ 156 /* VCAP rule operations */ 166 /* Validate a rule before adding it to the VCAP */ 168 /* Add rule to a VCAP instance */ 170 /* Delete rule in a VCAP instance */ [all …]
|
| D | vcap_api_private.h | 3 * Microchip VCAP API 22 /* Private VCAP API rule data */ 25 struct list_head list; /* the vcap admin list of rules */ 26 struct vcap_admin *admin; /* vcap hw instance */ 29 u32 sort_key; /* defines the position in the VCAP */ 35 u32 addr; /* address in the VCAP at insertion */ 41 /* Bit iterator for the VCAP cache streams */ 53 /* Erase the VCAP cache area used or encoding and decoding */ 104 /* Read key data from a VCAP address and discover if there are any rule keysets 121 /* Decode a rule from the VCAP cache and return a copy */
|
| D | Makefile | 3 # Makefile for the Microchip VCAP API 6 obj-$(CONFIG_VCAP) += vcap.o 8 vcap-$(CONFIG_DEBUG_FS) += vcap_api_debugfs.o 10 vcap-y += vcap_api.o vcap_tc.o
|
| D | vcap_api_debugfs.c | 2 /* Microchip VCAP API debug file system support 270 const struct vcap_info *vcap = &vctrl->vcaps[admin->vtype]; in vcap_show_admin_info() local 272 out->prf(out->dst, "name: %s\n", vcap->name); in vcap_show_admin_info() 273 out->prf(out->dst, "rows: %d\n", vcap->rows); in vcap_show_admin_info() 274 out->prf(out->dst, "sw_count: %d\n", vcap->sw_count); in vcap_show_admin_info() 275 out->prf(out->dst, "sw_width: %d\n", vcap->sw_width); in vcap_show_admin_info() 276 out->prf(out->dst, "sticky_width: %d\n", vcap->sticky_width); in vcap_show_admin_info() 277 out->prf(out->dst, "act_width: %d\n", vcap->act_width); in vcap_show_admin_info() 278 out->prf(out->dst, "default_cnt: %d\n", vcap->default_cnt); in vcap_show_admin_info() 279 out->prf(out->dst, "require_cnt_dis: %d\n", vcap->require_cnt_dis); in vcap_show_admin_info() [all …]
|
| D | vcap_api.c | 2 /* Microchip VCAP API 33 /* Moving a rule in the VCAP address space */ 224 const struct vcap_info *vcap = &vctrl->vcaps[vt]; in vcap_verify_keystream_keyset() local 255 vcap_iter_init(&iter, vcap->sw_width, tgt, typefld->offset); in vcap_verify_keystream_keyset() 262 * one define in the vcap keyset in vcap_verify_keystream_keyset() 264 vcap_iter_init(&iter, vcap->sw_width, tgt, typefld->offset); in vcap_verify_keystream_keyset() 363 /* Read key data from a VCAP address and discover if there are any rule keysets 400 /* Check that the keyset exists in the vcap keyset list */ in vcap_keyfields() 413 /* Check that the keyset exists in the vcap keyset list */ in vcap_keyfieldset() 440 /* Check that the keyset exists in the vcap keyset list */ in vcap_keyfield_count() [all …]
|
| D | vcap_api_debugfs_kunit.c | 3 * Microchip VCAP API kunit test suite 34 /* Callback used by the VCAP API */ 71 pr_info("%s:%d: no validation for VCAP %d\n", in test_val_keyset() 79 /* Callback used by the VCAP API */ 92 /* Callback used by the VCAP API */ 103 /* Callback used by the VCAP API */ 111 /* Callback used by the VCAP API */ 153 /* Callback used by the VCAP API */ 195 /* Callback used by the VCAP API */
|
| D | vcap_api_debugfs.h | 3 * Microchip VCAP API 21 /* Create a debugFS entry for a vcap instance */
|
| /kernel/linux/linux-5.10/tools/testing/selftests/drivers/net/ocelot/ |
| D | tc_flower_chains.sh | 37 # Helpers to map a VCAP IS1 and VCAP IS2 lookup and policy to a chain number 39 # VCAP IS1 lookup 0: 10000 40 # VCAP IS1 lookup 1: 11000 41 # VCAP IS1 lookup 2: 12000 42 # VCAP IS2 lookup 0 policy 0: 20000 43 # VCAP IS2 lookup 0 policy 1: 20001 44 # VCAP IS2 lookup 0 policy 255: 20255 45 # VCAP IS2 lookup 1 policy 0: 21000 46 # VCAP IS2 lookup 1 policy 1: 21001 47 # VCAP IS2 lookup 1 policy 255: 21255 [all …]
|
| /kernel/linux/linux-6.6/tools/testing/selftests/drivers/net/ocelot/ |
| D | tc_flower_chains.sh | 19 # Helpers to map a VCAP IS1 and VCAP IS2 lookup and policy to a chain number 21 # VCAP IS1 lookup 0: 10000 22 # VCAP IS1 lookup 1: 11000 23 # VCAP IS1 lookup 2: 12000 24 # VCAP IS2 lookup 0 policy 0: 20000 25 # VCAP IS2 lookup 0 policy 1: 20001 26 # VCAP IS2 lookup 0 policy 255: 20255 27 # VCAP IS2 lookup 1 policy 0: 21000 28 # VCAP IS2 lookup 1 policy 1: 21001 29 # VCAP IS2 lookup 1 policy 255: 21255 [all …]
|
| /kernel/linux/linux-6.6/drivers/net/ethernet/microchip/sparx5/ |
| D | sparx5_vcap_impl.c | 2 /* Microchip Sparx5 Switch driver VCAP implementation 17 #define SUPER_VCAP_BLK_SIZE 3072 /* addresses per Super VCAP block */ 18 #define STREAMSIZE (64 * 4) /* bytes in the VCAP cache area */ 53 enum vcap_type vtype; /* type of vcap */ 55 int lookups; /* number of lookups in this vcap type */ 57 int first_cid; /* first chain id in this vcap */ 58 int last_cid; /* last chain id in this vcap */ 59 int count; /* number of available addresses, not in super vcap */ 60 int map_id; /* id in the super vcap block mapping (if applicable) */ 61 int blockno; /* starting block in super vcap (if applicable) */ [all …]
|
| D | sparx5_tc_matchall.c | 2 /* Microchip VCAP API 44 "VCAP already enabled"); in sparx5_tc_matchall_replace() 54 "Could not enable VCAP lookups"); in sparx5_tc_matchall_replace()
|
| D | sparx5_tc_flower.c | 2 /* Microchip VCAP API 39 /* SparX-5 VCAP fragment types: 51 /* Flower fragment flag to VCAP fragment type mapping */ 186 /* Extract VCAP fragment key and mask from verdict */ in sparx5_tc_flower_handler_control_usage() 211 "cvlan not supported in this VCAP"); in sparx5_tc_flower_handler_cvlan_usage() 383 pr_err("%s:%d: vcap type: %d not supported\n", in sparx5_tc_add_rule_counter() 568 /* Add the actionset that is the default for the VCAP type */ 589 pr_err("%s:%d: %s\n", __func__, __LINE__, "Invalid VCAP type"); in sparx5_tc_set_actionset() 598 /* Add the VCAP key to match on for a rule target value */ 636 /* Add the VCAP action that adds a target value to a rule */ [all …]
|
| D | sparx5_vcap_impl.h | 2 /* Microchip Sparx5 Switch driver VCAP implementation 191 /* Get the port keyset for the vcap lookup */ 204 /* Check if the ethertype is supported by the vcap port classification */
|
| /kernel/linux/linux-6.6/include/soc/mscc/ |
| D | ocelot_vcap.h | 11 /* Cookie definitions for private VCAP filters installed by the driver. 12 * Must be unique per VCAP block. 27 * VCAP Common 63 /* VCAP Type-Group values */ 125 * VCAP IS2 286 * VCAP IS1 377 * VCAP ES0 619 /* VCAP ES0 */ 637 /* VCAP IS1 */ 652 /* VCAP IS2 */ [all …]
|
| /kernel/linux/linux-6.6/drivers/net/ethernet/microchip/lan966x/ |
| D | lan966x_goto.c | 23 NL_SET_ERR_MSG_MOD(extack, "VCAP already enabled"); in lan966x_goto_port_add() 28 NL_SET_ERR_MSG_MOD(extack, "Could not enable VCAP lookups"); in lan966x_goto_port_add() 45 NL_SET_ERR_MSG_MOD(extack, "Could not disable VCAP lookups"); in lan966x_goto_port_del()
|
| D | lan966x_vcap_impl.c | 21 enum vcap_type vtype; /* type of vcap */ 23 int lookups; /* number of lookups in this vcap type */ 24 int first_cid; /* first chain id in this vcap */ 25 int last_cid; /* last chain id in this vcap */ 27 bool ingress; /* is vcap in the ingress path */ 122 /* Return the list of keysets for the vcap port configuration */ 299 pr_err("vcap type: %s not supported\n", in lan966x_vcap_validate_keyset() 382 pr_err("vcap type: %s not supported\n", in lan966x_vcap_add_default_fields() 702 pr_err("vcap type: %s not supported\n", in lan966x_vcap_port_key_deselection()
|
| /kernel/linux/linux-5.10/tools/testing/selftests/media_tests/ |
| D | video_device_test.c | 46 struct v4l2_capability vcap; in main() local 86 ret = ioctl(fd, VIDIOC_QUERYCAP, &vcap); in main() 90 printf("Video device driver %s\n", vcap.driver); in main()
|