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);