usr/src/uts/common/io/igc/igc.c
1000
igc_write32(igc, IGC_CTRL_EXT, ctrl);
usr/src/uts/common/io/igc/igc.c
1009
igc_hw_init(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
1014
if ((ret = igc_reset_hw(&igc->igc_hw)) != IGC_SUCCESS) {
usr/src/uts/common/io/igc/igc.c
1015
dev_err(igc->igc_dip, CE_WARN, "failed to reset device: %d",
usr/src/uts/common/io/igc/igc.c
1023
igc_hw_control(igc, true);
usr/src/uts/common/io/igc/igc.c
1028
eecd = igc_read32(igc, IGC_EECD);
usr/src/uts/common/io/igc/igc.c
1030
if ((ret = igc_validate_nvm_checksum(&igc->igc_hw)) !=
usr/src/uts/common/io/igc/igc.c
1032
dev_err(igc->igc_dip, CE_WARN, "failed to validate "
usr/src/uts/common/io/igc/igc.c
1038
if ((ret = igc_read_mac_addr(&igc->igc_hw)) != IGC_SUCCESS) {
usr/src/uts/common/io/igc/igc.c
1039
dev_err(igc->igc_dip, CE_WARN, "failed to read MAC address: %d",
usr/src/uts/common/io/igc/igc.c
1044
if ((ret = igc_get_phy_id(&igc->igc_hw)) != IGC_SUCCESS) {
usr/src/uts/common/io/igc/igc.c
1045
dev_err(igc->igc_dip, CE_WARN, "failed to get PHY id: %d", ret);
usr/src/uts/common/io/igc/igc.c
1057
igc_led_fini(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
1059
igc_write32(igc, IGC_LEDCTL, igc->igc_ledctl);
usr/src/uts/common/io/igc/igc.c
1129
igc_led_init(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
1131
uint32_t led = igc_read32(igc, IGC_LEDCTL);
usr/src/uts/common/io/igc/igc.c
1133
igc->igc_ledctl = led;
usr/src/uts/common/io/igc/igc.c
1134
igc->igc_ledctl_on = led;
usr/src/uts/common/io/igc/igc.c
1135
igc->igc_ledctl_off = led;
usr/src/uts/common/io/igc/igc.c
1136
igc->igc_ledctl_blink = led;
usr/src/uts/common/io/igc/igc.c
1147
igc->igc_ledctl_on = igc_led_set_mode(i,
usr/src/uts/common/io/igc/igc.c
1148
igc->igc_ledctl_on, I225_LED_M_OFF);
usr/src/uts/common/io/igc/igc.c
1149
igc->igc_ledctl_off = igc_led_set_mode(i,
usr/src/uts/common/io/igc/igc.c
1150
igc->igc_ledctl_off, I225_LED_M_ON);
usr/src/uts/common/io/igc/igc.c
1151
igc->igc_ledctl_blink = igc_led_set_mode(i,
usr/src/uts/common/io/igc/igc.c
1152
igc->igc_ledctl_blink, I225_LED_M_OFF);
usr/src/uts/common/io/igc/igc.c
1154
igc->igc_ledctl_on = igc_led_set_mode(i,
usr/src/uts/common/io/igc/igc.c
1155
igc->igc_ledctl_on, I225_LED_M_ON);
usr/src/uts/common/io/igc/igc.c
1156
igc->igc_ledctl_off = igc_led_set_mode(i,
usr/src/uts/common/io/igc/igc.c
1157
igc->igc_ledctl_off, I225_LED_M_OFF);
usr/src/uts/common/io/igc/igc.c
1158
igc->igc_ledctl_blink = igc_led_set_mode(i,
usr/src/uts/common/io/igc/igc.c
1159
igc->igc_ledctl_blink, I225_LED_M_ON);
usr/src/uts/common/io/igc/igc.c
1163
igc->igc_ledctl_blink = igc_led_set_blink(i,
usr/src/uts/common/io/igc/igc.c
1164
igc->igc_ledctl_blink, true);
usr/src/uts/common/io/igc/igc.c
1167
igc->igc_led_mode = MAC_LED_DEFAULT;
usr/src/uts/common/io/igc/igc.c
1171
igc_write_ivar(igc_t *igc, uint32_t queue, bool rx, uint32_t msix)
usr/src/uts/common/io/igc/igc.c
1193
ivar = igc_read32(igc, reg);
usr/src/uts/common/io/igc/igc.c
1195
igc_write32(igc, reg, ivar);
usr/src/uts/common/io/igc/igc.c
1196
igc->igc_eims |= 1 << msix;
usr/src/uts/common/io/igc/igc.c
1207
igc_hw_intr_init(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
1213
igc_write32(igc, IGC_GPIE, gpie);
usr/src/uts/common/io/igc/igc.c
1222
igc_write32(igc, IGC_IVAR_MISC, ivar);
usr/src/uts/common/io/igc/igc.c
1223
igc->igc_eims = 1;
usr/src/uts/common/io/igc/igc.c
1230
for (uint32_t i = 0; i < igc->igc_ntx_rings; i++) {
usr/src/uts/common/io/igc/igc.c
1231
igc_write_ivar(igc, i, false,
usr/src/uts/common/io/igc/igc.c
1232
igc->igc_tx_rings[i].itr_intr_idx);
usr/src/uts/common/io/igc/igc.c
1235
for (uint32_t i = 0; i < igc->igc_nrx_rings; i++) {
usr/src/uts/common/io/igc/igc.c
1236
igc_write_ivar(igc, i, true, igc->igc_rx_rings[i].irr_intr_idx);
usr/src/uts/common/io/igc/igc.c
1239
for (uint32_t i = 0; i < igc->igc_nintrs; i++) {
usr/src/uts/common/io/igc/igc.c
1240
igc_write32(igc, IGC_EITR(i), igc->igc_eitr);
usr/src/uts/common/io/igc/igc.c
1250
igc_unicast_sync(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
1252
ASSERT(MUTEX_HELD(&igc->igc_lock));
usr/src/uts/common/io/igc/igc.c
1254
if (igc->igc_ucast == NULL) {
usr/src/uts/common/io/igc/igc.c
1255
igc->igc_nucast = igc->igc_hw.mac.rar_entry_count;
usr/src/uts/common/io/igc/igc.c
1256
igc->igc_ucast = kmem_zalloc(sizeof (igc_addr_t) *
usr/src/uts/common/io/igc/igc.c
1257
igc->igc_nucast, KM_SLEEP);
usr/src/uts/common/io/igc/igc.c
1260
for (uint16_t i = 0; i < igc->igc_nucast; i++) {
usr/src/uts/common/io/igc/igc.c
1261
int ret = igc_rar_set(&igc->igc_hw, igc->igc_ucast[i].ia_mac,
usr/src/uts/common/io/igc/igc.c
1281
igc_multicast_sync(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
1285
ASSERT(MUTEX_HELD(&igc->igc_lock));
usr/src/uts/common/io/igc/igc.c
1287
if (igc->igc_mcast == NULL) {
usr/src/uts/common/io/igc/igc.c
1288
igc->igc_nmcast = igc->igc_hw.mac.mta_reg_count;
usr/src/uts/common/io/igc/igc.c
1289
igc->igc_mcast = kmem_zalloc(sizeof (igc_addr_t) *
usr/src/uts/common/io/igc/igc.c
1290
igc->igc_nmcast, KM_SLEEP);
usr/src/uts/common/io/igc/igc.c
1291
igc->igc_mcast_raw = kmem_alloc(sizeof (ether_addr_t) *
usr/src/uts/common/io/igc/igc.c
1292
igc->igc_nmcast, KM_SLEEP);
usr/src/uts/common/io/igc/igc.c
1295
bzero(igc->igc_mcast_raw, sizeof (ether_addr_t) * igc->igc_nmcast);
usr/src/uts/common/io/igc/igc.c
1297
for (uint16_t i = 0; i < igc->igc_nmcast; i++) {
usr/src/uts/common/io/igc/igc.c
1298
ether_addr_t *targ = &igc->igc_mcast_raw[nvalid];
usr/src/uts/common/io/igc/igc.c
1300
if (!igc->igc_mcast[i].ia_valid)
usr/src/uts/common/io/igc/igc.c
1302
bcopy(igc->igc_mcast[i].ia_mac, targ, sizeof (ether_addr_t));
usr/src/uts/common/io/igc/igc.c
1306
igc_update_mc_addr_list(&igc->igc_hw, (uint8_t *)igc->igc_mcast_raw,
usr/src/uts/common/io/igc/igc.c
1316
igc_hw_common_init(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
1320
struct igc_hw *hw = &igc->igc_hw;
usr/src/uts/common/io/igc/igc.c
1342
hwm2x = (pba << 10) - 2 * igc->igc_max_frame;
usr/src/uts/common/io/igc/igc.c
1346
hw->fc.low_water = igc->igc_hw.fc.high_water - 16;
usr/src/uts/common/io/igc/igc.c
1355
dev_err(igc->igc_dip, CE_WARN, "failed to reset device: %d",
usr/src/uts/common/io/igc/igc.c
1361
dev_err(igc->igc_dip, CE_WARN, "failed to init hardware: %d",
usr/src/uts/common/io/igc/igc.c
1370
igc_write32(igc, IGC_WUC, 0);
usr/src/uts/common/io/igc/igc.c
1373
dev_err(igc->igc_dip, CE_WARN, "failed to set D0 LPLU mode: %d",
usr/src/uts/common/io/igc/igc.c
1384
dev_err(igc->igc_dip, CE_WARN, "failed to set EEE mode: %d",
usr/src/uts/common/io/igc/igc.c
1389
igc_hw_intr_init(igc);
usr/src/uts/common/io/igc/igc.c
1391
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc.c
1392
igc_unicast_sync(igc);
usr/src/uts/common/io/igc/igc.c
1393
igc_multicast_sync(igc);
usr/src/uts/common/io/igc/igc.c
1395
igc->igc_hw.mac.get_link_status = true;
usr/src/uts/common/io/igc/igc.c
1398
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc.c
1404
igc_intr_en(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
1408
if ((igc->igc_intr_cap & DDI_INTR_FLAG_BLOCK) != 0) {
usr/src/uts/common/io/igc/igc.c
1409
ret = ddi_intr_block_enable(igc->igc_intr_handles,
usr/src/uts/common/io/igc/igc.c
1410
igc->igc_nintrs);
usr/src/uts/common/io/igc/igc.c
1412
dev_err(igc->igc_dip, CE_WARN, "failed to block "
usr/src/uts/common/io/igc/igc.c
1417
for (int i = 0; i < igc->igc_nintrs; i++) {
usr/src/uts/common/io/igc/igc.c
1418
ret = ddi_intr_enable(igc->igc_intr_handles[i]);
usr/src/uts/common/io/igc/igc.c
1420
dev_err(igc->igc_dip, CE_WARN, "failed to "
usr/src/uts/common/io/igc/igc.c
1424
igc->igc_intr_handles[clean]);
usr/src/uts/common/io/igc/igc.c
1426
dev_err(igc->igc_dip, CE_WARN,
usr/src/uts/common/io/igc/igc.c
1441
(void) igc_read32(igc, IGC_ICR);
usr/src/uts/common/io/igc/igc.c
1450
igc_hw_intr_disable(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
1452
igc_write32(igc, IGC_EIMC, UINT32_MAX);
usr/src/uts/common/io/igc/igc.c
1453
igc_write32(igc, IGC_EIAC, 0);
usr/src/uts/common/io/igc/igc.c
1454
igc_write32(igc, IGC_IMC, UINT32_MAX);
usr/src/uts/common/io/igc/igc.c
1462
igc_hw_intr_enable(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
1469
(void) igc_read32(igc, IGC_ICR);
usr/src/uts/common/io/igc/igc.c
1482
igc_write32(igc, IGC_EIAC, igc->igc_eims);
usr/src/uts/common/io/igc/igc.c
1483
igc_write32(igc, IGC_EIMS, igc->igc_eims);
usr/src/uts/common/io/igc/igc.c
1484
igc_write32(igc, IGC_IMS, ims);
usr/src/uts/common/io/igc/igc.c
1485
igc_write32(igc, IGC_IAM, 0);
usr/src/uts/common/io/igc/igc.c
1489
igc_cleanup(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
1491
if (igc->igc_mcast != NULL) {
usr/src/uts/common/io/igc/igc.c
1492
ASSERT3U(igc->igc_nmcast, !=, 0);
usr/src/uts/common/io/igc/igc.c
1493
kmem_free(igc->igc_mcast_raw, sizeof (ether_addr_t) *
usr/src/uts/common/io/igc/igc.c
1494
igc->igc_nmcast);
usr/src/uts/common/io/igc/igc.c
1495
kmem_free(igc->igc_mcast, sizeof (igc_addr_t) *
usr/src/uts/common/io/igc/igc.c
1496
igc->igc_nmcast);
usr/src/uts/common/io/igc/igc.c
1497
igc->igc_nmcast = 0;
usr/src/uts/common/io/igc/igc.c
1498
igc->igc_mcast = NULL;
usr/src/uts/common/io/igc/igc.c
1501
if (igc->igc_ucast != NULL) {
usr/src/uts/common/io/igc/igc.c
1502
ASSERT3U(igc->igc_nucast, !=, 0);
usr/src/uts/common/io/igc/igc.c
1503
kmem_free(igc->igc_ucast, sizeof (igc_addr_t) *
usr/src/uts/common/io/igc/igc.c
1504
igc->igc_nucast);
usr/src/uts/common/io/igc/igc.c
1505
igc->igc_nucast = 0;
usr/src/uts/common/io/igc/igc.c
1506
igc->igc_ucast = NULL;
usr/src/uts/common/io/igc/igc.c
1509
if ((igc->igc_attach & IGC_ATTACH_INTR_EN) != 0) {
usr/src/uts/common/io/igc/igc.c
1511
if ((igc->igc_intr_cap & DDI_INTR_FLAG_BLOCK) != 0) {
usr/src/uts/common/io/igc/igc.c
1512
ret = ddi_intr_block_disable(igc->igc_intr_handles,
usr/src/uts/common/io/igc/igc.c
1513
igc->igc_nintrs);
usr/src/uts/common/io/igc/igc.c
1515
dev_err(igc->igc_dip, CE_WARN, "failed to "
usr/src/uts/common/io/igc/igc.c
1519
for (int i = 0; i < igc->igc_nintrs; i++) {
usr/src/uts/common/io/igc/igc.c
1521
igc->igc_intr_handles[i]);
usr/src/uts/common/io/igc/igc.c
1523
dev_err(igc->igc_dip, CE_WARN, "failed "
usr/src/uts/common/io/igc/igc.c
1529
igc->igc_attach &= ~IGC_ATTACH_INTR_EN;
usr/src/uts/common/io/igc/igc.c
1532
if ((igc->igc_attach & IGC_ATTACH_MAC) != 0) {
usr/src/uts/common/io/igc/igc.c
1533
int ret = mac_unregister(igc->igc_mac_hdl);
usr/src/uts/common/io/igc/igc.c
1535
dev_err(igc->igc_dip, CE_WARN, "failed to unregister "
usr/src/uts/common/io/igc/igc.c
1538
igc->igc_attach &= ~IGC_ATTACH_MAC;
usr/src/uts/common/io/igc/igc.c
1541
if ((igc->igc_attach & IGC_ATTACH_STATS) != 0) {
usr/src/uts/common/io/igc/igc.c
1542
igc_stats_fini(igc);
usr/src/uts/common/io/igc/igc.c
1543
igc->igc_attach &= ~IGC_ATTACH_STATS;
usr/src/uts/common/io/igc/igc.c
1546
if ((igc->igc_attach & IGC_ATTACH_LED) != 0) {
usr/src/uts/common/io/igc/igc.c
1547
igc_led_fini(igc);
usr/src/uts/common/io/igc/igc.c
1548
igc->igc_attach &= ~IGC_ATTACH_LED;
usr/src/uts/common/io/igc/igc.c
1551
if ((igc->igc_attach & IGC_ATTACH_INTR_HANDLER) != 0) {
usr/src/uts/common/io/igc/igc.c
1552
for (int i = 0; i < igc->igc_nintrs; i++) {
usr/src/uts/common/io/igc/igc.c
1554
ddi_intr_remove_handler(igc->igc_intr_handles[i]);
usr/src/uts/common/io/igc/igc.c
1556
dev_err(igc->igc_dip, CE_WARN, "failed to "
usr/src/uts/common/io/igc/igc.c
1560
igc->igc_attach &= ~IGC_ATTACH_INTR_HANDLER;
usr/src/uts/common/io/igc/igc.c
1563
if (igc->igc_tx_rings != NULL) {
usr/src/uts/common/io/igc/igc.c
1564
for (uint32_t i = 0; i < igc->igc_ntx_rings; i++) {
usr/src/uts/common/io/igc/igc.c
1565
igc_tx_ring_stats_fini(&igc->igc_tx_rings[i]);
usr/src/uts/common/io/igc/igc.c
1566
mutex_destroy(&igc->igc_tx_rings[i].itr_lock);
usr/src/uts/common/io/igc/igc.c
1568
kmem_free(igc->igc_tx_rings, sizeof (igc_tx_ring_t) *
usr/src/uts/common/io/igc/igc.c
1569
igc->igc_ntx_rings);
usr/src/uts/common/io/igc/igc.c
1570
igc->igc_tx_rings = NULL;
usr/src/uts/common/io/igc/igc.c
1573
if (igc->igc_rx_rings != NULL) {
usr/src/uts/common/io/igc/igc.c
1574
for (uint32_t i = 0; i < igc->igc_nrx_rings; i++) {
usr/src/uts/common/io/igc/igc.c
1575
igc_rx_ring_stats_fini(&igc->igc_rx_rings[i]);
usr/src/uts/common/io/igc/igc.c
1576
cv_destroy(&igc->igc_rx_rings[i].irr_free_cv);
usr/src/uts/common/io/igc/igc.c
1577
mutex_destroy(&igc->igc_rx_rings[i].irr_free_lock);
usr/src/uts/common/io/igc/igc.c
1578
mutex_destroy(&igc->igc_rx_rings[i].irr_lock);
usr/src/uts/common/io/igc/igc.c
1580
kmem_free(igc->igc_rx_rings, sizeof (igc_rx_ring_t) *
usr/src/uts/common/io/igc/igc.c
1581
igc->igc_nrx_rings);
usr/src/uts/common/io/igc/igc.c
1582
igc->igc_rx_rings = NULL;
usr/src/uts/common/io/igc/igc.c
1585
if ((igc->igc_attach & IGC_ATTACH_MUTEX) != 0) {
usr/src/uts/common/io/igc/igc.c
1586
mutex_destroy(&igc->igc_lock);
usr/src/uts/common/io/igc/igc.c
1587
igc->igc_attach &= ~IGC_ATTACH_MUTEX;
usr/src/uts/common/io/igc/igc.c
1590
if ((igc->igc_attach & IGC_ATTACH_INTR_ALLOC) != 0) {
usr/src/uts/common/io/igc/igc.c
1591
for (int i = 0; i < igc->igc_nintrs; i++) {
usr/src/uts/common/io/igc/igc.c
1592
int ret = ddi_intr_free(igc->igc_intr_handles[i]);
usr/src/uts/common/io/igc/igc.c
1594
dev_err(igc->igc_dip, CE_WARN, "unexpected "
usr/src/uts/common/io/igc/igc.c
1598
igc->igc_attach &= ~IGC_ATTACH_INTR_ALLOC;
usr/src/uts/common/io/igc/igc.c
1601
if (igc->igc_intr_handles != NULL) {
usr/src/uts/common/io/igc/igc.c
1602
ASSERT3U(igc->igc_intr_size, !=, 0);
usr/src/uts/common/io/igc/igc.c
1603
kmem_free(igc->igc_intr_handles, igc->igc_intr_size);
usr/src/uts/common/io/igc/igc.c
1610
igc_hw_control(igc, false);
usr/src/uts/common/io/igc/igc.c
1612
if (igc->igc_regs_hdl != NULL) {
usr/src/uts/common/io/igc/igc.c
1613
ddi_regs_map_free(&igc->igc_regs_hdl);
usr/src/uts/common/io/igc/igc.c
1614
igc->igc_regs_base = NULL;
usr/src/uts/common/io/igc/igc.c
1617
if (igc->igc_cfgspace != NULL) {
usr/src/uts/common/io/igc/igc.c
1618
pci_config_teardown(&igc->igc_cfgspace);
usr/src/uts/common/io/igc/igc.c
1620
igc->igc_attach &= ~IGC_ATTACH_REGS;
usr/src/uts/common/io/igc/igc.c
1622
ddi_set_driver_private(igc->igc_dip, NULL);
usr/src/uts/common/io/igc/igc.c
1623
igc->igc_dip = NULL;
usr/src/uts/common/io/igc/igc.c
1625
VERIFY0(igc->igc_attach);
usr/src/uts/common/io/igc/igc.c
1627
kmem_free(igc, sizeof (igc_t));
usr/src/uts/common/io/igc/igc.c
1633
igc_t *igc;
usr/src/uts/common/io/igc/igc.c
1639
igc = kmem_zalloc(sizeof (igc_t), KM_SLEEP);
usr/src/uts/common/io/igc/igc.c
1640
ddi_set_driver_private(dip, igc);
usr/src/uts/common/io/igc/igc.c
1641
igc->igc_dip = dip;
usr/src/uts/common/io/igc/igc.c
1646
igc->igc_link_duplex = LINK_DUPLEX_UNKNOWN;
usr/src/uts/common/io/igc/igc.c
1647
igc->igc_link_state = LINK_STATE_UNKNOWN;
usr/src/uts/common/io/igc/igc.c
1652
if (!igc_setup_regs(igc)) {
usr/src/uts/common/io/igc/igc.c
1655
igc->igc_attach |= IGC_ATTACH_REGS;
usr/src/uts/common/io/igc/igc.c
1660
if (!igc_core_code_init(igc)) {
usr/src/uts/common/io/igc/igc.c
1664
if (!igc_limits_init(igc)) {
usr/src/uts/common/io/igc/igc.c
1671
if (!igc_intr_init(igc)) {
usr/src/uts/common/io/igc/igc.c
1679
mutex_init(&igc->igc_lock, NULL, MUTEX_DRIVER,
usr/src/uts/common/io/igc/igc.c
1680
DDI_INTR_PRI(igc->igc_intr_pri));
usr/src/uts/common/io/igc/igc.c
1681
igc->igc_attach |= IGC_ATTACH_MUTEX;
usr/src/uts/common/io/igc/igc.c
1700
igc->igc_nrx_rings = 1;
usr/src/uts/common/io/igc/igc.c
1701
igc->igc_ntx_rings = 1;
usr/src/uts/common/io/igc/igc.c
1706
igc->igc_mtu = ETHERMTU;
usr/src/uts/common/io/igc/igc.c
1707
igc_hw_buf_update(igc);
usr/src/uts/common/io/igc/igc.c
1714
igc->igc_rx_ndesc = IGC_DEF_RX_RING_SIZE;
usr/src/uts/common/io/igc/igc.c
1715
igc->igc_tx_ndesc = IGC_DEF_TX_RING_SIZE;
usr/src/uts/common/io/igc/igc.c
1716
igc->igc_rx_nbuf = igc->igc_rx_ndesc + (igc->igc_rx_ndesc >> 1);
usr/src/uts/common/io/igc/igc.c
1717
igc->igc_tx_nbuf = igc->igc_tx_ndesc;
usr/src/uts/common/io/igc/igc.c
1718
igc->igc_rx_nfree = igc->igc_rx_nbuf - igc->igc_rx_ndesc;
usr/src/uts/common/io/igc/igc.c
1719
igc->igc_rx_intr_nframes = IGC_DEF_RX_RING_INTR_LIMIT;
usr/src/uts/common/io/igc/igc.c
1720
igc->igc_rx_bind_thresh = IGC_DEF_RX_BIND;
usr/src/uts/common/io/igc/igc.c
1721
igc->igc_tx_bind_thresh = IGC_DEF_TX_BIND;
usr/src/uts/common/io/igc/igc.c
1722
igc->igc_tx_notify_thresh = IGC_DEF_TX_NOTIFY_MIN;
usr/src/uts/common/io/igc/igc.c
1723
igc->igc_tx_recycle_thresh = IGC_DEF_TX_RECYCLE_MIN;
usr/src/uts/common/io/igc/igc.c
1724
igc->igc_tx_gap = IGC_DEF_TX_GAP;
usr/src/uts/common/io/igc/igc.c
1725
igc->igc_eitr = IGC_DEF_EITR;
usr/src/uts/common/io/igc/igc.c
1727
if (!igc_rings_alloc(igc)) {
usr/src/uts/common/io/igc/igc.c
1731
if (!igc_intr_hdlr_init(igc)) {
usr/src/uts/common/io/igc/igc.c
1734
igc->igc_attach |= IGC_ATTACH_INTR_HANDLER;
usr/src/uts/common/io/igc/igc.c
1743
if (!igc_hw_init(igc)) {
usr/src/uts/common/io/igc/igc.c
1747
igc_led_init(igc);
usr/src/uts/common/io/igc/igc.c
1748
igc->igc_attach |= IGC_ATTACH_LED;
usr/src/uts/common/io/igc/igc.c
1761
igc->igc_hw.mac.autoneg = true;
usr/src/uts/common/io/igc/igc.c
1762
igc->igc_hw.phy.autoneg_wait_to_complete = false;
usr/src/uts/common/io/igc/igc.c
1763
igc->igc_hw.phy.autoneg_advertised = IGC_DEFAULT_ADV;
usr/src/uts/common/io/igc/igc.c
1764
igc->igc_hw.fc.requested_mode = igc_fc_default;
usr/src/uts/common/io/igc/igc.c
1765
igc->igc_hw.fc.current_mode = igc_fc_default;
usr/src/uts/common/io/igc/igc.c
1767
if (!igc_hw_common_init(igc)) {
usr/src/uts/common/io/igc/igc.c
1771
if (!igc_stats_init(igc)) {
usr/src/uts/common/io/igc/igc.c
1774
igc->igc_attach |= IGC_ATTACH_STATS;
usr/src/uts/common/io/igc/igc.c
1779
if (!igc_mac_register(igc)) {
usr/src/uts/common/io/igc/igc.c
1782
igc->igc_attach |= IGC_ATTACH_MAC;
usr/src/uts/common/io/igc/igc.c
1787
if (!igc_intr_en(igc)) {
usr/src/uts/common/io/igc/igc.c
1790
igc->igc_attach |= IGC_ATTACH_INTR_EN;
usr/src/uts/common/io/igc/igc.c
1795
igc_cleanup(igc);
usr/src/uts/common/io/igc/igc.c
1802
igc_t *igc;
usr/src/uts/common/io/igc/igc.c
1808
igc = ddi_get_driver_private(dip);
usr/src/uts/common/io/igc/igc.c
1809
if (igc == NULL) {
usr/src/uts/common/io/igc/igc.c
1814
igc_cleanup(igc);
usr/src/uts/common/io/igc/igc.c
513
igc_read32(igc_t *igc, uint32_t reg)
usr/src/uts/common/io/igc/igc.c
516
ASSERT3U(reg, <, igc->igc_regs_size);
usr/src/uts/common/io/igc/igc.c
517
addr = (uint32_t *)(igc->igc_regs_base + reg);
usr/src/uts/common/io/igc/igc.c
518
return (ddi_get32(igc->igc_regs_hdl, addr));
usr/src/uts/common/io/igc/igc.c
522
igc_write32(igc_t *igc, uint32_t reg, uint32_t val)
usr/src/uts/common/io/igc/igc.c
525
ASSERT3U(reg, <, igc->igc_regs_size);
usr/src/uts/common/io/igc/igc.c
526
addr = (uint32_t *)(igc->igc_regs_base + reg);
usr/src/uts/common/io/igc/igc.c
527
ddi_put32(igc->igc_regs_hdl, addr, val);
usr/src/uts/common/io/igc/igc.c
536
igc_link_up(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
538
ASSERT(MUTEX_HELD(&igc->igc_lock));
usr/src/uts/common/io/igc/igc.c
544
(void) igc_check_for_link(&igc->igc_hw);
usr/src/uts/common/io/igc/igc.c
545
return (!igc->igc_hw.mac.get_link_status);
usr/src/uts/common/io/igc/igc.c
549
igc_intr_lsc(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
554
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc.c
555
orig_state = igc->igc_link_state;
usr/src/uts/common/io/igc/igc.c
560
igc->igc_hw.mac.get_link_status = true;
usr/src/uts/common/io/igc/igc.c
561
if (igc_link_up(igc)) {
usr/src/uts/common/io/igc/igc.c
564
(void) igc_get_speed_and_duplex(&igc->igc_hw,
usr/src/uts/common/io/igc/igc.c
565
&igc->igc_link_speed, &duplex);
usr/src/uts/common/io/igc/igc.c
569
igc->igc_link_duplex = LINK_DUPLEX_HALF;
usr/src/uts/common/io/igc/igc.c
572
igc->igc_link_duplex = LINK_DUPLEX_FULL;
usr/src/uts/common/io/igc/igc.c
575
igc->igc_link_duplex = LINK_DUPLEX_UNKNOWN;
usr/src/uts/common/io/igc/igc.c
578
igc->igc_link_state = LINK_STATE_UP;
usr/src/uts/common/io/igc/igc.c
580
igc->igc_link_state = LINK_STATE_DOWN;
usr/src/uts/common/io/igc/igc.c
581
igc->igc_link_speed = 0;
usr/src/uts/common/io/igc/igc.c
582
igc->igc_link_duplex = LINK_DUPLEX_UNKNOWN;
usr/src/uts/common/io/igc/igc.c
584
new_state = igc->igc_link_state;
usr/src/uts/common/io/igc/igc.c
589
(void) igc_read_phy_reg(&igc->igc_hw, PHY_CONTROL, &igc->igc_phy_ctrl);
usr/src/uts/common/io/igc/igc.c
590
(void) igc_read_phy_reg(&igc->igc_hw, PHY_STATUS, &igc->igc_phy_status);
usr/src/uts/common/io/igc/igc.c
591
(void) igc_read_phy_reg(&igc->igc_hw, PHY_AUTONEG_ADV,
usr/src/uts/common/io/igc/igc.c
592
&igc->igc_phy_an_adv);
usr/src/uts/common/io/igc/igc.c
593
(void) igc_read_phy_reg(&igc->igc_hw, PHY_LP_ABILITY,
usr/src/uts/common/io/igc/igc.c
594
&igc->igc_phy_lp);
usr/src/uts/common/io/igc/igc.c
595
(void) igc_read_phy_reg(&igc->igc_hw, PHY_AUTONEG_EXP,
usr/src/uts/common/io/igc/igc.c
596
&igc->igc_phy_an_exp);
usr/src/uts/common/io/igc/igc.c
597
(void) igc_read_phy_reg(&igc->igc_hw, PHY_1000T_CTRL,
usr/src/uts/common/io/igc/igc.c
598
&igc->igc_phy_1000t_ctrl);
usr/src/uts/common/io/igc/igc.c
599
(void) igc_read_phy_reg(&igc->igc_hw, PHY_1000T_STATUS,
usr/src/uts/common/io/igc/igc.c
600
&igc->igc_phy_1000t_status);
usr/src/uts/common/io/igc/igc.c
601
(void) igc_read_phy_reg(&igc->igc_hw, PHY_EXT_STATUS,
usr/src/uts/common/io/igc/igc.c
602
&igc->igc_phy_ext_status);
usr/src/uts/common/io/igc/igc.c
603
(void) igc_read_phy_reg(&igc->igc_hw, PHY_EXT_STATUS,
usr/src/uts/common/io/igc/igc.c
604
&igc->igc_phy_ext_status);
usr/src/uts/common/io/igc/igc.c
607
(void) igc_read_phy_reg(&igc->igc_hw, mmd_base | ANEG_MULTIGBT_AN_CTRL,
usr/src/uts/common/io/igc/igc.c
608
&igc->igc_phy_mmd_ctrl);
usr/src/uts/common/io/igc/igc.c
609
(void) igc_read_phy_reg(&igc->igc_hw, mmd_base | ANEG_MULTIGBT_AN_STS1,
usr/src/uts/common/io/igc/igc.c
610
&igc->igc_phy_mmd_sts);
usr/src/uts/common/io/igc/igc.c
611
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc.c
614
mac_link_update(igc->igc_mac_hdl, new_state);
usr/src/uts/common/io/igc/igc.c
621
igc_t *igc = (igc_t *)arg1;
usr/src/uts/common/io/igc/igc.c
626
ASSERT3U(queue, <, igc->igc_nrx_rings);
usr/src/uts/common/io/igc/igc.c
627
ring = &igc->igc_rx_rings[queue];
usr/src/uts/common/io/igc/igc.c
636
mac_rx_ring(igc->igc_mac_hdl, ring->irr_rh, mp, ring->irr_gen);
usr/src/uts/common/io/igc/igc.c
645
igc_t *igc = (igc_t *)arg1;
usr/src/uts/common/io/igc/igc.c
646
uint32_t icr = igc_read32(igc, IGC_ICR);
usr/src/uts/common/io/igc/igc.c
648
igc_tx_recycle(igc, &igc->igc_tx_rings[0]);
usr/src/uts/common/io/igc/igc.c
651
igc_intr_lsc(igc);
usr/src/uts/common/io/igc/igc.c
658
igc_setup_regs(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
663
if (pci_config_setup(igc->igc_dip, &igc->igc_cfgspace) != DDI_SUCCESS) {
usr/src/uts/common/io/igc/igc.c
664
dev_err(igc->igc_dip, CE_WARN, "failed to map config space");
usr/src/uts/common/io/igc/igc.c
668
if (ddi_dev_regsize(igc->igc_dip, IGC_PCI_BAR, &igc->igc_regs_size) !=
usr/src/uts/common/io/igc/igc.c
670
dev_err(igc->igc_dip, CE_WARN, "failed to get BAR %u size",
usr/src/uts/common/io/igc/igc.c
681
if ((ret = ddi_regs_map_setup(igc->igc_dip, IGC_PCI_BAR,
usr/src/uts/common/io/igc/igc.c
682
&igc->igc_regs_base, 0, igc->igc_regs_size, &da,
usr/src/uts/common/io/igc/igc.c
683
&igc->igc_regs_hdl)) != DDI_SUCCESS) {
usr/src/uts/common/io/igc/igc.c
684
dev_err(igc->igc_dip, CE_WARN, "failed to map registers: %d",
usr/src/uts/common/io/igc/igc.c
699
igc_core_code_init(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
705
igc->igc_hw.back = igc;
usr/src/uts/common/io/igc/igc.c
706
igc->igc_hw.vendor_id = pci_config_get16(igc->igc_cfgspace,
usr/src/uts/common/io/igc/igc.c
708
igc->igc_hw.device_id = pci_config_get16(igc->igc_cfgspace,
usr/src/uts/common/io/igc/igc.c
710
igc->igc_hw.revision_id = pci_config_get8(igc->igc_cfgspace,
usr/src/uts/common/io/igc/igc.c
712
igc->igc_hw.subsystem_vendor_id = pci_config_get16(igc->igc_cfgspace,
usr/src/uts/common/io/igc/igc.c
714
igc->igc_hw.subsystem_device_id = pci_config_get16(igc->igc_cfgspace,
usr/src/uts/common/io/igc/igc.c
717
if ((ret = ddi_prop_lookup_int_array(DDI_DEV_T_ANY, igc->igc_dip,
usr/src/uts/common/io/igc/igc.c
719
dev_err(igc->igc_dip, CE_WARN, "failed to look up 'reg' "
usr/src/uts/common/io/igc/igc.c
731
igc->igc_hw.bus.func = PCI_REG_FUNC_G(regs[0]);
usr/src/uts/common/io/igc/igc.c
732
igc->igc_hw.bus.pci_cmd_word = pci_config_get16(igc->igc_cfgspace,
usr/src/uts/common/io/igc/igc.c
740
igc->igc_hw.hw_addr = (uint8_t *)igc->igc_regs_base;
usr/src/uts/common/io/igc/igc.c
742
if ((ret = igc_set_mac_type(&igc->igc_hw)) != IGC_SUCCESS) {
usr/src/uts/common/io/igc/igc.c
743
dev_err(igc->igc_dip, CE_WARN, "failed to set mac type: %d",
usr/src/uts/common/io/igc/igc.c
748
if ((ret = igc_setup_init_funcs(&igc->igc_hw, true)) != IGC_SUCCESS) {
usr/src/uts/common/io/igc/igc.c
749
dev_err(igc->igc_dip, CE_WARN, "failed to setup core code "
usr/src/uts/common/io/igc/igc.c
758
if ((ret = igc_get_bus_info(&igc->igc_hw)) != IGC_SUCCESS) {
usr/src/uts/common/io/igc/igc.c
759
dev_err(igc->igc_dip, CE_WARN, "core code failed to get bus "
usr/src/uts/common/io/igc/igc.c
768
igc_limits_init(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
770
switch (igc->igc_hw.mac.type) {
usr/src/uts/common/io/igc/igc.c
772
igc->igc_limits.il_max_rx_rings = IGC_MAX_RX_RINGS_I225;
usr/src/uts/common/io/igc/igc.c
773
igc->igc_limits.il_max_tx_rings = IGC_MAX_RX_RINGS_I225;
usr/src/uts/common/io/igc/igc.c
774
igc->igc_limits.il_max_mtu = IGC_MAX_MTU_I225;
usr/src/uts/common/io/igc/igc.c
777
dev_err(igc->igc_dip, CE_WARN, "unknown MAC type: %u",
usr/src/uts/common/io/igc/igc.c
778
igc->igc_hw.mac.type);
usr/src/uts/common/io/igc/igc.c
801
igc_hw_buf_update(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
803
unsigned long pagesize = ddi_ptob(igc->igc_dip, 1);
usr/src/uts/common/io/igc/igc.c
806
igc->igc_max_frame = igc->igc_mtu + sizeof (struct ether_vlan_header) +
usr/src/uts/common/io/igc/igc.c
808
igc->igc_rx_buf_size = P2ROUNDUP_TYPED(igc->igc_max_frame +
usr/src/uts/common/io/igc/igc.c
810
tx_mtu = P2ROUNDUP_TYPED(igc->igc_max_frame, IGC_BUF_ALIGN, uint32_t);
usr/src/uts/common/io/igc/igc.c
811
igc->igc_tx_buf_size = MIN(tx_mtu, pagesize);
usr/src/uts/common/io/igc/igc.c
815
igc_intr_init(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
820
if ((ret = ddi_intr_get_supported_types(igc->igc_dip, &types)) !=
usr/src/uts/common/io/igc/igc.c
822
dev_err(igc->igc_dip, CE_WARN, "failed to get supported "
usr/src/uts/common/io/igc/igc.c
833
dev_err(igc->igc_dip, CE_WARN, "device does not support MSI-X, "
usr/src/uts/common/io/igc/igc.c
838
if ((ret = ddi_intr_get_nintrs(igc->igc_dip, DDI_INTR_TYPE_MSIX,
usr/src/uts/common/io/igc/igc.c
840
dev_err(igc->igc_dip, CE_WARN, "failed to get number of "
usr/src/uts/common/io/igc/igc.c
846
dev_err(igc->igc_dip, CE_WARN, "igc driver currently requires "
usr/src/uts/common/io/igc/igc.c
852
if ((ret = ddi_intr_get_navail(igc->igc_dip, DDI_INTR_TYPE_MSIX,
usr/src/uts/common/io/igc/igc.c
854
dev_err(igc->igc_dip, CE_WARN, "failed to get number of "
usr/src/uts/common/io/igc/igc.c
860
dev_err(igc->igc_dip, CE_WARN, "igc driver currently requires "
usr/src/uts/common/io/igc/igc.c
873
igc->igc_intr_size = req * sizeof (ddi_intr_handle_t);
usr/src/uts/common/io/igc/igc.c
874
igc->igc_intr_handles = kmem_alloc(igc->igc_intr_size, KM_SLEEP);
usr/src/uts/common/io/igc/igc.c
876
if ((ret = ddi_intr_alloc(igc->igc_dip, igc->igc_intr_handles,
usr/src/uts/common/io/igc/igc.c
877
DDI_INTR_TYPE_MSIX, 0, req, &igc->igc_nintrs,
usr/src/uts/common/io/igc/igc.c
879
dev_err(igc->igc_dip, CE_WARN, "failed to allocate interrupts: "
usr/src/uts/common/io/igc/igc.c
884
igc->igc_intr_type = DDI_INTR_TYPE_MSIX;
usr/src/uts/common/io/igc/igc.c
885
igc->igc_attach |= IGC_ATTACH_INTR_ALLOC;
usr/src/uts/common/io/igc/igc.c
886
if (igc->igc_nintrs < min_nintrs) {
usr/src/uts/common/io/igc/igc.c
887
dev_err(igc->igc_dip, CE_WARN, "received %d interrupts, but "
usr/src/uts/common/io/igc/igc.c
888
"needed at least %d", igc->igc_nintrs, min_nintrs);
usr/src/uts/common/io/igc/igc.c
892
if ((ret = ddi_intr_get_pri(igc->igc_intr_handles[0],
usr/src/uts/common/io/igc/igc.c
893
&igc->igc_intr_pri)) != DDI_SUCCESS) {
usr/src/uts/common/io/igc/igc.c
894
dev_err(igc->igc_dip, CE_WARN, "failed to get interrupt "
usr/src/uts/common/io/igc/igc.c
899
if ((ret = ddi_intr_get_cap(igc->igc_intr_handles[0],
usr/src/uts/common/io/igc/igc.c
900
&igc->igc_intr_cap)) != DDI_SUCCESS) {
usr/src/uts/common/io/igc/igc.c
901
dev_err(igc->igc_dip, CE_WARN, "failed to get interrupt "
usr/src/uts/common/io/igc/igc.c
916
igc_rings_alloc(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
919
igc->igc_tx_rings = kmem_zalloc(sizeof (igc_tx_ring_t) *
usr/src/uts/common/io/igc/igc.c
920
igc->igc_ntx_rings, KM_SLEEP);
usr/src/uts/common/io/igc/igc.c
922
for (uint32_t i = 0; i < igc->igc_ntx_rings; i++) {
usr/src/uts/common/io/igc/igc.c
923
igc->igc_tx_rings[i].itr_igc = igc;
usr/src/uts/common/io/igc/igc.c
924
igc->igc_tx_rings[i].itr_idx = i;
usr/src/uts/common/io/igc/igc.c
925
igc->igc_tx_rings[i].itr_intr_idx = intr;
usr/src/uts/common/io/igc/igc.c
926
mutex_init(&igc->igc_tx_rings[i].itr_lock, NULL, MUTEX_DRIVER,
usr/src/uts/common/io/igc/igc.c
927
DDI_INTR_PRI(igc->igc_intr_pri));
usr/src/uts/common/io/igc/igc.c
928
if (!igc_tx_ring_stats_init(igc, &igc->igc_tx_rings[i])) {
usr/src/uts/common/io/igc/igc.c
933
igc->igc_rx_rings = kmem_zalloc(sizeof (igc_rx_ring_t) *
usr/src/uts/common/io/igc/igc.c
934
igc->igc_nrx_rings, KM_SLEEP);
usr/src/uts/common/io/igc/igc.c
937
for (uint32_t i = 0; i < igc->igc_nrx_rings; i++, intr++) {
usr/src/uts/common/io/igc/igc.c
938
igc->igc_rx_rings[i].irr_igc = igc;
usr/src/uts/common/io/igc/igc.c
939
igc->igc_rx_rings[i].irr_idx = i;
usr/src/uts/common/io/igc/igc.c
940
igc->igc_rx_rings[i].irr_intr_idx = intr;
usr/src/uts/common/io/igc/igc.c
941
mutex_init(&igc->igc_rx_rings[i].irr_lock, NULL, MUTEX_DRIVER,
usr/src/uts/common/io/igc/igc.c
942
DDI_INTR_PRI(igc->igc_intr_pri));
usr/src/uts/common/io/igc/igc.c
943
mutex_init(&igc->igc_rx_rings[i].irr_free_lock, NULL,
usr/src/uts/common/io/igc/igc.c
944
MUTEX_DRIVER, DDI_INTR_PRI(igc->igc_intr_pri));
usr/src/uts/common/io/igc/igc.c
945
cv_init(&igc->igc_rx_rings[i].irr_free_cv, NULL, CV_DRIVER,
usr/src/uts/common/io/igc/igc.c
947
if (!igc_rx_ring_stats_init(igc, &igc->igc_rx_rings[i])) {
usr/src/uts/common/io/igc/igc.c
952
ASSERT3U(intr, ==, igc->igc_nintrs);
usr/src/uts/common/io/igc/igc.c
963
igc_intr_hdlr_init(igc_t *igc)
usr/src/uts/common/io/igc/igc.c
967
if ((ret = ddi_intr_add_handler(igc->igc_intr_handles[0],
usr/src/uts/common/io/igc/igc.c
968
igc_intr_tx_other, igc, NULL)) != DDI_SUCCESS) {
usr/src/uts/common/io/igc/igc.c
969
dev_err(igc->igc_dip, CE_WARN, "failed to add tx/other "
usr/src/uts/common/io/igc/igc.c
974
if ((ret = ddi_intr_add_handler(igc->igc_intr_handles[1],
usr/src/uts/common/io/igc/igc.c
975
igc_intr_rx_queue, igc, (uintptr_t)0)) != DDI_SUCCESS) {
usr/src/uts/common/io/igc/igc.c
976
dev_err(igc->igc_dip, CE_WARN, "failed to add rx interrupt "
usr/src/uts/common/io/igc/igc.c
978
if ((ret = ddi_intr_remove_handler(igc->igc_intr_handles[0])) !=
usr/src/uts/common/io/igc/igc.c
980
dev_err(igc->igc_dip, CE_WARN, "failed to remove "
usr/src/uts/common/io/igc/igc.c
990
igc_hw_control(igc_t *igc, bool take)
usr/src/uts/common/io/igc/igc.c
992
uint32_t ctrl = igc_read32(igc, IGC_CTRL_EXT);
usr/src/uts/common/io/igc/igc.h
219
struct igc *irr_igc;
usr/src/uts/common/io/igc/igc.h
317
struct igc *itr_igc;
usr/src/uts/common/io/igc/igc.h
518
extern uint32_t igc_read32(igc_t *igc, uint32_t);
usr/src/uts/common/io/igc/igc.h
519
extern void igc_write32(igc_t *igc, uint32_t, uint32_t);
usr/src/uts/common/io/igc/igc.h
527
extern void igc_hw_intr_enable(igc_t *igc);
usr/src/uts/common/io/igc/igc.h
528
extern void igc_hw_intr_disable(igc_t *igc);
usr/src/uts/common/io/igc/igc_gld.c
101
stats->is_bptc.value.ui64 += igc_read32(igc, IGC_BPTC);
usr/src/uts/common/io/igc/igc_gld.c
1025
*u8p = (igc->igc_hw.phy.autoneg_advertised &
usr/src/uts/common/io/igc/igc_gld.c
1034
*u8p = (igc->igc_hw.phy.autoneg_advertised &
usr/src/uts/common/io/igc/igc_gld.c
1043
*u8p = (igc->igc_hw.phy.autoneg_advertised &
usr/src/uts/common/io/igc/igc_gld.c
105
stats->is_rnbc.value.ui64 += igc_read32(igc, IGC_RNBC);
usr/src/uts/common/io/igc/igc_gld.c
1052
*u8p = (igc->igc_hw.phy.autoneg_advertised &
usr/src/uts/common/io/igc/igc_gld.c
1061
*u8p = (igc->igc_hw.phy.autoneg_advertised &
usr/src/uts/common/io/igc/igc_gld.c
1070
*u8p = (igc->igc_hw.phy.autoneg_advertised &
usr/src/uts/common/io/igc/igc_gld.c
1078
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
1088
igc_t *igc = drv;
usr/src/uts/common/io/igc/igc_gld.c
109
stats->is_crcerrs.value.ui64 += igc_read32(igc, IGC_CRCERRS);
usr/src/uts/common/io/igc/igc_gld.c
1092
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
110
stats->is_rlec.value.ui64 += igc_read32(igc, IGC_RLEC);
usr/src/uts/common/io/igc/igc_gld.c
111
stats->is_algnerrc.value.ui64 += igc_read32(igc, IGC_ALGNERRC);
usr/src/uts/common/io/igc/igc_gld.c
1121
if ((igc->igc_attach & IGC_ATTACH_MAC_START) != 0) {
usr/src/uts/common/io/igc/igc_gld.c
1133
if (mtu < ETHERMIN || mtu > igc->igc_limits.il_max_mtu) {
usr/src/uts/common/io/igc/igc_gld.c
1146
ret = mac_maxsdu_update(igc->igc_mac_hdl, mtu);
usr/src/uts/common/io/igc/igc_gld.c
1148
igc->igc_mtu = mtu;
usr/src/uts/common/io/igc/igc_gld.c
1149
igc_hw_buf_update(igc);
usr/src/uts/common/io/igc/igc_gld.c
1157
igc->igc_hw.fc.requested_mode = igc_fc_none;
usr/src/uts/common/io/igc/igc_gld.c
1160
igc->igc_hw.fc.requested_mode = igc_fc_rx_pause;
usr/src/uts/common/io/igc/igc_gld.c
1163
igc->igc_hw.fc.requested_mode = igc_fc_tx_pause;
usr/src/uts/common/io/igc/igc_gld.c
1166
igc->igc_hw.fc.requested_mode = igc_fc_full;
usr/src/uts/common/io/igc/igc_gld.c
117
stats->is_ecol.value.ui64 += igc_read32(igc, IGC_ECOL);
usr/src/uts/common/io/igc/igc_gld.c
1176
igc->igc_hw.phy.autoneg_advertised |=
usr/src/uts/common/io/igc/igc_gld.c
1179
igc->igc_hw.phy.autoneg_advertised &=
usr/src/uts/common/io/igc/igc_gld.c
118
stats->is_latecol.value.ui64 += igc_read32(igc, IGC_LATECOL);
usr/src/uts/common/io/igc/igc_gld.c
1186
igc->igc_hw.phy.autoneg_advertised |=
usr/src/uts/common/io/igc/igc_gld.c
1189
igc->igc_hw.phy.autoneg_advertised &=
usr/src/uts/common/io/igc/igc_gld.c
1196
igc->igc_hw.phy.autoneg_advertised |=
usr/src/uts/common/io/igc/igc_gld.c
1199
igc->igc_hw.phy.autoneg_advertised &=
usr/src/uts/common/io/igc/igc_gld.c
1206
igc->igc_hw.phy.autoneg_advertised |=
usr/src/uts/common/io/igc/igc_gld.c
1209
igc->igc_hw.phy.autoneg_advertised &=
usr/src/uts/common/io/igc/igc_gld.c
1216
igc->igc_hw.phy.autoneg_advertised |=
usr/src/uts/common/io/igc/igc_gld.c
1219
igc->igc_hw.phy.autoneg_advertised &=
usr/src/uts/common/io/igc/igc_gld.c
1226
igc->igc_hw.phy.autoneg_advertised |=
usr/src/uts/common/io/igc/igc_gld.c
1229
igc->igc_hw.phy.autoneg_advertised &=
usr/src/uts/common/io/igc/igc_gld.c
1239
if (igc_setup_link(&igc->igc_hw) != IGC_SUCCESS) {
usr/src/uts/common/io/igc/igc_gld.c
124
stats->is_colc.value.ui64 += igc_read32(igc, IGC_COLC);
usr/src/uts/common/io/igc/igc_gld.c
1243
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
1262
igc_mac_register(igc_t *igc)
usr/src/uts/common/io/igc/igc_gld.c
1268
dev_err(igc->igc_dip, CE_WARN, "failed to allocate mac "
usr/src/uts/common/io/igc/igc_gld.c
1274
mac->m_driver = igc;
usr/src/uts/common/io/igc/igc_gld.c
1275
mac->m_dip = igc->igc_dip;
usr/src/uts/common/io/igc/igc_gld.c
1276
mac->m_src_addr = igc->igc_hw.mac.addr;
usr/src/uts/common/io/igc/igc_gld.c
1279
mac->m_max_sdu = igc->igc_mtu;
usr/src/uts/common/io/igc/igc_gld.c
128
igc_stats_update_u64(igc, &stats->is_tor, IGC_TORL);
usr/src/uts/common/io/igc/igc_gld.c
1284
ret = mac_register(mac, &igc->igc_mac_hdl);
usr/src/uts/common/io/igc/igc_gld.c
1287
dev_err(igc->igc_dip, CE_WARN, "failed to register with MAC: "
usr/src/uts/common/io/igc/igc_gld.c
132
stats->is_tpr.value.ui64 += igc_read32(igc, IGC_TPR);
usr/src/uts/common/io/igc/igc_gld.c
136
igc_stats_update_u64(igc, &stats->is_tor, IGC_TOTL);
usr/src/uts/common/io/igc/igc_gld.c
140
stats->is_tpt.value.ui64 += igc_read32(igc, IGC_TPT);
usr/src/uts/common/io/igc/igc_gld.c
144
stats->is_ruc.value.ui64 += igc_read32(igc, IGC_RUC);
usr/src/uts/common/io/igc/igc_gld.c
148
stats->is_roc.value.ui64 += igc_read32(igc, IGC_ROC);
usr/src/uts/common/io/igc/igc_gld.c
153
stats->is_algnerrc.value.ui64 += igc_read32(igc, IGC_ALGNERRC);
usr/src/uts/common/io/igc/igc_gld.c
157
stats->is_crcerrs.value.ui64 += igc_read32(igc, IGC_CRCERRS);
usr/src/uts/common/io/igc/igc_gld.c
161
stats->is_scc.value.ui64 += igc_read32(igc, IGC_SCC);
usr/src/uts/common/io/igc/igc_gld.c
165
stats->is_mcc.value.ui64 += igc_read32(igc, IGC_MCC);
usr/src/uts/common/io/igc/igc_gld.c
169
stats->is_dc.value.ui64 += igc_read32(igc, IGC_DC);
usr/src/uts/common/io/igc/igc_gld.c
173
stats->is_latecol.value.ui64 += igc_read32(igc, IGC_LATECOL);
usr/src/uts/common/io/igc/igc_gld.c
177
stats->is_ecol.value.ui64 += igc_read32(igc, IGC_ECOL);
usr/src/uts/common/io/igc/igc_gld.c
181
stats->is_ecol.value.ui64 += igc_read32(igc, IGC_ECOL);
usr/src/uts/common/io/igc/igc_gld.c
185
stats->is_htdpmc.value.ui64 += igc_read32(igc, IGC_HTDPMC);
usr/src/uts/common/io/igc/igc_gld.c
189
stats->is_roc.value.ui64 += igc_read32(igc, IGC_ROC);
usr/src/uts/common/io/igc/igc_gld.c
194
*valp = igc->igc_hw.phy.addr;
usr/src/uts/common/io/igc/igc_gld.c
197
*valp = igc->igc_hw.phy.id | igc->igc_hw.phy.revision;
usr/src/uts/common/io/igc/igc_gld.c
200
*valp = igc_link_to_media(igc);
usr/src/uts/common/io/igc/igc_gld.c
236
*valp = (igc->igc_phy_an_adv & NWAY_AR_ASM_DIR) != 0;
usr/src/uts/common/io/igc/igc_gld.c
239
*valp = (igc->igc_phy_an_adv & NWAY_AR_PAUSE) != 0;
usr/src/uts/common/io/igc/igc_gld.c
242
*valp = igc->igc_hw.mac.autoneg;
usr/src/uts/common/io/igc/igc_gld.c
245
*valp = (igc->igc_phy_mmd_sts & MMD_AN_STS1_LP_2P5T_CAP) != 0;
usr/src/uts/common/io/igc/igc_gld.c
248
*valp = (igc->igc_phy_1000t_status & SR_1000T_LP_FD_CAPS) != 0;
usr/src/uts/common/io/igc/igc_gld.c
251
*valp = (igc->igc_phy_lp & NWAY_LPAR_100TX_FD_CAPS) != 0;
usr/src/uts/common/io/igc/igc_gld.c
254
*valp = (igc->igc_phy_lp & NWAY_LPAR_100TX_HD_CAPS) != 0;
usr/src/uts/common/io/igc/igc_gld.c
257
*valp = (igc->igc_phy_lp & NWAY_LPAR_10T_FD_CAPS) != 0;
usr/src/uts/common/io/igc/igc_gld.c
260
*valp = (igc->igc_phy_lp & NWAY_LPAR_10T_HD_CAPS) != 0;
usr/src/uts/common/io/igc/igc_gld.c
263
*valp = (igc->igc_phy_lp & NWAY_AR_ASM_DIR) != 0;
usr/src/uts/common/io/igc/igc_gld.c
266
*valp = (igc->igc_phy_lp & NWAY_LPAR_PAUSE) != 0;
usr/src/uts/common/io/igc/igc_gld.c
269
*valp = (igc->igc_phy_ext_status & NWAY_ER_LP_NWAY_CAPS) != 0;
usr/src/uts/common/io/igc/igc_gld.c
272
*valp = (igc->igc_hw.fc.current_mode == igc_fc_full ||
usr/src/uts/common/io/igc/igc_gld.c
273
igc->igc_hw.fc.current_mode == igc_fc_rx_pause);
usr/src/uts/common/io/igc/igc_gld.c
276
*valp = (igc->igc_hw.fc.current_mode == igc_fc_full ||
usr/src/uts/common/io/igc/igc_gld.c
277
igc->igc_hw.fc.current_mode == igc_fc_tx_pause);
usr/src/uts/common/io/igc/igc_gld.c
280
*valp = igc->igc_hw.mac.autoneg;
usr/src/uts/common/io/igc/igc_gld.c
283
*valp = igc->igc_link_duplex;
usr/src/uts/common/io/igc/igc_gld.c
289
*valp = (igc->igc_phy_an_adv & NWAY_AR_REMOTE_FAULT) != 0;
usr/src/uts/common/io/igc/igc_gld.c
292
*valp = (igc->igc_phy_lp & NWAY_LPAR_REMOTE_FAULT) != 0;
usr/src/uts/common/io/igc/igc_gld.c
296
stats->is_ruc.value.ui64 += igc_read32(igc, IGC_RUC);
usr/src/uts/common/io/igc/igc_gld.c
301
stats->is_rjc.value.ui64 += igc_read32(igc, IGC_RJC);
usr/src/uts/common/io/igc/igc_gld.c
337
*valp = (igc->igc_phy_1000t_status & SR_1000T_LP_HD_CAPS) != 0;
usr/src/uts/common/io/igc/igc_gld.c
340
*valp = (igc->igc_phy_lp & NWAY_LPAR_100T4_CAPS) != 0;
usr/src/uts/common/io/igc/igc_gld.c
343
*valp = (igc->igc_phy_mmd_sts & MMD_AN_STS1_LP_10T_CAP) != 0;
usr/src/uts/common/io/igc/igc_gld.c
346
*valp = (igc->igc_phy_mmd_sts & MMD_AN_STS1_LP_40T_CAP) != 0;
usr/src/uts/common/io/igc/igc_gld.c
349
*valp = (igc->igc_phy_mmd_sts & MMD_AN_STS1_LP_5T_CAP) != 0;
usr/src/uts/common/io/igc/igc_gld.c
352
*valp = (igc->igc_phy_mmd_sts & MMD_AN_STS1_LP_25T_CAP) != 0;
usr/src/uts/common/io/igc/igc_gld.c
363
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
371
igc_t *igc = drv;
usr/src/uts/common/io/igc/igc_gld.c
373
igc_hw_intr_disable(igc);
usr/src/uts/common/io/igc/igc_gld.c
374
(void) igc_reset_hw(&igc->igc_hw);
usr/src/uts/common/io/igc/igc_gld.c
375
igc_rx_drain(igc);
usr/src/uts/common/io/igc/igc_gld.c
376
igc_rx_data_free(igc);
usr/src/uts/common/io/igc/igc_gld.c
377
igc_tx_data_free(igc);
usr/src/uts/common/io/igc/igc_gld.c
382
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
383
igc->igc_attach &= ~IGC_ATTACH_TX_DATA;
usr/src/uts/common/io/igc/igc_gld.c
384
igc->igc_attach &= ~IGC_ATTACH_RX_DATA;
usr/src/uts/common/io/igc/igc_gld.c
385
igc->igc_attach &= ~IGC_ATTACH_MAC_START;
usr/src/uts/common/io/igc/igc_gld.c
386
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
393
igc_t *igc = drv;
usr/src/uts/common/io/igc/igc_gld.c
395
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
396
igc->igc_attach |= IGC_ATTACH_MAC_START;
usr/src/uts/common/io/igc/igc_gld.c
397
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
40
igc_link_to_media(igc_t *igc)
usr/src/uts/common/io/igc/igc_gld.c
402
igc_power_up_phy(&igc->igc_hw);
usr/src/uts/common/io/igc/igc_gld.c
404
if (!igc_rx_data_alloc(igc)) {
usr/src/uts/common/io/igc/igc_gld.c
408
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
409
igc->igc_attach |= IGC_ATTACH_RX_DATA;
usr/src/uts/common/io/igc/igc_gld.c
410
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
412
if (!igc_tx_data_alloc(igc)) {
usr/src/uts/common/io/igc/igc_gld.c
416
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
417
igc->igc_attach |= IGC_ATTACH_TX_DATA;
usr/src/uts/common/io/igc/igc_gld.c
418
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
42
switch (igc->igc_link_state) {
usr/src/uts/common/io/igc/igc_gld.c
420
if (!igc_hw_common_init(igc)) {
usr/src/uts/common/io/igc/igc_gld.c
432
igc_rx_hw_init(igc);
usr/src/uts/common/io/igc/igc_gld.c
433
igc_tx_hw_init(igc);
usr/src/uts/common/io/igc/igc_gld.c
434
igc_hw_intr_enable(igc);
usr/src/uts/common/io/igc/igc_gld.c
439
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
440
if ((igc->igc_attach & IGC_ATTACH_TX_DATA) != 0) {
usr/src/uts/common/io/igc/igc_gld.c
441
igc_tx_data_free(igc);
usr/src/uts/common/io/igc/igc_gld.c
442
igc->igc_attach &= ~IGC_ATTACH_TX_DATA;
usr/src/uts/common/io/igc/igc_gld.c
445
if ((igc->igc_attach & IGC_ATTACH_RX_DATA) != 0) {
usr/src/uts/common/io/igc/igc_gld.c
446
igc_rx_data_free(igc);
usr/src/uts/common/io/igc/igc_gld.c
447
igc->igc_attach &= ~IGC_ATTACH_RX_DATA;
usr/src/uts/common/io/igc/igc_gld.c
450
igc->igc_attach &= ~IGC_ATTACH_MAC_START;
usr/src/uts/common/io/igc/igc_gld.c
451
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
459
igc_t *igc = drv;
usr/src/uts/common/io/igc/igc_gld.c
462
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
464
reg = igc_read32(igc, IGC_RCTL);
usr/src/uts/common/io/igc/igc_gld.c
467
igc->igc_promisc = true;
usr/src/uts/common/io/igc/igc_gld.c
470
igc->igc_promisc = false;
usr/src/uts/common/io/igc/igc_gld.c
472
igc_write32(igc, IGC_RCTL, reg);
usr/src/uts/common/io/igc/igc_gld.c
473
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
482
igc_t *igc = drv;
usr/src/uts/common/io/igc/igc_gld.c
488
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
492
for (uint16_t i = 0; i < igc->igc_nmcast; i++) {
usr/src/uts/common/io/igc/igc_gld.c
493
if (igc->igc_mcast[i].ia_valid)
usr/src/uts/common/io/igc/igc_gld.c
496
bcopy(mac, igc->igc_mcast[i].ia_mac, ETHERADDRL);
usr/src/uts/common/io/igc/igc_gld.c
497
igc->igc_mcast[i].ia_valid = true;
usr/src/uts/common/io/igc/igc_gld.c
508
for (uint16_t i = 0; i < igc->igc_nmcast; i++) {
usr/src/uts/common/io/igc/igc_gld.c
509
if (!igc->igc_mcast[i].ia_valid || bcmp(mac,
usr/src/uts/common/io/igc/igc_gld.c
510
igc->igc_mcast[i].ia_mac, ETHERADDRL) != 0) {
usr/src/uts/common/io/igc/igc_gld.c
514
bzero(igc->igc_mcast[i].ia_mac, ETHERADDRL);
usr/src/uts/common/io/igc/igc_gld.c
515
igc->igc_mcast[i].ia_valid = false;
usr/src/uts/common/io/igc/igc_gld.c
524
igc_multicast_sync(igc);
usr/src/uts/common/io/igc/igc_gld.c
525
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
53
if (igc->igc_hw.phy.media_type == map->imm_phy &&
usr/src/uts/common/io/igc/igc_gld.c
533
igc_t *igc = gr_drv;
usr/src/uts/common/io/igc/igc_gld.c
537
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
538
for (uint16_t i = 0; i < igc->igc_nucast; i++) {
usr/src/uts/common/io/igc/igc_gld.c
54
igc->igc_link_speed == map->imm_speed) {
usr/src/uts/common/io/igc/igc_gld.c
541
if (igc->igc_ucast[i].ia_valid)
usr/src/uts/common/io/igc/igc_gld.c
544
bcopy(mac, igc->igc_ucast[i].ia_mac, ETHERADDRL);
usr/src/uts/common/io/igc/igc_gld.c
545
igc->igc_ucast[i].ia_valid = true;
usr/src/uts/common/io/igc/igc_gld.c
546
ret = igc_rar_set(&igc->igc_hw, igc->igc_ucast[i].ia_mac, i);
usr/src/uts/common/io/igc/igc_gld.c
548
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
551
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
559
igc_t *igc = gr_drv;
usr/src/uts/common/io/igc/igc_gld.c
563
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
564
for (uint16_t i = 0; i < igc->igc_nucast; i++) {
usr/src/uts/common/io/igc/igc_gld.c
567
if (!igc->igc_ucast[i].ia_valid || bcmp(mac,
usr/src/uts/common/io/igc/igc_gld.c
568
igc->igc_ucast[i].ia_mac, ETHERADDRL) != 0) {
usr/src/uts/common/io/igc/igc_gld.c
572
bzero(igc->igc_ucast[i].ia_mac, ETHERADDRL);
usr/src/uts/common/io/igc/igc_gld.c
573
igc->igc_ucast[i].ia_valid = false;
usr/src/uts/common/io/igc/igc_gld.c
574
ret = igc_rar_set(&igc->igc_hw, igc->igc_ucast[i].ia_mac, i);
usr/src/uts/common/io/igc/igc_gld.c
576
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
579
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
658
igc_t *igc = ring->irr_igc;
usr/src/uts/common/io/igc/igc_gld.c
665
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
675
igc->igc_eims |= 1 << ring->irr_intr_idx;
usr/src/uts/common/io/igc/igc_gld.c
676
igc_write32(igc, IGC_EIMS, igc->igc_eims);
usr/src/uts/common/io/igc/igc_gld.c
677
igc_write32(igc, IGC_EIAC, igc->igc_eims);
usr/src/uts/common/io/igc/igc_gld.c
678
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
686
igc_t *igc = ring->irr_igc;
usr/src/uts/common/io/igc/igc_gld.c
693
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
704
igc_write32(igc, IGC_EIMC, 1 << ring->irr_intr_idx);
usr/src/uts/common/io/igc/igc_gld.c
705
igc->igc_eims &= ~ (1 << ring->irr_intr_idx);
usr/src/uts/common/io/igc/igc_gld.c
706
igc_write32(igc, IGC_EIAC, igc->igc_eims);
usr/src/uts/common/io/igc/igc_gld.c
707
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
716
igc_t *igc = arg;
usr/src/uts/common/io/igc/igc_gld.c
720
ASSERT3S(ring_idx, <, igc->igc_ntx_rings);
usr/src/uts/common/io/igc/igc_gld.c
722
ring = &igc->igc_tx_rings[ring_idx];
usr/src/uts/common/io/igc/igc_gld.c
731
if (igc->igc_intr_type == DDI_INTR_TYPE_MSIX) {
usr/src/uts/common/io/igc/igc_gld.c
733
igc->igc_intr_handles[ring->itr_intr_idx];
usr/src/uts/common/io/igc/igc_gld.c
741
igc_t *igc = arg;
usr/src/uts/common/io/igc/igc_gld.c
745
ASSERT3S(ring_idx, <, igc->igc_nrx_rings);
usr/src/uts/common/io/igc/igc_gld.c
747
ring = &igc->igc_rx_rings[ring_idx];
usr/src/uts/common/io/igc/igc_gld.c
75
igc_t *igc = drv;
usr/src/uts/common/io/igc/igc_gld.c
759
if (igc->igc_intr_type == DDI_INTR_TYPE_MSIX) {
usr/src/uts/common/io/igc/igc_gld.c
76
igc_stats_t *stats = &igc->igc_stats;
usr/src/uts/common/io/igc/igc_gld.c
761
igc->igc_intr_handles[ring->irr_intr_idx];
usr/src/uts/common/io/igc/igc_gld.c
769
igc_t *igc = arg;
usr/src/uts/common/io/igc/igc_gld.c
775
igc->igc_rxg_hdl = gh;
usr/src/uts/common/io/igc/igc_gld.c
776
infop->mgi_driver = (mac_group_driver_t)igc;
usr/src/uts/common/io/igc/igc_gld.c
781
infop->mgi_count = igc->igc_nrx_rings;
usr/src/uts/common/io/igc/igc_gld.c
787
igc_t *igc = drv;
usr/src/uts/common/io/igc/igc_gld.c
796
led = igc->igc_ledctl;
usr/src/uts/common/io/igc/igc_gld.c
799
led = igc->igc_ledctl_blink;
usr/src/uts/common/io/igc/igc_gld.c
80
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
802
led = igc->igc_ledctl_off;
usr/src/uts/common/io/igc/igc_gld.c
805
led = igc->igc_ledctl_on;
usr/src/uts/common/io/igc/igc_gld.c
81
an_adv = igc->igc_hw.phy.autoneg_advertised;
usr/src/uts/common/io/igc/igc_gld.c
811
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
812
igc_write32(igc, IGC_LEDCTL, led);
usr/src/uts/common/io/igc/igc_gld.c
813
igc->igc_led_mode = mode;
usr/src/uts/common/io/igc/igc_gld.c
814
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
822
igc_t *igc = drv;
usr/src/uts/common/io/igc/igc_gld.c
834
rings->mr_rnum = igc->igc_ntx_rings;
usr/src/uts/common/io/igc/igc_gld.c
842
rings->mr_rnum = igc->igc_nrx_rings;
usr/src/uts/common/io/igc/igc_gld.c
86
*valp = (uint64_t)igc->igc_link_speed * 1000000;
usr/src/uts/common/io/igc/igc_gld.c
878
igc_t *igc = drv;
usr/src/uts/common/io/igc/igc_gld.c
89
stats->is_mprc.value.ui64 += igc_read32(igc, IGC_MPRC);
usr/src/uts/common/io/igc/igc_gld.c
892
igc->igc_limits.il_max_mtu);
usr/src/uts/common/io/igc/igc_gld.c
93
stats->is_bprc.value.ui64 += igc_read32(igc, IGC_BPRC);
usr/src/uts/common/io/igc/igc_gld.c
930
igc_t *igc = drv;
usr/src/uts/common/io/igc/igc_gld.c
937
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_gld.c
945
bcopy(&igc->igc_link_duplex, pr_val, sizeof (link_duplex_t));
usr/src/uts/common/io/igc/igc_gld.c
952
u64 = (uint64_t)igc->igc_link_speed * 1000000;
usr/src/uts/common/io/igc/igc_gld.c
960
bcopy(&igc->igc_link_state, pr_val, sizeof (link_state_t));
usr/src/uts/common/io/igc/igc_gld.c
967
media = igc_link_to_media(igc);
usr/src/uts/common/io/igc/igc_gld.c
97
stats->is_mptc.value.ui64 += igc_read32(igc, IGC_MPTC);
usr/src/uts/common/io/igc/igc_gld.c
976
*u8p = igc->igc_hw.mac.autoneg;
usr/src/uts/common/io/igc/igc_gld.c
983
bcopy(&igc->igc_mtu, pr_val, sizeof (uint32_t));
usr/src/uts/common/io/igc/igc_gld.c
986
switch (igc->igc_hw.fc.requested_mode) {
usr/src/uts/common/io/igc/igc_osdep.c
32
igc_t *igc = hw->back;
usr/src/uts/common/io/igc/igc_osdep.c
38
vdev_err(igc->igc_dip, CE_WARN, fmt, ap);
usr/src/uts/common/io/igc/igc_osdep.c
46
igc_t *igc = hw->back;
usr/src/uts/common/io/igc/igc_osdep.c
48
return (igc_read32(igc, reg));
usr/src/uts/common/io/igc/igc_osdep.c
54
igc_t *igc = hw->back;
usr/src/uts/common/io/igc/igc_osdep.c
56
igc_write32(igc, reg, val);
usr/src/uts/common/io/igc/igc_osdep.c
63
igc_t *igc = hw->back;
usr/src/uts/common/io/igc/igc_osdep.c
65
ASSERT3U(reg, <, igc->igc_regs_size);
usr/src/uts/common/io/igc/igc_osdep.c
66
ASSERT3U(offset + reg, <=, igc->igc_regs_size);
usr/src/uts/common/io/igc/igc_osdep.c
67
igc_write32(igc, reg + offset, val);
usr/src/uts/common/io/igc/igc_ring.c
1003
igc_dma_desc_attr(igc, &desc_attr);
usr/src/uts/common/io/igc/igc_ring.c
1005
igc->igc_tx_ndesc;
usr/src/uts/common/io/igc/igc_ring.c
1006
if (!igc_dma_alloc(igc, &ring->itr_desc_dma, &desc_attr,
usr/src/uts/common/io/igc/igc_ring.c
1008
dev_err(igc->igc_dip, CE_WARN, "!failed to allocate "
usr/src/uts/common/io/igc/igc_ring.c
1015
igc->igc_tx_ndesc, KM_NOSLEEP);
usr/src/uts/common/io/igc/igc_ring.c
1017
dev_err(igc->igc_dip, CE_WARN, "!failed to allocate "
usr/src/uts/common/io/igc/igc_ring.c
1026
igc->igc_tx_nbuf, KM_NOSLEEP);
usr/src/uts/common/io/igc/igc_ring.c
1028
dev_err(igc->igc_dip, CE_WARN, "!failed to allocate "
usr/src/uts/common/io/igc/igc_ring.c
1033
if (!igc_tx_bufs_alloc(igc, ring)) {
usr/src/uts/common/io/igc/igc_ring.c
1041
igc_tx_data_free(igc);
usr/src/uts/common/io/igc/igc_ring.c
1046
igc_tx_ring_hw_init(igc_t *igc, igc_tx_ring_t *ring)
usr/src/uts/common/io/igc/igc_ring.c
1057
igc_write32(igc, IGC_TDBAH(ring->itr_idx), high);
usr/src/uts/common/io/igc/igc_ring.c
1058
igc_write32(igc, IGC_TDBAL(ring->itr_idx), low);
usr/src/uts/common/io/igc/igc_ring.c
1063
val = igc->igc_tx_ndesc * sizeof (union igc_adv_tx_desc);
usr/src/uts/common/io/igc/igc_ring.c
1064
igc_write32(igc, IGC_TDLEN(ring->itr_idx), val);
usr/src/uts/common/io/igc/igc_ring.c
1071
igc_write32(igc, IGC_TDH(ring->itr_idx), 0);
usr/src/uts/common/io/igc/igc_ring.c
1072
igc_write32(igc, IGC_TDT(ring->itr_idx), 0);
usr/src/uts/common/io/igc/igc_ring.c
1075
ring->itr_ring_free = igc->igc_tx_ndesc;
usr/src/uts/common/io/igc/igc_ring.c
1095
igc_write32(igc, IGC_TXDCTL(0), 0);
usr/src/uts/common/io/igc/igc_ring.c
1096
(void) igc_read32(igc, IGC_STATUS);
usr/src/uts/common/io/igc/igc_ring.c
1102
igc_write32(igc, IGC_TXDCTL(0), val);
usr/src/uts/common/io/igc/igc_ring.c
1106
igc_tx_hw_init(igc_t *igc)
usr/src/uts/common/io/igc/igc_ring.c
1110
for (uint32_t i = 0; i < igc->igc_ntx_rings; i++) {
usr/src/uts/common/io/igc/igc_ring.c
1111
igc_tx_ring_hw_init(igc, &igc->igc_tx_rings[i]);
usr/src/uts/common/io/igc/igc_ring.c
1114
val = igc_read32(igc, IGC_TCTL);
usr/src/uts/common/io/igc/igc_ring.c
1118
igc_write32(igc, IGC_TCTL, val);
usr/src/uts/common/io/igc/igc_ring.c
1142
igc_tx_recycle(igc_t *igc, igc_tx_ring_t *ring)
usr/src/uts/common/io/igc/igc_ring.c
1199
next_desc = igc_next_desc(last_desc, 1, igc->igc_tx_ndesc);
usr/src/uts/common/io/igc/igc_ring.c
1201
desc = igc_next_desc(desc, 1, igc->igc_tx_ndesc)) {
usr/src/uts/common/io/igc/igc_ring.c
1227
igc->igc_tx_notify_thresh) {
usr/src/uts/common/io/igc/igc_ring.c
1235
mac_tx_ring_update(igc->igc_mac_hdl, ring->itr_rh);
usr/src/uts/common/io/igc/igc_ring.c
1419
igc_tx_ring_write_buf_descs(igc_t *igc, igc_tx_ring_t *ring,
usr/src/uts/common/io/igc/igc_ring.c
1431
igc_next_desc(ring->itr_ring_tail, 1, igc->igc_tx_ndesc)) {
usr/src/uts/common/io/igc/igc_ring.c
1465
igc_tx_ring_write_descs(igc_t *igc, igc_tx_ring_t *ring, mblk_t *mp,
usr/src/uts/common/io/igc/igc_ring.c
1482
if (tx->itx_ndescs + igc->igc_tx_gap > ring->itr_ring_free) {
usr/src/uts/common/io/igc/igc_ring.c
1487
igc_tx_recycle(igc, ring);
usr/src/uts/common/io/igc/igc_ring.c
1489
if (tx->itx_ndescs + igc->igc_tx_gap > ring->itr_ring_free) {
usr/src/uts/common/io/igc/igc_ring.c
1552
igc->igc_tx_ndesc);
usr/src/uts/common/io/igc/igc_ring.c
1553
DTRACE_PROBE4(igc__context__desc, igc_t *, igc, igc_tx_ring_t *,
usr/src/uts/common/io/igc/igc_ring.c
1561
igc_tx_ring_write_buf_descs(igc, ring, buf);
usr/src/uts/common/io/igc/igc_ring.c
1570
last_desc = igc_prev_desc(ring->itr_ring_tail, 1, igc->igc_tx_ndesc);
usr/src/uts/common/io/igc/igc_ring.c
1626
igc_write32(igc, IGC_TDT(ring->itr_idx), ring->itr_ring_tail);
usr/src/uts/common/io/igc/igc_ring.c
1664
igc_t *igc = ring->itr_igc;
usr/src/uts/common/io/igc/igc_ring.c
1669
if (igc->igc_link_state != LINK_STATE_UP) {
usr/src/uts/common/io/igc/igc_ring.c
1692
if (ring->itr_ring_free < igc->igc_tx_recycle_thresh) {
usr/src/uts/common/io/igc/igc_ring.c
1693
igc_tx_recycle(igc, ring);
usr/src/uts/common/io/igc/igc_ring.c
1697
if (ring->itr_ring_free < igc->igc_tx_notify_thresh) {
usr/src/uts/common/io/igc/igc_ring.c
1726
if (len > igc->igc_tx_bind_thresh &&
usr/src/uts/common/io/igc/igc_ring.c
1735
if (!igc_tx_ring_write_descs(igc, ring, mp, &tx)) {
usr/src/uts/common/io/igc/igc_ring.c
184
igc_dma_acc_attr(igc_t *igc, ddi_device_acc_attr_t *accp)
usr/src/uts/common/io/igc/igc_ring.c
195
igc_dma_desc_attr(igc_t *igc, ddi_dma_attr_t *attrp)
usr/src/uts/common/io/igc/igc_ring.c
201
igc_dma_data_attr(igc_t *igc, ddi_dma_attr_t *attrp)
usr/src/uts/common/io/igc/igc_ring.c
207
igc_dma_tx_attr(igc_t *igc, ddi_dma_attr_t *attrp)
usr/src/uts/common/io/igc/igc_ring.c
241
igc_dma_alloc(igc_t *igc, igc_dma_buffer_t *idb, ddi_dma_attr_t *attrp,
usr/src/uts/common/io/igc/igc_ring.c
249
ret = ddi_dma_alloc_handle(igc->igc_dip, attrp, DDI_DMA_DONTWAIT, NULL,
usr/src/uts/common/io/igc/igc_ring.c
252
dev_err(igc->igc_dip, CE_WARN, "!failed to allocate DMA "
usr/src/uts/common/io/igc/igc_ring.c
257
igc_dma_acc_attr(igc, &acc);
usr/src/uts/common/io/igc/igc_ring.c
262
dev_err(igc->igc_dip, CE_WARN, "!failed to allocate %lu bytes "
usr/src/uts/common/io/igc/igc_ring.c
273
dev_err(igc->igc_dip, CE_WARN, "!failed to bind %lu bytes of "
usr/src/uts/common/io/igc/igc_ring.c
325
igc_t *igc = ring->irr_igc;
usr/src/uts/common/io/igc/igc_ring.c
326
ASSERT3U(ring->irr_nfree, <=, igc->igc_rx_nfree);
usr/src/uts/common/io/igc/igc_ring.c
333
igc_rx_bufs_free(igc_t *igc, igc_rx_ring_t *ring)
usr/src/uts/common/io/igc/igc_ring.c
335
for (uint32_t i = 0; i < igc->igc_rx_nbuf; i++) {
usr/src/uts/common/io/igc/igc_ring.c
346
igc_rx_bufs_alloc(igc_t *igc, igc_rx_ring_t *ring)
usr/src/uts/common/io/igc/igc_ring.c
348
for (uint32_t i = 0; i < igc->igc_rx_nbuf; i++) {
usr/src/uts/common/io/igc/igc_ring.c
355
igc_dma_data_attr(igc, &attr);
usr/src/uts/common/io/igc/igc_ring.c
356
if (!igc_dma_alloc(igc, &buf->irb_dma, &attr,
usr/src/uts/common/io/igc/igc_ring.c
357
igc->igc_rx_buf_size)) {
usr/src/uts/common/io/igc/igc_ring.c
358
dev_err(igc->igc_dip, CE_WARN, "!failed to allocate RX "
usr/src/uts/common/io/igc/igc_ring.c
376
if (i < igc->igc_rx_ndesc) {
usr/src/uts/common/io/igc/igc_ring.c
388
igc_rx_data_free(igc_t *igc)
usr/src/uts/common/io/igc/igc_ring.c
390
for (uint32_t i = 0; i < igc->igc_nrx_rings; i++) {
usr/src/uts/common/io/igc/igc_ring.c
391
igc_rx_ring_t *ring = &igc->igc_rx_rings[i];
usr/src/uts/common/io/igc/igc_ring.c
394
igc_rx_bufs_free(igc, ring);
usr/src/uts/common/io/igc/igc_ring.c
396
igc->igc_rx_nbuf);
usr/src/uts/common/io/igc/igc_ring.c
401
kmem_free(ring->irr_free_list, igc->igc_rx_nfree *
usr/src/uts/common/io/igc/igc_ring.c
407
kmem_free(ring->irr_work_list, igc->igc_rx_ndesc *
usr/src/uts/common/io/igc/igc_ring.c
421
igc_rx_data_alloc(igc_t *igc)
usr/src/uts/common/io/igc/igc_ring.c
423
for (uint32_t i = 0; i < igc->igc_nrx_rings; i++) {
usr/src/uts/common/io/igc/igc_ring.c
424
igc_rx_ring_t *ring = &igc->igc_rx_rings[i];
usr/src/uts/common/io/igc/igc_ring.c
428
igc_dma_desc_attr(igc, &desc_attr);
usr/src/uts/common/io/igc/igc_ring.c
430
igc->igc_rx_ndesc;
usr/src/uts/common/io/igc/igc_ring.c
431
if (!igc_dma_alloc(igc, &ring->irr_desc_dma, &desc_attr,
usr/src/uts/common/io/igc/igc_ring.c
433
dev_err(igc->igc_dip, CE_WARN, "!failed to allocate "
usr/src/uts/common/io/igc/igc_ring.c
440
igc->igc_rx_ndesc, KM_NOSLEEP);
usr/src/uts/common/io/igc/igc_ring.c
442
dev_err(igc->igc_dip, CE_WARN, "!failed to allocate "
usr/src/uts/common/io/igc/igc_ring.c
448
igc->igc_rx_nfree, KM_NOSLEEP);
usr/src/uts/common/io/igc/igc_ring.c
450
dev_err(igc->igc_dip, CE_WARN, "!failed to allocate "
usr/src/uts/common/io/igc/igc_ring.c
457
igc->igc_rx_nbuf, KM_NOSLEEP);
usr/src/uts/common/io/igc/igc_ring.c
459
dev_err(igc->igc_dip, CE_WARN, "!failed to allocate "
usr/src/uts/common/io/igc/igc_ring.c
464
if (!igc_rx_bufs_alloc(igc, ring)) {
usr/src/uts/common/io/igc/igc_ring.c
472
igc_rx_data_free(igc);
usr/src/uts/common/io/igc/igc_ring.c
502
igc_rx_ring_hw_init(igc_t *igc, igc_rx_ring_t *ring)
usr/src/uts/common/io/igc/igc_ring.c
507
for (uint32_t i = 0; i < igc->igc_rx_ndesc; i++) {
usr/src/uts/common/io/igc/igc_ring.c
518
igc_write32(igc, IGC_RDBAH(ring->irr_idx), high);
usr/src/uts/common/io/igc/igc_ring.c
519
igc_write32(igc, IGC_RDBAL(ring->irr_idx), low);
usr/src/uts/common/io/igc/igc_ring.c
524
val = igc->igc_rx_ndesc * sizeof (union igc_adv_rx_desc);
usr/src/uts/common/io/igc/igc_ring.c
525
igc_write32(igc, IGC_RDLEN(ring->irr_idx), val);
usr/src/uts/common/io/igc/igc_ring.c
530
val = (igc->igc_rx_buf_size >> IGC_SRRCTL_BSIZEPKT_SHIFT) |
usr/src/uts/common/io/igc/igc_ring.c
532
igc_write32(igc, IGC_SRRCTL(ring->irr_idx), val);
usr/src/uts/common/io/igc/igc_ring.c
538
val = igc_read32(igc, IGC_RXDCTL(ring->irr_idx));
usr/src/uts/common/io/igc/igc_ring.c
544
igc_write32(igc, IGC_RXDCTL(ring->irr_idx), val);
usr/src/uts/common/io/igc/igc_ring.c
548
igc_rx_hw_init(igc_t *igc)
usr/src/uts/common/io/igc/igc_ring.c
560
rctl = igc_read32(igc, IGC_RCTL);
usr/src/uts/common/io/igc/igc_ring.c
577
rctl |= igc->igc_hw.mac.mc_filter_type << IGC_RCTL_MO_SHIFT;
usr/src/uts/common/io/igc/igc_ring.c
582
for (uint32_t i = 0; i < igc->igc_nrx_rings; i++) {
usr/src/uts/common/io/igc/igc_ring.c
583
igc_rx_ring_hw_init(igc, &igc->igc_rx_rings[i]);
usr/src/uts/common/io/igc/igc_ring.c
591
igc_write32(igc, IGC_RLPML, igc->igc_max_frame);
usr/src/uts/common/io/igc/igc_ring.c
600
igc_write32(igc, IGC_RXCSUM, rxcsum);
usr/src/uts/common/io/igc/igc_ring.c
605
igc_write32(igc, IGC_RCTL, rctl);
usr/src/uts/common/io/igc/igc_ring.c
611
for (uint32_t i = 0; i < igc->igc_nrx_rings; i++) {
usr/src/uts/common/io/igc/igc_ring.c
612
igc_write32(igc, IGC_RDH(igc->igc_rx_rings[i].irr_idx), 0);
usr/src/uts/common/io/igc/igc_ring.c
613
igc_write32(igc, IGC_RDT(igc->igc_rx_rings[i].irr_idx),
usr/src/uts/common/io/igc/igc_ring.c
614
igc->igc_rx_ndesc - 1);
usr/src/uts/common/io/igc/igc_ring.c
768
igc_t *igc = ring->irr_igc;
usr/src/uts/common/io/igc/igc_ring.c
810
if (cur_length > igc->igc_rx_bind_thresh) {
usr/src/uts/common/io/igc/igc_ring.c
834
cur_head = igc_next_desc(cur_head, 1, igc->igc_rx_ndesc);
usr/src/uts/common/io/igc/igc_ring.c
848
rx_frames >= igc->igc_rx_intr_nframes) {
usr/src/uts/common/io/igc/igc_ring.c
863
tail = igc_prev_desc(cur_head, 1, igc->igc_rx_ndesc);
usr/src/uts/common/io/igc/igc_ring.c
864
igc_write32(igc, IGC_RDT(ring->irr_idx), tail);
usr/src/uts/common/io/igc/igc_ring.c
887
igc_rx_drain(igc_t *igc)
usr/src/uts/common/io/igc/igc_ring.c
889
for (uint32_t i = 0; i < igc->igc_nrx_rings; i++) {
usr/src/uts/common/io/igc/igc_ring.c
890
igc_rx_ring_t *ring = &igc->igc_rx_rings[i];
usr/src/uts/common/io/igc/igc_ring.c
893
while (ring->irr_nfree < igc->igc_rx_nfree) {
usr/src/uts/common/io/igc/igc_ring.c
901
igc_tx_bufs_free(igc_t *igc, igc_tx_ring_t *ring)
usr/src/uts/common/io/igc/igc_ring.c
903
for (uint32_t i = 0; i < igc->igc_tx_nbuf; i++) {
usr/src/uts/common/io/igc/igc_ring.c
926
igc_tx_bufs_alloc(igc_t *igc, igc_tx_ring_t *ring)
usr/src/uts/common/io/igc/igc_ring.c
928
for (uint32_t i = 0; i < igc->igc_tx_nbuf; i++) {
usr/src/uts/common/io/igc/igc_ring.c
933
igc_dma_data_attr(igc, &attr);
usr/src/uts/common/io/igc/igc_ring.c
934
if (!igc_dma_alloc(igc, &buf->itb_dma, &attr,
usr/src/uts/common/io/igc/igc_ring.c
935
igc->igc_tx_buf_size)) {
usr/src/uts/common/io/igc/igc_ring.c
936
dev_err(igc->igc_dip, CE_WARN, "!failed to allocate TX "
usr/src/uts/common/io/igc/igc_ring.c
941
igc_dma_tx_attr(igc, &attr);
usr/src/uts/common/io/igc/igc_ring.c
942
if ((ret = ddi_dma_alloc_handle(igc->igc_dip, &attr,
usr/src/uts/common/io/igc/igc_ring.c
945
dev_err(igc->igc_dip, CE_WARN, "!failed to allocate TX "
usr/src/uts/common/io/igc/igc_ring.c
958
igc_tx_data_free(igc_t *igc)
usr/src/uts/common/io/igc/igc_ring.c
960
for (uint32_t i = 0; i < igc->igc_ntx_rings; i++) {
usr/src/uts/common/io/igc/igc_ring.c
961
igc_tx_ring_t *ring = &igc->igc_tx_rings[i];
usr/src/uts/common/io/igc/igc_ring.c
971
igc_tx_bufs_free(igc, ring);
usr/src/uts/common/io/igc/igc_ring.c
973
igc->igc_tx_nbuf);
usr/src/uts/common/io/igc/igc_ring.c
980
kmem_free(ring->itr_work_list, igc->igc_tx_ndesc *
usr/src/uts/common/io/igc/igc_ring.c
996
igc_tx_data_alloc(igc_t *igc)
usr/src/uts/common/io/igc/igc_ring.c
998
for (uint32_t i = 0; i < igc->igc_ntx_rings; i++) {
usr/src/uts/common/io/igc/igc_ring.c
999
igc_tx_ring_t *ring = &igc->igc_tx_rings[i];
usr/src/uts/common/io/igc/igc_stat.c
100
stats->is_ptc255.value.ui64 += igc_read32(igc, IGC_PTC255);
usr/src/uts/common/io/igc/igc_stat.c
101
stats->is_ptc511.value.ui64 += igc_read32(igc, IGC_PTC511);
usr/src/uts/common/io/igc/igc_stat.c
102
stats->is_ptc1023.value.ui64 += igc_read32(igc, IGC_PTC1023);
usr/src/uts/common/io/igc/igc_stat.c
103
stats->is_ptc1522.value.ui64 += igc_read32(igc, IGC_PTC1522);
usr/src/uts/common/io/igc/igc_stat.c
104
stats->is_mptc.value.ui64 += igc_read32(igc, IGC_MPTC);
usr/src/uts/common/io/igc/igc_stat.c
105
stats->is_bptc.value.ui64 += igc_read32(igc, IGC_BPTC);
usr/src/uts/common/io/igc/igc_stat.c
106
stats->is_tsctc.value.ui64 += igc_read32(igc, IGC_TSCTC);
usr/src/uts/common/io/igc/igc_stat.c
107
stats->is_iac.value.ui64 += igc_read32(igc, IGC_IAC);
usr/src/uts/common/io/igc/igc_stat.c
108
stats->is_rxdmtc.value.ui64 += igc_read32(igc, IGC_RXDMTC);
usr/src/uts/common/io/igc/igc_stat.c
109
mutex_exit(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_stat.c
115
igc_stats_init(igc_t *igc)
usr/src/uts/common/io/igc/igc_stat.c
118
igc_stats_t *stats = &igc->igc_stats;
usr/src/uts/common/io/igc/igc_stat.c
120
ksp = kstat_create(IGC_MOD_NAME, ddi_get_instance(igc->igc_dip),
usr/src/uts/common/io/igc/igc_stat.c
124
dev_err(igc->igc_dip, CE_WARN, "failed to create kstats");
usr/src/uts/common/io/igc/igc_stat.c
128
igc->igc_ksp = ksp;
usr/src/uts/common/io/igc/igc_stat.c
130
ksp->ks_private = igc;
usr/src/uts/common/io/igc/igc_stat.c
23
igc_stats_fini(igc_t *igc)
usr/src/uts/common/io/igc/igc_stat.c
25
if (igc->igc_ksp != NULL) {
usr/src/uts/common/io/igc/igc_stat.c
253
igc_rx_ring_stats_init(igc_t *igc, igc_rx_ring_t *ring)
usr/src/uts/common/io/igc/igc_stat.c
26
kstat_delete(igc->igc_ksp);
usr/src/uts/common/io/igc/igc_stat.c
260
ksp = kstat_create(IGC_MOD_NAME, ddi_get_instance(igc->igc_dip),
usr/src/uts/common/io/igc/igc_stat.c
264
dev_err(igc->igc_dip, CE_WARN, "failed to create rx ring %u "
usr/src/uts/common/io/igc/igc_stat.c
27
igc->igc_ksp = NULL;
usr/src/uts/common/io/igc/igc_stat.c
308
igc_tx_ring_stats_init(igc_t *igc, igc_tx_ring_t *ring)
usr/src/uts/common/io/igc/igc_stat.c
315
ksp = kstat_create(IGC_MOD_NAME, ddi_get_instance(igc->igc_dip),
usr/src/uts/common/io/igc/igc_stat.c
319
dev_err(igc->igc_dip, CE_WARN, "failed to create tx ring %u "
usr/src/uts/common/io/igc/igc_stat.c
36
igc_stats_update_u64(igc_t *igc, kstat_named_t *ks, uint32_t reg)
usr/src/uts/common/io/igc/igc_stat.c
38
uint64_t val = igc_read32(igc, reg);
usr/src/uts/common/io/igc/igc_stat.c
39
val += (uint64_t)igc_read32(igc, reg + 4) << 32UL;
usr/src/uts/common/io/igc/igc_stat.c
46
igc_t *igc;
usr/src/uts/common/io/igc/igc_stat.c
52
igc = ksp->ks_private;
usr/src/uts/common/io/igc/igc_stat.c
53
stats = &igc->igc_stats;
usr/src/uts/common/io/igc/igc_stat.c
55
mutex_enter(&igc->igc_lock);
usr/src/uts/common/io/igc/igc_stat.c
57
stats->is_crcerrs.value.ui64 += igc_read32(igc, IGC_CRCERRS);
usr/src/uts/common/io/igc/igc_stat.c
58
stats->is_algnerrc.value.ui64 += igc_read32(igc, IGC_ALGNERRC);
usr/src/uts/common/io/igc/igc_stat.c
59
stats->is_mpc.value.ui64 += igc_read32(igc, IGC_MPC);
usr/src/uts/common/io/igc/igc_stat.c
60
stats->is_scc.value.ui64 += igc_read32(igc, IGC_SCC);
usr/src/uts/common/io/igc/igc_stat.c
61
stats->is_ecol.value.ui64 += igc_read32(igc, IGC_ECOL);
usr/src/uts/common/io/igc/igc_stat.c
62
stats->is_mcc.value.ui64 += igc_read32(igc, IGC_MCC);
usr/src/uts/common/io/igc/igc_stat.c
63
stats->is_latecol.value.ui64 += igc_read32(igc, IGC_LATECOL);
usr/src/uts/common/io/igc/igc_stat.c
64
stats->is_colc.value.ui64 += igc_read32(igc, IGC_COLC);
usr/src/uts/common/io/igc/igc_stat.c
65
stats->is_rerc.value.ui64 += igc_read32(igc, IGC_RERC);
usr/src/uts/common/io/igc/igc_stat.c
66
stats->is_dc.value.ui64 += igc_read32(igc, IGC_DC);
usr/src/uts/common/io/igc/igc_stat.c
67
stats->is_tncrs.value.ui64 += igc_read32(igc, IGC_TNCRS);
usr/src/uts/common/io/igc/igc_stat.c
68
stats->is_htdpmc.value.ui64 += igc_read32(igc, IGC_HTDPMC);
usr/src/uts/common/io/igc/igc_stat.c
69
stats->is_rlec.value.ui64 += igc_read32(igc, IGC_RLEC);
usr/src/uts/common/io/igc/igc_stat.c
70
stats->is_xonrxc.value.ui64 += igc_read32(igc, IGC_XONRXC);
usr/src/uts/common/io/igc/igc_stat.c
71
stats->is_xontxc.value.ui64 += igc_read32(igc, IGC_XONTXC);
usr/src/uts/common/io/igc/igc_stat.c
72
stats->is_xoffrxc.value.ui64 += igc_read32(igc, IGC_XOFFRXC);
usr/src/uts/common/io/igc/igc_stat.c
73
stats->is_xofftxc.value.ui64 += igc_read32(igc, IGC_XOFFTXC);
usr/src/uts/common/io/igc/igc_stat.c
74
stats->is_fcruc.value.ui64 += igc_read32(igc, IGC_FCRUC);
usr/src/uts/common/io/igc/igc_stat.c
75
stats->is_prc64.value.ui64 += igc_read32(igc, IGC_PRC64);
usr/src/uts/common/io/igc/igc_stat.c
76
stats->is_prc127.value.ui64 += igc_read32(igc, IGC_PRC127);
usr/src/uts/common/io/igc/igc_stat.c
77
stats->is_prc255.value.ui64 += igc_read32(igc, IGC_PRC255);
usr/src/uts/common/io/igc/igc_stat.c
78
stats->is_prc1023.value.ui64 += igc_read32(igc, IGC_PRC1023);
usr/src/uts/common/io/igc/igc_stat.c
79
stats->is_prc1522.value.ui64 += igc_read32(igc, IGC_PRC1522);
usr/src/uts/common/io/igc/igc_stat.c
80
stats->is_gprc.value.ui64 += igc_read32(igc, IGC_GPRC);
usr/src/uts/common/io/igc/igc_stat.c
81
stats->is_bprc.value.ui64 += igc_read32(igc, IGC_BPRC);
usr/src/uts/common/io/igc/igc_stat.c
82
stats->is_mprc.value.ui64 += igc_read32(igc, IGC_MPRC);
usr/src/uts/common/io/igc/igc_stat.c
83
stats->is_gptc.value.ui64 += igc_read32(igc, IGC_GPTC);
usr/src/uts/common/io/igc/igc_stat.c
84
igc_stats_update_u64(igc, &stats->is_gorc, IGC_GORCL);
usr/src/uts/common/io/igc/igc_stat.c
85
igc_stats_update_u64(igc, &stats->is_gotc, IGC_GOTCL);
usr/src/uts/common/io/igc/igc_stat.c
86
stats->is_rnbc.value.ui64 += igc_read32(igc, IGC_RNBC);
usr/src/uts/common/io/igc/igc_stat.c
87
stats->is_ruc.value.ui64 += igc_read32(igc, IGC_RUC);
usr/src/uts/common/io/igc/igc_stat.c
88
stats->is_rfc.value.ui64 += igc_read32(igc, IGC_RFC);
usr/src/uts/common/io/igc/igc_stat.c
89
stats->is_roc.value.ui64 += igc_read32(igc, IGC_ROC);
usr/src/uts/common/io/igc/igc_stat.c
90
stats->is_rjc.value.ui64 += igc_read32(igc, IGC_RJC);
usr/src/uts/common/io/igc/igc_stat.c
91
stats->is_mgtprc.value.ui64 += igc_read32(igc, IGC_MGTPRC);
usr/src/uts/common/io/igc/igc_stat.c
92
stats->is_mgtpdc.value.ui64 += igc_read32(igc, IGC_MGTPDC);
usr/src/uts/common/io/igc/igc_stat.c
93
stats->is_mgtptc.value.ui64 += igc_read32(igc, IGC_MGTPTC);
usr/src/uts/common/io/igc/igc_stat.c
94
igc_stats_update_u64(igc, &stats->is_tor, IGC_TORL);
usr/src/uts/common/io/igc/igc_stat.c
95
igc_stats_update_u64(igc, &stats->is_tot, IGC_TOTL);
usr/src/uts/common/io/igc/igc_stat.c
96
stats->is_tpr.value.ui64 += igc_read32(igc, IGC_TPR);
usr/src/uts/common/io/igc/igc_stat.c
97
stats->is_tpt.value.ui64 += igc_read32(igc, IGC_TPT);
usr/src/uts/common/io/igc/igc_stat.c
98
stats->is_ptc64.value.ui64 += igc_read32(igc, IGC_PTC64);
usr/src/uts/common/io/igc/igc_stat.c
99
stats->is_ptc127.value.ui64 += igc_read32(igc, IGC_PTC127);