lmac 53 drivers/net/ethernet/cavium/thunder/nic_main.c #define NIC_SET_VF_LMAC_MAP(bgx, lmac) (((bgx & 0xF) << 4) | (lmac & 0xF)) lmac 161 drivers/net/ethernet/cavium/thunder/nic_main.c int bgx_idx, lmac; lmac 171 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); lmac 173 drivers/net/ethernet/cavium/thunder/nic_main.c mac = bgx_get_lmac_mac(nic->node, bgx_idx, lmac); lmac 233 drivers/net/ethernet/cavium/thunder/nic_main.c int bgx_idx, lmac; lmac 237 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[bgx->vf_id]); lmac 245 drivers/net/ethernet/cavium/thunder/nic_main.c lmac, bgx->idx); lmac 248 drivers/net/ethernet/cavium/thunder/nic_main.c lmac, bgx->idx); lmac 255 drivers/net/ethernet/cavium/thunder/nic_main.c int bgx, lmac, lmac_cnt; lmac 262 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); lmac 263 drivers/net/ethernet/cavium/thunder/nic_main.c lmac += bgx * MAX_LMAC_PER_BGX; lmac 269 drivers/net/ethernet/cavium/thunder/nic_main.c lmac_credits = nic_reg_read(nic, NIC_PF_LMAC_0_7_CREDIT + (lmac * 8)); lmac 272 drivers/net/ethernet/cavium/thunder/nic_main.c nic_reg_write(nic, NIC_PF_LMAC_0_7_CREDIT + (lmac * 8), lmac_credits); lmac 279 drivers/net/ethernet/cavium/thunder/nic_main.c NIC_PF_LMAC_0_7_CFG2 + (lmac * 8), new_frs); lmac 286 drivers/net/ethernet/cavium/thunder/nic_main.c int lmac, max_lmac; lmac 306 drivers/net/ethernet/cavium/thunder/nic_main.c for (lmac = 0; lmac < max_lmac; lmac++) { lmac 307 drivers/net/ethernet/cavium/thunder/nic_main.c lmac_cfg = nic_reg_read(nic, NIC_PF_LMAC_0_7_CFG | (lmac << 3)); lmac 310 drivers/net/ethernet/cavium/thunder/nic_main.c nic_reg_write(nic, NIC_PF_LMAC_0_7_CFG | (lmac << 3), lmac_cfg); lmac 321 drivers/net/ethernet/cavium/thunder/nic_main.c int lmac, lmac_cnt = 0; lmac 330 drivers/net/ethernet/cavium/thunder/nic_main.c for (lmac = 0; lmac < lmac_cnt; lmac++) lmac 332 drivers/net/ethernet/cavium/thunder/nic_main.c NIC_SET_VF_LMAC_MAP(bgx, lmac); lmac 341 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = bgx * MAX_LMAC_PER_BGX; lmac 342 drivers/net/ethernet/cavium/thunder/nic_main.c for (; lmac < lmac_cnt + (bgx * MAX_LMAC_PER_BGX); lmac++) lmac 344 drivers/net/ethernet/cavium/thunder/nic_main.c NIC_PF_LMAC_0_7_CREDIT + (lmac * 8), lmac 475 drivers/net/ethernet/cavium/thunder/nic_main.c u32 vnic, bgx, lmac, chan; lmac 482 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vnic]); lmac 484 drivers/net/ethernet/cavium/thunder/nic_main.c chan = (lmac * hw->chans_per_lmac) + (bgx * hw->chans_per_bgx); lmac 615 drivers/net/ethernet/cavium/thunder/nic_main.c u32 bgx, lmac, chan; lmac 628 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[pqs_vnic]); lmac 639 drivers/net/ethernet/cavium/thunder/nic_main.c tl4 += (lmac * MAX_QUEUES_PER_QSET); lmac 646 drivers/net/ethernet/cavium/thunder/nic_main.c tl4 += (lmac * MAX_QUEUES_PER_QSET * MAX_SQS_PER_VF); lmac 669 drivers/net/ethernet/cavium/thunder/nic_main.c chan = (lmac * hw->chans_per_lmac) + (bgx * hw->chans_per_bgx); lmac 692 drivers/net/ethernet/cavium/thunder/nic_main.c lmac + (bgx * MAX_LMAC_PER_BGX)); lmac 848 drivers/net/ethernet/cavium/thunder/nic_main.c int bgx, lmac; lmac 856 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); lmac 858 drivers/net/ethernet/cavium/thunder/nic_main.c bgx_lmac_rx_tx_enable(nic->node, bgx, lmac, enable); lmac 863 drivers/net/ethernet/cavium/thunder/nic_main.c int bgx, lmac; lmac 870 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); lmac 873 drivers/net/ethernet/cavium/thunder/nic_main.c bgx_lmac_get_pfc(nic->node, bgx, lmac, &pfc); lmac 880 drivers/net/ethernet/cavium/thunder/nic_main.c bgx_lmac_set_pfc(nic->node, bgx, lmac, cfg); lmac 889 drivers/net/ethernet/cavium/thunder/nic_main.c u8 lmac, bgx_idx; lmac 896 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); lmac 898 drivers/net/ethernet/cavium/thunder/nic_main.c pkind_idx = lmac + bgx_idx * MAX_LMAC_PER_BGX; lmac 909 drivers/net/ethernet/cavium/thunder/nic_main.c bgx_config_timestamping(nic->node, bgx_idx, lmac, true); lmac 915 drivers/net/ethernet/cavium/thunder/nic_main.c bgx_config_timestamping(nic->node, bgx_idx, lmac, false); lmac 931 drivers/net/ethernet/cavium/thunder/nic_main.c u8 bgx, lmac; lmac 937 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); lmac 940 drivers/net/ethernet/cavium/thunder/nic_main.c bgx_get_lmac_link_state(nic->node, bgx, lmac, &link); lmac 960 drivers/net/ethernet/cavium/thunder/nic_main.c int bgx, lmac; lmac 1033 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = mbx.mac.vf_id; lmac 1034 drivers/net/ethernet/cavium/thunder/nic_main.c bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[lmac]); lmac 1035 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[lmac]); lmac 1036 drivers/net/ethernet/cavium/thunder/nic_main.c bgx_set_lmac_mac(nic->node, bgx, lmac, mbx.mac.mac_addr); lmac 1096 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); lmac 1097 drivers/net/ethernet/cavium/thunder/nic_main.c bgx_reset_xcast_mode(nic->node, bgx, lmac, lmac 1108 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); lmac 1109 drivers/net/ethernet/cavium/thunder/nic_main.c bgx_set_dmac_cam_filter(nic->node, bgx, lmac, lmac 1121 drivers/net/ethernet/cavium/thunder/nic_main.c lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); lmac 1122 drivers/net/ethernet/cavium/thunder/nic_main.c bgx_set_xcast_mode(nic->node, bgx, lmac, mbx.xcast.mode); lmac 69 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac lmac[MAX_LMAC_PER_BGX]; lmac 82 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static int bgx_xaui_check_link(struct lmac *lmac); lmac 107 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static u64 bgx_reg_read(struct bgx *bgx, u8 lmac, u64 offset) lmac 109 drivers/net/ethernet/cavium/thunder/thunder_bgx.c void __iomem *addr = bgx->reg_base + ((u32)lmac << 20) + offset; lmac 114 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static void bgx_reg_write(struct bgx *bgx, u8 lmac, u64 offset, u64 val) lmac 116 drivers/net/ethernet/cavium/thunder/thunder_bgx.c void __iomem *addr = bgx->reg_base + ((u32)lmac << 20) + offset; lmac 121 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static void bgx_reg_modify(struct bgx *bgx, u8 lmac, u64 offset, u64 val) lmac 123 drivers/net/ethernet/cavium/thunder/thunder_bgx.c void __iomem *addr = bgx->reg_base + ((u32)lmac << 20) + offset; lmac 128 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static int bgx_poll_reg(struct bgx *bgx, u8 lmac, u64 reg, u64 mask, bool zero) lmac 134 drivers/net/ethernet/cavium/thunder/thunder_bgx.c reg_val = bgx_reg_read(bgx, lmac, reg); lmac 209 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac; lmac 215 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[lmacid]; lmac 216 drivers/net/ethernet/cavium/thunder/thunder_bgx.c link->mac_type = lmac->lmac_type; lmac 217 drivers/net/ethernet/cavium/thunder/thunder_bgx.c link->link_up = lmac->link_up; lmac 218 drivers/net/ethernet/cavium/thunder/thunder_bgx.c link->duplex = lmac->last_duplex; lmac 219 drivers/net/ethernet/cavium/thunder/thunder_bgx.c link->speed = lmac->last_speed; lmac 228 drivers/net/ethernet/cavium/thunder/thunder_bgx.c return bgx->lmac[lmacid].mac; lmac 241 drivers/net/ethernet/cavium/thunder/thunder_bgx.c ether_addr_copy(bgx->lmac[lmacid].mac, mac); lmac 247 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac = NULL; lmac 250 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[lmacid]; lmac 252 drivers/net/ethernet/cavium/thunder/thunder_bgx.c for (idx = 0; idx < lmac->dmacs_count; idx++) lmac 254 drivers/net/ethernet/cavium/thunder/thunder_bgx.c ((lmacid * lmac->dmacs_count) + idx) * lmac 258 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static void bgx_lmac_remove_filters(struct lmac *lmac, u8 vf_id) lmac 262 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (!lmac) lmac 270 drivers/net/ethernet/cavium/thunder/thunder_bgx.c for (i = lmac->dmacs_cfg - 1; i >= 0; i--) { lmac 271 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->dmacs[i].vf_map &= ~BIT_ULL(vf_id); lmac 272 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (!lmac->dmacs[i].vf_map) { lmac 273 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->dmacs_cfg--; lmac 274 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->dmacs[i].dmac = 0; lmac 275 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->dmacs[i].vf_map = 0; lmac 280 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static int bgx_lmac_save_filter(struct lmac *lmac, u64 dmac, u8 vf_id) lmac 284 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (!lmac) lmac 294 drivers/net/ethernet/cavium/thunder/thunder_bgx.c for (i = 0; i < lmac->dmacs_cfg; i++) { lmac 295 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->dmacs[i].dmac == dmac) { lmac 296 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->dmacs[i].vf_map |= BIT_ULL(vf_id); lmac 301 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (!(lmac->dmacs_cfg < lmac->dmacs_count)) lmac 305 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->dmacs[lmac->dmacs_cfg].dmac = dmac; lmac 306 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->dmacs[lmac->dmacs_cfg].vf_map = BIT_ULL(vf_id); lmac 307 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->dmacs_cfg++; lmac 314 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac = NULL; lmac 321 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[lmacid]; lmac 327 drivers/net/ethernet/cavium/thunder/thunder_bgx.c ((lmacid * lmac->dmacs_count) + idx) * sizeof(u64), cfg); lmac 335 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac = NULL; lmac 340 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[lmacid]; lmac 343 drivers/net/ethernet/cavium/thunder/thunder_bgx.c cam_dmac = ether_addr_to_u64(lmac->mac); lmac 350 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_lmac_save_filter(lmac, cam_dmac, vf_id); lmac 357 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac = NULL; lmac 364 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[lmacid]; lmac 380 drivers/net/ethernet/cavium/thunder/thunder_bgx.c for (i = 0; i < lmac->dmacs_cfg; i++) lmac 382 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->dmacs[i].dmac, i); lmac 395 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_lmac_remove_filters(&bgx->lmac[lmacid], vf_id); lmac 405 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac; lmac 410 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[lmacid]; lmac 429 drivers/net/ethernet/cavium/thunder/thunder_bgx.c xcv_setup_link(enable ? lmac->link_up : 0, lmac->last_speed); lmac 437 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac; lmac 443 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[lmacid]; lmac 445 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->lmac_type == BGX_MODE_SGMII || lmac 446 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lmac_type == BGX_MODE_QSGMII || lmac 447 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lmac_type == BGX_MODE_RGMII) lmac 466 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac; lmac 471 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[lmacid]; lmac 472 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->is_sgmii) lmac 486 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac; lmac 491 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[lmacid]; lmac 492 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->is_sgmii) lmac 503 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static void bgx_sgmii_change_link_state(struct lmac *lmac) lmac 505 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct bgx *bgx = lmac->bgx; lmac 511 drivers/net/ethernet/cavium/thunder/thunder_bgx.c cmr_cfg = bgx_reg_read(bgx, lmac->lmacid, BGX_CMRX_CFG); lmac 515 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac->lmacid, BGX_CMRX_CFG, cmr_cfg); lmac 518 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (bgx_poll_reg(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG, lmac 521 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx->bgx_id, lmac->lmacid); lmac 526 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (bgx_poll_reg(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG, lmac 529 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx->bgx_id, lmac->lmacid); lmac 533 drivers/net/ethernet/cavium/thunder/thunder_bgx.c port_cfg = bgx_reg_read(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG); lmac 534 drivers/net/ethernet/cavium/thunder/thunder_bgx.c misc_ctl = bgx_reg_read(bgx, lmac->lmacid, BGX_GMP_PCS_MISCX_CTL); lmac 536 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->link_up) { lmac 539 drivers/net/ethernet/cavium/thunder/thunder_bgx.c port_cfg |= (lmac->last_duplex << 2); lmac 544 drivers/net/ethernet/cavium/thunder/thunder_bgx.c switch (lmac->last_speed) { lmac 551 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_SLOT, 64); lmac 552 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_BURST, 0); lmac 560 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_SLOT, 64); lmac 561 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_BURST, 0); lmac 569 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_SLOT, 512); lmac 570 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->last_duplex) lmac 571 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac->lmacid, lmac 574 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac->lmacid, lmac 580 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_PCS_MISCX_CTL, misc_ctl); lmac 581 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG, port_cfg); lmac 585 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac->lmacid, BGX_CMRX_CFG, cmr_cfg); lmac 588 drivers/net/ethernet/cavium/thunder/thunder_bgx.c xcv_setup_link(lmac->link_up, lmac->last_speed); lmac 593 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac = container_of(netdev, struct lmac, netdev); lmac 597 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (!lmac) lmac 600 drivers/net/ethernet/cavium/thunder/thunder_bgx.c phydev = lmac->phydev; lmac 602 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (!phydev->link && lmac->last_link) lmac 606 drivers/net/ethernet/cavium/thunder/thunder_bgx.c (lmac->last_duplex != phydev->duplex || lmac 607 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_link != phydev->link || lmac 608 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_speed != phydev->speed)) { lmac 612 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_link = phydev->link; lmac 613 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_speed = phydev->speed; lmac 614 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_duplex = phydev->duplex; lmac 620 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->link_up = true; lmac 622 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->link_up = false; lmac 624 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->is_sgmii) lmac 625 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_sgmii_change_link_state(lmac); lmac 627 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_xaui_check_link(lmac); lmac 630 drivers/net/ethernet/cavium/thunder/thunder_bgx.c u64 bgx_get_rx_stats(int node, int bgx_idx, int lmac, int idx) lmac 639 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = 0; lmac 640 drivers/net/ethernet/cavium/thunder/thunder_bgx.c return bgx_reg_read(bgx, lmac, BGX_CMRX_RX_STAT0 + (idx * 8)); lmac 644 drivers/net/ethernet/cavium/thunder/thunder_bgx.c u64 bgx_get_tx_stats(int node, int bgx_idx, int lmac, int idx) lmac 652 drivers/net/ethernet/cavium/thunder/thunder_bgx.c return bgx_reg_read(bgx, lmac, BGX_CMRX_TX_STAT0 + (idx * 8)); lmac 661 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac; lmac 668 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[lmac_idx]; lmac 669 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->is_sgmii) { lmac 687 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static int bgx_lmac_sgmii_init(struct bgx *bgx, struct lmac *lmac) lmac 689 drivers/net/ethernet/cavium/thunder/thunder_bgx.c int lmacid = lmac->lmacid; lmac 716 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->phydev) { lmac 724 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->autoneg = true; lmac 728 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->lmac_type == BGX_MODE_QSGMII) { lmac 736 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if ((lmac->lmac_type == BGX_MODE_SGMII) && lmac->phydev) { lmac 747 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static int bgx_lmac_xaui_init(struct bgx *bgx, struct lmac *lmac) lmac 750 drivers/net/ethernet/cavium/thunder/thunder_bgx.c int lmacid = lmac->lmacid; lmac 766 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->lmac_type == BGX_MODE_RXAUI) lmac 783 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->use_training) { lmac 806 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->lmac_type == BGX_MODE_10G_KR) lmac 808 drivers/net/ethernet/cavium/thunder/thunder_bgx.c else if (lmac->lmac_type == BGX_MODE_40G_KR) lmac 851 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static int bgx_xaui_check_link(struct lmac *lmac) lmac 853 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct bgx *bgx = lmac->bgx; lmac 854 drivers/net/ethernet/cavium/thunder/thunder_bgx.c int lmacid = lmac->lmacid; lmac 855 drivers/net/ethernet/cavium/thunder/thunder_bgx.c int lmac_type = lmac->lmac_type; lmac 858 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->use_training) { lmac 899 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->use_training) { lmac 937 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_lmac_xaui_init(bgx, lmac); lmac 942 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static void bgx_poll_for_sgmii_link(struct lmac *lmac) lmac 947 drivers/net/ethernet/cavium/thunder/thunder_bgx.c pcs_link = bgx_reg_read(lmac->bgx, lmac->lmacid, lmac 952 drivers/net/ethernet/cavium/thunder/thunder_bgx.c pcs_link = bgx_reg_read(lmac->bgx, lmac->lmacid, lmac 955 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (bgx_poll_reg(lmac->bgx, lmac->lmacid, BGX_GMP_PCS_MRX_STATUS, lmac 957 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->link_up = false; lmac 958 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_speed = SPEED_UNKNOWN; lmac 959 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_duplex = DUPLEX_UNKNOWN; lmac 963 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->link_up = ((pcs_link & PCS_MRX_STATUS_LINK) != 0) ? true : false; lmac 964 drivers/net/ethernet/cavium/thunder/thunder_bgx.c an_result = bgx_reg_read(lmac->bgx, lmac->lmacid, lmac 968 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_duplex = (an_result >> 1) & 0x1; lmac 971 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_speed = SPEED_10; lmac 974 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_speed = SPEED_100; lmac 977 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_speed = SPEED_1000; lmac 980 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->link_up = false; lmac 981 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_speed = SPEED_UNKNOWN; lmac 982 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_duplex = DUPLEX_UNKNOWN; lmac 988 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->last_link != lmac->link_up) { lmac 989 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->link_up) lmac 990 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_sgmii_change_link_state(lmac); lmac 991 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_link = lmac->link_up; lmac 994 drivers/net/ethernet/cavium/thunder/thunder_bgx.c queue_delayed_work(lmac->check_link, &lmac->dwork, HZ * 3); lmac 999 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac; lmac 1002 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = container_of(work, struct lmac, dwork.work); lmac 1003 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->is_sgmii) { lmac 1004 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_poll_for_sgmii_link(lmac); lmac 1009 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_modify(lmac->bgx, lmac->lmacid, lmac 1011 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_poll_reg(lmac->bgx, lmac->lmacid, BGX_SPUX_STATUS1, lmac 1014 drivers/net/ethernet/cavium/thunder/thunder_bgx.c spu_link = bgx_reg_read(lmac->bgx, lmac->lmacid, BGX_SPUX_STATUS1); lmac 1015 drivers/net/ethernet/cavium/thunder/thunder_bgx.c smu_link = bgx_reg_read(lmac->bgx, lmac->lmacid, BGX_SMUX_RX_CTL); lmac 1019 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->link_up = 1; lmac 1020 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->lmac_type == BGX_MODE_XLAUI) lmac 1021 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_speed = SPEED_40000; lmac 1023 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_speed = SPEED_10000; lmac 1024 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_duplex = DUPLEX_FULL; lmac 1026 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->link_up = 0; lmac 1027 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_speed = SPEED_UNKNOWN; lmac 1028 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_duplex = DUPLEX_UNKNOWN; lmac 1031 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->last_link != lmac->link_up) { lmac 1032 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->link_up) { lmac 1033 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (bgx_xaui_check_link(lmac)) { lmac 1035 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->link_up = 0; lmac 1036 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_speed = SPEED_UNKNOWN; lmac 1037 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_duplex = DUPLEX_UNKNOWN; lmac 1040 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_link = lmac->link_up; lmac 1043 drivers/net/ethernet/cavium/thunder/thunder_bgx.c queue_delayed_work(lmac->check_link, &lmac->dwork, HZ * 2); lmac 1058 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac; lmac 1061 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[lmacid]; lmac 1062 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->bgx = bgx; lmac 1064 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if ((lmac->lmac_type == BGX_MODE_SGMII) || lmac 1065 drivers/net/ethernet/cavium/thunder/thunder_bgx.c (lmac->lmac_type == BGX_MODE_QSGMII) || lmac 1066 drivers/net/ethernet/cavium/thunder/thunder_bgx.c (lmac->lmac_type == BGX_MODE_RGMII)) { lmac 1067 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->is_sgmii = 1; lmac 1068 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (bgx_lmac_sgmii_init(bgx, lmac)) lmac 1071 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->is_sgmii = 0; lmac 1072 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (bgx_lmac_xaui_init(bgx, lmac)) lmac 1076 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->is_sgmii) { lmac 1089 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->dmacs_count = (RX_DMAC_COUNT / bgx->lmac_count); lmac 1090 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->dmacs = kcalloc(lmac->dmacs_count, sizeof(*lmac->dmacs), lmac 1092 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (!lmac->dmacs) lmac 1101 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if ((lmac->lmac_type != BGX_MODE_XFI) && lmac 1102 drivers/net/ethernet/cavium/thunder/thunder_bgx.c (lmac->lmac_type != BGX_MODE_XLAUI) && lmac 1103 drivers/net/ethernet/cavium/thunder/thunder_bgx.c (lmac->lmac_type != BGX_MODE_40G_KR) && lmac 1104 drivers/net/ethernet/cavium/thunder/thunder_bgx.c (lmac->lmac_type != BGX_MODE_10G_KR)) { lmac 1105 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (!lmac->phydev) { lmac 1106 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->autoneg) { lmac 1113 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->link_up = true; lmac 1114 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_speed = SPEED_1000; lmac 1115 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->last_duplex = DUPLEX_FULL; lmac 1116 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_sgmii_change_link_state(lmac); lmac 1120 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->phydev->dev_flags = 0; lmac 1122 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (phy_connect_direct(&lmac->netdev, lmac->phydev, lmac 1124 drivers/net/ethernet/cavium/thunder/thunder_bgx.c phy_interface_mode(lmac->lmac_type))) lmac 1127 drivers/net/ethernet/cavium/thunder/thunder_bgx.c phy_start(lmac->phydev); lmac 1132 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->check_link = alloc_workqueue("check_link", WQ_UNBOUND | lmac 1134 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (!lmac->check_link) lmac 1136 drivers/net/ethernet/cavium/thunder/thunder_bgx.c INIT_DELAYED_WORK(&lmac->dwork, bgx_poll_for_link); lmac 1137 drivers/net/ethernet/cavium/thunder/thunder_bgx.c queue_delayed_work(lmac->check_link, &lmac->dwork, 0); lmac 1144 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac; lmac 1147 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[lmacid]; lmac 1148 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac->check_link) { lmac 1150 drivers/net/ethernet/cavium/thunder/thunder_bgx.c cancel_delayed_work_sync(&lmac->dwork); lmac 1151 drivers/net/ethernet/cavium/thunder/thunder_bgx.c destroy_workqueue(lmac->check_link); lmac 1169 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (!lmac->is_sgmii) lmac 1182 drivers/net/ethernet/cavium/thunder/thunder_bgx.c kfree(lmac->dmacs); lmac 1184 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if ((lmac->lmac_type != BGX_MODE_XFI) && lmac 1185 drivers/net/ethernet/cavium/thunder/thunder_bgx.c (lmac->lmac_type != BGX_MODE_XLAUI) && lmac 1186 drivers/net/ethernet/cavium/thunder/thunder_bgx.c (lmac->lmac_type != BGX_MODE_40G_KR) && lmac 1187 drivers/net/ethernet/cavium/thunder/thunder_bgx.c (lmac->lmac_type != BGX_MODE_10G_KR) && lmac->phydev) lmac 1188 drivers/net/ethernet/cavium/thunder/thunder_bgx.c phy_disconnect(lmac->phydev); lmac 1190 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->phydev = NULL; lmac 1196 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac; lmac 1204 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[i]; lmac 1206 drivers/net/ethernet/cavium/thunder/thunder_bgx.c (lmac->lmac_type << 8) | lmac->lane_to_sds); lmac 1207 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx->lmac[i].lmacid_bd = lmac_count; lmac 1229 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static u8 bgx_get_lane2sds_cfg(struct bgx *bgx, struct lmac *lmac) lmac 1231 drivers/net/ethernet/cavium/thunder/thunder_bgx.c return (u8)(bgx_reg_read(bgx, lmac->lmacid, BGX_CMRX_CFG) & 0xFF); lmac 1237 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac; lmac 1243 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[lmacid]; lmac 1249 drivers/net/ethernet/cavium/thunder/thunder_bgx.c switch (lmac->lmac_type) { lmac 1260 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (!lmac->use_training) lmac 1266 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (!lmac->use_training) lmac 1283 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static void lmac_set_lane2sds(struct bgx *bgx, struct lmac *lmac) lmac 1285 drivers/net/ethernet/cavium/thunder/thunder_bgx.c switch (lmac->lmac_type) { lmac 1288 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lane_to_sds = lmac->lmacid; lmac 1293 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lane_to_sds = 0xE4; lmac 1296 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lane_to_sds = (lmac->lmacid) ? 0xE : 0x4; lmac 1304 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lane_to_sds = bgx_get_lane2sds_cfg(bgx, lmac); lmac 1307 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lane_to_sds = 0; lmac 1312 drivers/net/ethernet/cavium/thunder/thunder_bgx.c static void lmac_set_training(struct bgx *bgx, struct lmac *lmac, int lmacid) lmac 1314 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if ((lmac->lmac_type != BGX_MODE_10G_KR) && lmac 1315 drivers/net/ethernet/cavium/thunder/thunder_bgx.c (lmac->lmac_type != BGX_MODE_40G_KR)) { lmac 1316 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->use_training = 0; lmac 1320 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->use_training = bgx_reg_read(bgx, lmacid, BGX_SPUX_BR_PMD_CRTL) & lmac 1326 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac; lmac 1331 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[idx]; lmac 1338 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lmac_type = (cmr_cfg >> 8) & 0x07; lmac 1340 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lmac_type = BGX_MODE_RGMII; lmac 1341 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac_set_training(bgx, lmac, 0); lmac 1342 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac_set_lane2sds(bgx, lmac); lmac 1356 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lmac_type = BGX_MODE_INVALID; lmac 1358 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lmac_type = lmac_type; lmac 1359 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lane_to_sds = lane_to_sds; lmac 1360 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac_set_training(bgx, lmac, lmac->lmacid); lmac 1365 drivers/net/ethernet/cavium/thunder/thunder_bgx.c struct lmac *lmac; lmac 1370 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac = &bgx->lmac[idx]; lmac 1371 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lmacid = idx; lmac 1372 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->lmac_type = BGX_MODE_INVALID; lmac 1373 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac->use_training = false; lmac 1418 drivers/net/ethernet/cavium/thunder/thunder_bgx.c acpi_get_mac_address(dev, adev, bgx->lmac[bgx->acpi_lmac_idx].mac); lmac 1420 drivers/net/ethernet/cavium/thunder/thunder_bgx.c SET_NETDEV_DEV(&bgx->lmac[bgx->acpi_lmac_idx].netdev, dev); lmac 1422 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx->lmac[bgx->acpi_lmac_idx].lmacid = bgx->acpi_lmac_idx; lmac 1472 drivers/net/ethernet/cavium/thunder/thunder_bgx.c u8 lmac = 0; lmac 1488 drivers/net/ethernet/cavium/thunder/thunder_bgx.c ether_addr_copy(bgx->lmac[lmac].mac, mac); lmac 1490 drivers/net/ethernet/cavium/thunder/thunder_bgx.c SET_NETDEV_DEV(&bgx->lmac[lmac].netdev, &bgx->pdev->dev); lmac 1491 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx->lmac[lmac].lmacid = lmac; lmac 1504 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx->lmac[lmac].phydev = pd; lmac 1507 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac++; lmac 1508 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (lmac == bgx->max_lmac) { lmac 1519 drivers/net/ethernet/cavium/thunder/thunder_bgx.c while (lmac) { lmac 1520 drivers/net/ethernet/cavium/thunder/thunder_bgx.c if (bgx->lmac[lmac].phydev) { lmac 1521 drivers/net/ethernet/cavium/thunder/thunder_bgx.c put_device(&bgx->lmac[lmac].phydev->mdio.dev); lmac 1522 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx->lmac[lmac].phydev = NULL; lmac 1524 drivers/net/ethernet/cavium/thunder/thunder_bgx.c lmac--; lmac 1551 drivers/net/ethernet/cavium/thunder/thunder_bgx.c int lmac; lmac 1553 drivers/net/ethernet/cavium/thunder/thunder_bgx.c for (lmac = 0; lmac < bgx->lmac_count; lmac++) { lmac 1554 drivers/net/ethernet/cavium/thunder/thunder_bgx.c status = bgx_reg_read(bgx, lmac, BGX_GMP_GMI_TXX_INT); lmac 1557 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx->bgx_id, lmac); lmac 1558 drivers/net/ethernet/cavium/thunder/thunder_bgx.c val = bgx_reg_read(bgx, lmac, BGX_CMRX_CFG); lmac 1560 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac, BGX_CMRX_CFG, val); lmac 1562 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac, BGX_CMRX_CFG, val); lmac 1565 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_reg_write(bgx, lmac, BGX_GMP_GMI_TXX_INT, status); lmac 1594 drivers/net/ethernet/cavium/thunder/thunder_bgx.c u8 lmac; lmac 1661 drivers/net/ethernet/cavium/thunder/thunder_bgx.c for (lmac = 0; lmac < bgx->lmac_count; lmac++) { lmac 1662 drivers/net/ethernet/cavium/thunder/thunder_bgx.c err = bgx_lmac_enable(bgx, lmac); lmac 1665 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx->bgx_id, lmac); lmac 1666 drivers/net/ethernet/cavium/thunder/thunder_bgx.c while (lmac) lmac 1667 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_lmac_disable(bgx, --lmac); lmac 1688 drivers/net/ethernet/cavium/thunder/thunder_bgx.c u8 lmac; lmac 1691 drivers/net/ethernet/cavium/thunder/thunder_bgx.c for (lmac = 0; lmac < bgx->lmac_count; lmac++) lmac 1692 drivers/net/ethernet/cavium/thunder/thunder_bgx.c bgx_lmac_disable(bgx, lmac); lmac 224 drivers/net/ethernet/cavium/thunder/thunder_bgx.h void bgx_add_dmac_addr(u64 dmac, int node, int bgx_idx, int lmac); lmac 239 drivers/net/ethernet/cavium/thunder/thunder_bgx.h u64 bgx_get_rx_stats(int node, int bgx_idx, int lmac, int idx); lmac 240 drivers/net/ethernet/cavium/thunder/thunder_bgx.h u64 bgx_get_tx_stats(int node, int bgx_idx, int lmac, int idx); lmac 59 drivers/net/ethernet/marvell/octeontx2/af/cgx.c struct lmac *lmac_idmap[MAX_LMAC_PER_CGX]; lmac 84 drivers/net/ethernet/marvell/octeontx2/af/cgx.c static void cgx_write(struct cgx *cgx, u64 lmac, u64 offset, u64 val) lmac 86 drivers/net/ethernet/marvell/octeontx2/af/cgx.c writeq(val, cgx->reg_base + (lmac << 18) + offset); lmac 89 drivers/net/ethernet/marvell/octeontx2/af/cgx.c static u64 cgx_read(struct cgx *cgx, u64 lmac, u64 offset) lmac 91 drivers/net/ethernet/marvell/octeontx2/af/cgx.c return readq(cgx->reg_base + (lmac << 18) + offset); lmac 94 drivers/net/ethernet/marvell/octeontx2/af/cgx.c static inline struct lmac *lmac_pdata(u8 lmac_id, struct cgx *cgx) lmac 149 drivers/net/ethernet/marvell/octeontx2/af/cgx.c struct lmac *lmac = lmac_pdata(lmac_id, cgxd); lmac 151 drivers/net/ethernet/marvell/octeontx2/af/cgx.c if (!lmac) lmac 154 drivers/net/ethernet/marvell/octeontx2/af/cgx.c *linfo = lmac->link_info; lmac 325 drivers/net/ethernet/marvell/octeontx2/af/cgx.c static int cgx_fwi_cmd_send(u64 req, u64 *resp, struct lmac *lmac) lmac 327 drivers/net/ethernet/marvell/octeontx2/af/cgx.c struct cgx *cgx = lmac->cgx; lmac 333 drivers/net/ethernet/marvell/octeontx2/af/cgx.c err = mutex_lock_interruptible(&lmac->cmd_lock); lmac 338 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cmd = cgx_read(cgx, lmac->lmac_id, CGX_COMMAND_REG); lmac 348 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac->cmd_pend = true; lmac 351 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cgx_write(cgx, lmac->lmac_id, CGX_COMMAND_REG, req); lmac 354 drivers/net/ethernet/marvell/octeontx2/af/cgx.c if (!wait_event_timeout(lmac->wq_cmd_cmplt, !lmac->cmd_pend, lmac 358 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cgx->cgx_id, lmac->lmac_id); lmac 365 drivers/net/ethernet/marvell/octeontx2/af/cgx.c *resp = lmac->resp; lmac 368 drivers/net/ethernet/marvell/octeontx2/af/cgx.c mutex_unlock(&lmac->cmd_lock); lmac 376 drivers/net/ethernet/marvell/octeontx2/af/cgx.c struct lmac *lmac; lmac 379 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac = lmac_pdata(lmac_id, cgx); lmac 380 drivers/net/ethernet/marvell/octeontx2/af/cgx.c if (!lmac) lmac 383 drivers/net/ethernet/marvell/octeontx2/af/cgx.c err = cgx_fwi_cmd_send(req, resp, lmac); lmac 439 drivers/net/ethernet/marvell/octeontx2/af/cgx.c struct lmac *lmac) lmac 442 drivers/net/ethernet/marvell/octeontx2/af/cgx.c struct cgx *cgx = lmac->cgx; lmac 449 drivers/net/ethernet/marvell/octeontx2/af/cgx.c link_status_user_format(lstat, &event.link_uinfo, cgx, lmac->lmac_id); lmac 453 drivers/net/ethernet/marvell/octeontx2/af/cgx.c event.lmac_id = lmac->lmac_id; lmac 456 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac->link_info = event.link_uinfo; lmac 457 drivers/net/ethernet/marvell/octeontx2/af/cgx.c linfo = &lmac->link_info; lmac 460 drivers/net/ethernet/marvell/octeontx2/af/cgx.c spin_lock(&lmac->event_cb_lock); lmac 462 drivers/net/ethernet/marvell/octeontx2/af/cgx.c if (!lmac->event_cb.notify_link_chg) { lmac 464 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cgx->cgx_id, lmac->lmac_id); lmac 467 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cgx->cgx_id, lmac->lmac_id, err_type); lmac 470 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cgx->cgx_id, lmac->lmac_id, lmac 475 drivers/net/ethernet/marvell/octeontx2/af/cgx.c if (lmac->event_cb.notify_link_chg(&event, lmac->event_cb.data)) lmac 478 drivers/net/ethernet/marvell/octeontx2/af/cgx.c spin_unlock(&lmac->event_cb_lock); lmac 557 drivers/net/ethernet/marvell/octeontx2/af/cgx.c struct lmac *lmac = data; lmac 561 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cgx = lmac->cgx; lmac 563 drivers/net/ethernet/marvell/octeontx2/af/cgx.c event = cgx_read(cgx, lmac->lmac_id, CGX_EVENT_REG); lmac 573 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac->resp = event; lmac 581 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cgx_link_change_handler(event, lmac); lmac 584 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac->cmd_pend = false; lmac 585 drivers/net/ethernet/marvell/octeontx2/af/cgx.c wake_up_interruptible(&lmac->wq_cmd_cmplt); lmac 589 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cgx_link_change_handler(event, lmac); lmac 597 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cgx_write(lmac->cgx, lmac->lmac_id, CGX_EVENT_REG, 0); lmac 598 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cgx_write(lmac->cgx, lmac->lmac_id, CGXX_CMRX_INT, FW_CGX_INT); lmac 609 drivers/net/ethernet/marvell/octeontx2/af/cgx.c struct lmac *lmac; lmac 611 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac = lmac_pdata(lmac_id, cgx); lmac 612 drivers/net/ethernet/marvell/octeontx2/af/cgx.c if (!lmac) lmac 615 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac->event_cb = *cb; lmac 623 drivers/net/ethernet/marvell/octeontx2/af/cgx.c struct lmac *lmac; lmac 627 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac = lmac_pdata(lmac_id, cgx); lmac 628 drivers/net/ethernet/marvell/octeontx2/af/cgx.c if (!lmac) lmac 631 drivers/net/ethernet/marvell/octeontx2/af/cgx.c spin_lock_irqsave(&lmac->event_cb_lock, flags); lmac 632 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac->event_cb.notify_link_chg = NULL; lmac 633 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac->event_cb.data = NULL; lmac 634 drivers/net/ethernet/marvell/octeontx2/af/cgx.c spin_unlock_irqrestore(&lmac->event_cb_lock, flags); lmac 716 drivers/net/ethernet/marvell/octeontx2/af/cgx.c struct lmac *lmac; lmac 724 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac = kcalloc(1, sizeof(struct lmac), GFP_KERNEL); lmac 725 drivers/net/ethernet/marvell/octeontx2/af/cgx.c if (!lmac) lmac 727 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac->name = kcalloc(1, sizeof("cgx_fwi_xxx_yyy"), GFP_KERNEL); lmac 728 drivers/net/ethernet/marvell/octeontx2/af/cgx.c if (!lmac->name) lmac 730 drivers/net/ethernet/marvell/octeontx2/af/cgx.c sprintf(lmac->name, "cgx_fwi_%d_%d", cgx->cgx_id, i); lmac 731 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac->lmac_id = i; lmac 732 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac->cgx = cgx; lmac 733 drivers/net/ethernet/marvell/octeontx2/af/cgx.c init_waitqueue_head(&lmac->wq_cmd_cmplt); lmac 734 drivers/net/ethernet/marvell/octeontx2/af/cgx.c mutex_init(&lmac->cmd_lock); lmac 735 drivers/net/ethernet/marvell/octeontx2/af/cgx.c spin_lock_init(&lmac->event_cb_lock); lmac 738 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cgx_fwi_event_handler, 0, lmac->name, lmac); lmac 743 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cgx_write(cgx, lmac->lmac_id, CGXX_CMRX_INT_ENA_W1S, lmac 747 drivers/net/ethernet/marvell/octeontx2/af/cgx.c cgx->lmac_idmap[i] = lmac; lmac 755 drivers/net/ethernet/marvell/octeontx2/af/cgx.c struct lmac *lmac; lmac 766 drivers/net/ethernet/marvell/octeontx2/af/cgx.c lmac = cgx->lmac_idmap[i]; lmac 767 drivers/net/ethernet/marvell/octeontx2/af/cgx.c if (!lmac) lmac 769 drivers/net/ethernet/marvell/octeontx2/af/cgx.c free_irq(pci_irq_vector(cgx->pdev, CGX_LMAC_FWI + i * 9), lmac); lmac 770 drivers/net/ethernet/marvell/octeontx2/af/cgx.c kfree(lmac->name); lmac 771 drivers/net/ethernet/marvell/octeontx2/af/cgx.c kfree(lmac); lmac 65 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c int cgx, lmac_cnt, lmac; lmac 99 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c for (lmac = 0; lmac < lmac_cnt; lmac++, pf++) { lmac 100 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c rvu->pf2cgxlmac_map[pf] = cgxlmac_id_to_bmap(cgx, lmac); lmac 101 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c rvu->cgxlmac2pf_map[CGX_OFFSET(cgx) + lmac] = 1 << pf; lmac 224 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c int cgx, lmac, err; lmac 243 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c for (lmac = 0; lmac < cgx_get_lmac_cnt(cgxd); lmac++) { lmac 244 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c err = cgx_lmac_evh_register(&cb, cgxd, lmac); lmac 248 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c cgx, lmac); lmac 319 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c int cgx, lmac; lmac 326 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c for (lmac = 0; lmac < cgx_get_lmac_cnt(cgxd); lmac++) lmac 327 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c cgx_lmac_evh_unregister(cgxd, lmac); lmac 375 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c u8 cgx_idx, lmac; lmac 382 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx_idx, &lmac); lmac 387 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c err = cgx_get_rx_stats(cgxd, lmac, stat, &rx_stat); lmac 397 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c err = cgx_get_tx_stats(cgxd, lmac, stat, &tx_stat); lmac 2377 drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c u8 cgx = 0, lmac = 0; lmac 2423 drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx, &lmac); lmac 2424 drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c link = (cgx * hw->lmac_per_cgx) + lmac; lmac 242 drivers/net/wireless/intel/iwlwifi/fw/dbg.c cfg->lmac[0].rxfifo1_size, 0, 0); lmac 250 drivers/net/wireless/intel/iwlwifi/fw/dbg.c cfg->lmac[1].rxfifo1_size, lmac 278 drivers/net/wireless/intel/iwlwifi/fw/dbg.c cfg->lmac[0].txfifo_size[i], 0, i); lmac 290 drivers/net/wireless/intel/iwlwifi/fw/dbg.c cfg->lmac[1].txfifo_size[i], lmac 749 drivers/net/wireless/intel/iwlwifi/fw/dbg.c ADD_LEN(fifo_len, mem_cfg->lmac[i].rxfifo1_size, hdr_len); lmac 773 drivers/net/wireless/intel/iwlwifi/fw/dbg.c ADD_LEN(fifo_len, mem_cfg->lmac[i].txfifo_size[j], lmac 957 drivers/net/wireless/intel/iwlwifi/fw/dbg.c u32 *txf_size = mem_cfg->lmac[i].txfifo_size; lmac 960 drivers/net/wireless/intel/iwlwifi/fw/dbg.c dump_smem_cfg->lmac[i].txfifo_size[j] = lmac 962 drivers/net/wireless/intel/iwlwifi/fw/dbg.c dump_smem_cfg->lmac[i].rxfifo1_size = lmac 963 drivers/net/wireless/intel/iwlwifi/fw/dbg.c cpu_to_le32(mem_cfg->lmac[i].rxfifo1_size); lmac 1197 drivers/net/wireless/intel/iwlwifi/fw/dbg.c iter->lmac = 1; lmac 1199 drivers/net/wireless/intel/iwlwifi/fw/dbg.c iter->lmac = 0; lmac 1205 drivers/net/wireless/intel/iwlwifi/fw/dbg.c cfg->lmac[iter->lmac].txfifo_size[iter->fifo]; lmac 1315 drivers/net/wireless/intel/iwlwifi/fw/dbg.c data->size = fwrt->smem_cfg.lmac[fifo_idx].rxfifo1_size; lmac 395 drivers/net/wireless/intel/iwlwifi/fw/dbg.h struct iwl_lmac_alive *lmac, lmac 398 drivers/net/wireless/intel/iwlwifi/fw/dbg.h if (lmac) { lmac 399 drivers/net/wireless/intel/iwlwifi/fw/dbg.h fwrt->dump.fw_ver.type = lmac->ver_type; lmac 400 drivers/net/wireless/intel/iwlwifi/fw/dbg.h fwrt->dump.fw_ver.subtype = lmac->ver_subtype; lmac 401 drivers/net/wireless/intel/iwlwifi/fw/dbg.h fwrt->dump.fw_ver.lmac_major = le32_to_cpu(lmac->ucode_major); lmac 402 drivers/net/wireless/intel/iwlwifi/fw/dbg.h fwrt->dump.fw_ver.lmac_minor = le32_to_cpu(lmac->ucode_minor); lmac 249 drivers/net/wireless/intel/iwlwifi/fw/error-dump.h } lmac[MAX_NUM_LMAC]; lmac 85 drivers/net/wireless/intel/iwlwifi/fw/runtime.h } lmac[MAX_NUM_LMAC]; lmac 102 drivers/net/wireless/intel/iwlwifi/fw/runtime.h int lmac; lmac 72 drivers/net/wireless/intel/iwlwifi/fw/smem.c int i, lmac; lmac 83 drivers/net/wireless/intel/iwlwifi/fw/smem.c for (lmac = 0; lmac < lmac_num; lmac++) { lmac 85 drivers/net/wireless/intel/iwlwifi/fw/smem.c &mem_cfg->lmac_smem[lmac]; lmac 88 drivers/net/wireless/intel/iwlwifi/fw/smem.c fwrt->smem_cfg.lmac[lmac].txfifo_size[i] = lmac 90 drivers/net/wireless/intel/iwlwifi/fw/smem.c fwrt->smem_cfg.lmac[lmac].rxfifo1_size = lmac 105 drivers/net/wireless/intel/iwlwifi/fw/smem.c fwrt->smem_cfg.lmac[0].txfifo_size[i] = lmac 108 drivers/net/wireless/intel/iwlwifi/fw/smem.c fwrt->smem_cfg.lmac[0].rxfifo1_size = lmac 793 drivers/net/wireless/intel/iwlwifi/mvm/tx.c int lmac = IWL_LMAC_24G_INDEX; lmac 797 drivers/net/wireless/intel/iwlwifi/mvm/tx.c lmac = IWL_LMAC_5G_INDEX; lmac 812 drivers/net/wireless/intel/iwlwifi/mvm/tx.c mvm->fwrt.smem_cfg.lmac[lmac].txfifo_size[txf] - 256); lmac 65 include/net/llc_if.h int llc_establish_connection(struct sock *sk, u8 *lmac, u8 *dmac, u8 dsap); lmac 83 net/llc/llc_if.c int llc_establish_connection(struct sock *sk, u8 *lmac, u8 *dmac, u8 dsap) lmac 94 net/llc/llc_if.c memcpy(laddr.mac, lmac, sizeof(laddr.mac));