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));