/linux/drivers/net/ethernet/microchip/sparx5/ |
H A D | sparx5_psfp.c | 2 /* Microchip Sparx5 Switch driver 23 static int sparx5_psfp_sf_get(struct sparx5 *sparx5, u32 *id) in sparx5_psfp_sf_get() argument 26 sparx5->data->consts->n_filters, id); in sparx5_psfp_sf_get() 29 static int sparx5_psfp_sf_put(struct sparx5 *sparx5, u32 id) in sparx5_psfp_sf_put() argument 32 sparx5->data->consts->n_filters, id); in sparx5_psfp_sf_put() 35 static int sparx5_psfp_sg_get(struct sparx5 *sparx5, u32 idx, u32 *id) in sparx5_psfp_sg_get() argument 38 sparx5 in sparx5_psfp_sg_get() 41 sparx5_psfp_sg_put(struct sparx5 * sparx5,u32 id) sparx5_psfp_sg_put() argument 47 sparx5_psfp_fm_get(struct sparx5 * sparx5,u32 idx,u32 * id) sparx5_psfp_fm_get() argument 53 sparx5_psfp_fm_put(struct sparx5 * sparx5,u32 id) sparx5_psfp_fm_put() argument 59 sparx5_psfp_isdx_get_sf(struct sparx5 * sparx5,u32 isdx) sparx5_psfp_isdx_get_sf() argument 65 sparx5_psfp_isdx_get_fm(struct sparx5 * sparx5,u32 isdx) sparx5_psfp_isdx_get_fm() argument 71 sparx5_psfp_sf_get_sg(struct sparx5 * sparx5,u32 sfid) sparx5_psfp_sf_get_sg() argument 77 sparx5_isdx_conf_set(struct sparx5 * sparx5,u32 isdx,u32 sfid,u32 fmid) sparx5_isdx_conf_set() argument 92 sparx5_psfp_sgid_get_status(struct sparx5 * sparx5) sparx5_psfp_sgid_get_status() argument 97 sparx5_psfp_sgid_wait_for_completion(struct sparx5 * sparx5) sparx5_psfp_sgid_wait_for_completion() argument 107 sparx5_psfp_sg_config_change(struct sparx5 * sparx5,u32 id) sparx5_psfp_sg_config_change() argument 121 sparx5_psfp_sf_set(struct sparx5 * sparx5,u32 id,const struct sparx5_psfp_sf * sf) sparx5_psfp_sf_set() argument 135 sparx5_psfp_sg_set(struct sparx5 * sparx5,u32 id,const struct sparx5_psfp_sg * sg) sparx5_psfp_sg_set() argument 191 sparx5_sdlb_conf_set(struct sparx5 * sparx5,struct sparx5_psfp_fm * fm) sparx5_sdlb_conf_set() argument 207 sparx5_psfp_sf_add(struct sparx5 * sparx5,const struct sparx5_psfp_sf * sf,u32 * id) sparx5_psfp_sf_add() argument 221 sparx5_psfp_sf_del(struct sparx5 * sparx5,u32 id) sparx5_psfp_sf_del() argument 230 sparx5_psfp_sg_add(struct sparx5 * sparx5,u32 uidx,struct sparx5_psfp_sg * sg,u32 * id) sparx5_psfp_sg_add() argument 255 sparx5_psfp_sg_del(struct sparx5 * sparx5,u32 id) sparx5_psfp_sg_del() argument 270 sparx5_psfp_fm_add(struct sparx5 * sparx5,u32 uidx,struct sparx5_psfp_fm * fm,u32 * id) sparx5_psfp_fm_add() argument 299 sparx5_psfp_fm_del(struct sparx5 * sparx5,u32 id) sparx5_psfp_fm_del() argument 320 sparx5_psfp_init(struct sparx5 * sparx5) sparx5_psfp_init() argument [all...] |
H A D | sparx5_mactable.c | 2 /* Microchip Sparx5 Switch driver 44 static int sparx5_mact_get_status(struct sparx5 *sparx5) in sparx5_mact_get_status() argument 46 return spx5_rd(sparx5, LRN_COMMON_ACCESS_CTRL); in sparx5_mact_get_status() 49 static int sparx5_mact_wait_for_completion(struct sparx5 *sparx5) in sparx5_mact_wait_for_completion() argument 54 sparx5, val, in sparx5_mact_wait_for_completion() 59 static void sparx5_mact_select(struct sparx5 *sparx5, in sparx5_mact_select() argument 76 spx5_wr(mach, sparx5, LRN_MAC_ACCESS_CFG_ in sparx5_mact_select() 80 sparx5_mact_learn(struct sparx5 * sparx5,int pgid,const unsigned char mac[ETH_ALEN],u16 vid) sparx5_mact_learn() argument 122 struct sparx5 *sparx5 = port->sparx5; sparx5_mc_unsync() local 130 struct sparx5 *sparx5 = port->sparx5; sparx5_mc_sync() local 136 sparx5_mact_get(struct sparx5 * sparx5,unsigned char mac[ETH_ALEN],u16 * vid,u32 * pcfg2) sparx5_mact_get() argument 161 sparx5_mact_getnext(struct sparx5 * sparx5,unsigned char mac[ETH_ALEN],u16 * vid,u32 * pcfg2) sparx5_mact_getnext() argument 191 sparx5_mact_find(struct sparx5 * sparx5,const unsigned char mac[ETH_ALEN],u16 vid,u32 * pcfg2) sparx5_mact_find() argument 220 sparx5_mact_forget(struct sparx5 * sparx5,const unsigned char mac[ETH_ALEN],u16 vid) sparx5_mact_forget() argument 241 alloc_mact_entry(struct sparx5 * sparx5,const unsigned char * mac,u16 vid,u16 port_index) alloc_mact_entry() argument 258 find_mact_entry(struct sparx5 * sparx5,const unsigned char * mac,u16 vid,u16 port_index) find_mact_entry() argument 291 sparx5_add_mact_entry(struct sparx5 * sparx5,struct net_device * dev,u16 portno,const unsigned char * addr,u16 vid) sparx5_add_mact_entry() argument 338 sparx5_del_mact_entry(struct sparx5 * sparx5,const unsigned char * addr,u16 vid) sparx5_del_mact_entry() argument 363 sparx5_mact_handle_entry(struct sparx5 * sparx5,unsigned char mac[ETH_ALEN],u16 vid,u32 cfg2) sparx5_mact_handle_entry() argument 425 struct sparx5 *sparx5 = container_of(del_work, struct sparx5, sparx5_mact_pull_work() local 480 sparx5_set_ageing(struct sparx5 * sparx5,int msecs) sparx5_set_ageing() argument 492 sparx5_mact_init(struct sparx5 * sparx5) sparx5_mact_init() argument [all...] |
H A D | sparx5_sdlb.c | 2 /* Microchip Sparx5 Switch driver 28 u64 sparx5_sdlb_clk_hz_get(struct sparx5 *sparx5) in sparx5_sdlb_clk_hz_get() argument 33 (sparx5_clk_period(sparx5->coreclock) / 100); in sparx5_sdlb_clk_hz_get() 38 static int sparx5_sdlb_pup_interval_get(struct sparx5 *sparx5, u32 max_token, in sparx5_sdlb_pup_interval_get() argument 43 clk_hz = sparx5_sdlb_clk_hz_get(sparx5); in sparx5_sdlb_pup_interval_get() 48 int sparx5_sdlb_pup_token_get(struct sparx5 *sparx5, u32 pup_interval, u64 rate) in sparx5_sdlb_pup_token_get() argument 55 clk_hz = sparx5_sdlb_clk_hz_get(sparx5); in sparx5_sdlb_pup_token_get() 60 sparx5_sdlb_group_disable(struct sparx5 * sparx5,u32 group) sparx5_sdlb_group_disable() argument 67 sparx5_sdlb_group_enable(struct sparx5 * sparx5,u32 group) sparx5_sdlb_group_enable() argument 74 sparx5_sdlb_group_get_first(struct sparx5 * sparx5,u32 group) sparx5_sdlb_group_get_first() argument 83 sparx5_sdlb_group_get_next(struct sparx5 * sparx5,u32 group,u32 lb) sparx5_sdlb_group_get_next() argument 93 sparx5_sdlb_group_is_first(struct sparx5 * sparx5,u32 group,u32 lb) sparx5_sdlb_group_is_first() argument 99 sparx5_sdlb_group_is_last(struct sparx5 * sparx5,u32 group,u32 lb) sparx5_sdlb_group_is_last() argument 105 sparx5_sdlb_group_is_empty(struct sparx5 * sparx5,u32 group) sparx5_sdlb_group_is_empty() argument 114 sparx5_sdlb_group_get_last(struct sparx5 * sparx5,u32 group) sparx5_sdlb_group_get_last() argument 129 sparx5_sdlb_group_is_singular(struct sparx5 * sparx5,u32 group) sparx5_sdlb_group_is_singular() argument 138 sparx5_sdlb_group_get_adjacent(struct sparx5 * sparx5,u32 group,u32 idx,u32 * prev,u32 * next,u32 * first) sparx5_sdlb_group_get_adjacent() argument 163 sparx5_sdlb_group_get_count(struct sparx5 * sparx5,u32 group) sparx5_sdlb_group_get_count() argument 180 sparx5_sdlb_group_get_by_rate(struct sparx5 * sparx5,u32 rate,u32 burst) sparx5_sdlb_group_get_by_rate() argument 208 sparx5_sdlb_group_get_by_index(struct sparx5 * sparx5,u32 idx,u32 * group) sparx5_sdlb_group_get_by_index() argument 236 sparx5_sdlb_group_link(struct sparx5 * sparx5,u32 group,u32 idx,u32 first,u32 next,bool empty) sparx5_sdlb_group_link() argument 260 sparx5_sdlb_group_add(struct sparx5 * sparx5,u32 group,u32 idx) sparx5_sdlb_group_add() argument 275 sparx5_sdlb_group_del(struct sparx5 * sparx5,u32 group,u32 idx) sparx5_sdlb_group_del() argument 305 sparx5_sdlb_group_init(struct sparx5 * sparx5,u64 max_rate,u32 min_burst,u32 frame_size,u32 idx) sparx5_sdlb_group_init() argument [all...] |
H A D | sparx5_vlan.c | 2 /* Microchip Sparx5 Switch driver 10 static int sparx5_vlant_set_mask(struct sparx5 *sparx5, u16 vid) in sparx5_vlant_set_mask() argument 15 bitmap_to_arr32(mask, sparx5->vlan_mask[vid], SPX5_PORTS); in sparx5_vlant_set_mask() 18 spx5_wr(mask[0], sparx5, ANA_L3_VLAN_MASK_CFG(vid)); in sparx5_vlant_set_mask() 19 if (is_sparx5(sparx5)) { in sparx5_vlant_set_mask() 20 spx5_wr(mask[1], sparx5, ANA_L3_VLAN_MASK_CFG1(vid)); in sparx5_vlant_set_mask() 21 spx5_wr(mask[2], sparx5, ANA_L3_VLAN_MASK_CFG2(vid)); in sparx5_vlant_set_mask() 27 void sparx5_vlan_init(struct sparx5 *sparx5) in sparx5_vlan_init() argument 44 sparx5_vlan_port_setup(struct sparx5 * sparx5,int portno) sparx5_vlan_port_setup() argument 60 struct sparx5 *sparx5 = port->sparx5; sparx5_vlan_vid_add() local 91 struct sparx5 *sparx5 = port->sparx5; sparx5_vlan_vid_del() local 122 struct sparx5 *sparx5 = port->sparx5; sparx5_pgid_update_mask() local 161 sparx5_update_fwd(struct sparx5 * sparx5) sparx5_update_fwd() argument 214 sparx5_vlan_port_apply(struct sparx5 * sparx5,struct sparx5_port * port) sparx5_vlan_port_apply() argument [all...] |
H A D | sparx5_mirror.c | 2 /* Microchip Sparx5 Switch driver 24 static u64 sparx5_mirror_port_get(struct sparx5 *sparx5, u32 idx) in sparx5_mirror_port_get() argument 28 val = spx5_rd(sparx5, ANA_AC_PROBE_PORT_CFG(idx)); in sparx5_mirror_port_get() 30 if (is_sparx5(sparx5)) in sparx5_mirror_port_get() 31 val |= (u64)spx5_rd(sparx5, ANA_AC_PROBE_PORT_CFG1(idx)) << 32; in sparx5_mirror_port_get() 37 static void sparx5_mirror_port_add(struct sparx5 *sparx5, u32 idx, u32 portno) in sparx5_mirror_port_add() argument 45 return spx5_rmw(val, val, sparx5, ANA_AC_PROBE_PORT_CFG(idx)); in sparx5_mirror_port_add() 47 return spx5_rmw(val, val, sparx5, ANA_AC_PROBE_PORT_CFG in sparx5_mirror_port_add() 51 sparx5_mirror_port_del(struct sparx5 * sparx5,u32 idx,u32 portno) sparx5_mirror_port_del() argument 65 sparx5_mirror_contains(struct sparx5 * sparx5,u32 idx,u32 portno) sparx5_mirror_contains() argument 71 sparx5_mirror_is_empty(struct sparx5 * sparx5,u32 idx) sparx5_mirror_is_empty() argument 77 sparx5_mirror_dir_get(struct sparx5 * sparx5,u32 idx) sparx5_mirror_dir_get() argument 85 sparx5_mirror_dir_set(struct sparx5 * sparx5,u32 idx,u32 dir) sparx5_mirror_dir_set() argument 93 sparx5_mirror_monitor_set(struct sparx5 * sparx5,u32 idx,u32 portno) sparx5_mirror_monitor_set() argument 102 sparx5_mirror_monitor_get(struct sparx5 * sparx5,u32 idx) sparx5_mirror_monitor_get() argument 111 sparx5_mirror_has_monitor(struct sparx5 * sparx5,u32 idx,u32 portno) sparx5_mirror_has_monitor() argument 121 struct sparx5 *sparx5 = sport->sparx5; sparx5_mirror_get() local 155 struct sparx5 *sparx5; sparx5_mirror_add() local 191 struct sparx5 *sparx5 = port->sparx5; sparx5_mirror_del() local [all...] |
H A D | sparx5_qos.c | 2 /* Microchip Sparx5 Switch driver 24 void sparx5_new_base_time(struct sparx5 *sparx5, const u32 cycle_time, in sparx5_new_base_time() argument 35 sparx5_ptp_gettime64(&sparx5->phc[SPARX5_PHC_PORT].info, &ts); in sparx5_new_base_time() 84 static u32 sparx5_lg_get_leak_time(struct sparx5 *sparx5, u32 layer, u32 group) in sparx5_lg_get_leak_time() argument 88 value = spx5_rd(sparx5, HSCH_HSCH_TIMER_CFG(layer, group)); in sparx5_lg_get_leak_time() 92 static void sparx5_lg_set_leak_time(struct sparx5 *sparx5, u32 layer, u32 group, in sparx5_lg_set_leak_time() argument 95 spx5_wr(HSCH_HSCH_TIMER_CFG_LEAK_TIME_SET(leak_time), sparx5, in sparx5_lg_set_leak_time() 99 sparx5_lg_get_first(struct sparx5 * sparx5,u32 layer,u32 group) sparx5_lg_get_first() argument 107 sparx5_lg_get_next(struct sparx5 * sparx5,u32 layer,u32 group,u32 idx) sparx5_lg_get_next() argument 117 sparx5_lg_get_last(struct sparx5 * sparx5,u32 layer,u32 group) sparx5_lg_get_last() argument 132 sparx5_lg_is_last(struct sparx5 * sparx5,u32 layer,u32 group,u32 idx) sparx5_lg_is_last() argument 138 sparx5_lg_is_first(struct sparx5 * sparx5,u32 layer,u32 group,u32 idx) sparx5_lg_is_first() argument 144 sparx5_lg_is_empty(struct sparx5 * sparx5,u32 layer,u32 group) sparx5_lg_is_empty() argument 149 sparx5_lg_is_singular(struct sparx5 * sparx5,u32 layer,u32 group) sparx5_lg_is_singular() argument 158 sparx5_lg_enable(struct sparx5 * sparx5,u32 layer,u32 group,u32 leak_time) sparx5_lg_enable() argument 164 sparx5_lg_disable(struct sparx5 * sparx5,u32 layer,u32 group) sparx5_lg_disable() argument 169 sparx5_lg_get_group_by_index(struct sparx5 * sparx5,u32 layer,u32 idx,u32 * group) sparx5_lg_get_group_by_index() argument 215 sparx5_lg_get_adjacent(struct sparx5 * sparx5,u32 layer,u32 group,u32 idx,u32 * prev,u32 * next,u32 * first) sparx5_lg_get_adjacent() argument 241 sparx5_lg_conf_set(struct sparx5 * sparx5,u32 layer,u32 group,u32 se_first,u32 idx,u32 idx_next,bool empty) sparx5_lg_conf_set() argument 271 sparx5_lg_del(struct sparx5 * sparx5,u32 layer,u32 group,u32 idx) sparx5_lg_del() argument 299 sparx5_lg_add(struct sparx5 * sparx5,u32 layer,u32 new_group,u32 idx) sparx5_lg_add() argument 335 struct sparx5 *sparx5 = port->sparx5; sparx5_shaper_conf_set() local 392 sparx5_leak_groups_init(struct sparx5 * sparx5) sparx5_leak_groups_init() argument 448 sparx5_qos_init(struct sparx5 * sparx5) sparx5_qos_init() argument [all...] |
H A D | sparx5_vcap_impl.c | 2 /* Microchip Sparx5 Switch driver VCAP implementation 6 * The Sparx5 Chip Register Model can be browsed at this location: 152 static void sparx5_vcap_type_err(struct sparx5 *sparx5, in sparx5_vcap_type_err() argument 161 static void sparx5_vcap_wait_super_update(struct sparx5 *sparx5) in sparx5_vcap_wait_super_update() argument 167 false, sparx5, VCAP_SUPER_CTRL); in sparx5_vcap_wait_super_update() 171 static void sparx5_vcap_wait_es0_update(struct sparx5 *sparx5) in sparx5_vcap_wait_es0_update() argument 177 false, sparx5, VCAP_ES0_CTR in sparx5_vcap_wait_es0_update() 181 sparx5_vcap_wait_es2_update(struct sparx5 * sparx5) sparx5_vcap_wait_es2_update() argument 191 _sparx5_vcap_range_init(struct sparx5 * sparx5,struct vcap_admin * admin,u32 addr,u32 count) _sparx5_vcap_range_init() argument 248 sparx5_vcap_block_init(struct sparx5 * sparx5,struct vcap_admin * admin) sparx5_vcap_block_init() argument 411 struct sparx5 *sparx5 = port->sparx5; sparx5_vcap_is0_get_port_keysets() local 465 struct sparx5 *sparx5 = port->sparx5; sparx5_vcap_is2_get_port_keysets() local 594 struct sparx5 *sparx5 = port->sparx5; sparx5_vcap_es0_get_port_keysets() local 619 struct sparx5 *sparx5 = port->sparx5; sparx5_vcap_es2_get_port_keysets() local 902 sparx5_vcap_is0_cache_write(struct sparx5 * sparx5,struct vcap_admin * admin,enum vcap_selection sel,u32 start,u32 count) sparx5_vcap_is0_cache_write() argument 943 sparx5_vcap_is2_cache_write(struct sparx5 * sparx5,struct vcap_admin * admin,enum vcap_selection sel,u32 start,u32 count) sparx5_vcap_is2_cache_write() argument 992 sparx5_es0_write_esdx_counter(struct sparx5 * sparx5,struct vcap_admin * admin,u32 id) sparx5_es0_write_esdx_counter() argument 1003 sparx5_vcap_es0_cache_write(struct sparx5 * sparx5,struct vcap_admin * admin,enum vcap_selection sel,u32 start,u32 count) sparx5_vcap_es0_cache_write() argument 1044 sparx5_vcap_es2_cache_write(struct sparx5 * sparx5,struct vcap_admin * admin,enum vcap_selection sel,u32 start,u32 count) sparx5_vcap_es2_cache_write() argument 1094 struct sparx5 *sparx5 = port->sparx5; sparx5_vcap_cache_write() local 1115 sparx5_vcap_is0_cache_read(struct sparx5 * sparx5,struct vcap_admin * admin,enum vcap_selection sel,u32 start,u32 count) sparx5_vcap_is0_cache_read() argument 1150 sparx5_vcap_is2_cache_read(struct sparx5 * sparx5,struct vcap_admin * admin,enum vcap_selection sel,u32 start,u32 count) sparx5_vcap_is2_cache_read() argument 1191 sparx5_es0_read_esdx_counter(struct sparx5 * sparx5,struct vcap_admin * admin,u32 id) sparx5_es0_read_esdx_counter() argument 1205 sparx5_vcap_es0_cache_read(struct sparx5 * sparx5,struct vcap_admin * admin,enum vcap_selection sel,u32 start,u32 count) sparx5_vcap_es0_cache_read() argument 1240 sparx5_vcap_es2_cache_read(struct sparx5 * sparx5,struct vcap_admin * admin,enum vcap_selection sel,u32 start,u32 count) sparx5_vcap_es2_cache_read() argument 1284 struct sparx5 *sparx5 = port->sparx5; sparx5_vcap_cache_read() local 1311 struct sparx5 *sparx5 = port->sparx5; sparx5_vcap_range_init() local 1316 sparx5_vcap_super_update(struct sparx5 * sparx5,enum vcap_command cmd,enum vcap_selection sel,u32 addr) sparx5_vcap_super_update() argument 1335 sparx5_vcap_es0_update(struct sparx5 * sparx5,enum vcap_command cmd,enum vcap_selection sel,u32 addr) sparx5_vcap_es0_update() argument 1354 sparx5_vcap_es2_update(struct sparx5 * sparx5,enum vcap_command cmd,enum vcap_selection sel,u32 addr) sparx5_vcap_es2_update() argument 1379 struct sparx5 *sparx5 = port->sparx5; sparx5_vcap_update() local 1398 sparx5_vcap_super_move(struct sparx5 * sparx5,u32 addr,enum vcap_command cmd,u16 mv_num_pos,u16 mv_size) sparx5_vcap_super_move() argument 1418 sparx5_vcap_es0_move(struct sparx5 * sparx5,u32 addr,enum vcap_command cmd,u16 mv_num_pos,u16 mv_size) sparx5_vcap_es0_move() argument 1438 sparx5_vcap_es2_move(struct sparx5 * sparx5,u32 addr,enum vcap_command cmd,u16 mv_num_pos,u16 mv_size) sparx5_vcap_es2_move() argument 1463 struct sparx5 *sparx5 = port->sparx5; sparx5_vcap_move() local 1523 struct sparx5 *sparx5 = port->sparx5; sparx5_vcap_is0_set_port_keyset() local 1612 struct sparx5 *sparx5 = port->sparx5; sparx5_vcap_is2_set_port_keyset() local 1705 struct sparx5 *sparx5 = port->sparx5; sparx5_vcap_es2_set_port_keyset() local 1777 sparx5_vcap_is0_port_key_selection(struct sparx5 * sparx5,struct vcap_admin * admin) sparx5_vcap_is0_port_key_selection() argument 1804 sparx5_vcap_is2_port_key_selection(struct sparx5 * sparx5,struct vcap_admin * admin) sparx5_vcap_is2_port_key_selection() argument 1832 sparx5_vcap_es0_port_key_selection(struct sparx5 * sparx5,struct vcap_admin * admin) sparx5_vcap_es0_port_key_selection() argument 1849 sparx5_vcap_es2_port_key_selection(struct sparx5 * sparx5,struct vcap_admin * admin) sparx5_vcap_es2_port_key_selection() argument 1866 sparx5_vcap_port_key_selection(struct sparx5 * sparx5,struct vcap_admin * admin) sparx5_vcap_port_key_selection() argument 1889 sparx5_vcap_port_key_deselection(struct sparx5 * sparx5,struct vcap_admin * admin) sparx5_vcap_port_key_deselection() argument 1942 sparx5_vcap_admin_alloc(struct sparx5 * sparx5,struct vcap_control * ctrl,const struct sparx5_vcap_inst * cfg) sparx5_vcap_admin_alloc() argument 1976 sparx5_vcap_block_alloc(struct sparx5 * sparx5,struct vcap_admin * admin,const struct sparx5_vcap_inst * cfg) sparx5_vcap_block_alloc() argument 2032 sparx5_vcap_init(struct sparx5 * sparx5) sparx5_vcap_init() argument 2086 sparx5_vcap_destroy(struct sparx5 * sparx5) sparx5_vcap_destroy() argument [all...] |
H A D | sparx5_netdev.c | 2 /* Microchip Sparx5 Switch driver 58 void sparx5_set_port_ifh(struct sparx5 *sparx5, void *ifh_hdr, u16 portno) in sparx5_set_port_ifh() argument 67 ifh_encode_bitfield(ifh_hdr, is_sparx5(sparx5) ? 16 : 17, 37, 5); in sparx5_set_port_ifh() 71 ifh_encode_bitfield(ifh_hdr, sparx5_get_pgid(sparx5, SPX5_PORT_CPU_0), in sparx5_set_port_ifh() 72 46, is_sparx5(sparx5) ? 7 : 6); in sparx5_set_port_ifh() 74 ifh_encode_bitfield(ifh_hdr, 124, is_sparx5(sparx5) ? 57 : 56, 7); in sparx5_set_port_ifh() 76 ifh_encode_bitfield(ifh_hdr, 1, is_sparx5(sparx5) ? 67 : 66, 1); in sparx5_set_port_ifh() 84 void sparx5_set_port_ifh_pdu_type(struct sparx5 *sparx5, voi argument 91 sparx5_set_port_ifh_pdu_w16_offset(struct sparx5 * sparx5,void * ifh_hdr,u32 pdu_w16_offset) sparx5_set_port_ifh_pdu_w16_offset() argument 98 sparx5_set_port_ifh_timestamp(struct sparx5 * sparx5,void * ifh_hdr,u64 timestamp) sparx5_set_port_ifh_timestamp() argument 168 struct sparx5 *sparx5 = port->sparx5; sparx5_set_rx_mode() local 190 struct sparx5 *sparx5 = port->sparx5; sparx5_set_mac_address() local 213 struct sparx5 *sparx5 = sparx5_port->sparx5; sparx5_get_port_parent_id() local 225 struct sparx5 *sparx5 = sparx5_port->sparx5; sparx5_port_hwtstamp_get() local 240 struct sparx5 *sparx5 = sparx5_port->sparx5; sparx5_port_hwtstamp_set() local 269 sparx5_create_netdev(struct sparx5 * sparx5,u32 portno) sparx5_create_netdev() argument 296 sparx5_register_netdevs(struct sparx5 * sparx5) sparx5_register_netdevs() argument 315 sparx5_destroy_netdevs(struct sparx5 * sparx5) sparx5_destroy_netdevs() argument 334 sparx5_unregister_netdevs(struct sparx5 * sparx5) sparx5_unregister_netdevs() argument [all...] |
H A D | sparx5_switchdev.c | 2 /* Microchip Sparx5 Switch driver 19 struct sparx5 *sparx5; member 35 struct sparx5 *sparx5 = port->sparx5; in sparx5_port_update_mcast_ip_flood() local 38 for (pgid = sparx5_get_pgid(sparx5, PGID_IPV4_MC_DATA); in sparx5_port_update_mcast_ip_flood() 39 pgid <= sparx5_get_pgid(sparx5, PGID_IPV6_MC_CTRL); pgid++) in sparx5_port_update_mcast_ip_flood() 46 struct sparx5 *sparx5 in sparx5_port_attr_bridge_flags() local 68 struct sparx5 *sparx5 = port->sparx5; sparx5_attr_stp_state_set() local 108 struct sparx5 *sparx5 = port->sparx5; sparx5_port_attr_mrouter_set() local 179 struct sparx5 *sparx5 = port->sparx5; sparx5_port_bridge_join() local 218 struct sparx5 *sparx5 = port->sparx5; sparx5_port_bridge_leave() local 264 struct sparx5 *sparx5 = port->sparx5; sparx5_port_add_addr() local 318 struct sparx5 *sparx5; sparx5_switchdev_bridge_fdb_event_work() local 429 struct sparx5 *sparx5 = sparx5_handle_port_vlan_add() local 447 sparx5_alloc_mdb_entry(struct sparx5 * sparx5,const unsigned char * addr,u16 vid,struct sparx5_mdb_entry ** entry_out) sparx5_alloc_mdb_entry() argument 478 sparx5_free_mdb_entry(struct sparx5 * sparx5,const unsigned char * addr,u16 vid) sparx5_free_mdb_entry() argument 500 sparx5_mdb_get_entry(struct sparx5 * sparx5,const unsigned char * addr,u16 vid) sparx5_mdb_get_entry() argument 666 struct sparx5 *sparx5 = sparx5_handle_port_vlan_del() local [all...] |
H A D | sparx5_packet.c | 2 /* Microchip Sparx5 Switch driver 23 void sparx5_xtr_flush(struct sparx5 *sparx5, u8 grp) in sparx5_xtr_flush() argument 26 spx5_wr(QS_XTR_FLUSH_FLUSH_SET(BIT(grp)), sparx5, QS_XTR_FLUSH); in sparx5_xtr_flush() 32 spx5_wr(0, sparx5, QS_XTR_FLUSH); in sparx5_xtr_flush() 35 void sparx5_ifh_parse(struct sparx5 *sparx5, u32 *ifh, struct frame_info *info) in sparx5_ifh_parse() argument 46 info->src_port = spx5_field_get(GENMASK(is_sparx5(sparx5) ? 7 : 6, 1), in sparx5_ifh_parse() 60 static void sparx5_xtr_grp(struct sparx5 *sparx5, u argument 167 sparx5_inject(struct sparx5 * sparx5,u32 * ifh,struct sk_buff * skb,struct net_device * ndev) sparx5_inject() argument 234 struct sparx5 *sparx5 = port->sparx5; sparx5_port_xmit_impl() local 318 sparx5_manual_injection_mode(struct sparx5 * sparx5) sparx5_manual_injection_mode() argument [all...] |
H A D | sparx5_ethtool.c | 2 /* Microchip Sparx5 Switch driver 201 static void sparx5_get_queue_sys_stats(struct sparx5 *sparx5, int portno) in sparx5_get_queue_sys_stats() argument 208 portstats = &sparx5->stats[portno * sparx5->num_stats]; in sparx5_get_queue_sys_stats() 209 mutex_lock(&sparx5->queue_stats_lock); in sparx5_get_queue_sys_stats() 210 spx5_wr(XQS_STAT_CFG_STAT_VIEW_SET(portno), sparx5, XQS_STAT_CFG); in sparx5_get_queue_sys_stats() 214 sparx5_update_counter(stats, spx5_rd(sparx5, XQS_CNT(addr))); in sparx5_get_queue_sys_stats() 218 sparx5_update_counter(stats, spx5_rd(sparx5, XQS_CNT(addr))); in sparx5_get_queue_sys_stats() 222 sparx5_update_counter(stats, spx5_rd(sparx5, XQS_CN in sparx5_get_queue_sys_stats() 230 sparx5_get_ana_ac_stats_stats(struct sparx5 * sparx5,int portno) sparx5_get_ana_ac_stats_stats() argument 505 sparx5_get_device_stats(struct sparx5 * sparx5,int portno) sparx5_get_device_stats() argument 788 sparx5_get_asm_stats(struct sparx5 * sparx5,int portno) sparx5_get_asm_stats() argument 815 struct sparx5 *sparx5 = port->sparx5; sparx5_get_eth_phy_stats() local 840 struct sparx5 *sparx5 = port->sparx5; sparx5_get_eth_mac_stats() local 908 struct sparx5 *sparx5 = port->sparx5; sparx5_get_eth_mac_ctrl_stats() local 940 struct sparx5 *sparx5 = port->sparx5; sparx5_get_eth_rmon_stats() local 998 struct sparx5 *sparx5 = port->sparx5; sparx5_get_sset_count() local 1008 struct sparx5 *sparx5 = port->sparx5; sparx5_get_sset_strings() local 1022 struct sparx5 *sparx5 = port->sparx5; sparx5_get_sset_data() local 1052 struct sparx5 *sparx5 = port->sparx5; sparx5_get_stats64() local 1111 sparx5_update_port_stats(struct sparx5 * sparx5,int portno) sparx5_update_port_stats() argument 1121 sparx5_update_stats(struct sparx5 * sparx5) sparx5_update_stats() argument 1133 struct sparx5 *sparx5 = container_of(dwork, sparx5_check_stats_work() local 1159 sparx5_config_stats(struct sparx5 * sparx5) sparx5_config_stats() argument 1168 sparx5_config_port_stats(struct sparx5 * sparx5,int portno) sparx5_config_port_stats() argument 1189 struct sparx5 *sparx5 = port->sparx5; sparx5_get_ts_info() local 1229 sparx_stats_init(struct sparx5 * sparx5) sparx_stats_init() argument [all...] |
H A D | sparx5_port.h | 2 /* Microchip Sparx5 Switch driver 48 static inline u32 sparx5_to_high_dev(struct sparx5 *sparx5, int port) in sparx5_to_high_dev() argument 50 const struct sparx5_ops *ops = sparx5->data->ops; in sparx5_to_high_dev() 59 static inline u32 sparx5_to_pcs_dev(struct sparx5 *sparx5, int port) in sparx5_to_pcs_dev() argument 61 const struct sparx5_ops *ops = sparx5->data->ops; in sparx5_to_pcs_dev() 70 static inline u32 sparx5_port_dev_mapping(struct sparx5 *sparx5, int port) in sparx5_port_dev_mapping() argument 82 static inline u32 sparx5_port_dev_index(struct sparx5 *sparx argument [all...] |
H A D | sparx5_calendar.c | 2 /* Microchip Sparx5 Switch driver 37 static u32 sparx5_target_bandwidth(struct sparx5 *sparx5) in sparx5_target_bandwidth() argument 39 switch (sparx5->target_ct) { in sparx5_target_bandwidth() 118 enum sparx5_cal_bw sparx5_get_port_cal_speed(struct sparx5 *sparx5, u32 portno) in sparx5_get_port_cal_speed() argument 122 if (portno >= sparx5->data->consts->n_ports) { in sparx5_get_port_cal_speed() 125 sparx5_get_internal_port(sparx5, SPX5_PORT_CPU_0) || in sparx5_get_port_cal_speed() 127 sparx5_get_internal_port(sparx5, SPX5_PORT_CPU_1)) { in sparx5_get_port_cal_speed() 131 sparx5_get_internal_port(sparx5, SPX5_PORT_VD in sparx5_get_port_cal_speed() 154 sparx5_config_auto_calendar(struct sparx5 * sparx5) sparx5_config_auto_calendar() argument 277 sparx5_dsm_calendar_calc(struct sparx5 * sparx5,u32 taxi,struct sparx5_calendar_data * data) sparx5_dsm_calendar_calc() argument 473 sparx5_dsm_calendar_check(struct sparx5 * sparx5,struct sparx5_calendar_data * data) sparx5_dsm_calendar_check() argument 529 sparx5_dsm_calendar_update(struct sparx5 * sparx5,u32 taxi,struct sparx5_calendar_data * data) sparx5_dsm_calendar_update() argument 581 sparx5_config_dsm_calendar(struct sparx5 * sparx5) sparx5_config_dsm_calendar() argument [all...] |
H A D | sparx5_police.c | 2 /* Microchip Sparx5 Switch driver 10 static int sparx5_policer_service_conf_set(struct sparx5 *sparx5, in sparx5_policer_service_conf_set() argument 14 const struct sparx5_ops *ops = sparx5->data->ops; in sparx5_policer_service_conf_set() 24 pup_tokens = sparx5_sdlb_pup_token_get(sparx5, g->pup_interval, rate); in sparx5_policer_service_conf_set() 26 sparx5_sdlb_pup_token_get(sparx5, g->pup_interval, g->max_rate); in sparx5_policer_service_conf_set() 30 spx5_wr(ANA_AC_SDLB_PUP_TOKENS_PUP_TOKENS_SET(pup_tokens), sparx5, in sparx5_policer_service_conf_set() 34 ANA_AC_SDLB_INH_CTRL_PUP_TOKENS_MAX, sparx5, in sparx5_policer_service_conf_set() 38 sparx5, ANA_AC_SDLB_THRES(idx, 0)); in sparx5_policer_service_conf_set() 43 int sparx5_policer_conf_set(struct sparx5 *sparx argument [all...] |
H A D | sparx5_vcap_debugfs.c | 2 /* Microchip Sparx5 Switch driver VCAP debugFS implementation 76 static void sparx5_vcap_is0_port_keys(struct sparx5 *sparx5, in sparx5_vcap_is0_port_keys() argument 90 value = spx5_rd(sparx5, in sparx5_vcap_is0_port_keys() 119 static void sparx5_vcap_is2_port_keys(struct sparx5 *sparx5, in sparx5_vcap_is2_port_keys() argument 133 value = spx5_rd(sparx5, ANA_ACL_VCAP_S2_CFG(port->portno)); in sparx5_vcap_is2_port_keys() 141 value = spx5_rd(sparx5, in sparx5_vcap_is2_port_keys() 232 static void sparx5_vcap_is2_port_stickies(struct sparx5 *sparx5, in sparx5_vcap_is2_port_stickies() argument 287 sparx5_vcap_es0_port_keys(struct sparx5 * sparx5,struct vcap_admin * admin,struct sparx5_port * port,struct vcap_output_print * out) sparx5_vcap_es0_port_keys() argument 325 sparx5_vcap_es2_port_keys(struct sparx5 * sparx5,struct vcap_admin * admin,struct sparx5_port * port,struct vcap_output_print * out) sparx5_vcap_es2_port_keys() argument 405 sparx5_vcap_es2_port_stickies(struct sparx5 * sparx5,struct vcap_admin * admin,struct vcap_output_print * out) sparx5_vcap_es2_port_stickies() argument 444 struct sparx5 *sparx5 = port->sparx5; sparx5_port_info() local [all...] |
H A D | sparx5_tc_matchall.c | 53 struct sparx5 *sparx5; in sparx5_tc_matchall_replace() local 73 sparx5 = port->sparx5; in sparx5_tc_matchall_replace() 103 err = vcap_enable_lookups(sparx5->vcap_ctrl, ndev, in sparx5_tc_matchall_replace() 133 list_add_tail(&mall_entry->list, &sparx5->mall_entries); in sparx5_tc_matchall_replace() 143 struct sparx5 *sparx5 = port->sparx5; in sparx5_tc_matchall_destroy() local 147 entry = sparx5_tc_matchall_entry_find(&sparx5 in sparx5_tc_matchall_destroy() 172 struct sparx5 *sparx5 = port->sparx5; sparx5_tc_matchall_stats() local [all...] |
H A D | Makefile | 3 # Makefile for the Microchip Sparx5 network device drivers. 6 obj-$(CONFIG_SPARX5_SWITCH) += sparx5-switch.o 8 sparx5-switch-y := sparx5_main.o sparx5_packet.o \ 16 sparx5-switch-$(CONFIG_SPARX5_DCB) += sparx5_dcb.o 17 sparx5-switch-$(CONFIG_DEBUG_FS) += sparx5_vcap_debugfs.o 19 sparx5-switch-$(CONFIG_LAN969X_SWITCH) += lan969x/lan969x_regs.o \
|
H A D | sparx5_pgid.c | 4 void sparx5_pgid_init(struct sparx5 *spx5) in sparx5_pgid_init() 18 int sparx5_pgid_alloc_mcast(struct sparx5 *spx5, u16 *idx) in sparx5_pgid_alloc_mcast() 37 int sparx5_pgid_free(struct sparx5 *spx5, u16 idx) in sparx5_pgid_free() 50 int sparx5_get_pgid(struct sparx5 *sparx5, int pgid) in sparx5_get_pgid() argument 52 return sparx5->data->consts->n_ports + pgid; in sparx5_get_pgid()
|
/linux/drivers/net/ethernet/microchip/vcap/ |
H A D | vcap_ag_api.h | 28 VCAP_KFS_ARP, /* sparx5 is2 X6, sparx5 es2 X6, lan966x is2 X2 */ 31 VCAP_KFS_ETAG, /* sparx5 is0 X2 */ 32 VCAP_KFS_IP4_OTHER, /* sparx5 is2 X6, sparx5 es2 X6, lan966x is2 X2 */ 33 VCAP_KFS_IP4_TCP_UDP, /* sparx5 is2 X6, sparx5 es2 X6, lan966x is2 X2 */ 34 VCAP_KFS_IP4_VID, /* sparx5 es2 X3 */ 36 VCAP_KFS_IP6_STD, /* sparx5 is2 X6, sparx5 es [all...] |
/linux/drivers/net/ethernet/microchip/sparx5/lan969x/ |
H A D | lan969x_fdma.c | 15 #define FDMA_PRIV(fdma) ((struct sparx5 *)((fdma)->priv)) 53 static void lan969x_fdma_tx_clear_buf(struct sparx5 *sparx5, int weight) in lan969x_fdma_tx_clear_buf() argument 55 struct fdma *fdma = &sparx5->tx.fdma; in lan969x_fdma_tx_clear_buf() 60 spin_lock_irqsave(&sparx5->tx_lock, flags); in lan969x_fdma_tx_clear_buf() 63 db = &sparx5->tx.dbs[i]; in lan969x_fdma_tx_clear_buf() 73 sparx5->tx.packets++; in lan969x_fdma_tx_clear_buf() 75 dma_unmap_single(sparx5->dev, in lan969x_fdma_tx_clear_buf() 86 spin_unlock_irqrestore(&sparx5->tx_lock, flags); in lan969x_fdma_tx_clear_buf() 100 static struct sk_buff *lan969x_fdma_rx_get_frame(struct sparx5 *sparx argument 150 lan969x_fdma_rx_alloc(struct sparx5 * sparx5) lan969x_fdma_rx_alloc() argument 183 lan969x_fdma_tx_alloc(struct sparx5 * sparx5) lan969x_fdma_tx_alloc() argument 208 lan969x_fdma_rx_init(struct sparx5 * sparx5) lan969x_fdma_rx_init() argument 232 lan969x_fdma_tx_init(struct sparx5 * sparx5) lan969x_fdma_tx_init() argument 249 struct sparx5 *sparx5 = container_of(rx, struct sparx5, rx); lan969x_fdma_napi_poll() local 300 lan969x_fdma_xmit(struct sparx5 * sparx5,u32 * ifh,struct sk_buff * skb,struct net_device * dev) lan969x_fdma_xmit() argument 357 lan969x_fdma_init(struct sparx5 * sparx5) lan969x_fdma_init() argument 394 lan969x_fdma_deinit(struct sparx5 * sparx5) lan969x_fdma_deinit() argument [all...] |
H A D | lan969x.h | 10 #include "../sparx5/sparx5_main.h" 11 #include "../sparx5/sparx5_regs.h" 12 #include "../sparx5/sparx5_vcap_impl.h" 68 int lan969x_dsm_calendar_calc(struct sparx5 *sparx5, u32 taxi, 76 int lan969x_fdma_init(struct sparx5 *sparx5); 77 int lan969x_fdma_deinit(struct sparx5 *sparx5); 79 int lan969x_fdma_xmit(struct sparx5 *sparx [all...] |
H A D | lan969x.c | 123 static u32 lan969x_get_dev_mode_bit(struct sparx5 *sparx5, int port) in lan969x_get_dev_mode_bit() argument 143 static u32 lan969x_port_dev_mapping(struct sparx5 *sparx5, int port) in lan969x_port_dev_mapping() argument 187 static int lan969x_port_mux_set(struct sparx5 *sparx5, struct sparx5_port *port, in lan969x_port_mux_set() argument 199 spx5_rmw(BIT(inst), BIT(inst), sparx5, PORT_CONF_QSGMII_ENA); in lan969x_port_mux_set() 210 struct sparx5 *sparx5 = args; in lan969x_ptp_irq_handler() local 221 val = spx5_rd(sparx5, PTP_TWOSTEP_CTR in lan969x_ptp_irq_handler() [all...] |
/linux/Documentation/devicetree/bindings/arm/ |
H A D | microchip,sparx5.yaml | 4 $id: http://devicetree.org/schemas/arm/microchip,sparx5.yaml# 7 title: Microchip Sparx5 Boards 13 The Microchip Sparx5 SoC is a ARMv8-based used in a family of 27 - description: The Sparx5 pcb125 board is a modular board, 31 - const: microchip,sparx5-pcb125 32 - const: microchip,sparx5 34 - description: The Sparx5 pcb134 is a pizzabox form factor 38 - const: microchip,sparx5-pcb134 39 - const: microchip,sparx5 41 - description: The Sparx5 pcb13 [all...] |
/linux/arch/arm64/boot/dts/microchip/ |
H A D | sparx5.dtsi | 8 #include <dt-bindings/clock/microchip,sparx5.h> 11 compatible = "microchip,sparx5"; 86 compatible = "microchip,sparx5-dpll"; 125 compatible = "microchip,sparx5-cpu-syscon", "syscon", 141 compatible = "microchip,sparx5-switch-reset"; 177 compatible = "microchip,sparx5-spi"; 196 compatible = "microchip,dw-sparx5-sdhci"; 210 compatible = "microchip,sparx5-pinctrl"; 303 compatible = "microchip,sparx5-sgpio"; 312 compatible = "microchip,sparx5 [all...] |
/linux/Documentation/devicetree/bindings/hwmon/ |
H A D | microchip,sparx5-temp.yaml | 4 $id: http://devicetree.org/schemas/hwmon/microchip,sparx5-temp.yaml# 7 title: Microchip Sparx5 Temperature Monitor 13 Microchip Sparx5 embedded temperature monitor 18 - microchip,sparx5-temp 40 compatible = "microchip,sparx5-temp";
|