drivers/net/ethernet/cavium/thunder/nic_main.c
1033
lmac = mbx.mac.vf_id;
drivers/net/ethernet/cavium/thunder/nic_main.c
1034
bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[lmac]);
drivers/net/ethernet/cavium/thunder/nic_main.c
1035
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[lmac]);
drivers/net/ethernet/cavium/thunder/nic_main.c
1036
bgx_set_lmac_mac(nic->node, bgx, lmac, mbx.mac.mac_addr);
drivers/net/ethernet/cavium/thunder/nic_main.c
1096
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
1097
bgx_reset_xcast_mode(nic->node, bgx, lmac,
drivers/net/ethernet/cavium/thunder/nic_main.c
1108
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
1109
bgx_set_dmac_cam_filter(nic->node, bgx, lmac,
drivers/net/ethernet/cavium/thunder/nic_main.c
1121
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
1122
bgx_set_xcast_mode(nic->node, bgx, lmac, mbx.xcast.mode);
drivers/net/ethernet/cavium/thunder/nic_main.c
161
int bgx_idx, lmac;
drivers/net/ethernet/cavium/thunder/nic_main.c
171
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
173
mac = bgx_get_lmac_mac(nic->node, bgx_idx, lmac);
drivers/net/ethernet/cavium/thunder/nic_main.c
233
int bgx_idx, lmac;
drivers/net/ethernet/cavium/thunder/nic_main.c
237
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[bgx->vf_id]);
drivers/net/ethernet/cavium/thunder/nic_main.c
245
lmac, bgx->idx);
drivers/net/ethernet/cavium/thunder/nic_main.c
248
lmac, bgx->idx);
drivers/net/ethernet/cavium/thunder/nic_main.c
255
int bgx, lmac, lmac_cnt;
drivers/net/ethernet/cavium/thunder/nic_main.c
262
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
263
lmac += bgx * MAX_LMAC_PER_BGX;
drivers/net/ethernet/cavium/thunder/nic_main.c
269
lmac_credits = nic_reg_read(nic, NIC_PF_LMAC_0_7_CREDIT + (lmac * 8));
drivers/net/ethernet/cavium/thunder/nic_main.c
272
nic_reg_write(nic, NIC_PF_LMAC_0_7_CREDIT + (lmac * 8), lmac_credits);
drivers/net/ethernet/cavium/thunder/nic_main.c
279
NIC_PF_LMAC_0_7_CFG2 + (lmac * 8), new_frs);
drivers/net/ethernet/cavium/thunder/nic_main.c
286
int lmac, max_lmac;
drivers/net/ethernet/cavium/thunder/nic_main.c
306
for (lmac = 0; lmac < max_lmac; lmac++) {
drivers/net/ethernet/cavium/thunder/nic_main.c
307
lmac_cfg = nic_reg_read(nic, NIC_PF_LMAC_0_7_CFG | (lmac << 3));
drivers/net/ethernet/cavium/thunder/nic_main.c
310
nic_reg_write(nic, NIC_PF_LMAC_0_7_CFG | (lmac << 3), lmac_cfg);
drivers/net/ethernet/cavium/thunder/nic_main.c
321
int lmac, lmac_cnt = 0;
drivers/net/ethernet/cavium/thunder/nic_main.c
330
for (lmac = 0; lmac < lmac_cnt; lmac++)
drivers/net/ethernet/cavium/thunder/nic_main.c
332
NIC_SET_VF_LMAC_MAP(bgx, lmac);
drivers/net/ethernet/cavium/thunder/nic_main.c
341
lmac = bgx * MAX_LMAC_PER_BGX;
drivers/net/ethernet/cavium/thunder/nic_main.c
342
for (; lmac < lmac_cnt + (bgx * MAX_LMAC_PER_BGX); lmac++)
drivers/net/ethernet/cavium/thunder/nic_main.c
344
NIC_PF_LMAC_0_7_CREDIT + (lmac * 8),
drivers/net/ethernet/cavium/thunder/nic_main.c
475
u32 vnic, bgx, lmac, chan;
drivers/net/ethernet/cavium/thunder/nic_main.c
482
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vnic]);
drivers/net/ethernet/cavium/thunder/nic_main.c
484
chan = (lmac * hw->chans_per_lmac) + (bgx * hw->chans_per_bgx);
drivers/net/ethernet/cavium/thunder/nic_main.c
53
#define NIC_SET_VF_LMAC_MAP(bgx, lmac) (((bgx & 0xF) << 4) | (lmac & 0xF))
drivers/net/ethernet/cavium/thunder/nic_main.c
615
u32 bgx, lmac, chan;
drivers/net/ethernet/cavium/thunder/nic_main.c
628
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[pqs_vnic]);
drivers/net/ethernet/cavium/thunder/nic_main.c
639
tl4 += (lmac * MAX_QUEUES_PER_QSET);
drivers/net/ethernet/cavium/thunder/nic_main.c
646
tl4 += (lmac * MAX_QUEUES_PER_QSET * MAX_SQS_PER_VF);
drivers/net/ethernet/cavium/thunder/nic_main.c
669
chan = (lmac * hw->chans_per_lmac) + (bgx * hw->chans_per_bgx);
drivers/net/ethernet/cavium/thunder/nic_main.c
692
lmac + (bgx * MAX_LMAC_PER_BGX));
drivers/net/ethernet/cavium/thunder/nic_main.c
848
int bgx, lmac;
drivers/net/ethernet/cavium/thunder/nic_main.c
856
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
858
bgx_lmac_rx_tx_enable(nic->node, bgx, lmac, enable);
drivers/net/ethernet/cavium/thunder/nic_main.c
863
int bgx, lmac;
drivers/net/ethernet/cavium/thunder/nic_main.c
870
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
873
bgx_lmac_get_pfc(nic->node, bgx, lmac, &pfc);
drivers/net/ethernet/cavium/thunder/nic_main.c
880
bgx_lmac_set_pfc(nic->node, bgx, lmac, cfg);
drivers/net/ethernet/cavium/thunder/nic_main.c
889
u8 lmac, bgx_idx;
drivers/net/ethernet/cavium/thunder/nic_main.c
896
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
898
pkind_idx = lmac + bgx_idx * MAX_LMAC_PER_BGX;
drivers/net/ethernet/cavium/thunder/nic_main.c
909
bgx_config_timestamping(nic->node, bgx_idx, lmac, true);
drivers/net/ethernet/cavium/thunder/nic_main.c
915
bgx_config_timestamping(nic->node, bgx_idx, lmac, false);
drivers/net/ethernet/cavium/thunder/nic_main.c
931
u8 bgx, lmac;
drivers/net/ethernet/cavium/thunder/nic_main.c
937
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
940
bgx_get_lmac_link_state(nic->node, bgx, lmac, &link);
drivers/net/ethernet/cavium/thunder/nic_main.c
960
int bgx, lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1001
lmac = container_of(work, struct lmac, dwork.work);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1002
if (lmac->is_sgmii) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1003
bgx_poll_for_sgmii_link(lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1008
bgx_reg_modify(lmac->bgx, lmac->lmacid,
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1010
bgx_poll_reg(lmac->bgx, lmac->lmacid, BGX_SPUX_STATUS1,
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1013
spu_link = bgx_reg_read(lmac->bgx, lmac->lmacid, BGX_SPUX_STATUS1);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1014
smu_link = bgx_reg_read(lmac->bgx, lmac->lmacid, BGX_SMUX_RX_CTL);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1018
lmac->link_up = true;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1019
if (lmac->lmac_type == BGX_MODE_XLAUI)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1020
lmac->last_speed = SPEED_40000;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1022
lmac->last_speed = SPEED_10000;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1023
lmac->last_duplex = DUPLEX_FULL;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1025
lmac->link_up = false;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1026
lmac->last_speed = SPEED_UNKNOWN;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1027
lmac->last_duplex = DUPLEX_UNKNOWN;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1030
if (lmac->last_link != lmac->link_up) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1031
if (lmac->link_up) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1032
if (bgx_xaui_check_link(lmac)) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1034
lmac->link_up = false;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1035
lmac->last_speed = SPEED_UNKNOWN;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1036
lmac->last_duplex = DUPLEX_UNKNOWN;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1039
lmac->last_link = lmac->link_up;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1042
queue_delayed_work(lmac->check_link, &lmac->dwork, HZ * 2);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1057
struct lmac *lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1060
lmac = &bgx->lmac[lmacid];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1061
lmac->bgx = bgx;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1063
if ((lmac->lmac_type == BGX_MODE_SGMII) ||
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1064
(lmac->lmac_type == BGX_MODE_QSGMII) ||
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1065
(lmac->lmac_type == BGX_MODE_RGMII)) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1066
lmac->is_sgmii = true;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1067
if (bgx_lmac_sgmii_init(bgx, lmac))
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
107
static u64 bgx_reg_read(struct bgx *bgx, u8 lmac, u64 offset)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1070
lmac->is_sgmii = false;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1071
if (bgx_lmac_xaui_init(bgx, lmac))
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1075
if (lmac->is_sgmii) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1088
lmac->dmacs_count = (RX_DMAC_COUNT / bgx->lmac_count);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1089
lmac->dmacs = kzalloc_objs(*lmac->dmacs, lmac->dmacs_count);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
109
void __iomem *addr = bgx->reg_base + ((u32)lmac << 20) + offset;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1090
if (!lmac->dmacs)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1099
if ((lmac->lmac_type != BGX_MODE_XFI) &&
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1100
(lmac->lmac_type != BGX_MODE_XLAUI) &&
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1101
(lmac->lmac_type != BGX_MODE_40G_KR) &&
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1102
(lmac->lmac_type != BGX_MODE_10G_KR)) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1103
if (!lmac->phydev) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1104
if (lmac->autoneg) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1111
lmac->link_up = true;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1112
lmac->last_speed = SPEED_1000;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1113
lmac->last_duplex = DUPLEX_FULL;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1114
bgx_sgmii_change_link_state(lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1118
lmac->phydev->dev_flags = 0;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1120
if (phy_connect_direct(lmac->netdev, lmac->phydev,
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1122
phy_interface_mode(lmac->lmac_type)))
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1125
phy_start(lmac->phydev);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1130
lmac->check_link = alloc_ordered_workqueue("check_link", WQ_MEM_RECLAIM);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1131
if (!lmac->check_link)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1133
INIT_DELAYED_WORK(&lmac->dwork, bgx_poll_for_link);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1134
queue_delayed_work(lmac->check_link, &lmac->dwork, 0);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
114
static void bgx_reg_write(struct bgx *bgx, u8 lmac, u64 offset, u64 val)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1141
struct lmac *lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1144
lmac = &bgx->lmac[lmacid];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1145
if (lmac->check_link) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1147
cancel_delayed_work_sync(&lmac->dwork);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1148
destroy_workqueue(lmac->check_link);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
116
void __iomem *addr = bgx->reg_base + ((u32)lmac << 20) + offset;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1166
if (!lmac->is_sgmii)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1179
kfree(lmac->dmacs);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1181
if ((lmac->lmac_type != BGX_MODE_XFI) &&
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1182
(lmac->lmac_type != BGX_MODE_XLAUI) &&
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1183
(lmac->lmac_type != BGX_MODE_40G_KR) &&
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1184
(lmac->lmac_type != BGX_MODE_10G_KR) && lmac->phydev)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1185
phy_disconnect(lmac->phydev);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1187
lmac->phydev = NULL;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1193
struct lmac *lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1201
lmac = &bgx->lmac[i];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1203
(lmac->lmac_type << 8) | lmac->lane_to_sds);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1204
bgx->lmac[i].lmacid_bd = lmac_count;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
121
static void bgx_reg_modify(struct bgx *bgx, u8 lmac, u64 offset, u64 val)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1226
static u8 bgx_get_lane2sds_cfg(struct bgx *bgx, struct lmac *lmac)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1228
return (u8)(bgx_reg_read(bgx, lmac->lmacid, BGX_CMRX_CFG) & 0xFF);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
123
void __iomem *addr = bgx->reg_base + ((u32)lmac << 20) + offset;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1234
struct lmac *lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1240
lmac = &bgx->lmac[lmacid];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1246
switch (lmac->lmac_type) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1257
if (!lmac->use_training)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1263
if (!lmac->use_training)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
128
static int bgx_poll_reg(struct bgx *bgx, u8 lmac, u64 reg, u64 mask, bool zero)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1280
static void lmac_set_lane2sds(struct bgx *bgx, struct lmac *lmac)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1282
switch (lmac->lmac_type) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1285
lmac->lane_to_sds = lmac->lmacid;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1290
lmac->lane_to_sds = 0xE4;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1293
lmac->lane_to_sds = (lmac->lmacid) ? 0xE : 0x4;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1301
lmac->lane_to_sds = bgx_get_lane2sds_cfg(bgx, lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1304
lmac->lane_to_sds = 0;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1309
static void lmac_set_training(struct bgx *bgx, struct lmac *lmac, int lmacid)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1311
if ((lmac->lmac_type != BGX_MODE_10G_KR) &&
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1312
(lmac->lmac_type != BGX_MODE_40G_KR)) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1313
lmac->use_training = false;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1317
lmac->use_training = bgx_reg_read(bgx, lmacid, BGX_SPUX_BR_PMD_CRTL) &
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1323
struct lmac *lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1328
lmac = &bgx->lmac[idx];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1335
lmac->lmac_type = (cmr_cfg >> 8) & 0x07;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1337
lmac->lmac_type = BGX_MODE_RGMII;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1338
lmac_set_training(bgx, lmac, 0);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1339
lmac_set_lane2sds(bgx, lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
134
reg_val = bgx_reg_read(bgx, lmac, reg);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1353
lmac->lmac_type = BGX_MODE_INVALID;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1355
lmac->lmac_type = lmac_type;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1356
lmac->lane_to_sds = lane_to_sds;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1357
lmac_set_training(bgx, lmac, lmac->lmacid);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1362
struct lmac *lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1367
lmac = &bgx->lmac[idx];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1368
lmac->lmacid = idx;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1369
lmac->lmac_type = BGX_MODE_INVALID;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1370
lmac->use_training = false;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1416
acpi_get_mac_address(dev, adev, bgx->lmac[bgx->acpi_lmac_idx].mac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1418
SET_NETDEV_DEV(bgx->lmac[bgx->acpi_lmac_idx].netdev, dev);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1420
bgx->lmac[bgx->acpi_lmac_idx].lmacid = bgx->acpi_lmac_idx;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1472
u8 lmac = 0;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1485
of_get_mac_address(node, bgx->lmac[lmac].mac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1487
SET_NETDEV_DEV(bgx->lmac[lmac].netdev, &bgx->pdev->dev);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1488
bgx->lmac[lmac].lmacid = lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1503
bgx->lmac[lmac].phydev = pd;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1508
lmac++;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1509
if (lmac == bgx->max_lmac) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1520
while (lmac) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1521
lmac--;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1522
if (bgx->lmac[lmac].phydev) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1523
put_device(&bgx->lmac[lmac].phydev->mdio.dev);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1524
bgx->lmac[lmac].phydev = NULL;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1552
int lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1554
for (lmac = 0; lmac < bgx->lmac_count; lmac++) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1555
status = bgx_reg_read(bgx, lmac, BGX_GMP_GMI_TXX_INT);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1558
bgx->bgx_id, lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1559
val = bgx_reg_read(bgx, lmac, BGX_CMRX_CFG);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1561
bgx_reg_write(bgx, lmac, BGX_CMRX_CFG, val);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1563
bgx_reg_write(bgx, lmac, BGX_CMRX_CFG, val);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1566
bgx_reg_write(bgx, lmac, BGX_GMP_GMI_TXX_INT, status);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1595
u8 lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1652
for (lmac = 0; lmac < bgx->lmac_count; lmac++) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1653
struct lmac *lmacp, **priv;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1655
lmacp = &bgx->lmac[lmac];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1656
lmacp->netdev = alloc_netdev_dummy(sizeof(struct lmac *));
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1659
for (int i = 0; i < lmac; i++)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1660
free_netdev(bgx->lmac[i].netdev);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1678
for (lmac = 0; lmac < bgx->lmac_count; lmac++) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1679
err = bgx_lmac_enable(bgx, lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1682
bgx->bgx_id, lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1683
while (lmac)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1684
bgx_lmac_disable(bgx, --lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1702
u8 lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1705
for (lmac = 0; lmac < bgx->lmac_count; lmac++) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1706
bgx_lmac_disable(bgx, lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
1707
free_netdev(bgx->lmac[lmac].netdev);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
209
struct lmac *lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
215
lmac = &bgx->lmac[lmacid];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
216
link->mac_type = lmac->lmac_type;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
217
link->link_up = lmac->link_up;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
218
link->duplex = lmac->last_duplex;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
219
link->speed = lmac->last_speed;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
228
return bgx->lmac[lmacid].mac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
241
ether_addr_copy(bgx->lmac[lmacid].mac, mac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
247
struct lmac *lmac = NULL;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
250
lmac = &bgx->lmac[lmacid];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
252
for (idx = 0; idx < lmac->dmacs_count; idx++)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
254
((lmacid * lmac->dmacs_count) + idx) *
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
258
static void bgx_lmac_remove_filters(struct lmac *lmac, u8 vf_id)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
262
if (!lmac)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
270
for (i = lmac->dmacs_cfg - 1; i >= 0; i--) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
271
lmac->dmacs[i].vf_map &= ~BIT_ULL(vf_id);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
272
if (!lmac->dmacs[i].vf_map) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
273
lmac->dmacs_cfg--;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
274
lmac->dmacs[i].dmac = 0;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
275
lmac->dmacs[i].vf_map = 0;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
280
static int bgx_lmac_save_filter(struct lmac *lmac, u64 dmac, u8 vf_id)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
284
if (!lmac)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
294
for (i = 0; i < lmac->dmacs_cfg; i++) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
295
if (lmac->dmacs[i].dmac == dmac) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
296
lmac->dmacs[i].vf_map |= BIT_ULL(vf_id);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
301
if (!(lmac->dmacs_cfg < lmac->dmacs_count))
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
305
lmac->dmacs[lmac->dmacs_cfg].dmac = dmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
306
lmac->dmacs[lmac->dmacs_cfg].vf_map = BIT_ULL(vf_id);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
307
lmac->dmacs_cfg++;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
314
struct lmac *lmac = NULL;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
321
lmac = &bgx->lmac[lmacid];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
327
((lmacid * lmac->dmacs_count) + idx) * sizeof(u64), cfg);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
335
struct lmac *lmac = NULL;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
340
lmac = &bgx->lmac[lmacid];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
343
cam_dmac = ether_addr_to_u64(lmac->mac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
350
bgx_lmac_save_filter(lmac, cam_dmac, vf_id);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
357
struct lmac *lmac = NULL;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
364
lmac = &bgx->lmac[lmacid];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
380
for (i = 0; i < lmac->dmacs_cfg; i++)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
382
lmac->dmacs[i].dmac, i);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
395
bgx_lmac_remove_filters(&bgx->lmac[lmacid], vf_id);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
405
struct lmac *lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
410
lmac = &bgx->lmac[lmacid];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
429
xcv_setup_link(enable ? lmac->link_up : 0, lmac->last_speed);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
437
struct lmac *lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
443
lmac = &bgx->lmac[lmacid];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
445
if (lmac->lmac_type == BGX_MODE_SGMII ||
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
446
lmac->lmac_type == BGX_MODE_QSGMII ||
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
447
lmac->lmac_type == BGX_MODE_RGMII)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
466
struct lmac *lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
471
lmac = &bgx->lmac[lmacid];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
472
if (lmac->is_sgmii)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
486
struct lmac *lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
491
lmac = &bgx->lmac[lmacid];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
492
if (lmac->is_sgmii)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
503
static void bgx_sgmii_change_link_state(struct lmac *lmac)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
505
struct bgx *bgx = lmac->bgx;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
511
cmr_cfg = bgx_reg_read(bgx, lmac->lmacid, BGX_CMRX_CFG);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
515
bgx_reg_write(bgx, lmac->lmacid, BGX_CMRX_CFG, cmr_cfg);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
518
if (bgx_poll_reg(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG,
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
521
bgx->bgx_id, lmac->lmacid);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
526
if (bgx_poll_reg(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG,
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
529
bgx->bgx_id, lmac->lmacid);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
533
port_cfg = bgx_reg_read(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
534
misc_ctl = bgx_reg_read(bgx, lmac->lmacid, BGX_GMP_PCS_MISCX_CTL);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
536
if (lmac->link_up) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
539
port_cfg |= (lmac->last_duplex << 2);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
544
switch (lmac->last_speed) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
551
bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_SLOT, 64);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
552
bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_BURST, 0);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
560
bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_SLOT, 64);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
561
bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_BURST, 0);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
569
bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_TXX_SLOT, 512);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
570
if (lmac->last_duplex)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
571
bgx_reg_write(bgx, lmac->lmacid,
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
574
bgx_reg_write(bgx, lmac->lmacid,
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
580
bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_PCS_MISCX_CTL, misc_ctl);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
581
bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG, port_cfg);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
585
bgx_reg_write(bgx, lmac->lmacid, BGX_CMRX_CFG, cmr_cfg);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
588
xcv_setup_link(lmac->link_up, lmac->last_speed);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
594
struct lmac *lmac, **priv;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
598
lmac = *priv;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
599
phydev = lmac->phydev;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
601
if (!phydev->link && lmac->last_link)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
605
(lmac->last_duplex != phydev->duplex ||
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
606
lmac->last_link != phydev->link ||
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
607
lmac->last_speed != phydev->speed)) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
611
lmac->last_link = phydev->link;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
612
lmac->last_speed = phydev->speed;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
613
lmac->last_duplex = phydev->duplex;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
619
lmac->link_up = true;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
621
lmac->link_up = false;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
623
if (lmac->is_sgmii)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
624
bgx_sgmii_change_link_state(lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
626
bgx_xaui_check_link(lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
629
u64 bgx_get_rx_stats(int node, int bgx_idx, int lmac, int idx)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
638
lmac = 0;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
639
return bgx_reg_read(bgx, lmac, BGX_CMRX_RX_STAT0 + (idx * 8));
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
643
u64 bgx_get_tx_stats(int node, int bgx_idx, int lmac, int idx)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
651
return bgx_reg_read(bgx, lmac, BGX_CMRX_TX_STAT0 + (idx * 8));
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
660
struct lmac *lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
667
lmac = &bgx->lmac[lmac_idx];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
668
if (lmac->is_sgmii) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
686
static int bgx_lmac_sgmii_init(struct bgx *bgx, struct lmac *lmac)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
688
int lmacid = lmac->lmacid;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
69
struct lmac lmac[MAX_LMAC_PER_BGX];
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
715
if (lmac->phydev) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
723
lmac->autoneg = true;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
727
if (lmac->lmac_type == BGX_MODE_QSGMII) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
735
if ((lmac->lmac_type == BGX_MODE_SGMII) && lmac->phydev) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
746
static int bgx_lmac_xaui_init(struct bgx *bgx, struct lmac *lmac)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
749
int lmacid = lmac->lmacid;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
765
if (lmac->lmac_type == BGX_MODE_RXAUI)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
782
if (lmac->use_training) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
805
if (lmac->lmac_type == BGX_MODE_10G_KR)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
807
else if (lmac->lmac_type == BGX_MODE_40G_KR)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
82
static int bgx_xaui_check_link(struct lmac *lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
850
static int bgx_xaui_check_link(struct lmac *lmac)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
852
struct bgx *bgx = lmac->bgx;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
853
int lmacid = lmac->lmacid;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
854
int lmac_type = lmac->lmac_type;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
857
if (lmac->use_training) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
898
if (lmac->use_training) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
936
bgx_lmac_xaui_init(bgx, lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
941
static void bgx_poll_for_sgmii_link(struct lmac *lmac)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
946
pcs_link = bgx_reg_read(lmac->bgx, lmac->lmacid,
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
951
pcs_link = bgx_reg_read(lmac->bgx, lmac->lmacid,
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
954
if (bgx_poll_reg(lmac->bgx, lmac->lmacid, BGX_GMP_PCS_MRX_STATUS,
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
956
lmac->link_up = false;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
957
lmac->last_speed = SPEED_UNKNOWN;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
958
lmac->last_duplex = DUPLEX_UNKNOWN;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
962
lmac->link_up = ((pcs_link & PCS_MRX_STATUS_LINK) != 0) ? true : false;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
963
an_result = bgx_reg_read(lmac->bgx, lmac->lmacid,
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
967
lmac->last_duplex = (an_result >> 1) & 0x1;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
970
lmac->last_speed = SPEED_10;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
973
lmac->last_speed = SPEED_100;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
976
lmac->last_speed = SPEED_1000;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
979
lmac->link_up = false;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
980
lmac->last_speed = SPEED_UNKNOWN;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
981
lmac->last_duplex = DUPLEX_UNKNOWN;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
987
if (lmac->last_link != lmac->link_up) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
988
if (lmac->link_up)
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
989
bgx_sgmii_change_link_state(lmac);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
990
lmac->last_link = lmac->link_up;
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
993
queue_delayed_work(lmac->check_link, &lmac->dwork, HZ * 3);
drivers/net/ethernet/cavium/thunder/thunder_bgx.c
998
struct lmac *lmac;
drivers/net/ethernet/cavium/thunder/thunder_bgx.h
237
u64 bgx_get_rx_stats(int node, int bgx_idx, int lmac, int idx);
drivers/net/ethernet/cavium/thunder/thunder_bgx.h
238
u64 bgx_get_tx_stats(int node, int bgx_idx, int lmac, int idx);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1078
int cgx_fwi_cmd_send(u64 req, u64 *resp, struct lmac *lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1080
struct cgx *cgx = lmac->cgx;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1086
err = mutex_lock_interruptible(&lmac->cmd_lock);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1091
cmd = cgx_read(cgx, lmac->lmac_id, CGX_COMMAND_REG);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1101
lmac->cmd_pend = true;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1104
cgx_write(cgx, lmac->lmac_id, CGX_COMMAND_REG, req);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1107
if (!wait_event_timeout(lmac->wq_cmd_cmplt, !lmac->cmd_pend,
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1111
cgx->cgx_id, lmac->lmac_id, FIELD_GET(CMDREG_ID, req));
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1118
*resp = lmac->resp;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1121
mutex_unlock(&lmac->cmd_lock);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1128
struct lmac *lmac;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1131
lmac = lmac_pdata(lmac_id, cgx);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1132
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1135
err = cgx_fwi_cmd_send(req, resp, lmac);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
129
void cgx_write(struct cgx *cgx, u64 lmac, u64 offset, u64 val)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
131
writeq(val, cgx->reg_base + (lmac << cgx->mac_ops->lmac_offset) +
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1317
struct lmac *lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1320
struct cgx *cgx = lmac->cgx;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1327
link_status_user_format(lstat, &event.link_uinfo, cgx, lmac->lmac_id);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1331
event.lmac_id = lmac->lmac_id;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1334
lmac->link_info = event.link_uinfo;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1335
linfo = &lmac->link_info;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1341
spin_lock(&lmac->event_cb_lock);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1343
if (!lmac->event_cb.notify_link_chg) {
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1345
cgx->cgx_id, lmac->lmac_id);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1348
cgx->cgx_id, lmac->lmac_id, err_type);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
135
u64 cgx_read(struct cgx *cgx, u64 lmac, u64 offset)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1351
cgx->cgx_id, lmac->lmac_id,
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1356
if (lmac->event_cb.notify_link_chg(&event, lmac->event_cb.data))
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1359
spin_unlock(&lmac->event_cb_lock);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
137
return readq(cgx->reg_base + (lmac << cgx->mac_ops->lmac_offset) +
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1386
struct lmac *lmac = data;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1389
cgx = lmac->cgx;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1395
event = cgx_read(cgx, lmac->lmac_id, CGX_EVENT_REG);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1405
lmac->resp = event;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
141
struct lmac *lmac_pdata(u8 lmac_id, struct cgx *cgx)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1413
cgx_link_change_handler(event, lmac);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1416
lmac->cmd_pend = false;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1417
wake_up(&lmac->wq_cmd_cmplt);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1421
cgx_link_change_handler(event, lmac);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1429
cgx_write(lmac->cgx, lmac->lmac_id, CGX_EVENT_REG, 0);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1430
cgx_write(lmac->cgx, lmac->lmac_id, offset, clear_bit);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1441
struct lmac *lmac;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1443
lmac = lmac_pdata(lmac_id, cgx);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1444
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1447
lmac->event_cb = *cb;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1454
struct lmac *lmac;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1458
lmac = lmac_pdata(lmac_id, cgx);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1459
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1462
spin_lock_irqsave(&lmac->event_cb_lock, flags);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1463
lmac->event_cb.notify_link_chg = NULL;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1464
lmac->event_cb.data = NULL;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1465
spin_unlock_irqrestore(&lmac->event_cb_lock, flags);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1656
static int cgx_configure_interrupt(struct cgx *cgx, struct lmac *lmac,
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1670
free_irq(irq, lmac);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1674
err = request_irq(irq, cgx_fwi_event_handler, 0, lmac->name, lmac);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1679
cgx_write(cgx, lmac->lmac_id, offset, ena_bit);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1707
struct lmac *lmac;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1728
lmac = kzalloc_obj(struct lmac);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1729
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1731
lmac->name = kcalloc(1, sizeof("cgx_fwi_xxx_yyy"), GFP_KERNEL);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1732
if (!lmac->name) {
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1736
sprintf(lmac->name, "cgx_fwi_%u_%u", cgx->cgx_id, i);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1738
lmac->lmac_id = __ffs64(lmac_list);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1739
lmac_list &= ~BIT_ULL(lmac->lmac_id);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1741
lmac->lmac_id = i;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1744
lmac->cgx = cgx;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1745
lmac->mac_to_index_bmap.max =
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1749
max_dmac_filters = lmac->mac_to_index_bmap.max;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1751
err = rvu_alloc_bitmap(&lmac->mac_to_index_bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1756
set_bit(0, lmac->mac_to_index_bmap.bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1758
lmac->rx_fc_pfvf_bmap.max = 128;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1759
err = rvu_alloc_bitmap(&lmac->rx_fc_pfvf_bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1763
lmac->tx_fc_pfvf_bmap.max = 128;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1764
err = rvu_alloc_bitmap(&lmac->tx_fc_pfvf_bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1768
init_waitqueue_head(&lmac->wq_cmd_cmplt);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1769
mutex_init(&lmac->cmd_lock);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1770
spin_lock_init(&lmac->event_cb_lock);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1771
err = cgx_configure_interrupt(cgx, lmac, lmac->lmac_id, false);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1776
cgx->lmac_idmap[lmac->lmac_id] = lmac;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1777
set_bit(lmac->lmac_id, &cgx->lmac_bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1778
cgx->mac_ops->mac_pause_frm_config(cgx, lmac->lmac_id, true);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1779
lmac->lmac_type = cgx->mac_ops->get_lmac_type(cgx, lmac->lmac_id);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1783
cgx_lmac_addr_del(cgx->cgx_id, lmac->lmac_id, filter);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1788
cgx_lmac_addr_reset(cgx->cgx_id, lmac->lmac_id);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1796
rvu_free_bitmap(&lmac->tx_fc_pfvf_bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1798
rvu_free_bitmap(&lmac->rx_fc_pfvf_bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1800
rvu_free_bitmap(&lmac->mac_to_index_bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1802
kfree(lmac->name);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1804
kfree(lmac);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1810
struct lmac *lmac;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1820
lmac = cgx->lmac_idmap[i];
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1821
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1823
cgx->mac_ops->mac_pause_frm_config(cgx, lmac->lmac_id, false);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1824
cgx_configure_interrupt(cgx, lmac, lmac->lmac_id, true);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1825
kfree(lmac->mac_to_index_bmap.bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1826
rvu_free_bitmap(&lmac->rx_fc_pfvf_bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1827
rvu_free_bitmap(&lmac->tx_fc_pfvf_bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1828
kfree(lmac->name);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
1829
kfree(lmac);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
252
struct lmac *lmac = lmac_pdata(lmac_id, cgxd);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
254
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
257
*linfo = lmac->link_info;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
264
struct lmac *lmac = lmac_pdata(lmac_id, cgx_dev);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
269
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
282
index = id * lmac->mac_to_index_bmap.max;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
326
struct lmac *lmac = lmac_pdata(lmac_id, cgx_dev);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
332
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
337
idx = rvu_alloc_rsrc(&lmac->mac_to_index_bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
343
index = id * lmac->mac_to_index_bmap.max + idx;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
356
lmac->mcast_filters_count++;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
357
} else if (!lmac->mcast_filters_count) {
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
369
struct lmac *lmac = lmac_pdata(lmac_id, cgx_dev);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
374
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
381
set_bit(0, lmac->mac_to_index_bmap.bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
385
index = id * lmac->mac_to_index_bmap.max + index;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
405
struct lmac *lmac;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
409
lmac = lmac_pdata(lmac_id, cgx_dev);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
410
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
415
if (index >= lmac->mac_to_index_bmap.max)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
419
if (!test_bit(index, lmac->mac_to_index_bmap.bmap))
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
424
index = id * lmac->mac_to_index_bmap.max + index;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
437
struct lmac *lmac = lmac_pdata(lmac_id, cgx_dev);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
443
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
448
if (index >= lmac->mac_to_index_bmap.max)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
455
rvu_free_rsrc(&lmac->mac_to_index_bmap, index);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
459
index = id * lmac->mac_to_index_bmap.max + index;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
466
lmac->mcast_filters_count--;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
468
if (!lmac->mcast_filters_count) {
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
483
struct lmac *lmac = lmac_pdata(lmac_id, cgx_dev);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
485
if (lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
486
return lmac->mac_to_index_bmap.max;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
494
struct lmac *lmac = lmac_pdata(lmac_id, cgx_dev);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
504
index = id * lmac->mac_to_index_bmap.max;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
560
struct lmac *lmac;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
566
lmac = lmac_pdata(lmac_id, cgx);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
567
if (lmac->lmac_type == LMAC_MODE_SGMII ||
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
568
lmac->lmac_type == LMAC_MODE_QSGMII) {
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
589
struct lmac *lmac = lmac_pdata(lmac_id, cgx);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
596
if (!cgx || !lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
599
max_dmac = lmac->mac_to_index_bmap.max;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
664
struct lmac *lmac;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
670
lmac = lmac_pdata(lmac_id, cgx);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
671
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
675
if (!bitmap_weight(lmac->rx_fc_pfvf_bmap.bmap, lmac->rx_fc_pfvf_bmap.max))
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
956
struct lmac *lmac;
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
958
lmac = lmac_pdata(lmac_id, cgx);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
959
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
963
clear_bit(pfvf_idx, lmac->rx_fc_pfvf_bmap.bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
965
set_bit(pfvf_idx, lmac->rx_fc_pfvf_bmap.bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
968
clear_bit(pfvf_idx, lmac->tx_fc_pfvf_bmap.bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
970
set_bit(pfvf_idx, lmac->tx_fc_pfvf_bmap.bmap);
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
973
if (!rx_pause && bitmap_weight(lmac->rx_fc_pfvf_bmap.bmap, lmac->rx_fc_pfvf_bmap.max)) {
drivers/net/ethernet/marvell/octeontx2/af/cgx.c
979
if (!tx_pause && bitmap_weight(lmac->tx_fc_pfvf_bmap.bmap, lmac->tx_fc_pfvf_bmap.max)) {
drivers/net/ethernet/marvell/octeontx2/af/lmac_common.h
151
struct lmac *lmac_idmap[MAX_LMAC_COUNT];
drivers/net/ethernet/marvell/octeontx2/af/lmac_common.h
167
void cgx_write(struct cgx *cgx, u64 lmac, u64 offset, u64 val);
drivers/net/ethernet/marvell/octeontx2/af/lmac_common.h
168
u64 cgx_read(struct cgx *cgx, u64 lmac, u64 offset);
drivers/net/ethernet/marvell/octeontx2/af/lmac_common.h
169
struct lmac *lmac_pdata(u8 lmac_id, struct cgx *cgx);
drivers/net/ethernet/marvell/octeontx2/af/lmac_common.h
170
int cgx_fwi_cmd_send(u64 req, u64 *resp, struct lmac *lmac);
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
1397
int lmac;
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
1403
for (lmac = 0; lmac < mcs->hw->lmac_cnt; lmac++) {
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
1404
cfg = mcs_reg_read(mcs, MCSX_LINK_LMACX_CFG(lmac));
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
1408
mcs_reg_write(mcs, MCSX_LINK_LMACX_CFG(lmac), cfg);
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
1510
int lmac, err = 0;
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
1574
for (lmac = 0; lmac < mcs->hw->lmac_cnt; lmac++)
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
1575
mcs_lmac_init(mcs, lmac);
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
943
int lmac;
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
957
for (lmac = 0; lmac < mcs->hw->lmac_cnt; lmac++) {
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
958
if (!(val & BIT_ULL(lmac)))
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
960
dev_warn(mcs->dev, "BEE:Policy or data overflow occurred on lmac:%d\n", lmac);
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
967
int lmac;
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
972
for (lmac = 0; lmac < mcs->hw->lmac_cnt; lmac++) {
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
973
if (intr & BIT_ULL(lmac))
drivers/net/ethernet/marvell/octeontx2/af/mcs.c
974
dev_warn(mcs->dev, "PAB: overflow occurred on lmac:%d\n", lmac);
drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c
860
int cgx, lmac, port;
drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c
864
lmac = port % rvu->hw->lmac_per_cgx;
drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c
865
if (!is_lmac_valid(rvu_cgx_pdata(cgx, rvu), lmac))
drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c
875
int lmac, err = 0, mcs_id;
drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c
896
for (lmac = 0; lmac < mcs->hw->lmac_cnt; lmac++)
drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c
897
mcs_set_lmac_mode(mcs, lmac, 0);
drivers/net/ethernet/marvell/octeontx2/af/rpm.c
101
static u64 rpm_read(rpm_t *rpm, u64 lmac, u64 offset)
drivers/net/ethernet/marvell/octeontx2/af/rpm.c
103
return cgx_read(rpm, lmac, offset);
drivers/net/ethernet/marvell/octeontx2/af/rpm.c
170
struct lmac *lmac;
drivers/net/ethernet/marvell/octeontx2/af/rpm.c
176
lmac = lmac_pdata(lmac_id, rpm);
drivers/net/ethernet/marvell/octeontx2/af/rpm.c
177
if (!lmac)
drivers/net/ethernet/marvell/octeontx2/af/rpm.c
181
if (!bitmap_weight(lmac->rx_fc_pfvf_bmap.bmap, lmac->rx_fc_pfvf_bmap.max))
drivers/net/ethernet/marvell/octeontx2/af/rpm.c
575
struct lmac *lmac;
drivers/net/ethernet/marvell/octeontx2/af/rpm.c
581
lmac = lmac_pdata(lmac_id, rpm);
drivers/net/ethernet/marvell/octeontx2/af/rpm.c
582
if (lmac->lmac_type == LMAC_MODE_QSGMII ||
drivers/net/ethernet/marvell/octeontx2/af/rpm.c
583
lmac->lmac_type == LMAC_MODE_SGMII) {
drivers/net/ethernet/marvell/octeontx2/af/rpm.c
96
static void rpm_write(rpm_t *rpm, u64 lmac, u64 offset, u64 val)
drivers/net/ethernet/marvell/octeontx2/af/rpm.c
98
cgx_write(rpm, lmac, offset, val);
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
1118
u32 rvu_cgx_get_lmac_fifolen(struct rvu *rvu, int cgx, int lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
95
struct dentry *lmac;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
1222
u8 cgx_idx, lmac;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
1231
rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx_idx, &lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
1234
linkmodes = &rvu->fwdata->cgx_fw_data_usx[cgx_idx][lmac];
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
1236
linkmodes = &rvu->fwdata->cgx_fw_data[cgx_idx][lmac];
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
1239
cgx_idx, lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
128
int cgx, lmac, iter;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
1346
u8 cgx, lmac;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
1351
rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx, &lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
1355
if (mac_ops->mac_reset(cgxd, lmac, !is_vf(pcifunc)))
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
165
lmac = cgx_get_lmacid(rvu_cgx_pdata(cgx, rvu),
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
167
rvu->pf2cgxlmac_map[pf] = cgxlmac_id_to_bmap(cgx, lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
168
rvu->cgxlmac2pf_map[CGX_OFFSET(cgx) + lmac] = 1 << pf;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
171
rvu_map_cgx_nix_block(rvu, pf, cgx, lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
312
int cgx, lmac, err;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
332
for_each_set_bit(lmac, &lmac_bmap, rvu->hw->lmac_per_cgx) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
333
err = cgx_lmac_evh_register(&cb, cgxd, lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
337
cgx, lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
404
int cgx, lmac, err;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
414
for_each_set_bit(lmac, &lmac_bmap, rvu->hw->lmac_per_cgx)
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
415
mac_ops->mac_enadis_rx(cgxd, lmac, true);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
434
int cgx, lmac;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
442
for_each_set_bit(lmac, &lmac_bmap, rvu->hw->lmac_per_cgx)
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
443
cgx_lmac_evh_unregister(cgxd, lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
584
u8 cgx_idx, lmac;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
590
rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx_idx, &lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
596
err = mac_ops->mac_get_rx_stats(cgxd, lmac, stat, &rx_stat);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
609
err = mac_ops->mac_get_tx_stats(cgxd, lmac, stat, &tx_stat);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
639
u8 cgx_idx, lmac;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
655
rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx_idx, &lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
659
return mac_ops->mac_stats_reset(cgxd, lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
668
u8 cgx_idx, lmac;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
673
rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx_idx, &lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
677
return mac_ops->get_fec_stats(cgxd, lmac, rsp);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
932
u8 cgx_idx, lmac;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
938
rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx_idx, &lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
955
u32 rvu_cgx_get_lmac_fifolen(struct rvu *rvu, int cgx, int lmac)
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
968
return mac_ops->lmac_fifo_len(cgxd, lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
537
int cgx, lmac;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
540
for (lmac = 0; lmac < hw->lmac_per_cgx; lmac++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
541
__rvu_rpm_set_channels(cgx, lmac, base);
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
207
int lmac;
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
211
for_each_set_bit(lmac, &mcs->hw->lmac_bmap, mcs->hw->lmac_cnt) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
212
mcs_get_port_stats(mcs, &stats, lmac, dir);
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
213
seq_printf(filp, "port%d: Tcam Miss: %lld\n", lmac, stats.tcam_miss_cnt);
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
214
seq_printf(filp, "port%d: Parser errors: %lld\n", lmac, stats.parser_err_cnt);
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
217
seq_printf(filp, "port%d: Preempt error: %lld\n", lmac,
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
220
seq_printf(filp, "port%d: Sectag insert error: %lld\n", lmac,
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
3148
rvu->rvu_dbg.lmac =
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
3151
debugfs_create_file_aux_num("stats", 0600, rvu->rvu_dbg.lmac,
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
3154
rvu->rvu_dbg.lmac, cgx, lmac_id,
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
3157
rvu->rvu_dbg.lmac, cgx,
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
821
char cgx[10], lmac[10], chan[10];
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
846
lmac[0] = 0;
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
858
sprintf(lmac, "LMAC%d", lmac_id);
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
862
dev_name(&pdev->dev), pcifunc, blkid, cgx, lmac,
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4618
u8 cgx = 0, lmac = 0;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4652
rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx, &lmac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4653
link = (cgx * hw->lmac_per_cgx) + lmac;
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
1358
iter->lmac = 1;
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
1360
iter->lmac = 0;
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
1366
cfg->lmac[iter->lmac].txfifo_size[iter->fifo];
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
1535
data->size = fwrt->smem_cfg.lmac[fifo_idx].rxfifo1_size;
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
186
cfg->lmac[0].rxfifo1_size, 0, 0);
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
194
cfg->lmac[1].rxfifo1_size,
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
221
cfg->lmac[0].txfifo_size[i], 0, i);
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
233
cfg->lmac[1].txfifo_size[i],
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
722
ADD_LEN(fifo_len, mem_cfg->lmac[i].rxfifo1_size, hdr_len);
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
746
ADD_LEN(fifo_len, mem_cfg->lmac[i].txfifo_size[j],
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
939
u32 *txf_size = mem_cfg->lmac[i].txfifo_size;
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
942
dump_smem_cfg->lmac[i].txfifo_size[j] =
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
944
dump_smem_cfg->lmac[i].rxfifo1_size =
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
945
cpu_to_le32(mem_cfg->lmac[i].rxfifo1_size);
drivers/net/wireless/intel/iwlwifi/fw/dbg.h
310
struct iwl_lmac_alive *lmac,
drivers/net/wireless/intel/iwlwifi/fw/dbg.h
313
if (lmac) {
drivers/net/wireless/intel/iwlwifi/fw/dbg.h
314
fwrt->dump.fw_ver.type = lmac->ver_type;
drivers/net/wireless/intel/iwlwifi/fw/dbg.h
315
fwrt->dump.fw_ver.subtype = lmac->ver_subtype;
drivers/net/wireless/intel/iwlwifi/fw/dbg.h
316
fwrt->dump.fw_ver.lmac_major = le32_to_cpu(lmac->ucode_major);
drivers/net/wireless/intel/iwlwifi/fw/dbg.h
317
fwrt->dump.fw_ver.lmac_minor = le32_to_cpu(lmac->ucode_minor);
drivers/net/wireless/intel/iwlwifi/fw/error-dump.h
206
} lmac[MAX_NUM_LMAC];
drivers/net/wireless/intel/iwlwifi/fw/runtime.h
35
} lmac[MAX_NUM_LMAC];
drivers/net/wireless/intel/iwlwifi/fw/runtime.h
90
int lmac;
drivers/net/wireless/intel/iwlwifi/fw/smem.c
16
int i, lmac;
drivers/net/wireless/intel/iwlwifi/fw/smem.c
22
if (IWL_FW_CHECK(fwrt, lmac_num > ARRAY_SIZE(fwrt->smem_cfg.lmac),
drivers/net/wireless/intel/iwlwifi/fw/smem.c
38
for (lmac = 0; lmac < lmac_num; lmac++) {
drivers/net/wireless/intel/iwlwifi/fw/smem.c
40
&mem_cfg->lmac_smem[lmac];
drivers/net/wireless/intel/iwlwifi/fw/smem.c
43
fwrt->smem_cfg.lmac[lmac].txfifo_size[i] =
drivers/net/wireless/intel/iwlwifi/fw/smem.c
45
fwrt->smem_cfg.lmac[lmac].rxfifo1_size =
drivers/net/wireless/intel/iwlwifi/fw/smem.c
60
fwrt->smem_cfg.lmac[0].txfifo_size[i] =
drivers/net/wireless/intel/iwlwifi/fw/smem.c
63
fwrt->smem_cfg.lmac[0].rxfifo1_size =
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
678
u8 ac, txf, lmac;
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
710
lmac = iwl_mld_get_lmac_id(mld, band);
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
715
lmac = IWL_LMAC_5G_INDEX;
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
717
mld->fwrt.smem_cfg.lmac[lmac].txfifo_size[txf] - 256);
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
718
lmac = IWL_LMAC_24G_INDEX;
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
721
lmac = IWL_LMAC_24G_INDEX;
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
725
mld->fwrt.smem_cfg.lmac[lmac].txfifo_size[txf] - 256);
drivers/net/wireless/intel/iwlwifi/mvm/tx.c
869
int lmac;
drivers/net/wireless/intel/iwlwifi/mvm/tx.c
887
lmac = iwl_mvm_get_lmac_id(mvm, band);
drivers/net/wireless/intel/iwlwifi/mvm/tx.c
890
mvm->fwrt.smem_cfg.lmac[lmac].txfifo_size[txf] - 256);
include/net/llc_if.h
65
int llc_establish_connection(struct sock *sk, const u8 *lmac, u8 *dmac,
net/llc/llc_if.c
83
int llc_establish_connection(struct sock *sk, const u8 *lmac, u8 *dmac, u8 dsap)
net/llc/llc_if.c
94
memcpy(laddr.mac, lmac, sizeof(laddr.mac));