Lines Matching refs:adapter

176 static inline int qlcnic_82xx_statistics(struct qlcnic_adapter *adapter)  in qlcnic_82xx_statistics()  argument
180 QLCNIC_TX_STATS_LEN * adapter->drv_tx_rings; in qlcnic_82xx_statistics()
183 static inline int qlcnic_83xx_statistics(struct qlcnic_adapter *adapter) in qlcnic_83xx_statistics() argument
189 QLCNIC_TX_STATS_LEN * adapter->drv_tx_rings; in qlcnic_83xx_statistics()
192 static int qlcnic_dev_statistics_len(struct qlcnic_adapter *adapter) in qlcnic_dev_statistics_len() argument
196 if (qlcnic_82xx_check(adapter)) { in qlcnic_dev_statistics_len()
197 len = qlcnic_82xx_statistics(adapter); in qlcnic_dev_statistics_len()
198 if (adapter->flags & QLCNIC_ESWITCH_ENABLED) in qlcnic_dev_statistics_len()
200 } else if (qlcnic_83xx_check(adapter)) { in qlcnic_dev_statistics_len()
201 len = qlcnic_83xx_statistics(adapter); in qlcnic_dev_statistics_len()
241 static inline int qlcnic_get_ring_regs_len(struct qlcnic_adapter *adapter) in qlcnic_get_ring_regs_len() argument
243 int ring_regs_cnt = (adapter->drv_tx_rings * 5) + in qlcnic_get_ring_regs_len()
244 (adapter->max_rds_rings * 2) + in qlcnic_get_ring_regs_len()
245 (adapter->drv_sds_rings * 3) + 5; in qlcnic_get_ring_regs_len()
251 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_regs_len() local
254 if (qlcnic_83xx_check(adapter)) in qlcnic_get_regs_len()
255 len = qlcnic_83xx_get_regs_len(adapter); in qlcnic_get_regs_len()
260 len += qlcnic_get_ring_regs_len(adapter); in qlcnic_get_regs_len()
272 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_drvinfo() local
274 fw_major = QLC_SHARED_REG_RD32(adapter, QLCNIC_FW_VERSION_MAJOR); in qlcnic_get_drvinfo()
275 fw_minor = QLC_SHARED_REG_RD32(adapter, QLCNIC_FW_VERSION_MINOR); in qlcnic_get_drvinfo()
276 fw_build = QLC_SHARED_REG_RD32(adapter, QLCNIC_FW_VERSION_SUB); in qlcnic_get_drvinfo()
280 strlcpy(drvinfo->bus_info, pci_name(adapter->pdev), in qlcnic_get_drvinfo()
287 static int qlcnic_82xx_get_settings(struct qlcnic_adapter *adapter, in qlcnic_82xx_get_settings() argument
290 struct qlcnic_hardware_context *ahw = adapter->ahw; in qlcnic_82xx_get_settings()
296 if (adapter->ahw->port_type == QLCNIC_GBE) { in qlcnic_82xx_get_settings()
309 ethtool_cmd_speed_set(ecmd, adapter->ahw->link_speed); in qlcnic_82xx_get_settings()
310 ecmd->duplex = adapter->ahw->link_duplex; in qlcnic_82xx_get_settings()
311 ecmd->autoneg = adapter->ahw->link_autoneg; in qlcnic_82xx_get_settings()
313 } else if (adapter->ahw->port_type == QLCNIC_XGBE) { in qlcnic_82xx_get_settings()
315 val = QLCRD32(adapter, QLCNIC_PORT_MODE_ADDR, &err); in qlcnic_82xx_get_settings()
325 if (netif_running(adapter->netdev) && ahw->has_link_events) { in qlcnic_82xx_get_settings()
327 reg = QLCRD32(adapter, in qlcnic_82xx_get_settings()
346 ecmd->phy_address = adapter->ahw->physical_port; in qlcnic_82xx_get_settings()
349 switch (adapter->ahw->board_type) { in qlcnic_82xx_get_settings()
362 ecmd->autoneg = adapter->ahw->link_autoneg; in qlcnic_82xx_get_settings()
377 check_sfp_module = netif_running(adapter->netdev) && in qlcnic_82xx_get_settings()
386 if (adapter->ahw->port_type == QLCNIC_XGBE) { in qlcnic_82xx_get_settings()
392 check_sfp_module = netif_running(adapter->netdev) && in qlcnic_82xx_get_settings()
403 dev_err(&adapter->pdev->dev, "Unsupported board model %d\n", in qlcnic_82xx_get_settings()
404 adapter->ahw->board_type); in qlcnic_82xx_get_settings()
409 switch (adapter->ahw->module_type) { in qlcnic_82xx_get_settings()
432 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_settings() local
434 if (qlcnic_82xx_check(adapter)) in qlcnic_get_settings()
435 return qlcnic_82xx_get_settings(adapter, ecmd); in qlcnic_get_settings()
436 else if (qlcnic_83xx_check(adapter)) in qlcnic_get_settings()
437 return qlcnic_83xx_get_settings(adapter, ecmd); in qlcnic_get_settings()
443 static int qlcnic_set_port_config(struct qlcnic_adapter *adapter, in qlcnic_set_port_config() argument
468 ret = qlcnic_fw_cmd_set_port(adapter, config); in qlcnic_set_port_config()
480 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_set_settings() local
482 if (adapter->ahw->port_type != QLCNIC_GBE) in qlcnic_set_settings()
485 if (qlcnic_83xx_check(adapter)) in qlcnic_set_settings()
486 ret = qlcnic_83xx_set_settings(adapter, ecmd); in qlcnic_set_settings()
488 ret = qlcnic_set_port_config(adapter, ecmd); in qlcnic_set_settings()
493 adapter->ahw->link_speed = ethtool_cmd_speed(ecmd); in qlcnic_set_settings()
494 adapter->ahw->link_duplex = ecmd->duplex; in qlcnic_set_settings()
495 adapter->ahw->link_autoneg = ecmd->autoneg; in qlcnic_set_settings()
504 static int qlcnic_82xx_get_registers(struct qlcnic_adapter *adapter, in qlcnic_82xx_get_registers() argument
510 regs_buff[i] = QLC_SHARED_REG_RD32(adapter, diag_registers[j]); in qlcnic_82xx_get_registers()
513 regs_buff[i++] = QLCRD32(adapter, ext_diag_registers[j++], in qlcnic_82xx_get_registers()
521 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_regs() local
522 struct qlcnic_recv_context *recv_ctx = adapter->recv_ctx; in qlcnic_get_regs()
532 (adapter->ahw->revision_id << 16) | (adapter->pdev)->device; in qlcnic_get_regs()
537 if (adapter->ahw->capabilities & QLC_83XX_ESWITCH_CAPABILITY) in qlcnic_get_regs()
538 regs_buff[2] = adapter->ahw->max_vnic_func; in qlcnic_get_regs()
540 if (qlcnic_82xx_check(adapter)) in qlcnic_get_regs()
541 i = qlcnic_82xx_get_registers(adapter, regs_buff); in qlcnic_get_regs()
543 i = qlcnic_83xx_get_registers(adapter, regs_buff); in qlcnic_get_regs()
545 if (!test_bit(__QLCNIC_DEV_UP, &adapter->state)) in qlcnic_get_regs()
551 regs_buff[i++] = adapter->drv_tx_rings; /* No. of TX ring */ in qlcnic_get_regs()
552 for (ring = 0; ring < adapter->drv_tx_rings; ring++) { in qlcnic_get_regs()
553 tx_ring = &adapter->tx_ring[ring]; in qlcnic_get_regs()
564 regs_buff[i++] = adapter->max_rds_rings; /* No. of RX ring */ in qlcnic_get_regs()
565 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in qlcnic_get_regs()
571 regs_buff[i++] = adapter->drv_sds_rings; /* No. of SDS ring */ in qlcnic_get_regs()
572 for (ring = 0; ring < adapter->drv_sds_rings; ring++) { in qlcnic_get_regs()
582 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_test_link() local
586 if (qlcnic_83xx_check(adapter)) { in qlcnic_test_link()
587 val = qlcnic_83xx_test_link(adapter); in qlcnic_test_link()
590 val = QLCRD32(adapter, CRB_XG_STATE_P3P, &err); in qlcnic_test_link()
593 val = XG_LINK_STATE_P3P(adapter->ahw->pci_func, val); in qlcnic_test_link()
601 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_eeprom() local
605 if (qlcnic_83xx_check(adapter)) in qlcnic_get_eeprom()
610 eeprom->magic = (adapter->pdev)->vendor | in qlcnic_get_eeprom()
611 ((adapter->pdev)->device << 16); in qlcnic_get_eeprom()
614 if (qlcnic_82xx_check(adapter)) in qlcnic_get_eeprom()
615 ret = qlcnic_rom_fast_read_words(adapter, offset, bytes, in qlcnic_get_eeprom()
627 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_ringparam() local
629 ring->rx_pending = adapter->num_rxd; in qlcnic_get_ringparam()
630 ring->rx_jumbo_pending = adapter->num_jumbo_rxd; in qlcnic_get_ringparam()
631 ring->tx_pending = adapter->num_txd; in qlcnic_get_ringparam()
633 ring->rx_max_pending = adapter->max_rxd; in qlcnic_get_ringparam()
634 ring->rx_jumbo_max_pending = adapter->max_jumbo_rxd; in qlcnic_get_ringparam()
658 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_set_ringparam() local
665 MIN_RCV_DESCRIPTORS, adapter->max_rxd, "rx"); in qlcnic_set_ringparam()
668 MIN_JUMBO_DESCRIPTORS, adapter->max_jumbo_rxd, in qlcnic_set_ringparam()
674 if (num_rxd == adapter->num_rxd && num_txd == adapter->num_txd && in qlcnic_set_ringparam()
675 num_jumbo_rxd == adapter->num_jumbo_rxd) in qlcnic_set_ringparam()
678 adapter->num_rxd = num_rxd; in qlcnic_set_ringparam()
679 adapter->num_jumbo_rxd = num_jumbo_rxd; in qlcnic_set_ringparam()
680 adapter->num_txd = num_txd; in qlcnic_set_ringparam()
682 return qlcnic_reset_context(adapter); in qlcnic_set_ringparam()
685 static int qlcnic_validate_ring_count(struct qlcnic_adapter *adapter, in qlcnic_validate_ring_count() argument
692 if (rx_ring > adapter->max_sds_rings) { in qlcnic_validate_ring_count()
693 netdev_err(adapter->netdev, in qlcnic_validate_ring_count()
695 rx_ring, adapter->max_sds_rings); in qlcnic_validate_ring_count()
701 if (tx_ring > adapter->max_tx_rings) { in qlcnic_validate_ring_count()
702 netdev_err(adapter->netdev, in qlcnic_validate_ring_count()
704 tx_ring, adapter->max_tx_rings); in qlcnic_validate_ring_count()
715 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_channels() local
717 channel->max_rx = adapter->max_sds_rings; in qlcnic_get_channels()
718 channel->max_tx = adapter->max_tx_rings; in qlcnic_get_channels()
719 channel->rx_count = adapter->drv_sds_rings; in qlcnic_get_channels()
720 channel->tx_count = adapter->drv_tx_rings; in qlcnic_get_channels()
726 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_set_channels() local
729 if (!(adapter->flags & QLCNIC_MSIX_ENABLED)) { in qlcnic_set_channels()
737 err = qlcnic_validate_ring_count(adapter, channel->rx_count, in qlcnic_set_channels()
742 if (adapter->drv_sds_rings != channel->rx_count) { in qlcnic_set_channels()
743 err = qlcnic_validate_rings(adapter, channel->rx_count, in qlcnic_set_channels()
750 adapter->drv_rss_rings = channel->rx_count; in qlcnic_set_channels()
753 if (adapter->drv_tx_rings != channel->tx_count) { in qlcnic_set_channels()
754 err = qlcnic_validate_rings(adapter, channel->tx_count, in qlcnic_set_channels()
761 adapter->drv_tss_rings = channel->tx_count; in qlcnic_set_channels()
764 adapter->flags |= QLCNIC_TSS_RSS; in qlcnic_set_channels()
766 err = qlcnic_setup_rings(adapter); in qlcnic_set_channels()
768 adapter->drv_sds_rings, adapter->drv_tx_rings); in qlcnic_set_channels()
777 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_pauseparam() local
778 int port = adapter->ahw->physical_port; in qlcnic_get_pauseparam()
782 if (qlcnic_83xx_check(adapter)) { in qlcnic_get_pauseparam()
783 qlcnic_83xx_get_pauseparam(adapter, pause); in qlcnic_get_pauseparam()
786 if (adapter->ahw->port_type == QLCNIC_GBE) { in qlcnic_get_pauseparam()
790 val = QLCRD32(adapter, QLCNIC_NIU_GB_MAC_CONFIG_0(port), &err); in qlcnic_get_pauseparam()
794 val = QLCRD32(adapter, QLCNIC_NIU_GB_PAUSE_CTL, &err); in qlcnic_get_pauseparam()
812 } else if (adapter->ahw->port_type == QLCNIC_XGBE) { in qlcnic_get_pauseparam()
816 val = QLCRD32(adapter, QLCNIC_NIU_XG_PAUSE_CTL, &err); in qlcnic_get_pauseparam()
825 adapter->ahw->port_type); in qlcnic_get_pauseparam()
833 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_set_pauseparam() local
834 int port = adapter->ahw->physical_port; in qlcnic_set_pauseparam()
838 if (qlcnic_83xx_check(adapter)) in qlcnic_set_pauseparam()
839 return qlcnic_83xx_set_pauseparam(adapter, pause); in qlcnic_set_pauseparam()
842 if (adapter->ahw->port_type == QLCNIC_GBE) { in qlcnic_set_pauseparam()
846 val = QLCRD32(adapter, QLCNIC_NIU_GB_MAC_CONFIG_0(port), &err); in qlcnic_set_pauseparam()
855 QLCWR32(adapter, QLCNIC_NIU_GB_MAC_CONFIG_0(port), in qlcnic_set_pauseparam()
857 QLCWR32(adapter, QLCNIC_NIU_GB_MAC_CONFIG_0(port), val); in qlcnic_set_pauseparam()
859 val = QLCRD32(adapter, QLCNIC_NIU_GB_PAUSE_CTL, &err); in qlcnic_set_pauseparam()
889 QLCWR32(adapter, QLCNIC_NIU_GB_PAUSE_CTL, val); in qlcnic_set_pauseparam()
890 } else if (adapter->ahw->port_type == QLCNIC_XGBE) { in qlcnic_set_pauseparam()
897 val = QLCRD32(adapter, QLCNIC_NIU_XG_PAUSE_CTL, &err); in qlcnic_set_pauseparam()
911 QLCWR32(adapter, QLCNIC_NIU_XG_PAUSE_CTL, val); in qlcnic_set_pauseparam()
914 adapter->ahw->port_type); in qlcnic_set_pauseparam()
921 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_reg_test() local
925 if (qlcnic_83xx_check(adapter)) in qlcnic_reg_test()
926 return qlcnic_83xx_reg_test(adapter); in qlcnic_reg_test()
928 data_read = QLCRD32(adapter, QLCNIC_PCIX_PH_REG(0), &err); in qlcnic_reg_test()
931 if ((data_read & 0xffff) != adapter->pdev->vendor) in qlcnic_reg_test()
939 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_eeprom_test() local
941 if (qlcnic_82xx_check(adapter)) in qlcnic_eeprom_test()
944 return qlcnic_83xx_flash_test(adapter); in qlcnic_eeprom_test()
950 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_sset_count() local
955 return qlcnic_dev_statistics_len(adapter); in qlcnic_get_sset_count()
963 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_irq_test() local
964 struct qlcnic_hardware_context *ahw = adapter->ahw; in qlcnic_irq_test()
966 int ret, drv_sds_rings = adapter->drv_sds_rings; in qlcnic_irq_test()
967 int drv_tx_rings = adapter->drv_tx_rings; in qlcnic_irq_test()
969 if (qlcnic_83xx_check(adapter)) in qlcnic_irq_test()
972 if (test_and_set_bit(__QLCNIC_RESETTING, &adapter->state)) in qlcnic_irq_test()
980 ret = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_INTRPT_TEST); in qlcnic_irq_test()
985 ret = qlcnic_issue_cmd(adapter, &cmd); in qlcnic_irq_test()
999 adapter->drv_sds_rings = drv_sds_rings; in qlcnic_irq_test()
1000 adapter->drv_tx_rings = drv_tx_rings; in qlcnic_irq_test()
1001 clear_bit(__QLCNIC_RESETTING, &adapter->state); in qlcnic_irq_test()
1031 int qlcnic_do_lb_test(struct qlcnic_adapter *adapter, u8 mode) in qlcnic_do_lb_test() argument
1033 struct qlcnic_recv_context *recv_ctx = adapter->recv_ctx; in qlcnic_do_lb_test()
1039 skb = netdev_alloc_skb(adapter->netdev, QLCNIC_ILB_PKT_SIZE); in qlcnic_do_lb_test()
1040 qlcnic_create_loopback_buff(skb->data, adapter->mac_addr); in qlcnic_do_lb_test()
1042 adapter->ahw->diag_cnt = 0; in qlcnic_do_lb_test()
1043 qlcnic_xmit_frame(skb, adapter->netdev); in qlcnic_do_lb_test()
1051 } while (!adapter->ahw->diag_cnt); in qlcnic_do_lb_test()
1055 if (!adapter->ahw->diag_cnt) in qlcnic_do_lb_test()
1056 dev_warn(&adapter->pdev->dev, in qlcnic_do_lb_test()
1063 dev_err(&adapter->pdev->dev, in qlcnic_do_lb_test()
1066 dev_warn(&adapter->pdev->dev, in qlcnic_do_lb_test()
1075 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_loopback_test() local
1076 int drv_tx_rings = adapter->drv_tx_rings; in qlcnic_loopback_test()
1077 int drv_sds_rings = adapter->drv_sds_rings; in qlcnic_loopback_test()
1079 struct qlcnic_hardware_context *ahw = adapter->ahw; in qlcnic_loopback_test()
1083 if (qlcnic_83xx_check(adapter)) in qlcnic_loopback_test()
1087 dev_info(&adapter->pdev->dev, in qlcnic_loopback_test()
1092 dev_warn(&adapter->pdev->dev, "%s loopback test in progress\n", in qlcnic_loopback_test()
1095 dev_warn(&adapter->pdev->dev, in qlcnic_loopback_test()
1100 if (test_and_set_bit(__QLCNIC_RESETTING, &adapter->state)) in qlcnic_loopback_test()
1107 sds_ring = &adapter->recv_ctx->sds_rings[0]; in qlcnic_loopback_test()
1108 ret = qlcnic_set_lb_mode(adapter, mode); in qlcnic_loopback_test()
1121 } else if (adapter->ahw->diag_cnt) { in qlcnic_loopback_test()
1122 ret = adapter->ahw->diag_cnt; in qlcnic_loopback_test()
1127 ret = qlcnic_do_lb_test(adapter, mode); in qlcnic_loopback_test()
1129 qlcnic_clear_lb_mode(adapter, mode); in qlcnic_loopback_test()
1135 adapter->drv_sds_rings = drv_sds_rings; in qlcnic_loopback_test()
1136 adapter->drv_tx_rings = drv_tx_rings; in qlcnic_loopback_test()
1137 clear_bit(__QLCNIC_RESETTING, &adapter->state); in qlcnic_loopback_test()
1180 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_strings() local
1190 for (i = 0; i < adapter->drv_tx_rings; i++) { in qlcnic_get_strings()
1204 if (qlcnic_83xx_check(adapter)) { in qlcnic_get_strings()
1228 if (!(adapter->flags & QLCNIC_ESWITCH_ENABLED)) in qlcnic_get_strings()
1291 void qlcnic_update_stats(struct qlcnic_adapter *adapter) in qlcnic_update_stats() argument
1298 for (ring = 0; ring < adapter->drv_tx_rings; ring++) { in qlcnic_update_stats()
1299 tx_ring = &adapter->tx_ring[ring]; in qlcnic_update_stats()
1307 adapter->stats.xmit_on = tx_stats.xmit_on; in qlcnic_update_stats()
1308 adapter->stats.xmit_off = tx_stats.xmit_off; in qlcnic_update_stats()
1309 adapter->stats.xmitcalled = tx_stats.xmit_called; in qlcnic_update_stats()
1310 adapter->stats.xmitfinished = tx_stats.xmit_finished; in qlcnic_update_stats()
1311 adapter->stats.txbytes = tx_stats.tx_bytes; in qlcnic_update_stats()
1332 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_ethtool_stats() local
1341 for (ring = 0, index = 0; ring < adapter->drv_tx_rings; ring++) { in qlcnic_get_ethtool_stats()
1342 if (adapter->is_up == QLCNIC_ADAPTER_UP_MAGIC) { in qlcnic_get_ethtool_stats()
1343 tx_ring = &adapter->tx_ring[ring]; in qlcnic_get_ethtool_stats()
1345 qlcnic_update_stats(adapter); in qlcnic_get_ethtool_stats()
1353 p = (char *)adapter + qlcnic_gstrings_stats[index].stat_offset; in qlcnic_get_ethtool_stats()
1358 if (qlcnic_83xx_check(adapter)) { in qlcnic_get_ethtool_stats()
1359 if (adapter->ahw->linkup) in qlcnic_get_ethtool_stats()
1360 qlcnic_83xx_get_stats(adapter, data); in qlcnic_get_ethtool_stats()
1365 qlcnic_get_mac_stats(adapter, &mac_stats); in qlcnic_get_ethtool_stats()
1369 if (!(adapter->flags & QLCNIC_ESWITCH_ENABLED)) in qlcnic_get_ethtool_stats()
1373 ret = qlcnic_get_port_stats(adapter, adapter->ahw->pci_func, in qlcnic_get_ethtool_stats()
1379 ret = qlcnic_get_port_stats(adapter, adapter->ahw->pci_func, in qlcnic_get_ethtool_stats()
1390 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_set_led() local
1391 int drv_sds_rings = adapter->drv_sds_rings; in qlcnic_set_led()
1394 if (qlcnic_83xx_check(adapter)) in qlcnic_set_led()
1397 if (adapter->ahw->op_mode == QLCNIC_NON_PRIV_FUNC) { in qlcnic_set_led()
1405 if (test_and_set_bit(__QLCNIC_LED_ENABLE, &adapter->state)) in qlcnic_set_led()
1408 if (test_bit(__QLCNIC_RESETTING, &adapter->state)) in qlcnic_set_led()
1411 if (!test_bit(__QLCNIC_DEV_UP, &adapter->state)) { in qlcnic_set_led()
1414 set_bit(__QLCNIC_DIAG_RES_ALLOC, &adapter->state); in qlcnic_set_led()
1417 if (adapter->nic_ops->config_led(adapter, 1, 0xf) == 0) { in qlcnic_set_led()
1422 dev_err(&adapter->pdev->dev, in qlcnic_set_led()
1429 if (test_bit(__QLCNIC_RESETTING, &adapter->state)) in qlcnic_set_led()
1432 if (!test_bit(__QLCNIC_DEV_UP, &adapter->state)) { in qlcnic_set_led()
1435 set_bit(__QLCNIC_DIAG_RES_ALLOC, &adapter->state); in qlcnic_set_led()
1438 if (adapter->nic_ops->config_led(adapter, 0, 0xf)) in qlcnic_set_led()
1439 dev_err(&adapter->pdev->dev, in qlcnic_set_led()
1448 if (test_and_clear_bit(__QLCNIC_DIAG_RES_ALLOC, &adapter->state)) in qlcnic_set_led()
1452 clear_bit(__QLCNIC_LED_ENABLE, &adapter->state); in qlcnic_set_led()
1460 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_get_wol() local
1464 if (qlcnic_83xx_check(adapter)) in qlcnic_get_wol()
1469 wol_cfg = QLCRD32(adapter, QLCNIC_WOL_CONFIG_NV, &err); in qlcnic_get_wol()
1472 if (wol_cfg & (1UL << adapter->portnum)) in qlcnic_get_wol()
1475 wol_cfg = QLCRD32(adapter, QLCNIC_WOL_CONFIG, &err); in qlcnic_get_wol()
1476 if (wol_cfg & (1UL << adapter->portnum)) in qlcnic_get_wol()
1483 struct qlcnic_adapter *adapter = netdev_priv(dev); in qlcnic_set_wol() local
1487 if (qlcnic_83xx_check(adapter)) in qlcnic_set_wol()
1492 wol_cfg = QLCRD32(adapter, QLCNIC_WOL_CONFIG_NV, &err); in qlcnic_set_wol()
1495 if (!(wol_cfg & (1 << adapter->portnum))) in qlcnic_set_wol()
1498 wol_cfg = QLCRD32(adapter, QLCNIC_WOL_CONFIG, &err); in qlcnic_set_wol()
1502 wol_cfg |= 1UL << adapter->portnum; in qlcnic_set_wol()
1504 wol_cfg &= ~(1UL << adapter->portnum); in qlcnic_set_wol()
1506 QLCWR32(adapter, QLCNIC_WOL_CONFIG, wol_cfg); in qlcnic_set_wol()
1519 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_set_intr_coalesce() local
1522 if (!test_bit(__QLCNIC_DEV_UP, &adapter->state)) in qlcnic_set_intr_coalesce()
1552 err = qlcnic_config_intr_coalesce(adapter, ethcoal); in qlcnic_set_intr_coalesce()
1560 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_intr_coalesce() local
1562 if (adapter->is_up != QLCNIC_ADAPTER_UP_MAGIC) in qlcnic_get_intr_coalesce()
1565 ethcoal->rx_coalesce_usecs = adapter->ahw->coal.rx_time_us; in qlcnic_get_intr_coalesce()
1566 ethcoal->rx_max_coalesced_frames = adapter->ahw->coal.rx_packets; in qlcnic_get_intr_coalesce()
1567 ethcoal->tx_coalesce_usecs = adapter->ahw->coal.tx_time_us; in qlcnic_get_intr_coalesce()
1568 ethcoal->tx_max_coalesced_frames = adapter->ahw->coal.tx_packets; in qlcnic_get_intr_coalesce()
1575 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_msglevel() local
1577 return adapter->ahw->msg_enable; in qlcnic_get_msglevel()
1582 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_set_msglevel() local
1584 adapter->ahw->msg_enable = msglvl; in qlcnic_set_msglevel()
1587 int qlcnic_enable_fw_dump_state(struct qlcnic_adapter *adapter) in qlcnic_enable_fw_dump_state() argument
1589 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_enable_fw_dump_state()
1592 if (qlcnic_84xx_check(adapter)) { in qlcnic_enable_fw_dump_state()
1593 if (qlcnic_83xx_lock_driver(adapter)) in qlcnic_enable_fw_dump_state()
1596 val = QLCRDX(adapter->ahw, QLC_83XX_IDC_CTRL); in qlcnic_enable_fw_dump_state()
1598 QLCWRX(adapter->ahw, QLC_83XX_IDC_CTRL, val); in qlcnic_enable_fw_dump_state()
1600 qlcnic_83xx_unlock_driver(adapter); in qlcnic_enable_fw_dump_state()
1605 dev_info(&adapter->pdev->dev, "FW dump enabled\n"); in qlcnic_enable_fw_dump_state()
1610 static int qlcnic_disable_fw_dump_state(struct qlcnic_adapter *adapter) in qlcnic_disable_fw_dump_state() argument
1612 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_disable_fw_dump_state()
1615 if (qlcnic_84xx_check(adapter)) { in qlcnic_disable_fw_dump_state()
1616 if (qlcnic_83xx_lock_driver(adapter)) in qlcnic_disable_fw_dump_state()
1619 val = QLCRDX(adapter->ahw, QLC_83XX_IDC_CTRL); in qlcnic_disable_fw_dump_state()
1621 QLCWRX(adapter->ahw, QLC_83XX_IDC_CTRL, val); in qlcnic_disable_fw_dump_state()
1623 qlcnic_83xx_unlock_driver(adapter); in qlcnic_disable_fw_dump_state()
1628 dev_info(&adapter->pdev->dev, "FW dump disabled\n"); in qlcnic_disable_fw_dump_state()
1633 bool qlcnic_check_fw_dump_state(struct qlcnic_adapter *adapter) in qlcnic_check_fw_dump_state() argument
1635 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_check_fw_dump_state()
1639 if (qlcnic_84xx_check(adapter)) { in qlcnic_check_fw_dump_state()
1640 val = QLCRDX(adapter->ahw, QLC_83XX_IDC_CTRL); in qlcnic_check_fw_dump_state()
1652 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_dump_flag() local
1653 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_get_dump_flag()
1656 netdev_err(adapter->netdev, "FW Dump not supported\n"); in qlcnic_get_dump_flag()
1665 if (!qlcnic_check_fw_dump_state(adapter)) in qlcnic_get_dump_flag()
1670 dump->version = adapter->fw_version; in qlcnic_get_dump_flag()
1681 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_get_dump_data() local
1682 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_get_dump_data()
1714 static int qlcnic_set_dump_mask(struct qlcnic_adapter *adapter, u32 mask) in qlcnic_set_dump_mask() argument
1716 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_set_dump_mask()
1717 struct net_device *netdev = adapter->netdev; in qlcnic_set_dump_mask()
1719 if (!qlcnic_check_fw_dump_state(adapter)) { in qlcnic_set_dump_mask()
1729 qlcnic_store_cap_mask(adapter, fw_dump->tmpl_hdr, mask); in qlcnic_set_dump_mask()
1738 struct qlcnic_adapter *adapter = netdev_priv(netdev); in qlcnic_set_dump() local
1739 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; in qlcnic_set_dump()
1751 if (!qlcnic_check_fw_dump_state(adapter)) { in qlcnic_set_dump()
1764 qlcnic_dev_request_reset(adapter, val->flag); in qlcnic_set_dump()
1773 ret = qlcnic_disable_fw_dump_state(adapter); in qlcnic_set_dump()
1783 ret = qlcnic_enable_fw_dump_state(adapter); in qlcnic_set_dump()
1788 qlcnic_dev_request_reset(adapter, val->flag); in qlcnic_set_dump()
1789 adapter->flags &= ~QLCNIC_FW_RESET_OWNER; in qlcnic_set_dump()
1794 if (test_bit(__QLCNIC_MAINTENANCE_MODE, &adapter->state)) in qlcnic_set_dump()
1813 ret = qlcnic_set_dump_mask(adapter, val->flag); in qlcnic_set_dump()