static void ql_stop_loopback(struct ql_adapter *qdev) { qdev->link_config &= ~CFG_LOOPBACK_PCS; ql_mb_set_port_cfg(qdev); if (test_bit(QL_LB_LINK_UP, &qdev->flags)) { netif_carrier_on(qdev->ndev); clear_bit(QL_LB_LINK_UP, &qdev->flags); } }
static int ql_start_loopback(struct ql_adapter *qdev) { if (netif_carrier_ok(qdev->ndev)) { set_bit(QL_LB_LINK_UP, &qdev->flags); netif_carrier_off(qdev->ndev); } else clear_bit(QL_LB_LINK_UP, &qdev->flags); qdev->link_config |= CFG_LOOPBACK_PCS; return ql_mb_set_port_cfg(qdev); }
static int ql_set_pauseparam(struct net_device *netdev, struct ethtool_pauseparam *pause) { struct ql_adapter *qdev = netdev_priv(netdev); int status = 0; if ((pause->rx_pause) && (pause->tx_pause)) qdev->link_config |= CFG_PAUSE_STD; else if (!pause->rx_pause && !pause->tx_pause) qdev->link_config &= ~CFG_PAUSE_STD; else return -EINVAL; status = ql_mb_set_port_cfg(qdev); return status; }