Lines Matching refs:adapter

177 static inline int qlcnic_82xx_statistics(struct qlcnic_adapter *adapter)  in qlcnic_82xx_statistics()  argument
181 QLCNIC_TX_STATS_LEN * adapter->drv_tx_rings; in qlcnic_82xx_statistics()
184 static inline int qlcnic_83xx_statistics(struct qlcnic_adapter *adapter) in qlcnic_83xx_statistics() argument
190 QLCNIC_TX_STATS_LEN * adapter->drv_tx_rings; in qlcnic_83xx_statistics()
193 static int qlcnic_dev_statistics_len(struct qlcnic_adapter *adapter) in qlcnic_dev_statistics_len() argument
197 if (qlcnic_82xx_check(adapter)) { in qlcnic_dev_statistics_len()
198 len = qlcnic_82xx_statistics(adapter); in qlcnic_dev_statistics_len()
199 if (adapter->flags & QLCNIC_ESWITCH_ENABLED) in qlcnic_dev_statistics_len()
201 } else if (qlcnic_83xx_check(adapter)) { in qlcnic_dev_statistics_len()
202 len = qlcnic_83xx_statistics(adapter); in qlcnic_dev_statistics_len()
242 static inline int qlcnic_get_ring_regs_len(struct qlcnic_adapter *adapter) in qlcnic_get_ring_regs_len() argument
244 int ring_regs_cnt = (adapter->drv_tx_rings * 5) + in qlcnic_get_ring_regs_len()
245 (adapter->max_rds_rings * 2) + in qlcnic_get_ring_regs_len()
246 (adapter->drv_sds_rings * 3) + 5; in qlcnic_get_ring_regs_len()
252 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_regs_len() local
255 if (qlcnic_83xx_check(adapter)) in qlcnic_get_regs_len()
256 len = qlcnic_83xx_get_regs_len(adapter); in qlcnic_get_regs_len()
261 len += qlcnic_get_ring_regs_len(adapter); in qlcnic_get_regs_len()
273 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_drvinfo() local
275 fw_major = QLC_SHARED_REG_RD32(adapter, QLCNIC_FW_VERSION_MAJOR); in qlcnic_get_drvinfo()
276 fw_minor = QLC_SHARED_REG_RD32(adapter, QLCNIC_FW_VERSION_MINOR); in qlcnic_get_drvinfo()
277 fw_build = QLC_SHARED_REG_RD32(adapter, QLCNIC_FW_VERSION_SUB); in qlcnic_get_drvinfo()
281 strlcpy(drvinfo->bus_info, pci_name(adapter->pdev), in qlcnic_get_drvinfo()
288 static int qlcnic_82xx_get_settings(struct qlcnic_adapter *adapter, in qlcnic_82xx_get_settings() argument
291 struct qlcnic_hardware_context *ahw = adapter->ahw; in qlcnic_82xx_get_settings()
297 if (adapter->ahw->port_type == QLCNIC_GBE) { in qlcnic_82xx_get_settings()
310 ethtool_cmd_speed_set(ecmd, adapter->ahw->link_speed); in qlcnic_82xx_get_settings()
311 ecmd->duplex = adapter->ahw->link_duplex; in qlcnic_82xx_get_settings()
312 ecmd->autoneg = adapter->ahw->link_autoneg; in qlcnic_82xx_get_settings()
314 } else if (adapter->ahw->port_type == QLCNIC_XGBE) { in qlcnic_82xx_get_settings()
316 val = QLCRD32(adapter, QLCNIC_PORT_MODE_ADDR, &err); in qlcnic_82xx_get_settings()
326 if (netif_running(adapter->netdev) && ahw->has_link_events) { in qlcnic_82xx_get_settings()
328 reg = QLCRD32(adapter, in qlcnic_82xx_get_settings()
347 ecmd->phy_address = adapter->ahw->physical_port; in qlcnic_82xx_get_settings()
350 switch (adapter->ahw->board_type) { in qlcnic_82xx_get_settings()
363 ecmd->autoneg = adapter->ahw->link_autoneg; in qlcnic_82xx_get_settings()
378 check_sfp_module = netif_running(adapter->netdev) && in qlcnic_82xx_get_settings()
387 if (adapter->ahw->port_type == QLCNIC_XGBE) { in qlcnic_82xx_get_settings()
393 check_sfp_module = netif_running(adapter->netdev) && in qlcnic_82xx_get_settings()
404 dev_err(&adapter->pdev->dev, "Unsupported board model %d\n", in qlcnic_82xx_get_settings()
405 adapter->ahw->board_type); in qlcnic_82xx_get_settings()
410 switch (adapter->ahw->module_type) { in qlcnic_82xx_get_settings()
433 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_settings() local
435 if (qlcnic_82xx_check(adapter)) in qlcnic_get_settings()
436 return qlcnic_82xx_get_settings(adapter, ecmd); in qlcnic_get_settings()
437 else if (qlcnic_83xx_check(adapter)) in qlcnic_get_settings()
438 return qlcnic_83xx_get_settings(adapter, ecmd); in qlcnic_get_settings()
444 static int qlcnic_set_port_config(struct qlcnic_adapter *adapter, in qlcnic_set_port_config() argument
469 ret = qlcnic_fw_cmd_set_port(adapter, config); in qlcnic_set_port_config()
481 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_set_settings() local
483 if (adapter->ahw->port_type != QLCNIC_GBE) in qlcnic_set_settings()
486 if (qlcnic_83xx_check(adapter)) in qlcnic_set_settings()
487 ret = qlcnic_83xx_set_settings(adapter, ecmd); in qlcnic_set_settings()
489 ret = qlcnic_set_port_config(adapter, ecmd); in qlcnic_set_settings()
494 adapter->ahw->link_speed = ethtool_cmd_speed(ecmd); in qlcnic_set_settings()
495 adapter->ahw->link_duplex = ecmd->duplex; in qlcnic_set_settings()
496 adapter->ahw->link_autoneg = ecmd->autoneg; in qlcnic_set_settings()
505 static int qlcnic_82xx_get_registers(struct qlcnic_adapter *adapter, in qlcnic_82xx_get_registers() argument
511 regs_buff[i] = QLC_SHARED_REG_RD32(adapter, diag_registers[j]); in qlcnic_82xx_get_registers()
514 regs_buff[i++] = QLCRD32(adapter, ext_diag_registers[j++], in qlcnic_82xx_get_registers()
522 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_regs() local
523 struct qlcnic_recv_context *recv_ctx = adapter->recv_ctx; in qlcnic_get_regs()
533 (adapter->ahw->revision_id << 16) | (adapter->pdev)->device; in qlcnic_get_regs()
538 if (adapter->ahw->capabilities & QLC_83XX_ESWITCH_CAPABILITY) in qlcnic_get_regs()
539 regs_buff[2] = adapter->ahw->max_vnic_func; in qlcnic_get_regs()
541 if (qlcnic_82xx_check(adapter)) in qlcnic_get_regs()
542 i = qlcnic_82xx_get_registers(adapter, regs_buff); in qlcnic_get_regs()
544 i = qlcnic_83xx_get_registers(adapter, regs_buff); in qlcnic_get_regs()
546 if (!test_bit(__QLCNIC_DEV_UP, &adapter->state)) in qlcnic_get_regs()
552 regs_buff[i++] = adapter->drv_tx_rings; /* No. of TX ring */ in qlcnic_get_regs()
553 for (ring = 0; ring < adapter->drv_tx_rings; ring++) { in qlcnic_get_regs()
554 tx_ring = &adapter->tx_ring[ring]; in qlcnic_get_regs()
565 regs_buff[i++] = adapter->max_rds_rings; /* No. of RX ring */ in qlcnic_get_regs()
566 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in qlcnic_get_regs()
572 regs_buff[i++] = adapter->drv_sds_rings; /* No. of SDS ring */ in qlcnic_get_regs()
573 for (ring = 0; ring < adapter->drv_sds_rings; ring++) { in qlcnic_get_regs()
583 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_test_link() local
587 if (qlcnic_83xx_check(adapter)) { in qlcnic_test_link()
588 val = qlcnic_83xx_test_link(adapter); in qlcnic_test_link()
591 val = QLCRD32(adapter, CRB_XG_STATE_P3P, &err); in qlcnic_test_link()
594 val = XG_LINK_STATE_P3P(adapter->ahw->pci_func, val); in qlcnic_test_link()
602 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_eeprom() local
606 if (qlcnic_83xx_check(adapter)) in qlcnic_get_eeprom()
611 eeprom->magic = (adapter->pdev)->vendor | in qlcnic_get_eeprom()
612 ((adapter->pdev)->device << 16); in qlcnic_get_eeprom()
615 if (qlcnic_82xx_check(adapter)) in qlcnic_get_eeprom()
616 ret = qlcnic_rom_fast_read_words(adapter, offset, bytes, in qlcnic_get_eeprom()
628 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_ringparam() local
630 ring->rx_pending = adapter->num_rxd; in qlcnic_get_ringparam()
631 ring->rx_jumbo_pending = adapter->num_jumbo_rxd; in qlcnic_get_ringparam()
632 ring->tx_pending = adapter->num_txd; in qlcnic_get_ringparam()
634 ring->rx_max_pending = adapter->max_rxd; in qlcnic_get_ringparam()
635 ring->rx_jumbo_max_pending = adapter->max_jumbo_rxd; in qlcnic_get_ringparam()
659 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_set_ringparam() local
666 MIN_RCV_DESCRIPTORS, adapter->max_rxd, "rx"); in qlcnic_set_ringparam()
669 MIN_JUMBO_DESCRIPTORS, adapter->max_jumbo_rxd, in qlcnic_set_ringparam()
675 if (num_rxd == adapter->num_rxd && num_txd == adapter->num_txd && in qlcnic_set_ringparam()
676 num_jumbo_rxd == adapter->num_jumbo_rxd) in qlcnic_set_ringparam()
679 adapter->num_rxd = num_rxd; in qlcnic_set_ringparam()
680 adapter->num_jumbo_rxd = num_jumbo_rxd; in qlcnic_set_ringparam()
681 adapter->num_txd = num_txd; in qlcnic_set_ringparam()
683 return qlcnic_reset_context(adapter); in qlcnic_set_ringparam()
686 static int qlcnic_validate_ring_count(struct qlcnic_adapter *adapter, in qlcnic_validate_ring_count() argument
693 if (rx_ring > adapter->max_sds_rings) { in qlcnic_validate_ring_count()
694 netdev_err(adapter->netdev, in qlcnic_validate_ring_count()
696 rx_ring, adapter->max_sds_rings); in qlcnic_validate_ring_count()
702 if (tx_ring > adapter->max_tx_rings) { in qlcnic_validate_ring_count()
703 netdev_err(adapter->netdev, in qlcnic_validate_ring_count()
705 tx_ring, adapter->max_tx_rings); in qlcnic_validate_ring_count()
716 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_channels() local
718 channel->max_rx = adapter->max_sds_rings; in qlcnic_get_channels()
719 channel->max_tx = adapter->max_tx_rings; in qlcnic_get_channels()
720 channel->rx_count = adapter->drv_sds_rings; in qlcnic_get_channels()
721 channel->tx_count = adapter->drv_tx_rings; in qlcnic_get_channels()
727 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_set_channels() local
730 if (!(adapter->flags & QLCNIC_MSIX_ENABLED)) { in qlcnic_set_channels()
738 err = qlcnic_validate_ring_count(adapter, channel->rx_count, in qlcnic_set_channels()
743 if (adapter->drv_sds_rings != channel->rx_count) { in qlcnic_set_channels()
744 err = qlcnic_validate_rings(adapter, channel->rx_count, in qlcnic_set_channels()
751 adapter->drv_rss_rings = channel->rx_count; in qlcnic_set_channels()
754 if (adapter->drv_tx_rings != channel->tx_count) { in qlcnic_set_channels()
755 err = qlcnic_validate_rings(adapter, channel->tx_count, in qlcnic_set_channels()
762 adapter->drv_tss_rings = channel->tx_count; in qlcnic_set_channels()
765 adapter->flags |= QLCNIC_TSS_RSS; in qlcnic_set_channels()
767 err = qlcnic_setup_rings(adapter); in qlcnic_set_channels()
769 adapter->drv_sds_rings, adapter->drv_tx_rings); in qlcnic_set_channels()
778 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_pauseparam() local
779 int port = adapter->ahw->physical_port; in qlcnic_get_pauseparam()
783 if (qlcnic_83xx_check(adapter)) { in qlcnic_get_pauseparam()
784 qlcnic_83xx_get_pauseparam(adapter, pause); in qlcnic_get_pauseparam()
787 if (adapter->ahw->port_type == QLCNIC_GBE) { in qlcnic_get_pauseparam()
791 val = QLCRD32(adapter, QLCNIC_NIU_GB_MAC_CONFIG_0(port), &err); in qlcnic_get_pauseparam()
795 val = QLCRD32(adapter, QLCNIC_NIU_GB_PAUSE_CTL, &err); in qlcnic_get_pauseparam()
813 } else if (adapter->ahw->port_type == QLCNIC_XGBE) { in qlcnic_get_pauseparam()
817 val = QLCRD32(adapter, QLCNIC_NIU_XG_PAUSE_CTL, &err); in qlcnic_get_pauseparam()
826 adapter->ahw->port_type); in qlcnic_get_pauseparam()
834 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_set_pauseparam() local
835 int port = adapter->ahw->physical_port; in qlcnic_set_pauseparam()
839 if (qlcnic_83xx_check(adapter)) in qlcnic_set_pauseparam()
840 return qlcnic_83xx_set_pauseparam(adapter, pause); in qlcnic_set_pauseparam()
843 if (adapter->ahw->port_type == QLCNIC_GBE) { in qlcnic_set_pauseparam()
847 val = QLCRD32(adapter, QLCNIC_NIU_GB_MAC_CONFIG_0(port), &err); in qlcnic_set_pauseparam()
856 QLCWR32(adapter, QLCNIC_NIU_GB_MAC_CONFIG_0(port), in qlcnic_set_pauseparam()
858 QLCWR32(adapter, QLCNIC_NIU_GB_MAC_CONFIG_0(port), val); in qlcnic_set_pauseparam()
860 val = QLCRD32(adapter, QLCNIC_NIU_GB_PAUSE_CTL, &err); in qlcnic_set_pauseparam()
890 QLCWR32(adapter, QLCNIC_NIU_GB_PAUSE_CTL, val); in qlcnic_set_pauseparam()
891 } else if (adapter->ahw->port_type == QLCNIC_XGBE) { in qlcnic_set_pauseparam()
898 val = QLCRD32(adapter, QLCNIC_NIU_XG_PAUSE_CTL, &err); in qlcnic_set_pauseparam()
912 QLCWR32(adapter, QLCNIC_NIU_XG_PAUSE_CTL, val); in qlcnic_set_pauseparam()
915 adapter->ahw->port_type); in qlcnic_set_pauseparam()
922 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_reg_test() local
926 if (qlcnic_83xx_check(adapter)) in qlcnic_reg_test()
927 return qlcnic_83xx_reg_test(adapter); in qlcnic_reg_test()
929 data_read = QLCRD32(adapter, QLCNIC_PCIX_PH_REG(0), &err); in qlcnic_reg_test()
932 if ((data_read & 0xffff) != adapter->pdev->vendor) in qlcnic_reg_test()
940 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_eeprom_test() local
942 if (qlcnic_82xx_check(adapter)) in qlcnic_eeprom_test()
945 return qlcnic_83xx_flash_test(adapter); in qlcnic_eeprom_test()
951 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_sset_count() local
956 return qlcnic_dev_statistics_len(adapter); in qlcnic_get_sset_count()
964 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_irq_test() local
965 struct qlcnic_hardware_context *ahw = adapter->ahw; in qlcnic_irq_test()
967 int ret, drv_sds_rings = adapter->drv_sds_rings; in qlcnic_irq_test()
968 int drv_tx_rings = adapter->drv_tx_rings; in qlcnic_irq_test()
970 if (qlcnic_83xx_check(adapter)) in qlcnic_irq_test()
973 if (test_and_set_bit(__QLCNIC_RESETTING, &adapter->state)) in qlcnic_irq_test()
981 ret = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_INTRPT_TEST); in qlcnic_irq_test()
986 ret = qlcnic_issue_cmd(adapter, &cmd); in qlcnic_irq_test()
1000 adapter->drv_sds_rings = drv_sds_rings; in qlcnic_irq_test()
1001 adapter->drv_tx_rings = drv_tx_rings; in qlcnic_irq_test()
1002 clear_bit(__QLCNIC_RESETTING, &adapter->state); in qlcnic_irq_test()
1032 int qlcnic_do_lb_test(struct qlcnic_adapter *adapter, u8 mode) in qlcnic_do_lb_test() argument
1034 struct qlcnic_recv_context *recv_ctx = adapter->recv_ctx; in qlcnic_do_lb_test()
1040 skb = netdev_alloc_skb(adapter->netdev, QLCNIC_ILB_PKT_SIZE); in qlcnic_do_lb_test()
1041 qlcnic_create_loopback_buff(skb->data, adapter->mac_addr); in qlcnic_do_lb_test()
1043 adapter->ahw->diag_cnt = 0; in qlcnic_do_lb_test()
1044 qlcnic_xmit_frame(skb, adapter->netdev); in qlcnic_do_lb_test()
1052 } while (!adapter->ahw->diag_cnt); in qlcnic_do_lb_test()
1056 if (!adapter->ahw->diag_cnt) in qlcnic_do_lb_test()
1057 dev_warn(&adapter->pdev->dev, in qlcnic_do_lb_test()
1064 dev_err(&adapter->pdev->dev, in qlcnic_do_lb_test()
1067 dev_warn(&adapter->pdev->dev, in qlcnic_do_lb_test()
1076 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_loopback_test() local
1077 int drv_tx_rings = adapter->drv_tx_rings; in qlcnic_loopback_test()
1078 int drv_sds_rings = adapter->drv_sds_rings; in qlcnic_loopback_test()
1080 struct qlcnic_hardware_context *ahw = adapter->ahw; in qlcnic_loopback_test()
1084 if (qlcnic_83xx_check(adapter)) in qlcnic_loopback_test()
1088 dev_info(&adapter->pdev->dev, in qlcnic_loopback_test()
1093 dev_warn(&adapter->pdev->dev, "%s loopback test in progress\n", in qlcnic_loopback_test()
1096 dev_warn(&adapter->pdev->dev, in qlcnic_loopback_test()
1101 if (test_and_set_bit(__QLCNIC_RESETTING, &adapter->state)) in qlcnic_loopback_test()
1108 sds_ring = &adapter->recv_ctx->sds_rings[0]; in qlcnic_loopback_test()
1109 ret = qlcnic_set_lb_mode(adapter, mode); in qlcnic_loopback_test()
1122 } else if (adapter->ahw->diag_cnt) { in qlcnic_loopback_test()
1123 ret = adapter->ahw->diag_cnt; in qlcnic_loopback_test()
1128 ret = qlcnic_do_lb_test(adapter, mode); in qlcnic_loopback_test()
1130 qlcnic_clear_lb_mode(adapter, mode); in qlcnic_loopback_test()
1136 adapter->drv_sds_rings = drv_sds_rings; in qlcnic_loopback_test()
1137 adapter->drv_tx_rings = drv_tx_rings; in qlcnic_loopback_test()
1138 clear_bit(__QLCNIC_RESETTING, &adapter->state); in qlcnic_loopback_test()
1181 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_strings() local
1191 for (i = 0; i < adapter->drv_tx_rings; i++) { in qlcnic_get_strings()
1205 if (qlcnic_83xx_check(adapter)) { in qlcnic_get_strings()
1229 if (!(adapter->flags & QLCNIC_ESWITCH_ENABLED)) in qlcnic_get_strings()
1292 void qlcnic_update_stats(struct qlcnic_adapter *adapter) in qlcnic_update_stats() argument
1299 for (ring = 0; ring < adapter->drv_tx_rings; ring++) { in qlcnic_update_stats()
1300 tx_ring = &adapter->tx_ring[ring]; in qlcnic_update_stats()
1308 adapter->stats.xmit_on = tx_stats.xmit_on; in qlcnic_update_stats()
1309 adapter->stats.xmit_off = tx_stats.xmit_off; in qlcnic_update_stats()
1310 adapter->stats.xmitcalled = tx_stats.xmit_called; in qlcnic_update_stats()
1311 adapter->stats.xmitfinished = tx_stats.xmit_finished; in qlcnic_update_stats()
1312 adapter->stats.txbytes = tx_stats.tx_bytes; in qlcnic_update_stats()
1333 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_ethtool_stats() local
1342 for (ring = 0, index = 0; ring < adapter->drv_tx_rings; ring++) { in qlcnic_get_ethtool_stats()
1343 if (adapter->is_up == QLCNIC_ADAPTER_UP_MAGIC) { in qlcnic_get_ethtool_stats()
1344 tx_ring = &adapter->tx_ring[ring]; in qlcnic_get_ethtool_stats()
1346 qlcnic_update_stats(adapter); in qlcnic_get_ethtool_stats()
1354 p = (char *)adapter + qlcnic_gstrings_stats[index].stat_offset; in qlcnic_get_ethtool_stats()
1359 if (qlcnic_83xx_check(adapter)) { in qlcnic_get_ethtool_stats()
1360 if (adapter->ahw->linkup) in qlcnic_get_ethtool_stats()
1361 qlcnic_83xx_get_stats(adapter, data); in qlcnic_get_ethtool_stats()
1366 qlcnic_get_mac_stats(adapter, &mac_stats); in qlcnic_get_ethtool_stats()
1370 if (!(adapter->flags & QLCNIC_ESWITCH_ENABLED)) in qlcnic_get_ethtool_stats()
1374 ret = qlcnic_get_port_stats(adapter, adapter->ahw->pci_func, in qlcnic_get_ethtool_stats()
1380 ret = qlcnic_get_port_stats(adapter, adapter->ahw->pci_func, in qlcnic_get_ethtool_stats()
1391 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_set_led() local
1392 int drv_sds_rings = adapter->drv_sds_rings; in qlcnic_set_led()
1395 if (qlcnic_83xx_check(adapter)) in qlcnic_set_led()
1398 if (adapter->ahw->op_mode == QLCNIC_NON_PRIV_FUNC) { in qlcnic_set_led()
1406 if (test_and_set_bit(__QLCNIC_LED_ENABLE, &adapter->state)) in qlcnic_set_led()
1409 if (test_bit(__QLCNIC_RESETTING, &adapter->state)) in qlcnic_set_led()
1412 if (!test_bit(__QLCNIC_DEV_UP, &adapter->state)) { in qlcnic_set_led()
1415 set_bit(__QLCNIC_DIAG_RES_ALLOC, &adapter->state); in qlcnic_set_led()
1418 if (adapter->nic_ops->config_led(adapter, 1, 0xf) == 0) { in qlcnic_set_led()
1423 dev_err(&adapter->pdev->dev, in qlcnic_set_led()
1430 if (test_bit(__QLCNIC_RESETTING, &adapter->state)) in qlcnic_set_led()
1433 if (!test_bit(__QLCNIC_DEV_UP, &adapter->state)) { in qlcnic_set_led()
1436 set_bit(__QLCNIC_DIAG_RES_ALLOC, &adapter->state); in qlcnic_set_led()
1439 if (adapter->nic_ops->config_led(adapter, 0, 0xf)) in qlcnic_set_led()
1440 dev_err(&adapter->pdev->dev, in qlcnic_set_led()
1449 if (test_and_clear_bit(__QLCNIC_DIAG_RES_ALLOC, &adapter->state)) in qlcnic_set_led()
1453 clear_bit(__QLCNIC_LED_ENABLE, &adapter->state); in qlcnic_set_led()
1461 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_wol() local
1465 if (qlcnic_83xx_check(adapter)) in qlcnic_get_wol()
1470 wol_cfg = QLCRD32(adapter, QLCNIC_WOL_CONFIG_NV, &err); in qlcnic_get_wol()
1473 if (wol_cfg & (1UL << adapter->portnum)) in qlcnic_get_wol()
1476 wol_cfg = QLCRD32(adapter, QLCNIC_WOL_CONFIG, &err); in qlcnic_get_wol()
1477 if (wol_cfg & (1UL << adapter->portnum)) in qlcnic_get_wol()
1484 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_set_wol() local
1488 if (qlcnic_83xx_check(adapter)) in qlcnic_set_wol()
1493 wol_cfg = QLCRD32(adapter, QLCNIC_WOL_CONFIG_NV, &err); in qlcnic_set_wol()
1496 if (!(wol_cfg & (1 << adapter->portnum))) in qlcnic_set_wol()
1499 wol_cfg = QLCRD32(adapter, QLCNIC_WOL_CONFIG, &err); in qlcnic_set_wol()
1503 wol_cfg |= 1UL << adapter->portnum; in qlcnic_set_wol()
1505 wol_cfg &= ~(1UL << adapter->portnum); in qlcnic_set_wol()
1507 QLCWR32(adapter, QLCNIC_WOL_CONFIG, wol_cfg); in qlcnic_set_wol()
1520 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_set_intr_coalesce() local
1523 if (!test_bit(__QLCNIC_DEV_UP, &adapter->state)) in qlcnic_set_intr_coalesce()
1553 err = qlcnic_config_intr_coalesce(adapter, ethcoal); in qlcnic_set_intr_coalesce()
1561 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_intr_coalesce() local
1563 if (adapter->is_up != QLCNIC_ADAPTER_UP_MAGIC) in qlcnic_get_intr_coalesce()
1566 ethcoal->rx_coalesce_usecs = adapter->ahw->coal.rx_time_us; in qlcnic_get_intr_coalesce()
1567 ethcoal->rx_max_coalesced_frames = adapter->ahw->coal.rx_packets; in qlcnic_get_intr_coalesce()
1568 ethcoal->tx_coalesce_usecs = adapter->ahw->coal.tx_time_us; in qlcnic_get_intr_coalesce()
1569 ethcoal->tx_max_coalesced_frames = adapter->ahw->coal.tx_packets; in qlcnic_get_intr_coalesce()
1576 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_msglevel() local
1578 return adapter->ahw->msg_enable; in qlcnic_get_msglevel()
1583 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_set_msglevel() local
1585 adapter->ahw->msg_enable = msglvl; in qlcnic_set_msglevel()
1588 int qlcnic_enable_fw_dump_state(struct qlcnic_adapter *adapter) in qlcnic_enable_fw_dump_state() argument
1590 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_enable_fw_dump_state()
1593 if (qlcnic_84xx_check(adapter)) { in qlcnic_enable_fw_dump_state()
1594 if (qlcnic_83xx_lock_driver(adapter)) in qlcnic_enable_fw_dump_state()
1597 val = QLCRDX(adapter->ahw, QLC_83XX_IDC_CTRL); in qlcnic_enable_fw_dump_state()
1599 QLCWRX(adapter->ahw, QLC_83XX_IDC_CTRL, val); in qlcnic_enable_fw_dump_state()
1601 qlcnic_83xx_unlock_driver(adapter); in qlcnic_enable_fw_dump_state()
1606 dev_info(&adapter->pdev->dev, "FW dump enabled\n"); in qlcnic_enable_fw_dump_state()
1611 static int qlcnic_disable_fw_dump_state(struct qlcnic_adapter *adapter) in qlcnic_disable_fw_dump_state() argument
1613 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_disable_fw_dump_state()
1616 if (qlcnic_84xx_check(adapter)) { in qlcnic_disable_fw_dump_state()
1617 if (qlcnic_83xx_lock_driver(adapter)) in qlcnic_disable_fw_dump_state()
1620 val = QLCRDX(adapter->ahw, QLC_83XX_IDC_CTRL); in qlcnic_disable_fw_dump_state()
1622 QLCWRX(adapter->ahw, QLC_83XX_IDC_CTRL, val); in qlcnic_disable_fw_dump_state()
1624 qlcnic_83xx_unlock_driver(adapter); in qlcnic_disable_fw_dump_state()
1629 dev_info(&adapter->pdev->dev, "FW dump disabled\n"); in qlcnic_disable_fw_dump_state()
1634 bool qlcnic_check_fw_dump_state(struct qlcnic_adapter *adapter) in qlcnic_check_fw_dump_state() argument
1636 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_check_fw_dump_state()
1640 if (qlcnic_84xx_check(adapter)) { in qlcnic_check_fw_dump_state()
1641 val = QLCRDX(adapter->ahw, QLC_83XX_IDC_CTRL); in qlcnic_check_fw_dump_state()
1653 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_dump_flag() local
1654 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_get_dump_flag()
1657 netdev_err(adapter->netdev, "FW Dump not supported\n"); in qlcnic_get_dump_flag()
1666 if (!qlcnic_check_fw_dump_state(adapter)) in qlcnic_get_dump_flag()
1671 dump->version = adapter->fw_version; in qlcnic_get_dump_flag()
1682 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_dump_data() local
1683 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_get_dump_data()
1715 static int qlcnic_set_dump_mask(struct qlcnic_adapter *adapter, u32 mask) in qlcnic_set_dump_mask() argument
1717 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_set_dump_mask()
1718 struct net_device *netdev = adapter->netdev; in qlcnic_set_dump_mask()
1720 if (!qlcnic_check_fw_dump_state(adapter)) { in qlcnic_set_dump_mask()
1730 qlcnic_store_cap_mask(adapter, fw_dump->tmpl_hdr, mask); in qlcnic_set_dump_mask()
1739 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_set_dump() local
1740 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_set_dump()
1752 if (!qlcnic_check_fw_dump_state(adapter)) { in qlcnic_set_dump()
1765 qlcnic_dev_request_reset(adapter, val->flag); in qlcnic_set_dump()
1774 ret = qlcnic_disable_fw_dump_state(adapter); in qlcnic_set_dump()
1784 ret = qlcnic_enable_fw_dump_state(adapter); in qlcnic_set_dump()
1789 qlcnic_dev_request_reset(adapter, val->flag); in qlcnic_set_dump()
1790 adapter->flags &= ~QLCNIC_FW_RESET_OWNER; in qlcnic_set_dump()
1795 if (test_bit(__QLCNIC_MAINTENANCE_MODE, &adapter->state)) in qlcnic_set_dump()
1814 ret = qlcnic_set_dump_mask(adapter, val->flag); in qlcnic_set_dump()