sky2 327 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(hw->dev[port]); sky2 330 drivers/net/ethernet/marvell/sky2.c if ( (sky2->flags & SKY2_FLAG_AUTO_SPEED) && sky2 372 drivers/net/ethernet/marvell/sky2.c if ( (sky2->flags & SKY2_FLAG_AUTO_SPEED) && sky2 417 drivers/net/ethernet/marvell/sky2.c if (sky2->flags & SKY2_FLAG_AUTO_SPEED) { sky2 419 drivers/net/ethernet/marvell/sky2.c if (sky2->advertising & ADVERTISED_1000baseT_Full) sky2 421 drivers/net/ethernet/marvell/sky2.c if (sky2->advertising & ADVERTISED_1000baseT_Half) sky2 423 drivers/net/ethernet/marvell/sky2.c if (sky2->advertising & ADVERTISED_100baseT_Full) sky2 425 drivers/net/ethernet/marvell/sky2.c if (sky2->advertising & ADVERTISED_100baseT_Half) sky2 427 drivers/net/ethernet/marvell/sky2.c if (sky2->advertising & ADVERTISED_10baseT_Full) sky2 429 drivers/net/ethernet/marvell/sky2.c if (sky2->advertising & ADVERTISED_10baseT_Half) sky2 433 drivers/net/ethernet/marvell/sky2.c if (sky2->advertising & ADVERTISED_1000baseT_Full) sky2 435 drivers/net/ethernet/marvell/sky2.c if (sky2->advertising & ADVERTISED_1000baseT_Half) sky2 448 drivers/net/ethernet/marvell/sky2.c switch (sky2->speed) { sky2 459 drivers/net/ethernet/marvell/sky2.c if (sky2->duplex == DUPLEX_FULL) { sky2 462 drivers/net/ethernet/marvell/sky2.c } else if (sky2->speed < SPEED_1000) sky2 463 drivers/net/ethernet/marvell/sky2.c sky2->flow_mode = FC_NONE; sky2 466 drivers/net/ethernet/marvell/sky2.c if (sky2->flags & SKY2_FLAG_AUTO_PAUSE) { sky2 468 drivers/net/ethernet/marvell/sky2.c adv |= copper_fc_adv[sky2->flow_mode]; sky2 470 drivers/net/ethernet/marvell/sky2.c adv |= fiber_fc_adv[sky2->flow_mode]; sky2 473 drivers/net/ethernet/marvell/sky2.c reg |= gm_fc_disable[sky2->flow_mode]; sky2 476 drivers/net/ethernet/marvell/sky2.c if (sky2->flow_mode & FC_RX) sky2 617 drivers/net/ethernet/marvell/sky2.c if (!(sky2->flags & SKY2_FLAG_AUTO_SPEED) || sky2 618 drivers/net/ethernet/marvell/sky2.c sky2->speed == SPEED_100) { sky2 686 drivers/net/ethernet/marvell/sky2.c if (sky2->flags & SKY2_FLAG_AUTO_SPEED) sky2 772 drivers/net/ethernet/marvell/sky2.c static void sky2_set_ipg(struct sky2_port *sky2) sky2 776 drivers/net/ethernet/marvell/sky2.c reg = gma_read16(sky2->hw, sky2->port, GM_SERIAL_MODE); sky2 778 drivers/net/ethernet/marvell/sky2.c if (sky2->speed > SPEED_100) sky2 782 drivers/net/ethernet/marvell/sky2.c gma_write16(sky2->hw, sky2->port, GM_SERIAL_MODE, reg); sky2 786 drivers/net/ethernet/marvell/sky2.c static void sky2_enable_rx_tx(struct sky2_port *sky2) sky2 788 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 789 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 798 drivers/net/ethernet/marvell/sky2.c static void sky2_phy_reinit(struct sky2_port *sky2) sky2 800 drivers/net/ethernet/marvell/sky2.c spin_lock_bh(&sky2->phy_lock); sky2 801 drivers/net/ethernet/marvell/sky2.c sky2_phy_init(sky2->hw, sky2->port); sky2 802 drivers/net/ethernet/marvell/sky2.c sky2_enable_rx_tx(sky2); sky2 803 drivers/net/ethernet/marvell/sky2.c spin_unlock_bh(&sky2->phy_lock); sky2 807 drivers/net/ethernet/marvell/sky2.c static void sky2_wol_init(struct sky2_port *sky2) sky2 809 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 810 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 824 drivers/net/ethernet/marvell/sky2.c save_mode = sky2->flow_mode; sky2 825 drivers/net/ethernet/marvell/sky2.c ctrl = sky2->advertising; sky2 827 drivers/net/ethernet/marvell/sky2.c sky2->advertising &= ~(ADVERTISED_1000baseT_Half|ADVERTISED_1000baseT_Full); sky2 828 drivers/net/ethernet/marvell/sky2.c sky2->flow_mode = FC_NONE; sky2 830 drivers/net/ethernet/marvell/sky2.c spin_lock_bh(&sky2->phy_lock); sky2 833 drivers/net/ethernet/marvell/sky2.c spin_unlock_bh(&sky2->phy_lock); sky2 835 drivers/net/ethernet/marvell/sky2.c sky2->flow_mode = save_mode; sky2 836 drivers/net/ethernet/marvell/sky2.c sky2->advertising = ctrl; sky2 845 drivers/net/ethernet/marvell/sky2.c sky2->netdev->dev_addr, ETH_ALEN); sky2 850 drivers/net/ethernet/marvell/sky2.c if (sky2->wol & WAKE_PHY) sky2 855 drivers/net/ethernet/marvell/sky2.c if (sky2->wol & WAKE_MAGIC) sky2 899 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(hw->dev[port]); sky2 929 drivers/net/ethernet/marvell/sky2.c spin_lock_bh(&sky2->phy_lock); sky2 932 drivers/net/ethernet/marvell/sky2.c spin_unlock_bh(&sky2->phy_lock); sky2 1100 drivers/net/ethernet/marvell/sky2.c static inline struct sky2_tx_le *get_tx_le(struct sky2_port *sky2, u16 *slot) sky2 1102 drivers/net/ethernet/marvell/sky2.c struct sky2_tx_le *le = sky2->tx_le + *slot; sky2 1104 drivers/net/ethernet/marvell/sky2.c *slot = RING_NEXT(*slot, sky2->tx_ring_size); sky2 1109 drivers/net/ethernet/marvell/sky2.c static void tx_init(struct sky2_port *sky2) sky2 1113 drivers/net/ethernet/marvell/sky2.c sky2->tx_prod = sky2->tx_cons = 0; sky2 1114 drivers/net/ethernet/marvell/sky2.c sky2->tx_tcpsum = 0; sky2 1115 drivers/net/ethernet/marvell/sky2.c sky2->tx_last_mss = 0; sky2 1116 drivers/net/ethernet/marvell/sky2.c netdev_reset_queue(sky2->netdev); sky2 1118 drivers/net/ethernet/marvell/sky2.c le = get_tx_le(sky2, &sky2->tx_prod); sky2 1121 drivers/net/ethernet/marvell/sky2.c sky2->tx_last_upper = 0; sky2 1133 drivers/net/ethernet/marvell/sky2.c static inline struct sky2_rx_le *sky2_next_rx(struct sky2_port *sky2) sky2 1135 drivers/net/ethernet/marvell/sky2.c struct sky2_rx_le *le = sky2->rx_le + sky2->rx_put; sky2 1136 drivers/net/ethernet/marvell/sky2.c sky2->rx_put = RING_NEXT(sky2->rx_put, RX_LE_SIZE); sky2 1141 drivers/net/ethernet/marvell/sky2.c static unsigned sky2_get_rx_threshold(struct sky2_port *sky2) sky2 1146 drivers/net/ethernet/marvell/sky2.c size = roundup(sky2->netdev->mtu + ETH_HLEN + VLAN_HLEN, 8); sky2 1152 drivers/net/ethernet/marvell/sky2.c static unsigned sky2_get_rx_data_size(struct sky2_port *sky2) sky2 1158 drivers/net/ethernet/marvell/sky2.c size = roundup(sky2->netdev->mtu + ETH_HLEN + VLAN_HLEN, 8); sky2 1160 drivers/net/ethernet/marvell/sky2.c sky2->rx_nfrags = size >> PAGE_SHIFT; sky2 1161 drivers/net/ethernet/marvell/sky2.c BUG_ON(sky2->rx_nfrags > ARRAY_SIZE(re->frag_addr)); sky2 1164 drivers/net/ethernet/marvell/sky2.c size -= sky2->rx_nfrags << PAGE_SHIFT; sky2 1176 drivers/net/ethernet/marvell/sky2.c static void sky2_rx_add(struct sky2_port *sky2, u8 op, sky2 1182 drivers/net/ethernet/marvell/sky2.c le = sky2_next_rx(sky2); sky2 1187 drivers/net/ethernet/marvell/sky2.c le = sky2_next_rx(sky2); sky2 1194 drivers/net/ethernet/marvell/sky2.c static void sky2_rx_submit(struct sky2_port *sky2, sky2 1199 drivers/net/ethernet/marvell/sky2.c sky2_rx_add(sky2, OP_PACKET, re->data_addr, sky2->rx_data_size); sky2 1202 drivers/net/ethernet/marvell/sky2.c sky2_rx_add(sky2, OP_BUFFER, re->frag_addr[i], PAGE_SIZE); sky2 1265 drivers/net/ethernet/marvell/sky2.c static void rx_set_checksum(struct sky2_port *sky2) sky2 1267 drivers/net/ethernet/marvell/sky2.c struct sky2_rx_le *le = sky2_next_rx(sky2); sky2 1273 drivers/net/ethernet/marvell/sky2.c sky2_write32(sky2->hw, sky2 1274 drivers/net/ethernet/marvell/sky2.c Q_ADDR(rxqaddr[sky2->port], Q_CSR), sky2 1275 drivers/net/ethernet/marvell/sky2.c (sky2->netdev->features & NETIF_F_RXCSUM) sky2 1282 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 1283 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 1289 drivers/net/ethernet/marvell/sky2.c sky2_write32(hw, SK_REG(sky2->port, RSS_CFG), HASH_ALL); sky2 1298 drivers/net/ethernet/marvell/sky2.c sky2_write32(hw, SK_REG(sky2->port, RSS_KEY + i * 4), sky2 1302 drivers/net/ethernet/marvell/sky2.c sky2_write32(hw, SK_REG(sky2->port, RX_GMF_CTRL_T), sky2 1305 drivers/net/ethernet/marvell/sky2.c sky2_write32(hw, Q_ADDR(rxqaddr[sky2->port], Q_CSR), sky2 1308 drivers/net/ethernet/marvell/sky2.c sky2_write32(hw, Q_ADDR(rxqaddr[sky2->port], Q_CSR), sky2 1322 drivers/net/ethernet/marvell/sky2.c static void sky2_rx_stop(struct sky2_port *sky2) sky2 1324 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 1325 drivers/net/ethernet/marvell/sky2.c unsigned rxq = rxqaddr[sky2->port]; sky2 1336 drivers/net/ethernet/marvell/sky2.c netdev_warn(sky2->netdev, "receiver stop failed\n"); sky2 1345 drivers/net/ethernet/marvell/sky2.c static void sky2_rx_clean(struct sky2_port *sky2) sky2 1349 drivers/net/ethernet/marvell/sky2.c if (sky2->rx_le) sky2 1350 drivers/net/ethernet/marvell/sky2.c memset(sky2->rx_le, 0, RX_LE_BYTES); sky2 1352 drivers/net/ethernet/marvell/sky2.c for (i = 0; i < sky2->rx_pending; i++) { sky2 1353 drivers/net/ethernet/marvell/sky2.c struct rx_ring_info *re = sky2->rx_ring + i; sky2 1356 drivers/net/ethernet/marvell/sky2.c sky2_rx_unmap_skb(sky2->hw->pdev, re); sky2 1367 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 1368 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 1382 drivers/net/ethernet/marvell/sky2.c spin_lock_bh(&sky2->phy_lock); sky2 1383 drivers/net/ethernet/marvell/sky2.c err = __gm_phy_read(hw, sky2->port, data->reg_num & 0x1f, &val); sky2 1384 drivers/net/ethernet/marvell/sky2.c spin_unlock_bh(&sky2->phy_lock); sky2 1391 drivers/net/ethernet/marvell/sky2.c spin_lock_bh(&sky2->phy_lock); sky2 1392 drivers/net/ethernet/marvell/sky2.c err = gm_phy_write(hw, sky2->port, data->reg_num & 0x1f, sky2 1394 drivers/net/ethernet/marvell/sky2.c spin_unlock_bh(&sky2->phy_lock); sky2 1404 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 1405 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 1406 drivers/net/ethernet/marvell/sky2.c u16 port = sky2->port; sky2 1439 drivers/net/ethernet/marvell/sky2.c static struct sk_buff *sky2_rx_alloc(struct sky2_port *sky2, gfp_t gfp) sky2 1444 drivers/net/ethernet/marvell/sky2.c skb = __netdev_alloc_skb(sky2->netdev, sky2 1445 drivers/net/ethernet/marvell/sky2.c sky2->rx_data_size + sky2_rx_pad(sky2->hw), sky2 1450 drivers/net/ethernet/marvell/sky2.c if (sky2->hw->flags & SKY2_HW_RAM_BUFFER) { sky2 1463 drivers/net/ethernet/marvell/sky2.c for (i = 0; i < sky2->rx_nfrags; i++) { sky2 1478 drivers/net/ethernet/marvell/sky2.c static inline void sky2_rx_update(struct sky2_port *sky2, unsigned rxq) sky2 1480 drivers/net/ethernet/marvell/sky2.c sky2_put_idx(sky2->hw, rxq, sky2->rx_put); sky2 1483 drivers/net/ethernet/marvell/sky2.c static int sky2_alloc_rx_skbs(struct sky2_port *sky2) sky2 1485 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 1488 drivers/net/ethernet/marvell/sky2.c sky2->rx_data_size = sky2_get_rx_data_size(sky2); sky2 1491 drivers/net/ethernet/marvell/sky2.c for (i = 0; i < sky2->rx_pending; i++) { sky2 1492 drivers/net/ethernet/marvell/sky2.c struct rx_ring_info *re = sky2->rx_ring + i; sky2 1494 drivers/net/ethernet/marvell/sky2.c re->skb = sky2_rx_alloc(sky2, GFP_KERNEL); sky2 1498 drivers/net/ethernet/marvell/sky2.c if (sky2_rx_map_skb(hw->pdev, re, sky2->rx_data_size)) { sky2 1516 drivers/net/ethernet/marvell/sky2.c static void sky2_rx_start(struct sky2_port *sky2) sky2 1518 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 1520 drivers/net/ethernet/marvell/sky2.c unsigned rxq = rxqaddr[sky2->port]; sky2 1523 drivers/net/ethernet/marvell/sky2.c sky2->rx_put = sky2->rx_next = 0; sky2 1536 drivers/net/ethernet/marvell/sky2.c sky2_prefetch_init(hw, rxq, sky2->rx_le_map, RX_LE_SIZE - 1); sky2 1539 drivers/net/ethernet/marvell/sky2.c rx_set_checksum(sky2); sky2 1542 drivers/net/ethernet/marvell/sky2.c rx_set_rss(sky2->netdev, sky2->netdev->features); sky2 1545 drivers/net/ethernet/marvell/sky2.c for (i = 0; i < sky2->rx_pending; i++) { sky2 1546 drivers/net/ethernet/marvell/sky2.c re = sky2->rx_ring + i; sky2 1547 drivers/net/ethernet/marvell/sky2.c sky2_rx_submit(sky2, re); sky2 1556 drivers/net/ethernet/marvell/sky2.c thresh = sky2_get_rx_threshold(sky2); sky2 1558 drivers/net/ethernet/marvell/sky2.c sky2_write32(hw, SK_REG(sky2->port, RX_GMF_CTRL_T), RX_TRUNC_OFF); sky2 1560 drivers/net/ethernet/marvell/sky2.c sky2_write16(hw, SK_REG(sky2->port, RX_GMF_TR_THR), thresh); sky2 1561 drivers/net/ethernet/marvell/sky2.c sky2_write32(hw, SK_REG(sky2->port, RX_GMF_CTRL_T), RX_TRUNC_ON); sky2 1565 drivers/net/ethernet/marvell/sky2.c sky2_rx_update(sky2, rxq); sky2 1576 drivers/net/ethernet/marvell/sky2.c sky2_write32(hw, SK_REG(sky2->port, RX_GMF_CTRL_T), RX_MACSEC_FLUSH_OFF); sky2 1581 drivers/net/ethernet/marvell/sky2.c sky2_write16(hw, SK_REG(sky2->port, RX_GMF_FL_CTRL), sky2 1585 drivers/net/ethernet/marvell/sky2.c sky2_write32(hw, Q_ADDR(txqaddr[sky2->port], Q_TEST), sky2 1590 drivers/net/ethernet/marvell/sky2.c static int sky2_alloc_buffers(struct sky2_port *sky2) sky2 1592 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 1595 drivers/net/ethernet/marvell/sky2.c sky2->tx_le = pci_alloc_consistent(hw->pdev, sky2 1596 drivers/net/ethernet/marvell/sky2.c sky2->tx_ring_size * sky2 1598 drivers/net/ethernet/marvell/sky2.c &sky2->tx_le_map); sky2 1599 drivers/net/ethernet/marvell/sky2.c if (!sky2->tx_le) sky2 1602 drivers/net/ethernet/marvell/sky2.c sky2->tx_ring = kcalloc(sky2->tx_ring_size, sizeof(struct tx_ring_info), sky2 1604 drivers/net/ethernet/marvell/sky2.c if (!sky2->tx_ring) sky2 1607 drivers/net/ethernet/marvell/sky2.c sky2->rx_le = pci_zalloc_consistent(hw->pdev, RX_LE_BYTES, sky2 1608 drivers/net/ethernet/marvell/sky2.c &sky2->rx_le_map); sky2 1609 drivers/net/ethernet/marvell/sky2.c if (!sky2->rx_le) sky2 1612 drivers/net/ethernet/marvell/sky2.c sky2->rx_ring = kcalloc(sky2->rx_pending, sizeof(struct rx_ring_info), sky2 1614 drivers/net/ethernet/marvell/sky2.c if (!sky2->rx_ring) sky2 1617 drivers/net/ethernet/marvell/sky2.c return sky2_alloc_rx_skbs(sky2); sky2 1622 drivers/net/ethernet/marvell/sky2.c static void sky2_free_buffers(struct sky2_port *sky2) sky2 1624 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 1626 drivers/net/ethernet/marvell/sky2.c sky2_rx_clean(sky2); sky2 1628 drivers/net/ethernet/marvell/sky2.c if (sky2->rx_le) { sky2 1630 drivers/net/ethernet/marvell/sky2.c sky2->rx_le, sky2->rx_le_map); sky2 1631 drivers/net/ethernet/marvell/sky2.c sky2->rx_le = NULL; sky2 1633 drivers/net/ethernet/marvell/sky2.c if (sky2->tx_le) { sky2 1635 drivers/net/ethernet/marvell/sky2.c sky2->tx_ring_size * sizeof(struct sky2_tx_le), sky2 1636 drivers/net/ethernet/marvell/sky2.c sky2->tx_le, sky2->tx_le_map); sky2 1637 drivers/net/ethernet/marvell/sky2.c sky2->tx_le = NULL; sky2 1639 drivers/net/ethernet/marvell/sky2.c kfree(sky2->tx_ring); sky2 1640 drivers/net/ethernet/marvell/sky2.c kfree(sky2->rx_ring); sky2 1642 drivers/net/ethernet/marvell/sky2.c sky2->tx_ring = NULL; sky2 1643 drivers/net/ethernet/marvell/sky2.c sky2->rx_ring = NULL; sky2 1646 drivers/net/ethernet/marvell/sky2.c static void sky2_hw_up(struct sky2_port *sky2) sky2 1648 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 1649 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 1652 drivers/net/ethernet/marvell/sky2.c struct net_device *otherdev = hw->dev[sky2->port^1]; sky2 1654 drivers/net/ethernet/marvell/sky2.c tx_init(sky2); sky2 1676 drivers/net/ethernet/marvell/sky2.c netdev_dbg(sky2->netdev, "ram buffer %dK\n", ramsize); sky2 1701 drivers/net/ethernet/marvell/sky2.c sky2_prefetch_init(hw, txqaddr[port], sky2->tx_le_map, sky2 1702 drivers/net/ethernet/marvell/sky2.c sky2->tx_ring_size - 1); sky2 1704 drivers/net/ethernet/marvell/sky2.c sky2_vlan_mode(sky2->netdev, sky2->netdev->features); sky2 1705 drivers/net/ethernet/marvell/sky2.c netdev_update_features(sky2->netdev); sky2 1707 drivers/net/ethernet/marvell/sky2.c sky2_rx_start(sky2); sky2 1736 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 1737 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 1738 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 1744 drivers/net/ethernet/marvell/sky2.c err = sky2_alloc_buffers(sky2); sky2 1752 drivers/net/ethernet/marvell/sky2.c sky2_hw_up(sky2); sky2 1766 drivers/net/ethernet/marvell/sky2.c netif_info(sky2, ifup, dev, "enabling interface\n"); sky2 1771 drivers/net/ethernet/marvell/sky2.c sky2_free_buffers(sky2); sky2 1776 drivers/net/ethernet/marvell/sky2.c static inline int tx_inuse(const struct sky2_port *sky2) sky2 1778 drivers/net/ethernet/marvell/sky2.c return (sky2->tx_prod - sky2->tx_cons) & (sky2->tx_ring_size - 1); sky2 1782 drivers/net/ethernet/marvell/sky2.c static inline int tx_avail(const struct sky2_port *sky2) sky2 1784 drivers/net/ethernet/marvell/sky2.c return sky2->tx_pending - tx_inuse(sky2); sky2 1828 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 1829 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 1839 drivers/net/ethernet/marvell/sky2.c if (unlikely(tx_avail(sky2) < tx_le_req(skb))) sky2 1848 drivers/net/ethernet/marvell/sky2.c slot = sky2->tx_prod; sky2 1849 drivers/net/ethernet/marvell/sky2.c netif_printk(sky2, tx_queued, KERN_DEBUG, dev, sky2 1854 drivers/net/ethernet/marvell/sky2.c if (upper != sky2->tx_last_upper) { sky2 1855 drivers/net/ethernet/marvell/sky2.c le = get_tx_le(sky2, &slot); sky2 1857 drivers/net/ethernet/marvell/sky2.c sky2->tx_last_upper = upper; sky2 1868 drivers/net/ethernet/marvell/sky2.c if (mss != sky2->tx_last_mss) { sky2 1869 drivers/net/ethernet/marvell/sky2.c le = get_tx_le(sky2, &slot); sky2 1876 drivers/net/ethernet/marvell/sky2.c sky2->tx_last_mss = mss; sky2 1885 drivers/net/ethernet/marvell/sky2.c le = get_tx_le(sky2, &slot); sky2 1910 drivers/net/ethernet/marvell/sky2.c if (tcpsum != sky2->tx_tcpsum) { sky2 1911 drivers/net/ethernet/marvell/sky2.c sky2->tx_tcpsum = tcpsum; sky2 1913 drivers/net/ethernet/marvell/sky2.c le = get_tx_le(sky2, &slot); sky2 1922 drivers/net/ethernet/marvell/sky2.c re = sky2->tx_ring + slot; sky2 1927 drivers/net/ethernet/marvell/sky2.c le = get_tx_le(sky2, &slot); sky2 1944 drivers/net/ethernet/marvell/sky2.c if (upper != sky2->tx_last_upper) { sky2 1945 drivers/net/ethernet/marvell/sky2.c le = get_tx_le(sky2, &slot); sky2 1947 drivers/net/ethernet/marvell/sky2.c sky2->tx_last_upper = upper; sky2 1951 drivers/net/ethernet/marvell/sky2.c re = sky2->tx_ring + slot; sky2 1956 drivers/net/ethernet/marvell/sky2.c le = get_tx_le(sky2, &slot); sky2 1966 drivers/net/ethernet/marvell/sky2.c sky2->tx_prod = slot; sky2 1968 drivers/net/ethernet/marvell/sky2.c if (tx_avail(sky2) <= MAX_SKB_TX_LE) sky2 1972 drivers/net/ethernet/marvell/sky2.c sky2_put_idx(hw, txqaddr[sky2->port], sky2->tx_prod); sky2 1977 drivers/net/ethernet/marvell/sky2.c for (i = sky2->tx_prod; i != slot; i = RING_NEXT(i, sky2->tx_ring_size)) { sky2 1978 drivers/net/ethernet/marvell/sky2.c re = sky2->tx_ring + i; sky2 2000 drivers/net/ethernet/marvell/sky2.c static void sky2_tx_complete(struct sky2_port *sky2, u16 done) sky2 2002 drivers/net/ethernet/marvell/sky2.c struct net_device *dev = sky2->netdev; sky2 2006 drivers/net/ethernet/marvell/sky2.c BUG_ON(done >= sky2->tx_ring_size); sky2 2008 drivers/net/ethernet/marvell/sky2.c for (idx = sky2->tx_cons; idx != done; sky2 2009 drivers/net/ethernet/marvell/sky2.c idx = RING_NEXT(idx, sky2->tx_ring_size)) { sky2 2010 drivers/net/ethernet/marvell/sky2.c struct tx_ring_info *re = sky2->tx_ring + idx; sky2 2013 drivers/net/ethernet/marvell/sky2.c sky2_tx_unmap(sky2->hw->pdev, re); sky2 2016 drivers/net/ethernet/marvell/sky2.c netif_printk(sky2, tx_done, KERN_DEBUG, dev, sky2 2025 drivers/net/ethernet/marvell/sky2.c sky2->tx_next = RING_NEXT(idx, sky2->tx_ring_size); sky2 2029 drivers/net/ethernet/marvell/sky2.c sky2->tx_cons = idx; sky2 2034 drivers/net/ethernet/marvell/sky2.c u64_stats_update_begin(&sky2->tx_stats.syncp); sky2 2035 drivers/net/ethernet/marvell/sky2.c sky2->tx_stats.packets += pkts_compl; sky2 2036 drivers/net/ethernet/marvell/sky2.c sky2->tx_stats.bytes += bytes_compl; sky2 2037 drivers/net/ethernet/marvell/sky2.c u64_stats_update_end(&sky2->tx_stats.syncp); sky2 2064 drivers/net/ethernet/marvell/sky2.c static void sky2_hw_down(struct sky2_port *sky2) sky2 2066 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 2067 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 2099 drivers/net/ethernet/marvell/sky2.c sky2_rx_stop(sky2); sky2 2101 drivers/net/ethernet/marvell/sky2.c spin_lock_bh(&sky2->phy_lock); sky2 2103 drivers/net/ethernet/marvell/sky2.c spin_unlock_bh(&sky2->phy_lock); sky2 2108 drivers/net/ethernet/marvell/sky2.c sky2_tx_complete(sky2, sky2->tx_prod); sky2 2114 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 2115 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 2118 drivers/net/ethernet/marvell/sky2.c if (!sky2->tx_le) sky2 2121 drivers/net/ethernet/marvell/sky2.c netif_info(sky2, ifdown, dev, "disabling interface\n"); sky2 2135 drivers/net/ethernet/marvell/sky2.c imask &= ~portirq_msk[sky2->port]; sky2 2143 drivers/net/ethernet/marvell/sky2.c sky2_hw_down(sky2); sky2 2145 drivers/net/ethernet/marvell/sky2.c sky2_free_buffers(sky2); sky2 2172 drivers/net/ethernet/marvell/sky2.c static void sky2_link_up(struct sky2_port *sky2) sky2 2174 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 2175 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 2183 drivers/net/ethernet/marvell/sky2.c sky2_set_ipg(sky2); sky2 2185 drivers/net/ethernet/marvell/sky2.c sky2_enable_rx_tx(sky2); sky2 2189 drivers/net/ethernet/marvell/sky2.c netif_carrier_on(sky2->netdev); sky2 2197 drivers/net/ethernet/marvell/sky2.c netif_info(sky2, link, sky2->netdev, sky2 2199 drivers/net/ethernet/marvell/sky2.c sky2->speed, sky2 2200 drivers/net/ethernet/marvell/sky2.c sky2->duplex == DUPLEX_FULL ? "full" : "half", sky2 2201 drivers/net/ethernet/marvell/sky2.c fc_name[sky2->flow_status]); sky2 2204 drivers/net/ethernet/marvell/sky2.c static void sky2_link_down(struct sky2_port *sky2) sky2 2206 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 2207 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 2216 drivers/net/ethernet/marvell/sky2.c netif_carrier_off(sky2->netdev); sky2 2221 drivers/net/ethernet/marvell/sky2.c netif_info(sky2, link, sky2->netdev, "Link is down\n"); sky2 2234 drivers/net/ethernet/marvell/sky2.c static int sky2_autoneg_done(struct sky2_port *sky2, u16 aux) sky2 2236 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 2237 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 2243 drivers/net/ethernet/marvell/sky2.c netdev_err(sky2->netdev, "remote fault\n"); sky2 2248 drivers/net/ethernet/marvell/sky2.c netdev_err(sky2->netdev, "speed/duplex mismatch\n"); sky2 2252 drivers/net/ethernet/marvell/sky2.c sky2->speed = sky2_phy_speed(hw, aux); sky2 2253 drivers/net/ethernet/marvell/sky2.c sky2->duplex = (aux & PHY_M_PS_FULL_DUP) ? DUPLEX_FULL : DUPLEX_HALF; sky2 2273 drivers/net/ethernet/marvell/sky2.c sky2->flow_status = FC_NONE; sky2 2276 drivers/net/ethernet/marvell/sky2.c sky2->flow_status = FC_BOTH; sky2 2278 drivers/net/ethernet/marvell/sky2.c sky2->flow_status = FC_RX; sky2 2281 drivers/net/ethernet/marvell/sky2.c sky2->flow_status = FC_TX; sky2 2284 drivers/net/ethernet/marvell/sky2.c if (sky2->duplex == DUPLEX_HALF && sky2->speed < SPEED_1000 && sky2 2286 drivers/net/ethernet/marvell/sky2.c sky2->flow_status = FC_NONE; sky2 2288 drivers/net/ethernet/marvell/sky2.c if (sky2->flow_status & FC_TX) sky2 2300 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 2306 drivers/net/ethernet/marvell/sky2.c spin_lock(&sky2->phy_lock); sky2 2310 drivers/net/ethernet/marvell/sky2.c netif_info(sky2, intr, sky2->netdev, "phy interrupt status 0x%x 0x%x\n", sky2 2314 drivers/net/ethernet/marvell/sky2.c if (sky2_autoneg_done(sky2, phystat) == 0 && sky2 2316 drivers/net/ethernet/marvell/sky2.c sky2_link_up(sky2); sky2 2321 drivers/net/ethernet/marvell/sky2.c sky2->speed = sky2_phy_speed(hw, phystat); sky2 2324 drivers/net/ethernet/marvell/sky2.c sky2->duplex = sky2 2329 drivers/net/ethernet/marvell/sky2.c sky2_link_up(sky2); sky2 2331 drivers/net/ethernet/marvell/sky2.c sky2_link_down(sky2); sky2 2334 drivers/net/ethernet/marvell/sky2.c spin_unlock(&sky2->phy_lock); sky2 2340 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(hw->dev[0]); sky2 2355 drivers/net/ethernet/marvell/sky2.c sky2_link_up(sky2); sky2 2363 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 2364 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 2366 drivers/net/ethernet/marvell/sky2.c netif_err(sky2, timer, dev, "tx timeout\n"); sky2 2369 drivers/net/ethernet/marvell/sky2.c sky2->tx_cons, sky2->tx_prod, sky2 2370 drivers/net/ethernet/marvell/sky2.c sky2_read16(hw, sky2->port == 0 ? STAT_TXA1_RIDX : STAT_TXA2_RIDX), sky2 2371 drivers/net/ethernet/marvell/sky2.c sky2_read16(hw, Q_ADDR(txqaddr[sky2->port], Q_DONE))); sky2 2379 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 2380 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 2381 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 2407 drivers/net/ethernet/marvell/sky2.c sky2_rx_stop(sky2); sky2 2408 drivers/net/ethernet/marvell/sky2.c sky2_rx_clean(sky2); sky2 2414 drivers/net/ethernet/marvell/sky2.c if (sky2->speed > SPEED_100) sky2 2426 drivers/net/ethernet/marvell/sky2.c err = sky2_alloc_rx_skbs(sky2); sky2 2428 drivers/net/ethernet/marvell/sky2.c sky2_rx_start(sky2); sky2 2430 drivers/net/ethernet/marvell/sky2.c sky2_rx_clean(sky2); sky2 2459 drivers/net/ethernet/marvell/sky2.c static struct sk_buff *receive_copy(struct sky2_port *sky2, sky2 2465 drivers/net/ethernet/marvell/sky2.c skb = netdev_alloc_skb_ip_align(sky2->netdev, length); sky2 2467 drivers/net/ethernet/marvell/sky2.c pci_dma_sync_single_for_cpu(sky2->hw->pdev, re->data_addr, sky2 2475 drivers/net/ethernet/marvell/sky2.c pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr, sky2 2519 drivers/net/ethernet/marvell/sky2.c static struct sk_buff *receive_new(struct sky2_port *sky2, sky2 2525 drivers/net/ethernet/marvell/sky2.c unsigned hdr_space = sky2->rx_data_size; sky2 2527 drivers/net/ethernet/marvell/sky2.c nre.skb = sky2_rx_alloc(sky2, GFP_ATOMIC); sky2 2531 drivers/net/ethernet/marvell/sky2.c if (sky2_rx_map_skb(sky2->hw->pdev, &nre, hdr_space)) sky2 2535 drivers/net/ethernet/marvell/sky2.c sky2_rx_unmap_skb(sky2->hw->pdev, re); sky2 2558 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 2559 drivers/net/ethernet/marvell/sky2.c struct rx_ring_info *re = sky2->rx_ring + sky2->rx_next; sky2 2563 drivers/net/ethernet/marvell/sky2.c netif_printk(sky2, rx_status, KERN_DEBUG, dev, sky2 2565 drivers/net/ethernet/marvell/sky2.c sky2->rx_next, status, length); sky2 2567 drivers/net/ethernet/marvell/sky2.c sky2->rx_next = (sky2->rx_next + 1) % sky2->rx_pending; sky2 2568 drivers/net/ethernet/marvell/sky2.c prefetch(sky2->rx_ring + sky2->rx_next); sky2 2577 drivers/net/ethernet/marvell/sky2.c if (sky2->hw->chip_id == CHIP_ID_YUKON_FE_P && sky2 2578 drivers/net/ethernet/marvell/sky2.c sky2->hw->chip_rev == CHIP_REV_YU_FE2_A0 && sky2 2594 drivers/net/ethernet/marvell/sky2.c skb = receive_copy(sky2, re, length); sky2 2596 drivers/net/ethernet/marvell/sky2.c skb = receive_new(sky2, re, length); sky2 2601 drivers/net/ethernet/marvell/sky2.c sky2_rx_submit(sky2, re); sky2 2609 drivers/net/ethernet/marvell/sky2.c netif_info(sky2, rx_err, dev, sky2 2618 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 2621 drivers/net/ethernet/marvell/sky2.c sky2_tx_complete(sky2, last); sky2 2624 drivers/net/ethernet/marvell/sky2.c if (tx_avail(sky2) > MAX_SKB_TX_LE + 4) sky2 2629 drivers/net/ethernet/marvell/sky2.c static inline void sky2_skb_rx(const struct sky2_port *sky2, sky2 2635 drivers/net/ethernet/marvell/sky2.c napi_gro_receive(&sky2->hw->napi, skb); sky2 2642 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 2647 drivers/net/ethernet/marvell/sky2.c u64_stats_update_begin(&sky2->rx_stats.syncp); sky2 2648 drivers/net/ethernet/marvell/sky2.c sky2->rx_stats.packets += packets; sky2 2649 drivers/net/ethernet/marvell/sky2.c sky2->rx_stats.bytes += bytes; sky2 2650 drivers/net/ethernet/marvell/sky2.c u64_stats_update_end(&sky2->rx_stats.syncp); sky2 2652 drivers/net/ethernet/marvell/sky2.c sky2->last_rx = jiffies; sky2 2656 drivers/net/ethernet/marvell/sky2.c static void sky2_rx_checksum(struct sky2_port *sky2, u32 status) sky2 2659 drivers/net/ethernet/marvell/sky2.c BUG_ON(sky2->hw->flags & SKY2_HW_NEW_LE); sky2 2667 drivers/net/ethernet/marvell/sky2.c struct sk_buff *skb = sky2->rx_ring[sky2->rx_next].skb; sky2 2671 drivers/net/ethernet/marvell/sky2.c dev_notice(&sky2->hw->pdev->dev, sky2 2673 drivers/net/ethernet/marvell/sky2.c sky2->netdev->name, status); sky2 2679 drivers/net/ethernet/marvell/sky2.c sky2->netdev->features &= ~NETIF_F_RXCSUM; sky2 2680 drivers/net/ethernet/marvell/sky2.c sky2_write32(sky2->hw, Q_ADDR(rxqaddr[sky2->port], Q_CSR), sky2 2685 drivers/net/ethernet/marvell/sky2.c static void sky2_rx_tag(struct sky2_port *sky2, u16 length) sky2 2689 drivers/net/ethernet/marvell/sky2.c skb = sky2->rx_ring[sky2->rx_next].skb; sky2 2693 drivers/net/ethernet/marvell/sky2.c static void sky2_rx_hash(struct sky2_port *sky2, u32 status) sky2 2697 drivers/net/ethernet/marvell/sky2.c skb = sky2->rx_ring[sky2->rx_next].skb; sky2 2713 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2; sky2 2729 drivers/net/ethernet/marvell/sky2.c sky2 = netdev_priv(dev); sky2 2754 drivers/net/ethernet/marvell/sky2.c sky2_skb_rx(sky2, skb); sky2 2762 drivers/net/ethernet/marvell/sky2.c sky2_rx_tag(sky2, length); sky2 2766 drivers/net/ethernet/marvell/sky2.c sky2_rx_tag(sky2, length); sky2 2770 drivers/net/ethernet/marvell/sky2.c sky2_rx_checksum(sky2, status); sky2 2774 drivers/net/ethernet/marvell/sky2.c sky2_rx_hash(sky2, status); sky2 2892 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 2895 drivers/net/ethernet/marvell/sky2.c netif_info(sky2, intr, dev, "mac interrupt status 0x%x\n", status); sky2 2929 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 2930 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 2931 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 2939 drivers/net/ethernet/marvell/sky2.c if (sky2->check.last == sky2->last_rx && sky2 2940 drivers/net/ethernet/marvell/sky2.c ((mac_rp == sky2->check.mac_rp && sky2 2941 drivers/net/ethernet/marvell/sky2.c mac_lev != 0 && mac_lev >= sky2->check.mac_lev) || sky2 2943 drivers/net/ethernet/marvell/sky2.c (fifo_rp == sky2->check.fifo_rp && sky2 2944 drivers/net/ethernet/marvell/sky2.c fifo_lev != 0 && fifo_lev >= sky2->check.fifo_lev))) { sky2 2951 drivers/net/ethernet/marvell/sky2.c sky2->check.last = sky2->last_rx; sky2 2952 drivers/net/ethernet/marvell/sky2.c sky2->check.mac_rp = mac_rp; sky2 2953 drivers/net/ethernet/marvell/sky2.c sky2->check.mac_lev = mac_lev; sky2 2954 drivers/net/ethernet/marvell/sky2.c sky2->check.fifo_rp = fifo_rp; sky2 2955 drivers/net/ethernet/marvell/sky2.c sky2->check.fifo_lev = fifo_lev; sky2 3075 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3077 drivers/net/ethernet/marvell/sky2.c napi_schedule(&sky2->hw->napi); sky2 3470 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3477 drivers/net/ethernet/marvell/sky2.c sky2_hw_down(sky2); sky2 3488 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3493 drivers/net/ethernet/marvell/sky2.c sky2_hw_up(sky2); sky2 3527 drivers/net/ethernet/marvell/sky2.c const struct sky2_port *sky2 = netdev_priv(dev); sky2 3529 drivers/net/ethernet/marvell/sky2.c wol->supported = sky2_wol_supported(sky2->hw); sky2 3530 drivers/net/ethernet/marvell/sky2.c wol->wolopts = sky2->wol; sky2 3535 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3536 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 3540 drivers/net/ethernet/marvell/sky2.c if ((wol->wolopts & ~sky2_wol_supported(sky2->hw)) || sky2 3544 drivers/net/ethernet/marvell/sky2.c sky2->wol = wol->wolopts; sky2 3548 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3550 drivers/net/ethernet/marvell/sky2.c if (sky2->wol) sky2 3578 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3579 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 3586 drivers/net/ethernet/marvell/sky2.c cmd->base.speed = sky2->speed; sky2 3594 drivers/net/ethernet/marvell/sky2.c advertising = sky2->advertising; sky2 3595 drivers/net/ethernet/marvell/sky2.c cmd->base.autoneg = (sky2->flags & SKY2_FLAG_AUTO_SPEED) sky2 3597 drivers/net/ethernet/marvell/sky2.c cmd->base.duplex = sky2->duplex; sky2 3610 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3611 drivers/net/ethernet/marvell/sky2.c const struct sky2_hw *hw = sky2->hw; sky2 3623 drivers/net/ethernet/marvell/sky2.c sky2->advertising = new_advertising | sky2 3627 drivers/net/ethernet/marvell/sky2.c sky2->advertising = new_advertising | sky2 3631 drivers/net/ethernet/marvell/sky2.c sky2->flags |= SKY2_FLAG_AUTO_SPEED; sky2 3632 drivers/net/ethernet/marvell/sky2.c sky2->duplex = -1; sky2 3633 drivers/net/ethernet/marvell/sky2.c sky2->speed = -1; sky2 3671 drivers/net/ethernet/marvell/sky2.c sky2->speed = speed; sky2 3672 drivers/net/ethernet/marvell/sky2.c sky2->duplex = cmd->base.duplex; sky2 3673 drivers/net/ethernet/marvell/sky2.c sky2->flags &= ~SKY2_FLAG_AUTO_SPEED; sky2 3677 drivers/net/ethernet/marvell/sky2.c sky2_phy_reinit(sky2); sky2 3687 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3691 drivers/net/ethernet/marvell/sky2.c strlcpy(info->bus_info, pci_name(sky2->hw->pdev), sky2 3741 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(netdev); sky2 3742 drivers/net/ethernet/marvell/sky2.c return sky2->msg_enable; sky2 3747 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3749 drivers/net/ethernet/marvell/sky2.c if (!netif_running(dev) || !(sky2->flags & SKY2_FLAG_AUTO_SPEED)) sky2 3752 drivers/net/ethernet/marvell/sky2.c sky2_phy_reinit(sky2); sky2 3758 drivers/net/ethernet/marvell/sky2.c static void sky2_phy_stats(struct sky2_port *sky2, u64 * data, unsigned count) sky2 3760 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 3761 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 3773 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(netdev); sky2 3774 drivers/net/ethernet/marvell/sky2.c sky2->msg_enable = value; sky2 3790 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3792 drivers/net/ethernet/marvell/sky2.c sky2_phy_stats(sky2, data, ARRAY_SIZE(sky2_stats)); sky2 3810 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3811 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 3812 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 3843 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3844 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 3845 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 3852 drivers/net/ethernet/marvell/sky2.c rx_pause = (sky2->flow_status == FC_RX || sky2->flow_status == FC_BOTH); sky2 3889 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3890 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 3891 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 3896 drivers/net/ethernet/marvell/sky2.c start = u64_stats_fetch_begin_irq(&sky2->rx_stats.syncp); sky2 3897 drivers/net/ethernet/marvell/sky2.c _bytes = sky2->rx_stats.bytes; sky2 3898 drivers/net/ethernet/marvell/sky2.c _packets = sky2->rx_stats.packets; sky2 3899 drivers/net/ethernet/marvell/sky2.c } while (u64_stats_fetch_retry_irq(&sky2->rx_stats.syncp, start)); sky2 3905 drivers/net/ethernet/marvell/sky2.c start = u64_stats_fetch_begin_irq(&sky2->tx_stats.syncp); sky2 3906 drivers/net/ethernet/marvell/sky2.c _bytes = sky2->tx_stats.bytes; sky2 3907 drivers/net/ethernet/marvell/sky2.c _packets = sky2->tx_stats.packets; sky2 3908 drivers/net/ethernet/marvell/sky2.c } while (u64_stats_fetch_retry_irq(&sky2->tx_stats.syncp, start)); sky2 3932 drivers/net/ethernet/marvell/sky2.c static void sky2_led(struct sky2_port *sky2, enum led_mode mode) sky2 3934 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 3935 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 3937 drivers/net/ethernet/marvell/sky2.c spin_lock_bh(&sky2->phy_lock); sky2 3985 drivers/net/ethernet/marvell/sky2.c spin_unlock_bh(&sky2->phy_lock); sky2 3992 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 3998 drivers/net/ethernet/marvell/sky2.c sky2_led(sky2, MO_LED_NORM); sky2 4001 drivers/net/ethernet/marvell/sky2.c sky2_led(sky2, MO_LED_ON); sky2 4004 drivers/net/ethernet/marvell/sky2.c sky2_led(sky2, MO_LED_OFF); sky2 4014 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 4016 drivers/net/ethernet/marvell/sky2.c switch (sky2->flow_mode) { sky2 4030 drivers/net/ethernet/marvell/sky2.c ecmd->autoneg = (sky2->flags & SKY2_FLAG_AUTO_PAUSE) sky2 4037 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 4040 drivers/net/ethernet/marvell/sky2.c sky2->flags |= SKY2_FLAG_AUTO_PAUSE; sky2 4042 drivers/net/ethernet/marvell/sky2.c sky2->flags &= ~SKY2_FLAG_AUTO_PAUSE; sky2 4044 drivers/net/ethernet/marvell/sky2.c sky2->flow_mode = sky2_flow(ecmd->rx_pause, ecmd->tx_pause); sky2 4047 drivers/net/ethernet/marvell/sky2.c sky2_phy_reinit(sky2); sky2 4055 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 4056 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 4090 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 4091 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 4099 drivers/net/ethernet/marvell/sky2.c if (ecmd->tx_max_coalesced_frames >= sky2->tx_ring_size-1) sky2 4148 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 4153 drivers/net/ethernet/marvell/sky2.c ering->rx_pending = sky2->rx_pending; sky2 4154 drivers/net/ethernet/marvell/sky2.c ering->tx_pending = sky2->tx_pending; sky2 4160 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 4170 drivers/net/ethernet/marvell/sky2.c sky2->rx_pending = ering->rx_pending; sky2 4171 drivers/net/ethernet/marvell/sky2.c sky2->tx_pending = ering->tx_pending; sky2 4172 drivers/net/ethernet/marvell/sky2.c sky2->tx_ring_size = roundup_ring_size(sky2->tx_pending); sky2 4233 drivers/net/ethernet/marvell/sky2.c const struct sky2_port *sky2 = netdev_priv(dev); sky2 4234 drivers/net/ethernet/marvell/sky2.c const void __iomem *io = sky2->hw->regs; sky2 4243 drivers/net/ethernet/marvell/sky2.c else if (sky2_reg_access_ok(sky2->hw, b)) sky2 4255 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 4256 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 4325 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 4326 drivers/net/ethernet/marvell/sky2.c int cap = pci_find_capability(sky2->hw->pdev, PCI_CAP_ID_VPD); sky2 4333 drivers/net/ethernet/marvell/sky2.c return sky2_vpd_read(sky2->hw, cap, data, eeprom->offset, eeprom->len); sky2 4339 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 4340 drivers/net/ethernet/marvell/sky2.c int cap = pci_find_capability(sky2->hw->pdev, PCI_CAP_ID_VPD); sky2 4352 drivers/net/ethernet/marvell/sky2.c return sky2_vpd_write(sky2->hw, cap, data, eeprom->offset, eeprom->len); sky2 4358 drivers/net/ethernet/marvell/sky2.c const struct sky2_port *sky2 = netdev_priv(dev); sky2 4359 drivers/net/ethernet/marvell/sky2.c const struct sky2_hw *hw = sky2->hw; sky2 4372 drivers/net/ethernet/marvell/sky2.c (sky2->hw->flags & SKY2_HW_RSS_CHKSUM)) { sky2 4382 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 4386 drivers/net/ethernet/marvell/sky2.c !(sky2->hw->flags & SKY2_HW_NEW_LE)) { sky2 4387 drivers/net/ethernet/marvell/sky2.c sky2_write32(sky2->hw, sky2 4388 drivers/net/ethernet/marvell/sky2.c Q_ADDR(rxqaddr[sky2->port], Q_CSR), sky2 4516 drivers/net/ethernet/marvell/sky2.c const struct sky2_port *sky2 = netdev_priv(dev); sky2 4517 drivers/net/ethernet/marvell/sky2.c struct sky2_hw *hw = sky2->hw; sky2 4518 drivers/net/ethernet/marvell/sky2.c unsigned port = sky2->port; sky2 4552 drivers/net/ethernet/marvell/sky2.c sky2->tx_cons, sky2->tx_prod, sky2 4558 drivers/net/ethernet/marvell/sky2.c for (idx = sky2->tx_next; idx != sky2->tx_prod && idx < sky2->tx_ring_size; sky2 4559 drivers/net/ethernet/marvell/sky2.c idx = RING_NEXT(idx, sky2->tx_ring_size)) { sky2 4560 drivers/net/ethernet/marvell/sky2.c const struct sky2_tx_le *le = sky2->tx_le + idx; sky2 4619 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 4626 drivers/net/ethernet/marvell/sky2.c if (sky2->debugfs) { sky2 4627 drivers/net/ethernet/marvell/sky2.c sky2->debugfs = debugfs_rename(sky2_debug, sky2->debugfs, sky2 4633 drivers/net/ethernet/marvell/sky2.c if (sky2->debugfs) { sky2 4635 drivers/net/ethernet/marvell/sky2.c debugfs_remove(sky2->debugfs); sky2 4636 drivers/net/ethernet/marvell/sky2.c sky2->debugfs = NULL; sky2 4641 drivers/net/ethernet/marvell/sky2.c sky2->debugfs = debugfs_create_file(dev->name, 0444, sky2 4644 drivers/net/ethernet/marvell/sky2.c if (IS_ERR(sky2->debugfs)) sky2 4645 drivers/net/ethernet/marvell/sky2.c sky2->debugfs = NULL; sky2 4722 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2; sky2 4723 drivers/net/ethernet/marvell/sky2.c struct net_device *dev = alloc_etherdev(sizeof(*sky2)); sky2 4735 drivers/net/ethernet/marvell/sky2.c sky2 = netdev_priv(dev); sky2 4736 drivers/net/ethernet/marvell/sky2.c sky2->netdev = dev; sky2 4737 drivers/net/ethernet/marvell/sky2.c sky2->hw = hw; sky2 4738 drivers/net/ethernet/marvell/sky2.c sky2->msg_enable = netif_msg_init(debug, default_msg); sky2 4740 drivers/net/ethernet/marvell/sky2.c u64_stats_init(&sky2->tx_stats.syncp); sky2 4741 drivers/net/ethernet/marvell/sky2.c u64_stats_init(&sky2->rx_stats.syncp); sky2 4744 drivers/net/ethernet/marvell/sky2.c sky2->flags = SKY2_FLAG_AUTO_SPEED | SKY2_FLAG_AUTO_PAUSE; sky2 4748 drivers/net/ethernet/marvell/sky2.c sky2->flow_mode = FC_BOTH; sky2 4750 drivers/net/ethernet/marvell/sky2.c sky2->duplex = -1; sky2 4751 drivers/net/ethernet/marvell/sky2.c sky2->speed = -1; sky2 4752 drivers/net/ethernet/marvell/sky2.c sky2->advertising = sky2_supported_modes(hw); sky2 4753 drivers/net/ethernet/marvell/sky2.c sky2->wol = wol; sky2 4755 drivers/net/ethernet/marvell/sky2.c spin_lock_init(&sky2->phy_lock); sky2 4757 drivers/net/ethernet/marvell/sky2.c sky2->tx_pending = TX_DEF_PENDING; sky2 4758 drivers/net/ethernet/marvell/sky2.c sky2->tx_ring_size = roundup_ring_size(TX_DEF_PENDING); sky2 4759 drivers/net/ethernet/marvell/sky2.c sky2->rx_pending = RX_DEF_PENDING; sky2 4763 drivers/net/ethernet/marvell/sky2.c sky2->port = port; sky2 4818 drivers/net/ethernet/marvell/sky2.c const struct sky2_port *sky2 = netdev_priv(dev); sky2 4820 drivers/net/ethernet/marvell/sky2.c netif_info(sky2, probe, dev, "addr %pM\n", dev->dev_addr); sky2 5191 drivers/net/ethernet/marvell/sky2.c struct sky2_port *sky2 = netdev_priv(dev); sky2 5193 drivers/net/ethernet/marvell/sky2.c if (sky2->wol) sky2 5194 drivers/net/ethernet/marvell/sky2.c sky2_wol_init(sky2);