Lines Matching refs:qdev
186 static int ql_update_ring_coalescing(struct ql_adapter *qdev) in ql_update_ring_coalescing() argument
192 if (!netif_running(qdev->ndev)) in ql_update_ring_coalescing()
198 cqicb = (struct cqicb *)&qdev->rx_ring[qdev->rss_ring_count]; in ql_update_ring_coalescing()
199 if (le16_to_cpu(cqicb->irq_delay) != qdev->tx_coalesce_usecs || in ql_update_ring_coalescing()
201 qdev->tx_max_coalesced_frames) { in ql_update_ring_coalescing()
202 for (i = qdev->rss_ring_count; i < qdev->rx_ring_count; i++) { in ql_update_ring_coalescing()
203 rx_ring = &qdev->rx_ring[i]; in ql_update_ring_coalescing()
205 cqicb->irq_delay = cpu_to_le16(qdev->tx_coalesce_usecs); in ql_update_ring_coalescing()
207 cpu_to_le16(qdev->tx_max_coalesced_frames); in ql_update_ring_coalescing()
209 status = ql_write_cfg(qdev, cqicb, sizeof(*cqicb), in ql_update_ring_coalescing()
212 netif_err(qdev, ifup, qdev->ndev, in ql_update_ring_coalescing()
220 cqicb = (struct cqicb *)&qdev->rx_ring[0]; in ql_update_ring_coalescing()
221 if (le16_to_cpu(cqicb->irq_delay) != qdev->rx_coalesce_usecs || in ql_update_ring_coalescing()
223 qdev->rx_max_coalesced_frames) { in ql_update_ring_coalescing()
224 for (i = 0; i < qdev->rss_ring_count; i++, rx_ring++) { in ql_update_ring_coalescing()
225 rx_ring = &qdev->rx_ring[i]; in ql_update_ring_coalescing()
227 cqicb->irq_delay = cpu_to_le16(qdev->rx_coalesce_usecs); in ql_update_ring_coalescing()
229 cpu_to_le16(qdev->rx_max_coalesced_frames); in ql_update_ring_coalescing()
231 status = ql_write_cfg(qdev, cqicb, sizeof(*cqicb), in ql_update_ring_coalescing()
234 netif_err(qdev, ifup, qdev->ndev, in ql_update_ring_coalescing()
244 static void ql_update_stats(struct ql_adapter *qdev) in ql_update_stats() argument
248 u64 *iter = &qdev->nic_stats.tx_pkts; in ql_update_stats()
250 spin_lock(&qdev->stats_lock); in ql_update_stats()
251 if (ql_sem_spinlock(qdev, qdev->xg_sem_mask)) { in ql_update_stats()
252 netif_err(qdev, drv, qdev->ndev, in ql_update_stats()
260 if (ql_read_xgmac_reg64(qdev, i, &data)) { in ql_update_stats()
261 netif_err(qdev, drv, qdev->ndev, in ql_update_stats()
274 if (ql_read_xgmac_reg64(qdev, i, &data)) { in ql_update_stats()
275 netif_err(qdev, drv, qdev->ndev, in ql_update_stats()
291 if (ql_read_xgmac_reg64(qdev, i, &data)) { in ql_update_stats()
292 netif_err(qdev, drv, qdev->ndev, in ql_update_stats()
305 if (ql_read_xgmac_reg64(qdev, i, &data)) { in ql_update_stats()
306 netif_err(qdev, drv, qdev->ndev, in ql_update_stats()
318 if (ql_read_xgmac_reg64(qdev, 0x5b8, &data)) { in ql_update_stats()
319 netif_err(qdev, drv, qdev->ndev, in ql_update_stats()
325 ql_sem_unlock(qdev, qdev->xg_sem_mask); in ql_update_stats()
327 spin_unlock(&qdev->stats_lock); in ql_update_stats()
329 QL_DUMP_STAT(qdev); in ql_update_stats()
365 struct ql_adapter *qdev = netdev_priv(ndev); in ql_get_ethtool_stats() local
369 ql_update_stats(qdev); in ql_get_ethtool_stats()
372 char *p = (char *)qdev + in ql_get_ethtool_stats()
382 struct ql_adapter *qdev = netdev_priv(ndev); in ql_get_link_ksettings() local
388 if ((qdev->link_status & STS_LINK_TYPE_MASK) == in ql_get_link_ksettings()
414 struct ql_adapter *qdev = netdev_priv(ndev); in ql_get_drvinfo() local
420 (qdev->fw_rev_id & 0x00ff0000) >> 16, in ql_get_drvinfo()
421 (qdev->fw_rev_id & 0x0000ff00) >> 8, in ql_get_drvinfo()
422 (qdev->fw_rev_id & 0x000000ff)); in ql_get_drvinfo()
423 strlcpy(drvinfo->bus_info, pci_name(qdev->pdev), in ql_get_drvinfo()
429 struct ql_adapter *qdev = netdev_priv(ndev); in ql_get_wol() local
430 unsigned short ssys_dev = qdev->pdev->subsystem_device; in ql_get_wol()
436 wol->wolopts = qdev->wol; in ql_get_wol()
442 struct ql_adapter *qdev = netdev_priv(ndev); in ql_set_wol() local
443 unsigned short ssys_dev = qdev->pdev->subsystem_device; in ql_set_wol()
448 netif_info(qdev, drv, qdev->ndev, in ql_set_wol()
454 qdev->wol = wol->wolopts; in ql_set_wol()
456 netif_info(qdev, drv, qdev->ndev, "Set wol option 0x%x\n", qdev->wol); in ql_set_wol()
464 struct ql_adapter *qdev = netdev_priv(ndev); in ql_set_phys_id() local
469 if (ql_mb_get_led_cfg(qdev)) in ql_set_phys_id()
473 ql_mb_set_led_cfg(qdev, QL_LED_BLINK); in ql_set_phys_id()
478 if (ql_mb_set_led_cfg(qdev, qdev->led_config)) in ql_set_phys_id()
487 static int ql_start_loopback(struct ql_adapter *qdev) in ql_start_loopback() argument
489 if (netif_carrier_ok(qdev->ndev)) { in ql_start_loopback()
490 set_bit(QL_LB_LINK_UP, &qdev->flags); in ql_start_loopback()
491 netif_carrier_off(qdev->ndev); in ql_start_loopback()
493 clear_bit(QL_LB_LINK_UP, &qdev->flags); in ql_start_loopback()
494 qdev->link_config |= CFG_LOOPBACK_PCS; in ql_start_loopback()
495 return ql_mb_set_port_cfg(qdev); in ql_start_loopback()
498 static void ql_stop_loopback(struct ql_adapter *qdev) in ql_stop_loopback() argument
500 qdev->link_config &= ~CFG_LOOPBACK_PCS; in ql_stop_loopback()
501 ql_mb_set_port_cfg(qdev); in ql_stop_loopback()
502 if (test_bit(QL_LB_LINK_UP, &qdev->flags)) { in ql_stop_loopback()
503 netif_carrier_on(qdev->ndev); in ql_stop_loopback()
504 clear_bit(QL_LB_LINK_UP, &qdev->flags); in ql_stop_loopback()
518 void ql_check_lb_frame(struct ql_adapter *qdev, in ql_check_lb_frame() argument
526 atomic_dec(&qdev->lb_count); in ql_check_lb_frame()
531 static int ql_run_loopback_test(struct ql_adapter *qdev) in ql_run_loopback_test() argument
539 skb = netdev_alloc_skb(qdev->ndev, size); in ql_run_loopback_test()
546 rc = ql_lb_send(skb, qdev->ndev); in ql_run_loopback_test()
549 atomic_inc(&qdev->lb_count); in ql_run_loopback_test()
553 ql_clean_lb_rx_ring(&qdev->rx_ring[0], 128); in ql_run_loopback_test()
554 return atomic_read(&qdev->lb_count) ? -EIO : 0; in ql_run_loopback_test()
557 static int ql_loopback_test(struct ql_adapter *qdev, u64 *data) in ql_loopback_test() argument
559 *data = ql_start_loopback(qdev); in ql_loopback_test()
562 *data = ql_run_loopback_test(qdev); in ql_loopback_test()
564 ql_stop_loopback(qdev); in ql_loopback_test()
571 struct ql_adapter *qdev = netdev_priv(ndev); in ql_self_test() local
576 set_bit(QL_SELFTEST, &qdev->flags); in ql_self_test()
579 if (ql_loopback_test(qdev, &data[0])) in ql_self_test()
586 clear_bit(QL_SELFTEST, &qdev->flags); in ql_self_test()
592 netif_err(qdev, drv, qdev->ndev, in ql_self_test()
600 struct ql_adapter *qdev = netdev_priv(ndev); in ql_get_regs_len() local
602 if (!test_bit(QL_FRC_COREDUMP, &qdev->flags)) in ql_get_regs_len()
611 struct ql_adapter *qdev = netdev_priv(ndev); in ql_get_regs() local
613 ql_get_dump(qdev, p); in ql_get_regs()
614 qdev->core_is_dumped = 0; in ql_get_regs()
615 if (!test_bit(QL_FRC_COREDUMP, &qdev->flags)) in ql_get_regs()
623 struct ql_adapter *qdev = netdev_priv(dev); in ql_get_coalesce() local
625 c->rx_coalesce_usecs = qdev->rx_coalesce_usecs; in ql_get_coalesce()
626 c->tx_coalesce_usecs = qdev->tx_coalesce_usecs; in ql_get_coalesce()
638 c->rx_max_coalesced_frames = qdev->rx_max_coalesced_frames; in ql_get_coalesce()
639 c->tx_max_coalesced_frames = qdev->tx_max_coalesced_frames; in ql_get_coalesce()
646 struct ql_adapter *qdev = netdev_priv(ndev); in ql_set_coalesce() local
649 if (c->rx_coalesce_usecs > qdev->rx_ring_size / 2) in ql_set_coalesce()
654 if (c->tx_coalesce_usecs > qdev->tx_ring_size / 2) in ql_set_coalesce()
660 if (qdev->rx_coalesce_usecs == c->rx_coalesce_usecs && in ql_set_coalesce()
661 qdev->tx_coalesce_usecs == c->tx_coalesce_usecs && in ql_set_coalesce()
662 qdev->rx_max_coalesced_frames == c->rx_max_coalesced_frames && in ql_set_coalesce()
663 qdev->tx_max_coalesced_frames == c->tx_max_coalesced_frames) in ql_set_coalesce()
666 qdev->rx_coalesce_usecs = c->rx_coalesce_usecs; in ql_set_coalesce()
667 qdev->tx_coalesce_usecs = c->tx_coalesce_usecs; in ql_set_coalesce()
668 qdev->rx_max_coalesced_frames = c->rx_max_coalesced_frames; in ql_set_coalesce()
669 qdev->tx_max_coalesced_frames = c->tx_max_coalesced_frames; in ql_set_coalesce()
671 return ql_update_ring_coalescing(qdev); in ql_set_coalesce()
677 struct ql_adapter *qdev = netdev_priv(netdev); in ql_get_pauseparam() local
679 ql_mb_get_port_cfg(qdev); in ql_get_pauseparam()
680 if (qdev->link_config & CFG_PAUSE_STD) { in ql_get_pauseparam()
689 struct ql_adapter *qdev = netdev_priv(netdev); in ql_set_pauseparam() local
693 qdev->link_config |= CFG_PAUSE_STD; in ql_set_pauseparam()
695 qdev->link_config &= ~CFG_PAUSE_STD; in ql_set_pauseparam()
699 status = ql_mb_set_port_cfg(qdev); in ql_set_pauseparam()
705 struct ql_adapter *qdev = netdev_priv(ndev); in ql_get_msglevel() local
706 return qdev->msg_enable; in ql_get_msglevel()
711 struct ql_adapter *qdev = netdev_priv(ndev); in ql_set_msglevel() local
712 qdev->msg_enable = value; in ql_set_msglevel()