jme 49 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 53 drivers/net/ethernet/jme.c jwrite32(jme, JME_SMI, SMI_OP_REQ | jme 60 drivers/net/ethernet/jme.c val = jread32(jme, JME_SMI); jme 80 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 83 drivers/net/ethernet/jme.c jwrite32(jme, JME_SMI, SMI_OP_WRITE | SMI_OP_REQ | jme 90 drivers/net/ethernet/jme.c if ((jread32(jme, JME_SMI) & SMI_OP_REQ) == 0) jme 99 drivers/net/ethernet/jme.c jme_reset_phy_processor(struct jme_adapter *jme) jme 103 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme 104 drivers/net/ethernet/jme.c jme->mii_if.phy_id, jme 108 drivers/net/ethernet/jme.c if (jme->pdev->device == PCI_DEVICE_ID_JMICRON_JMC250) jme 109 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme 110 drivers/net/ethernet/jme.c jme->mii_if.phy_id, jme 114 drivers/net/ethernet/jme.c val = jme_mdio_read(jme->dev, jme 115 drivers/net/ethernet/jme.c jme->mii_if.phy_id, jme 118 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme 119 drivers/net/ethernet/jme.c jme->mii_if.phy_id, jme 124 drivers/net/ethernet/jme.c jme_setup_wakeup_frame(struct jme_adapter *jme, jme 132 drivers/net/ethernet/jme.c jwrite32(jme, JME_WFOI, WFOI_CRC_SEL | (fnr & WFOI_FRAME_SEL)); jme 134 drivers/net/ethernet/jme.c jwrite32(jme, JME_WFODP, crc); jme 141 drivers/net/ethernet/jme.c jwrite32(jme, JME_WFOI, jme 145 drivers/net/ethernet/jme.c jwrite32(jme, JME_WFODP, mask[i]); jme 151 drivers/net/ethernet/jme.c jme_mac_rxclk_off(struct jme_adapter *jme) jme 153 drivers/net/ethernet/jme.c jme->reg_gpreg1 |= GPREG1_RXCLKOFF; jme 154 drivers/net/ethernet/jme.c jwrite32f(jme, JME_GPREG1, jme->reg_gpreg1); jme 158 drivers/net/ethernet/jme.c jme_mac_rxclk_on(struct jme_adapter *jme) jme 160 drivers/net/ethernet/jme.c jme->reg_gpreg1 &= ~GPREG1_RXCLKOFF; jme 161 drivers/net/ethernet/jme.c jwrite32f(jme, JME_GPREG1, jme->reg_gpreg1); jme 165 drivers/net/ethernet/jme.c jme_mac_txclk_off(struct jme_adapter *jme) jme 167 drivers/net/ethernet/jme.c jme->reg_ghc &= ~(GHC_TO_CLK_SRC | GHC_TXMAC_CLK_SRC); jme 168 drivers/net/ethernet/jme.c jwrite32f(jme, JME_GHC, jme->reg_ghc); jme 172 drivers/net/ethernet/jme.c jme_mac_txclk_on(struct jme_adapter *jme) jme 174 drivers/net/ethernet/jme.c u32 speed = jme->reg_ghc & GHC_SPEED; jme 176 drivers/net/ethernet/jme.c jme->reg_ghc |= GHC_TO_CLK_GPHY | GHC_TXMAC_CLK_GPHY; jme 178 drivers/net/ethernet/jme.c jme->reg_ghc |= GHC_TO_CLK_PCIE | GHC_TXMAC_CLK_PCIE; jme 179 drivers/net/ethernet/jme.c jwrite32f(jme, JME_GHC, jme->reg_ghc); jme 183 drivers/net/ethernet/jme.c jme_reset_ghc_speed(struct jme_adapter *jme) jme 185 drivers/net/ethernet/jme.c jme->reg_ghc &= ~(GHC_SPEED | GHC_DPX); jme 186 drivers/net/ethernet/jme.c jwrite32f(jme, JME_GHC, jme->reg_ghc); jme 190 drivers/net/ethernet/jme.c jme_reset_250A2_workaround(struct jme_adapter *jme) jme 192 drivers/net/ethernet/jme.c jme->reg_gpreg1 &= ~(GPREG1_HALFMODEPATCH | jme 194 drivers/net/ethernet/jme.c jwrite32(jme, JME_GPREG1, jme->reg_gpreg1); jme 198 drivers/net/ethernet/jme.c jme_assert_ghc_reset(struct jme_adapter *jme) jme 200 drivers/net/ethernet/jme.c jme->reg_ghc |= GHC_SWRST; jme 201 drivers/net/ethernet/jme.c jwrite32f(jme, JME_GHC, jme->reg_ghc); jme 205 drivers/net/ethernet/jme.c jme_clear_ghc_reset(struct jme_adapter *jme) jme 207 drivers/net/ethernet/jme.c jme->reg_ghc &= ~GHC_SWRST; jme 208 drivers/net/ethernet/jme.c jwrite32f(jme, JME_GHC, jme->reg_ghc); jme 212 drivers/net/ethernet/jme.c jme_reset_mac_processor(struct jme_adapter *jme) jme 219 drivers/net/ethernet/jme.c jme_reset_ghc_speed(jme); jme 220 drivers/net/ethernet/jme.c jme_reset_250A2_workaround(jme); jme 222 drivers/net/ethernet/jme.c jme_mac_rxclk_on(jme); jme 223 drivers/net/ethernet/jme.c jme_mac_txclk_on(jme); jme 225 drivers/net/ethernet/jme.c jme_assert_ghc_reset(jme); jme 227 drivers/net/ethernet/jme.c jme_mac_rxclk_off(jme); jme 228 drivers/net/ethernet/jme.c jme_mac_txclk_off(jme); jme 230 drivers/net/ethernet/jme.c jme_clear_ghc_reset(jme); jme 232 drivers/net/ethernet/jme.c jme_mac_rxclk_on(jme); jme 233 drivers/net/ethernet/jme.c jme_mac_txclk_on(jme); jme 235 drivers/net/ethernet/jme.c jme_mac_rxclk_off(jme); jme 236 drivers/net/ethernet/jme.c jme_mac_txclk_off(jme); jme 238 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXDBA_LO, 0x00000000); jme 239 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXDBA_HI, 0x00000000); jme 240 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXQDC, 0x00000000); jme 241 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXNDA, 0x00000000); jme 242 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXDBA_LO, 0x00000000); jme 243 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXDBA_HI, 0x00000000); jme 244 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXQDC, 0x00000000); jme 245 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXNDA, 0x00000000); jme 247 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXMCHT_LO, 0x00000000); jme 248 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXMCHT_HI, 0x00000000); jme 250 drivers/net/ethernet/jme.c jme_setup_wakeup_frame(jme, mask, crc, i); jme 251 drivers/net/ethernet/jme.c if (jme->fpgaver) jme 255 drivers/net/ethernet/jme.c jwrite32(jme, JME_GPREG0, gpreg0); jme 259 drivers/net/ethernet/jme.c jme_clear_pm_enable_wol(struct jme_adapter *jme) jme 261 drivers/net/ethernet/jme.c jwrite32(jme, JME_PMCS, PMCS_STMASK | jme->reg_pmcs); jme 265 drivers/net/ethernet/jme.c jme_clear_pm_disable_wol(struct jme_adapter *jme) jme 267 drivers/net/ethernet/jme.c jwrite32(jme, JME_PMCS, PMCS_STMASK); jme 271 drivers/net/ethernet/jme.c jme_reload_eeprom(struct jme_adapter *jme) jme 276 drivers/net/ethernet/jme.c val = jread32(jme, JME_SMBCSR); jme 280 drivers/net/ethernet/jme.c jwrite32(jme, JME_SMBCSR, val); jme 282 drivers/net/ethernet/jme.c jwrite32(jme, JME_SMBCSR, val); jme 287 drivers/net/ethernet/jme.c if ((jread32(jme, JME_SMBCSR) & SMBCSR_RELOAD) == 0) jme 303 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 307 drivers/net/ethernet/jme.c spin_lock_bh(&jme->macaddr_lock); jme 308 drivers/net/ethernet/jme.c val = jread32(jme, JME_RXUMA_LO); jme 313 drivers/net/ethernet/jme.c val = jread32(jme, JME_RXUMA_HI); jme 317 drivers/net/ethernet/jme.c spin_unlock_bh(&jme->macaddr_lock); jme 321 drivers/net/ethernet/jme.c jme_set_rx_pcc(struct jme_adapter *jme, int p) jme 325 drivers/net/ethernet/jme.c jwrite32(jme, JME_PCCRX0, jme 330 drivers/net/ethernet/jme.c jwrite32(jme, JME_PCCRX0, jme 335 drivers/net/ethernet/jme.c jwrite32(jme, JME_PCCRX0, jme 340 drivers/net/ethernet/jme.c jwrite32(jme, JME_PCCRX0, jme 349 drivers/net/ethernet/jme.c if (!(test_bit(JME_FLAG_POLL, &jme->flags))) jme 350 drivers/net/ethernet/jme.c netif_info(jme, rx_status, jme->dev, "Switched to PCC_P%d\n", p); jme 354 drivers/net/ethernet/jme.c jme_start_irq(struct jme_adapter *jme) jme 356 drivers/net/ethernet/jme.c register struct dynpcc_info *dpi = &(jme->dpi); jme 358 drivers/net/ethernet/jme.c jme_set_rx_pcc(jme, PCC_P1); jme 363 drivers/net/ethernet/jme.c jwrite32(jme, JME_PCCTX, jme 372 drivers/net/ethernet/jme.c jwrite32(jme, JME_IENS, INTR_ENABLE); jme 376 drivers/net/ethernet/jme.c jme_stop_irq(struct jme_adapter *jme) jme 381 drivers/net/ethernet/jme.c jwrite32f(jme, JME_IENC, INTR_ENABLE); jme 385 drivers/net/ethernet/jme.c jme_linkstat_from_phy(struct jme_adapter *jme) jme 389 drivers/net/ethernet/jme.c phylink = jme_mdio_read(jme->dev, jme->mii_if.phy_id, 17); jme 390 drivers/net/ethernet/jme.c bmsr = jme_mdio_read(jme->dev, jme->mii_if.phy_id, MII_BMSR); jme 398 drivers/net/ethernet/jme.c jme_set_phyfifo_5level(struct jme_adapter *jme) jme 400 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme->mii_if.phy_id, 27, 0x0004); jme 404 drivers/net/ethernet/jme.c jme_set_phyfifo_8level(struct jme_adapter *jme) jme 406 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme->mii_if.phy_id, 27, 0x0000); jme 412 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 419 drivers/net/ethernet/jme.c if (jme->fpgaver) jme 420 drivers/net/ethernet/jme.c phylink = jme_linkstat_from_phy(jme); jme 422 drivers/net/ethernet/jme.c phylink = jread32(jme, JME_PHY_LINK); jme 432 drivers/net/ethernet/jme.c bmcr = jme_mdio_read(jme->dev, jme 433 drivers/net/ethernet/jme.c jme->mii_if.phy_id, jme 456 drivers/net/ethernet/jme.c if (jme->fpgaver) jme 457 drivers/net/ethernet/jme.c phylink = jme_linkstat_from_phy(jme); jme 459 drivers/net/ethernet/jme.c phylink = jread32(jme, JME_PHY_LINK); jme 467 drivers/net/ethernet/jme.c if (jme->phylink == phylink) { jme 474 drivers/net/ethernet/jme.c jme->phylink = phylink; jme 482 drivers/net/ethernet/jme.c jme->reg_ghc |= GHC_SPEED_10M; jme 486 drivers/net/ethernet/jme.c jme->reg_ghc |= GHC_SPEED_100M; jme 490 drivers/net/ethernet/jme.c jme->reg_ghc |= GHC_SPEED_1000M; jme 498 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXMCS, TXMCS_DEFAULT); jme 499 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXTRHD, TXTRHD_FULLDUPLEX); jme 500 drivers/net/ethernet/jme.c jme->reg_ghc |= GHC_DPX; jme 502 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXMCS, TXMCS_DEFAULT | jme 506 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXTRHD, TXTRHD_HALFDUPLEX); jme 509 drivers/net/ethernet/jme.c jwrite32(jme, JME_GHC, jme->reg_ghc); jme 511 drivers/net/ethernet/jme.c if (is_buggy250(jme->pdev->device, jme->chiprev)) { jme 512 drivers/net/ethernet/jme.c jme->reg_gpreg1 &= ~(GPREG1_HALFMODEPATCH | jme 515 drivers/net/ethernet/jme.c jme->reg_gpreg1 |= GPREG1_HALFMODEPATCH; jme 518 drivers/net/ethernet/jme.c jme_set_phyfifo_8level(jme); jme 519 drivers/net/ethernet/jme.c jme->reg_gpreg1 |= GPREG1_RSSPATCH; jme 522 drivers/net/ethernet/jme.c jme_set_phyfifo_5level(jme); jme 523 drivers/net/ethernet/jme.c jme->reg_gpreg1 |= GPREG1_RSSPATCH; jme 526 drivers/net/ethernet/jme.c jme_set_phyfifo_8level(jme); jme 532 drivers/net/ethernet/jme.c jwrite32(jme, JME_GPREG1, jme->reg_gpreg1); jme 540 drivers/net/ethernet/jme.c netif_info(jme, link, jme->dev, "Link is up at %s\n", linkmsg); jme 546 drivers/net/ethernet/jme.c netif_info(jme, link, jme->dev, "Link is down\n"); jme 547 drivers/net/ethernet/jme.c jme->phylink = 0; jme 556 drivers/net/ethernet/jme.c jme_setup_tx_resources(struct jme_adapter *jme) jme 558 drivers/net/ethernet/jme.c struct jme_ring *txring = &(jme->txring[0]); jme 560 drivers/net/ethernet/jme.c txring->alloc = dma_alloc_coherent(&(jme->pdev->dev), jme 561 drivers/net/ethernet/jme.c TX_RING_ALLOC_SIZE(jme->tx_ring_size), jme 576 drivers/net/ethernet/jme.c atomic_set(&txring->nr_free, jme->tx_ring_size); jme 578 drivers/net/ethernet/jme.c txring->bufinf = kcalloc(jme->tx_ring_size, jme 587 drivers/net/ethernet/jme.c dma_free_coherent(&(jme->pdev->dev), jme 588 drivers/net/ethernet/jme.c TX_RING_ALLOC_SIZE(jme->tx_ring_size), jme 602 drivers/net/ethernet/jme.c jme_free_tx_resources(struct jme_adapter *jme) jme 605 drivers/net/ethernet/jme.c struct jme_ring *txring = &(jme->txring[0]); jme 610 drivers/net/ethernet/jme.c for (i = 0 ; i < jme->tx_ring_size ; ++i) { jme 624 drivers/net/ethernet/jme.c dma_free_coherent(&(jme->pdev->dev), jme 625 drivers/net/ethernet/jme.c TX_RING_ALLOC_SIZE(jme->tx_ring_size), jme 641 drivers/net/ethernet/jme.c jme_enable_tx_engine(struct jme_adapter *jme) jme 646 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXCS, TXCS_DEFAULT | TXCS_SELECT_QUEUE0); jme 652 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXDBA_LO, (__u64)jme->txring[0].dma & 0xFFFFFFFFUL); jme 653 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXDBA_HI, (__u64)(jme->txring[0].dma) >> 32); jme 654 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXNDA, (__u64)jme->txring[0].dma & 0xFFFFFFFFUL); jme 659 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXQDC, jme->tx_ring_size); jme 665 drivers/net/ethernet/jme.c jwrite32f(jme, JME_TXCS, jme->reg_txcs | jme 672 drivers/net/ethernet/jme.c jme_mac_txclk_on(jme); jme 676 drivers/net/ethernet/jme.c jme_disable_tx_engine(struct jme_adapter *jme) jme 684 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXCS, jme->reg_txcs | TXCS_SELECT_QUEUE0); jme 687 drivers/net/ethernet/jme.c val = jread32(jme, JME_TXCS); jme 690 drivers/net/ethernet/jme.c val = jread32(jme, JME_TXCS); jme 700 drivers/net/ethernet/jme.c jme_mac_txclk_off(jme); jme 704 drivers/net/ethernet/jme.c jme_set_clean_rxdesc(struct jme_adapter *jme, int i) jme 706 drivers/net/ethernet/jme.c struct jme_ring *rxring = &(jme->rxring[0]); jme 718 drivers/net/ethernet/jme.c if (jme->dev->features & NETIF_F_HIGHDMA) jme 725 drivers/net/ethernet/jme.c jme_make_new_rx_buf(struct jme_adapter *jme, int i) jme 727 drivers/net/ethernet/jme.c struct jme_ring *rxring = &(jme->rxring[0]); jme 732 drivers/net/ethernet/jme.c skb = netdev_alloc_skb(jme->dev, jme 733 drivers/net/ethernet/jme.c jme->dev->mtu + RX_EXTRA_LEN); jme 737 drivers/net/ethernet/jme.c mapping = pci_map_page(jme->pdev, virt_to_page(skb->data), jme 740 drivers/net/ethernet/jme.c if (unlikely(pci_dma_mapping_error(jme->pdev, mapping))) { jme 746 drivers/net/ethernet/jme.c pci_unmap_page(jme->pdev, rxbi->mapping, jme 756 drivers/net/ethernet/jme.c jme_free_rx_buf(struct jme_adapter *jme, int i) jme 758 drivers/net/ethernet/jme.c struct jme_ring *rxring = &(jme->rxring[0]); jme 763 drivers/net/ethernet/jme.c pci_unmap_page(jme->pdev, jme 775 drivers/net/ethernet/jme.c jme_free_rx_resources(struct jme_adapter *jme) jme 778 drivers/net/ethernet/jme.c struct jme_ring *rxring = &(jme->rxring[0]); jme 782 drivers/net/ethernet/jme.c for (i = 0 ; i < jme->rx_ring_size ; ++i) jme 783 drivers/net/ethernet/jme.c jme_free_rx_buf(jme, i); jme 787 drivers/net/ethernet/jme.c dma_free_coherent(&(jme->pdev->dev), jme 788 drivers/net/ethernet/jme.c RX_RING_ALLOC_SIZE(jme->rx_ring_size), jme 802 drivers/net/ethernet/jme.c jme_setup_rx_resources(struct jme_adapter *jme) jme 805 drivers/net/ethernet/jme.c struct jme_ring *rxring = &(jme->rxring[0]); jme 807 drivers/net/ethernet/jme.c rxring->alloc = dma_alloc_coherent(&(jme->pdev->dev), jme 808 drivers/net/ethernet/jme.c RX_RING_ALLOC_SIZE(jme->rx_ring_size), jme 823 drivers/net/ethernet/jme.c rxring->bufinf = kcalloc(jme->rx_ring_size, jme 832 drivers/net/ethernet/jme.c for (i = 0 ; i < jme->rx_ring_size ; ++i) { jme 833 drivers/net/ethernet/jme.c if (unlikely(jme_make_new_rx_buf(jme, i))) { jme 834 drivers/net/ethernet/jme.c jme_free_rx_resources(jme); jme 838 drivers/net/ethernet/jme.c jme_set_clean_rxdesc(jme, i); jme 844 drivers/net/ethernet/jme.c dma_free_coherent(&(jme->pdev->dev), jme 845 drivers/net/ethernet/jme.c RX_RING_ALLOC_SIZE(jme->rx_ring_size), jme 858 drivers/net/ethernet/jme.c jme_enable_rx_engine(struct jme_adapter *jme) jme 863 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXCS, jme->reg_rxcs | jme 870 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXDBA_LO, (__u64)(jme->rxring[0].dma) & 0xFFFFFFFFUL); jme 871 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXDBA_HI, (__u64)(jme->rxring[0].dma) >> 32); jme 872 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXNDA, (__u64)(jme->rxring[0].dma) & 0xFFFFFFFFUL); jme 877 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXQDC, jme->rx_ring_size); jme 882 drivers/net/ethernet/jme.c jme_set_unicastaddr(jme->dev); jme 883 drivers/net/ethernet/jme.c jme_set_multi(jme->dev); jme 889 drivers/net/ethernet/jme.c jwrite32f(jme, JME_RXCS, jme->reg_rxcs | jme 897 drivers/net/ethernet/jme.c jme_mac_rxclk_on(jme); jme 901 drivers/net/ethernet/jme.c jme_restart_rx_engine(struct jme_adapter *jme) jme 906 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXCS, jme->reg_rxcs | jme 913 drivers/net/ethernet/jme.c jme_disable_rx_engine(struct jme_adapter *jme) jme 921 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXCS, jme->reg_rxcs); jme 924 drivers/net/ethernet/jme.c val = jread32(jme, JME_RXCS); jme 927 drivers/net/ethernet/jme.c val = jread32(jme, JME_RXCS); jme 937 drivers/net/ethernet/jme.c jme_mac_rxclk_off(jme); jme 967 drivers/net/ethernet/jme.c jme_rxsum_ok(struct jme_adapter *jme, u16 flags, struct sk_buff *skb) jme 975 drivers/net/ethernet/jme.c netif_err(jme, rx_err, jme->dev, "TCP Checksum error\n"); jme 982 drivers/net/ethernet/jme.c netif_err(jme, rx_err, jme->dev, "UDP Checksum error\n"); jme 988 drivers/net/ethernet/jme.c netif_err(jme, rx_err, jme->dev, "IPv4 Checksum error\n"); jme 996 drivers/net/ethernet/jme.c jme_alloc_and_feed_skb(struct jme_adapter *jme, int idx) jme 998 drivers/net/ethernet/jme.c struct jme_ring *rxring = &(jme->rxring[0]); jme 1008 drivers/net/ethernet/jme.c pci_dma_sync_single_for_cpu(jme->pdev, jme 1013 drivers/net/ethernet/jme.c if (unlikely(jme_make_new_rx_buf(jme, idx))) { jme 1014 drivers/net/ethernet/jme.c pci_dma_sync_single_for_device(jme->pdev, jme 1019 drivers/net/ethernet/jme.c ++(NET_STAT(jme).rx_dropped); jme 1026 drivers/net/ethernet/jme.c skb->protocol = eth_type_trans(skb, jme->dev); jme 1028 drivers/net/ethernet/jme.c if (jme_rxsum_ok(jme, le16_to_cpu(rxdesc->descwb.flags), skb)) jme 1037 drivers/net/ethernet/jme.c NET_STAT(jme).rx_bytes += 4; jme 1039 drivers/net/ethernet/jme.c jme->jme_rx(skb); jme 1043 drivers/net/ethernet/jme.c ++(NET_STAT(jme).multicast); jme 1045 drivers/net/ethernet/jme.c NET_STAT(jme).rx_bytes += framesize; jme 1046 drivers/net/ethernet/jme.c ++(NET_STAT(jme).rx_packets); jme 1049 drivers/net/ethernet/jme.c jme_set_clean_rxdesc(jme, idx); jme 1054 drivers/net/ethernet/jme.c jme_process_receive(struct jme_adapter *jme, int limit) jme 1056 drivers/net/ethernet/jme.c struct jme_ring *rxring = &(jme->rxring[0]); jme 1058 drivers/net/ethernet/jme.c int i, j, ccnt, desccnt, mask = jme->rx_ring_mask; jme 1060 drivers/net/ethernet/jme.c if (unlikely(!atomic_dec_and_test(&jme->rx_cleaning))) jme 1063 drivers/net/ethernet/jme.c if (unlikely(atomic_read(&jme->link_changing) != 1)) jme 1066 drivers/net/ethernet/jme.c if (unlikely(!netif_carrier_ok(jme->dev))) jme 1086 drivers/net/ethernet/jme.c ++(NET_STAT(jme).rx_crc_errors); jme 1088 drivers/net/ethernet/jme.c ++(NET_STAT(jme).rx_fifo_errors); jme 1090 drivers/net/ethernet/jme.c ++(NET_STAT(jme).rx_errors); jme 1096 drivers/net/ethernet/jme.c jme_set_clean_rxdesc(jme, j); jme 1101 drivers/net/ethernet/jme.c jme_alloc_and_feed_skb(jme, i); jme 1111 drivers/net/ethernet/jme.c atomic_inc(&jme->rx_cleaning); jme 1135 drivers/net/ethernet/jme.c jme_dynamic_pcc(struct jme_adapter *jme) jme 1137 drivers/net/ethernet/jme.c register struct dynpcc_info *dpi = &(jme->dpi); jme 1139 drivers/net/ethernet/jme.c if ((NET_STAT(jme).rx_bytes - dpi->last_bytes) > PCC_P3_THRESHOLD) jme 1141 drivers/net/ethernet/jme.c else if ((NET_STAT(jme).rx_packets - dpi->last_pkts) > PCC_P2_THRESHOLD || jme 1149 drivers/net/ethernet/jme.c tasklet_schedule(&jme->rxclean_task); jme 1150 drivers/net/ethernet/jme.c jme_set_rx_pcc(jme, dpi->attempt); jme 1157 drivers/net/ethernet/jme.c jme_start_pcc_timer(struct jme_adapter *jme) jme 1159 drivers/net/ethernet/jme.c struct dynpcc_info *dpi = &(jme->dpi); jme 1160 drivers/net/ethernet/jme.c dpi->last_bytes = NET_STAT(jme).rx_bytes; jme 1161 drivers/net/ethernet/jme.c dpi->last_pkts = NET_STAT(jme).rx_packets; jme 1163 drivers/net/ethernet/jme.c jwrite32(jme, JME_TMCSR, jme 1168 drivers/net/ethernet/jme.c jme_stop_pcc_timer(struct jme_adapter *jme) jme 1170 drivers/net/ethernet/jme.c jwrite32(jme, JME_TMCSR, 0); jme 1174 drivers/net/ethernet/jme.c jme_shutdown_nic(struct jme_adapter *jme) jme 1178 drivers/net/ethernet/jme.c phylink = jme_linkstat_from_phy(jme); jme 1184 drivers/net/ethernet/jme.c jme_stop_irq(jme); jme 1185 drivers/net/ethernet/jme.c jwrite32(jme, JME_TIMER2, TMCSR_EN | 0xFFFFFE); jme 1192 drivers/net/ethernet/jme.c struct jme_adapter *jme = (struct jme_adapter *)arg; jme 1193 drivers/net/ethernet/jme.c struct net_device *netdev = jme->dev; jme 1195 drivers/net/ethernet/jme.c if (unlikely(test_bit(JME_FLAG_SHUTDOWN, &jme->flags))) { jme 1196 drivers/net/ethernet/jme.c jme_shutdown_nic(jme); jme 1201 drivers/net/ethernet/jme.c (atomic_read(&jme->link_changing) != 1) jme 1203 drivers/net/ethernet/jme.c jme_stop_pcc_timer(jme); jme 1207 drivers/net/ethernet/jme.c if (!(test_bit(JME_FLAG_POLL, &jme->flags))) jme 1208 drivers/net/ethernet/jme.c jme_dynamic_pcc(jme); jme 1210 drivers/net/ethernet/jme.c jme_start_pcc_timer(jme); jme 1214 drivers/net/ethernet/jme.c jme_polling_mode(struct jme_adapter *jme) jme 1216 drivers/net/ethernet/jme.c jme_set_rx_pcc(jme, PCC_OFF); jme 1220 drivers/net/ethernet/jme.c jme_interrupt_mode(struct jme_adapter *jme) jme 1222 drivers/net/ethernet/jme.c jme_set_rx_pcc(jme, PCC_P1); jme 1226 drivers/net/ethernet/jme.c jme_pseudo_hotplug_enabled(struct jme_adapter *jme) jme 1229 drivers/net/ethernet/jme.c apmc = jread32(jme, JME_APMC); jme 1234 drivers/net/ethernet/jme.c jme_start_shutdown_timer(struct jme_adapter *jme) jme 1238 drivers/net/ethernet/jme.c apmc = jread32(jme, JME_APMC) | JME_APMC_PCIE_SD_EN; jme 1241 drivers/net/ethernet/jme.c jwrite32f(jme, JME_APMC, apmc | JME_APMC_EPIEN_CTRL_EN); jme 1244 drivers/net/ethernet/jme.c jwrite32f(jme, JME_APMC, apmc); jme 1246 drivers/net/ethernet/jme.c jwrite32f(jme, JME_TIMER2, 0); jme 1247 drivers/net/ethernet/jme.c set_bit(JME_FLAG_SHUTDOWN, &jme->flags); jme 1248 drivers/net/ethernet/jme.c jwrite32(jme, JME_TMCSR, jme 1253 drivers/net/ethernet/jme.c jme_stop_shutdown_timer(struct jme_adapter *jme) jme 1257 drivers/net/ethernet/jme.c jwrite32f(jme, JME_TMCSR, 0); jme 1258 drivers/net/ethernet/jme.c jwrite32f(jme, JME_TIMER2, 0); jme 1259 drivers/net/ethernet/jme.c clear_bit(JME_FLAG_SHUTDOWN, &jme->flags); jme 1261 drivers/net/ethernet/jme.c apmc = jread32(jme, JME_APMC); jme 1263 drivers/net/ethernet/jme.c jwrite32f(jme, JME_APMC, apmc | JME_APMC_EPIEN_CTRL_DIS); jme 1265 drivers/net/ethernet/jme.c jwrite32f(jme, JME_APMC, apmc); jme 1271 drivers/net/ethernet/jme.c struct jme_adapter *jme = (struct jme_adapter *)arg; jme 1272 drivers/net/ethernet/jme.c struct net_device *netdev = jme->dev; jme 1275 drivers/net/ethernet/jme.c while (!atomic_dec_and_test(&jme->link_changing)) { jme 1276 drivers/net/ethernet/jme.c atomic_inc(&jme->link_changing); jme 1277 drivers/net/ethernet/jme.c netif_info(jme, intr, jme->dev, "Get link change lock failed\n"); jme 1278 drivers/net/ethernet/jme.c while (atomic_read(&jme->link_changing) != 1) jme 1279 drivers/net/ethernet/jme.c netif_info(jme, intr, jme->dev, "Waiting link change lock\n"); jme 1282 drivers/net/ethernet/jme.c if (jme_check_link(netdev, 1) && jme->old_mtu == netdev->mtu) jme 1285 drivers/net/ethernet/jme.c jme->old_mtu = netdev->mtu; jme 1287 drivers/net/ethernet/jme.c if (jme_pseudo_hotplug_enabled(jme)) jme 1288 drivers/net/ethernet/jme.c jme_stop_shutdown_timer(jme); jme 1290 drivers/net/ethernet/jme.c jme_stop_pcc_timer(jme); jme 1291 drivers/net/ethernet/jme.c tasklet_disable(&jme->txclean_task); jme 1292 drivers/net/ethernet/jme.c tasklet_disable(&jme->rxclean_task); jme 1293 drivers/net/ethernet/jme.c tasklet_disable(&jme->rxempty_task); jme 1296 drivers/net/ethernet/jme.c jme_disable_rx_engine(jme); jme 1297 drivers/net/ethernet/jme.c jme_disable_tx_engine(jme); jme 1298 drivers/net/ethernet/jme.c jme_reset_mac_processor(jme); jme 1299 drivers/net/ethernet/jme.c jme_free_rx_resources(jme); jme 1300 drivers/net/ethernet/jme.c jme_free_tx_resources(jme); jme 1302 drivers/net/ethernet/jme.c if (test_bit(JME_FLAG_POLL, &jme->flags)) jme 1303 drivers/net/ethernet/jme.c jme_polling_mode(jme); jme 1310 drivers/net/ethernet/jme.c rc = jme_setup_rx_resources(jme); jme 1316 drivers/net/ethernet/jme.c rc = jme_setup_tx_resources(jme); jme 1322 drivers/net/ethernet/jme.c jme_enable_rx_engine(jme); jme 1323 drivers/net/ethernet/jme.c jme_enable_tx_engine(jme); jme 1327 drivers/net/ethernet/jme.c if (test_bit(JME_FLAG_POLL, &jme->flags)) jme 1328 drivers/net/ethernet/jme.c jme_interrupt_mode(jme); jme 1330 drivers/net/ethernet/jme.c jme_start_pcc_timer(jme); jme 1331 drivers/net/ethernet/jme.c } else if (jme_pseudo_hotplug_enabled(jme)) { jme 1332 drivers/net/ethernet/jme.c jme_start_shutdown_timer(jme); jme 1338 drivers/net/ethernet/jme.c jme_free_rx_resources(jme); jme 1340 drivers/net/ethernet/jme.c tasklet_enable(&jme->txclean_task); jme 1341 drivers/net/ethernet/jme.c tasklet_enable(&jme->rxclean_task); jme 1342 drivers/net/ethernet/jme.c tasklet_enable(&jme->rxempty_task); jme 1344 drivers/net/ethernet/jme.c atomic_inc(&jme->link_changing); jme 1350 drivers/net/ethernet/jme.c struct jme_adapter *jme = (struct jme_adapter *)arg; jme 1351 drivers/net/ethernet/jme.c struct dynpcc_info *dpi = &(jme->dpi); jme 1353 drivers/net/ethernet/jme.c jme_process_receive(jme, jme->rx_ring_size); jme 1361 drivers/net/ethernet/jme.c struct jme_adapter *jme = jme_napi_priv(holder); jme 1364 drivers/net/ethernet/jme.c rest = jme_process_receive(jme, JME_NAPI_WEIGHT_VAL(budget)); jme 1366 drivers/net/ethernet/jme.c while (atomic_read(&jme->rx_empty) > 0) { jme 1367 drivers/net/ethernet/jme.c atomic_dec(&jme->rx_empty); jme 1368 drivers/net/ethernet/jme.c ++(NET_STAT(jme).rx_dropped); jme 1369 drivers/net/ethernet/jme.c jme_restart_rx_engine(jme); jme 1371 drivers/net/ethernet/jme.c atomic_inc(&jme->rx_empty); jme 1375 drivers/net/ethernet/jme.c jme_interrupt_mode(jme); jme 1385 drivers/net/ethernet/jme.c struct jme_adapter *jme = (struct jme_adapter *)arg; jme 1387 drivers/net/ethernet/jme.c if (unlikely(atomic_read(&jme->link_changing) != 1)) jme 1390 drivers/net/ethernet/jme.c if (unlikely(!netif_carrier_ok(jme->dev))) jme 1393 drivers/net/ethernet/jme.c netif_info(jme, rx_status, jme->dev, "RX Queue Full!\n"); jme 1397 drivers/net/ethernet/jme.c while (atomic_read(&jme->rx_empty) > 0) { jme 1398 drivers/net/ethernet/jme.c atomic_dec(&jme->rx_empty); jme 1399 drivers/net/ethernet/jme.c ++(NET_STAT(jme).rx_dropped); jme 1400 drivers/net/ethernet/jme.c jme_restart_rx_engine(jme); jme 1402 drivers/net/ethernet/jme.c atomic_inc(&jme->rx_empty); jme 1406 drivers/net/ethernet/jme.c jme_wake_queue_if_stopped(struct jme_adapter *jme) jme 1408 drivers/net/ethernet/jme.c struct jme_ring *txring = &(jme->txring[0]); jme 1411 drivers/net/ethernet/jme.c if (unlikely(netif_queue_stopped(jme->dev) && jme 1412 drivers/net/ethernet/jme.c atomic_read(&txring->nr_free) >= (jme->tx_wake_threshold))) { jme 1413 drivers/net/ethernet/jme.c netif_info(jme, tx_done, jme->dev, "TX Queue Waked\n"); jme 1414 drivers/net/ethernet/jme.c netif_wake_queue(jme->dev); jme 1422 drivers/net/ethernet/jme.c struct jme_adapter *jme = (struct jme_adapter *)arg; jme 1423 drivers/net/ethernet/jme.c struct jme_ring *txring = &(jme->txring[0]); jme 1428 drivers/net/ethernet/jme.c tx_dbg(jme, "Into txclean\n"); jme 1430 drivers/net/ethernet/jme.c if (unlikely(!atomic_dec_and_test(&jme->tx_cleaning))) jme 1433 drivers/net/ethernet/jme.c if (unlikely(atomic_read(&jme->link_changing) != 1)) jme 1436 drivers/net/ethernet/jme.c if (unlikely(!netif_carrier_ok(jme->dev))) jme 1439 drivers/net/ethernet/jme.c max = jme->tx_ring_size - atomic_read(&txring->nr_free); jme 1440 drivers/net/ethernet/jme.c mask = jme->tx_ring_mask; jme 1449 drivers/net/ethernet/jme.c tx_dbg(jme, "txclean: %d+%d@%lu\n", jme 1458 drivers/net/ethernet/jme.c pci_unmap_page(jme->pdev, jme 1472 drivers/net/ethernet/jme.c ++(NET_STAT(jme).tx_carrier_errors); jme 1474 drivers/net/ethernet/jme.c ++(NET_STAT(jme).tx_packets); jme 1475 drivers/net/ethernet/jme.c NET_STAT(jme).tx_bytes += ctxbi->len; jme 1491 drivers/net/ethernet/jme.c tx_dbg(jme, "txclean: done %d@%lu\n", i, jiffies); jme 1495 drivers/net/ethernet/jme.c jme_wake_queue_if_stopped(jme); jme 1498 drivers/net/ethernet/jme.c atomic_inc(&jme->tx_cleaning); jme 1502 drivers/net/ethernet/jme.c jme_intr_msi(struct jme_adapter *jme, u32 intrstat) jme 1507 drivers/net/ethernet/jme.c jwrite32f(jme, JME_IENC, INTR_ENABLE); jme 1514 drivers/net/ethernet/jme.c jwrite32(jme, JME_IEVE, intrstat); jme 1515 drivers/net/ethernet/jme.c tasklet_schedule(&jme->linkch_task); jme 1520 drivers/net/ethernet/jme.c jwrite32(jme, JME_IEVE, INTR_TMINTR); jme 1521 drivers/net/ethernet/jme.c tasklet_schedule(&jme->pcc_task); jme 1525 drivers/net/ethernet/jme.c jwrite32(jme, JME_IEVE, INTR_PCCTXTO | INTR_PCCTX | INTR_TX0); jme 1526 drivers/net/ethernet/jme.c tasklet_schedule(&jme->txclean_task); jme 1530 drivers/net/ethernet/jme.c jwrite32(jme, JME_IEVE, (intrstat & (INTR_PCCRX0TO | jme 1536 drivers/net/ethernet/jme.c if (test_bit(JME_FLAG_POLL, &jme->flags)) { jme 1538 drivers/net/ethernet/jme.c atomic_inc(&jme->rx_empty); jme 1541 drivers/net/ethernet/jme.c if (likely(JME_RX_SCHEDULE_PREP(jme))) { jme 1542 drivers/net/ethernet/jme.c jme_polling_mode(jme); jme 1543 drivers/net/ethernet/jme.c JME_RX_SCHEDULE(jme); jme 1548 drivers/net/ethernet/jme.c atomic_inc(&jme->rx_empty); jme 1549 drivers/net/ethernet/jme.c tasklet_hi_schedule(&jme->rxempty_task); jme 1551 drivers/net/ethernet/jme.c tasklet_hi_schedule(&jme->rxclean_task); jme 1559 drivers/net/ethernet/jme.c jwrite32f(jme, JME_IENS, INTR_ENABLE); jme 1566 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 1569 drivers/net/ethernet/jme.c intrstat = jread32(jme, JME_IEVE); jme 1583 drivers/net/ethernet/jme.c jme_intr_msi(jme, intrstat); jme 1592 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 1595 drivers/net/ethernet/jme.c intrstat = jread32(jme, JME_IEVE); jme 1597 drivers/net/ethernet/jme.c jme_intr_msi(jme, intrstat); jme 1603 drivers/net/ethernet/jme.c jme_reset_link(struct jme_adapter *jme) jme 1605 drivers/net/ethernet/jme.c jwrite32(jme, JME_TMCSR, TMCSR_SWIT); jme 1609 drivers/net/ethernet/jme.c jme_restart_an(struct jme_adapter *jme) jme 1613 drivers/net/ethernet/jme.c spin_lock_bh(&jme->phy_lock); jme 1614 drivers/net/ethernet/jme.c bmcr = jme_mdio_read(jme->dev, jme->mii_if.phy_id, MII_BMCR); jme 1616 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme->mii_if.phy_id, MII_BMCR, bmcr); jme 1617 drivers/net/ethernet/jme.c spin_unlock_bh(&jme->phy_lock); jme 1621 drivers/net/ethernet/jme.c jme_request_irq(struct jme_adapter *jme) jme 1624 drivers/net/ethernet/jme.c struct net_device *netdev = jme->dev; jme 1628 drivers/net/ethernet/jme.c if (!pci_enable_msi(jme->pdev)) { jme 1629 drivers/net/ethernet/jme.c set_bit(JME_FLAG_MSI, &jme->flags); jme 1634 drivers/net/ethernet/jme.c rc = request_irq(jme->pdev->irq, handler, irq_flags, netdev->name, jme 1639 drivers/net/ethernet/jme.c test_bit(JME_FLAG_MSI, &jme->flags) ? "MSI" : "INTx", jme 1642 drivers/net/ethernet/jme.c if (test_bit(JME_FLAG_MSI, &jme->flags)) { jme 1643 drivers/net/ethernet/jme.c pci_disable_msi(jme->pdev); jme 1644 drivers/net/ethernet/jme.c clear_bit(JME_FLAG_MSI, &jme->flags); jme 1647 drivers/net/ethernet/jme.c netdev->irq = jme->pdev->irq; jme 1654 drivers/net/ethernet/jme.c jme_free_irq(struct jme_adapter *jme) jme 1656 drivers/net/ethernet/jme.c free_irq(jme->pdev->irq, jme->dev); jme 1657 drivers/net/ethernet/jme.c if (test_bit(JME_FLAG_MSI, &jme->flags)) { jme 1658 drivers/net/ethernet/jme.c pci_disable_msi(jme->pdev); jme 1659 drivers/net/ethernet/jme.c clear_bit(JME_FLAG_MSI, &jme->flags); jme 1660 drivers/net/ethernet/jme.c jme->dev->irq = jme->pdev->irq; jme 1665 drivers/net/ethernet/jme.c jme_new_phy_on(struct jme_adapter *jme) jme 1669 drivers/net/ethernet/jme.c reg = jread32(jme, JME_PHY_PWR); jme 1672 drivers/net/ethernet/jme.c jwrite32(jme, JME_PHY_PWR, reg); jme 1674 drivers/net/ethernet/jme.c pci_read_config_dword(jme->pdev, PCI_PRIV_PE1, ®); jme 1677 drivers/net/ethernet/jme.c pci_write_config_dword(jme->pdev, PCI_PRIV_PE1, reg); jme 1681 drivers/net/ethernet/jme.c jme_new_phy_off(struct jme_adapter *jme) jme 1685 drivers/net/ethernet/jme.c reg = jread32(jme, JME_PHY_PWR); jme 1688 drivers/net/ethernet/jme.c jwrite32(jme, JME_PHY_PWR, reg); jme 1690 drivers/net/ethernet/jme.c pci_read_config_dword(jme->pdev, PCI_PRIV_PE1, ®); jme 1693 drivers/net/ethernet/jme.c pci_write_config_dword(jme->pdev, PCI_PRIV_PE1, reg); jme 1697 drivers/net/ethernet/jme.c jme_phy_on(struct jme_adapter *jme) jme 1701 drivers/net/ethernet/jme.c bmcr = jme_mdio_read(jme->dev, jme->mii_if.phy_id, MII_BMCR); jme 1703 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme->mii_if.phy_id, MII_BMCR, bmcr); jme 1705 drivers/net/ethernet/jme.c if (new_phy_power_ctrl(jme->chip_main_rev)) jme 1706 drivers/net/ethernet/jme.c jme_new_phy_on(jme); jme 1710 drivers/net/ethernet/jme.c jme_phy_off(struct jme_adapter *jme) jme 1714 drivers/net/ethernet/jme.c bmcr = jme_mdio_read(jme->dev, jme->mii_if.phy_id, MII_BMCR); jme 1716 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme->mii_if.phy_id, MII_BMCR, bmcr); jme 1718 drivers/net/ethernet/jme.c if (new_phy_power_ctrl(jme->chip_main_rev)) jme 1719 drivers/net/ethernet/jme.c jme_new_phy_off(jme); jme 1723 drivers/net/ethernet/jme.c jme_phy_specreg_read(struct jme_adapter *jme, u32 specreg) jme 1728 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme->mii_if.phy_id, JM_PHY_SPEC_ADDR_REG, jme 1730 drivers/net/ethernet/jme.c return jme_mdio_read(jme->dev, jme->mii_if.phy_id, jme 1735 drivers/net/ethernet/jme.c jme_phy_specreg_write(struct jme_adapter *jme, u32 ext_reg, u32 phy_data) jme 1740 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme->mii_if.phy_id, JM_PHY_SPEC_DATA_REG, jme 1742 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme->mii_if.phy_id, JM_PHY_SPEC_ADDR_REG, jme 1747 drivers/net/ethernet/jme.c jme_phy_calibration(struct jme_adapter *jme) jme 1751 drivers/net/ethernet/jme.c jme_phy_off(jme); jme 1752 drivers/net/ethernet/jme.c jme_phy_on(jme); jme 1754 drivers/net/ethernet/jme.c ctrl1000 = jme_mdio_read(jme->dev, jme->mii_if.phy_id, MII_CTRL1000); jme 1757 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme->mii_if.phy_id, MII_CTRL1000, ctrl1000); jme 1759 drivers/net/ethernet/jme.c phy_data = jme_phy_specreg_read(jme, JM_PHY_EXT_COMM_2_REG); jme 1763 drivers/net/ethernet/jme.c jme_phy_specreg_write(jme, JM_PHY_EXT_COMM_2_REG, phy_data); jme 1765 drivers/net/ethernet/jme.c phy_data = jme_phy_specreg_read(jme, JM_PHY_EXT_COMM_2_REG); jme 1769 drivers/net/ethernet/jme.c jme_phy_specreg_write(jme, JM_PHY_EXT_COMM_2_REG, phy_data); jme 1772 drivers/net/ethernet/jme.c ctrl1000 = jme_mdio_read(jme->dev, jme->mii_if.phy_id, MII_CTRL1000); jme 1774 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme->mii_if.phy_id, MII_CTRL1000, ctrl1000); jme 1779 drivers/net/ethernet/jme.c jme_phy_setEA(struct jme_adapter *jme) jme 1784 drivers/net/ethernet/jme.c pci_read_config_byte(jme->pdev, PCI_PRIV_SHARE_NICCTRL, &nic_ctrl); jme 1788 drivers/net/ethernet/jme.c switch (jme->pdev->device) { jme 1790 drivers/net/ethernet/jme.c if (((jme->chip_main_rev == 5) && jme 1791 drivers/net/ethernet/jme.c ((jme->chip_sub_rev == 0) || (jme->chip_sub_rev == 1) || jme 1792 drivers/net/ethernet/jme.c (jme->chip_sub_rev == 3))) || jme 1793 drivers/net/ethernet/jme.c (jme->chip_main_rev >= 6)) { jme 1797 drivers/net/ethernet/jme.c if ((jme->chip_main_rev == 3) && jme 1798 drivers/net/ethernet/jme.c ((jme->chip_sub_rev == 1) || (jme->chip_sub_rev == 2))) jme 1802 drivers/net/ethernet/jme.c if (((jme->chip_main_rev == 5) && jme 1803 drivers/net/ethernet/jme.c ((jme->chip_sub_rev == 0) || (jme->chip_sub_rev == 1) || jme 1804 drivers/net/ethernet/jme.c (jme->chip_sub_rev == 3))) || jme 1805 drivers/net/ethernet/jme.c (jme->chip_main_rev >= 6)) { jme 1809 drivers/net/ethernet/jme.c if ((jme->chip_main_rev == 3) && jme 1810 drivers/net/ethernet/jme.c ((jme->chip_sub_rev == 1) || (jme->chip_sub_rev == 2))) jme 1812 drivers/net/ethernet/jme.c if ((jme->chip_main_rev == 2) && (jme->chip_sub_rev == 0)) jme 1814 drivers/net/ethernet/jme.c if ((jme->chip_main_rev == 2) && (jme->chip_sub_rev == 2)) jme 1821 drivers/net/ethernet/jme.c jme_phy_specreg_write(jme, JM_PHY_EXT_COMM_0_REG, phy_comm0); jme 1823 drivers/net/ethernet/jme.c jme_phy_specreg_write(jme, JM_PHY_EXT_COMM_1_REG, phy_comm1); jme 1831 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 1834 drivers/net/ethernet/jme.c jme_clear_pm_disable_wol(jme); jme 1835 drivers/net/ethernet/jme.c JME_NAPI_ENABLE(jme); jme 1837 drivers/net/ethernet/jme.c tasklet_init(&jme->linkch_task, jme_link_change_tasklet, jme 1838 drivers/net/ethernet/jme.c (unsigned long) jme); jme 1839 drivers/net/ethernet/jme.c tasklet_init(&jme->txclean_task, jme_tx_clean_tasklet, jme 1840 drivers/net/ethernet/jme.c (unsigned long) jme); jme 1841 drivers/net/ethernet/jme.c tasklet_init(&jme->rxclean_task, jme_rx_clean_tasklet, jme 1842 drivers/net/ethernet/jme.c (unsigned long) jme); jme 1843 drivers/net/ethernet/jme.c tasklet_init(&jme->rxempty_task, jme_rx_empty_tasklet, jme 1844 drivers/net/ethernet/jme.c (unsigned long) jme); jme 1846 drivers/net/ethernet/jme.c rc = jme_request_irq(jme); jme 1850 drivers/net/ethernet/jme.c jme_start_irq(jme); jme 1852 drivers/net/ethernet/jme.c jme_phy_on(jme); jme 1853 drivers/net/ethernet/jme.c if (test_bit(JME_FLAG_SSET, &jme->flags)) jme 1854 drivers/net/ethernet/jme.c jme_set_link_ksettings(netdev, &jme->old_cmd); jme 1856 drivers/net/ethernet/jme.c jme_reset_phy_processor(jme); jme 1857 drivers/net/ethernet/jme.c jme_phy_calibration(jme); jme 1858 drivers/net/ethernet/jme.c jme_phy_setEA(jme); jme 1859 drivers/net/ethernet/jme.c jme_reset_link(jme); jme 1870 drivers/net/ethernet/jme.c jme_set_100m_half(struct jme_adapter *jme) jme 1874 drivers/net/ethernet/jme.c jme_phy_on(jme); jme 1875 drivers/net/ethernet/jme.c bmcr = jme_mdio_read(jme->dev, jme->mii_if.phy_id, MII_BMCR); jme 1881 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme->mii_if.phy_id, MII_BMCR, tmp); jme 1883 drivers/net/ethernet/jme.c if (jme->fpgaver) jme 1884 drivers/net/ethernet/jme.c jwrite32(jme, JME_GHC, GHC_SPEED_100M | GHC_LINK_POLL); jme 1886 drivers/net/ethernet/jme.c jwrite32(jme, JME_GHC, GHC_SPEED_100M); jme 1891 drivers/net/ethernet/jme.c jme_wait_link(struct jme_adapter *jme) jme 1896 drivers/net/ethernet/jme.c phylink = jme_linkstat_from_phy(jme); jme 1899 drivers/net/ethernet/jme.c phylink = jme_linkstat_from_phy(jme); jme 1904 drivers/net/ethernet/jme.c jme_powersave_phy(struct jme_adapter *jme) jme 1906 drivers/net/ethernet/jme.c if (jme->reg_pmcs && device_may_wakeup(&jme->pdev->dev)) { jme 1907 drivers/net/ethernet/jme.c jme_set_100m_half(jme); jme 1908 drivers/net/ethernet/jme.c if (jme->reg_pmcs & (PMCS_LFEN | PMCS_LREN)) jme 1909 drivers/net/ethernet/jme.c jme_wait_link(jme); jme 1910 drivers/net/ethernet/jme.c jme_clear_pm_enable_wol(jme); jme 1912 drivers/net/ethernet/jme.c jme_phy_off(jme); jme 1919 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 1924 drivers/net/ethernet/jme.c jme_stop_irq(jme); jme 1925 drivers/net/ethernet/jme.c jme_free_irq(jme); jme 1927 drivers/net/ethernet/jme.c JME_NAPI_DISABLE(jme); jme 1929 drivers/net/ethernet/jme.c tasklet_kill(&jme->linkch_task); jme 1930 drivers/net/ethernet/jme.c tasklet_kill(&jme->txclean_task); jme 1931 drivers/net/ethernet/jme.c tasklet_kill(&jme->rxclean_task); jme 1932 drivers/net/ethernet/jme.c tasklet_kill(&jme->rxempty_task); jme 1934 drivers/net/ethernet/jme.c jme_disable_rx_engine(jme); jme 1935 drivers/net/ethernet/jme.c jme_disable_tx_engine(jme); jme 1936 drivers/net/ethernet/jme.c jme_reset_mac_processor(jme); jme 1937 drivers/net/ethernet/jme.c jme_free_rx_resources(jme); jme 1938 drivers/net/ethernet/jme.c jme_free_tx_resources(jme); jme 1939 drivers/net/ethernet/jme.c jme->phylink = 0; jme 1940 drivers/net/ethernet/jme.c jme_phy_off(jme); jme 1946 drivers/net/ethernet/jme.c jme_alloc_txdesc(struct jme_adapter *jme, jme 1949 drivers/net/ethernet/jme.c struct jme_ring *txring = &(jme->txring[0]); jme 1950 drivers/net/ethernet/jme.c int idx, nr_alloc, mask = jme->tx_ring_mask; jme 2004 drivers/net/ethernet/jme.c static void jme_drop_tx_map(struct jme_adapter *jme, int startidx, int count) jme 2006 drivers/net/ethernet/jme.c struct jme_ring *txring = &(jme->txring[0]); jme 2008 drivers/net/ethernet/jme.c int mask = jme->tx_ring_mask; jme 2013 drivers/net/ethernet/jme.c pci_unmap_page(jme->pdev, jme 2024 drivers/net/ethernet/jme.c jme_map_tx_skb(struct jme_adapter *jme, struct sk_buff *skb, int idx) jme 2026 drivers/net/ethernet/jme.c struct jme_ring *txring = &(jme->txring[0]); jme 2029 drivers/net/ethernet/jme.c bool hidma = jme->dev->features & NETIF_F_HIGHDMA; jme 2031 drivers/net/ethernet/jme.c int mask = jme->tx_ring_mask; jme 2041 drivers/net/ethernet/jme.c ret = jme_fill_tx_map(jme->pdev, ctxdesc, ctxbi, jme 2045 drivers/net/ethernet/jme.c jme_drop_tx_map(jme, idx, i); jme 2053 drivers/net/ethernet/jme.c ret = jme_fill_tx_map(jme->pdev, ctxdesc, ctxbi, virt_to_page(skb->data), jme 2056 drivers/net/ethernet/jme.c jme_drop_tx_map(jme, idx, i); jme 2095 drivers/net/ethernet/jme.c jme_tx_csum(struct jme_adapter *jme, struct sk_buff *skb, u8 *flags) jme 2120 drivers/net/ethernet/jme.c netif_err(jme, tx_err, jme->dev, "Error upper layer protocol\n"); jme 2136 drivers/net/ethernet/jme.c jme_fill_tx_desc(struct jme_adapter *jme, struct sk_buff *skb, int idx) jme 2138 drivers/net/ethernet/jme.c struct jme_ring *txring = &(jme->txring[0]); jme 2165 drivers/net/ethernet/jme.c jme_tx_csum(jme, skb, &flags); jme 2167 drivers/net/ethernet/jme.c ret = jme_map_tx_skb(jme, skb, idx); jme 2188 drivers/net/ethernet/jme.c jme_stop_queue_if_full(struct jme_adapter *jme) jme 2190 drivers/net/ethernet/jme.c struct jme_ring *txring = &(jme->txring[0]); jme 2198 drivers/net/ethernet/jme.c netif_stop_queue(jme->dev); jme 2199 drivers/net/ethernet/jme.c netif_info(jme, tx_queued, jme->dev, "TX Queue Paused\n"); jme 2202 drivers/net/ethernet/jme.c >= (jme->tx_wake_threshold)) { jme 2203 drivers/net/ethernet/jme.c netif_wake_queue(jme->dev); jme 2204 drivers/net/ethernet/jme.c netif_info(jme, tx_queued, jme->dev, "TX Queue Fast Waked\n"); jme 2211 drivers/net/ethernet/jme.c netif_stop_queue(jme->dev); jme 2212 drivers/net/ethernet/jme.c netif_info(jme, tx_queued, jme->dev, jme 2224 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2229 drivers/net/ethernet/jme.c ++(NET_STAT(jme).tx_dropped); jme 2233 drivers/net/ethernet/jme.c idx = jme_alloc_txdesc(jme, skb); jme 2237 drivers/net/ethernet/jme.c netif_err(jme, tx_err, jme->dev, jme 2243 drivers/net/ethernet/jme.c if (jme_fill_tx_desc(jme, skb, idx)) jme 2246 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXCS, jme->reg_txcs | jme 2251 drivers/net/ethernet/jme.c tx_dbg(jme, "xmit: %d+%d@%lu\n", jme 2253 drivers/net/ethernet/jme.c jme_stop_queue_if_full(jme); jme 2261 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2268 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXUMA_LO, val); jme 2271 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXUMA_HI, val); jme 2277 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2283 drivers/net/ethernet/jme.c spin_lock_bh(&jme->macaddr_lock); jme 2286 drivers/net/ethernet/jme.c spin_unlock_bh(&jme->macaddr_lock); jme 2294 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2297 drivers/net/ethernet/jme.c spin_lock_bh(&jme->rxmcs_lock); jme 2299 drivers/net/ethernet/jme.c jme->reg_rxmcs |= RXMCS_BRDFRAME | RXMCS_UNIFRAME; jme 2302 drivers/net/ethernet/jme.c jme->reg_rxmcs |= RXMCS_ALLFRAME; jme 2304 drivers/net/ethernet/jme.c jme->reg_rxmcs |= RXMCS_ALLMULFRAME; jme 2309 drivers/net/ethernet/jme.c jme->reg_rxmcs |= RXMCS_MULFRAME | RXMCS_MULFILTERED; jme 2315 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXMCHT_LO, mc_hash[0]); jme 2316 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXMCHT_HI, mc_hash[1]); jme 2320 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXMCS, jme->reg_rxmcs); jme 2322 drivers/net/ethernet/jme.c spin_unlock_bh(&jme->rxmcs_lock); jme 2328 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2333 drivers/net/ethernet/jme.c jme_restart_rx_engine(jme); jme 2334 drivers/net/ethernet/jme.c jme_reset_link(jme); jme 2342 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2344 drivers/net/ethernet/jme.c jme->phylink = 0; jme 2345 drivers/net/ethernet/jme.c jme_reset_phy_processor(jme); jme 2346 drivers/net/ethernet/jme.c if (test_bit(JME_FLAG_SSET, &jme->flags)) jme 2347 drivers/net/ethernet/jme.c jme_set_link_ksettings(netdev, &jme->old_cmd); jme 2352 drivers/net/ethernet/jme.c jme_reset_link(jme); jme 2359 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2363 drivers/net/ethernet/jme.c strlcpy(info->bus_info, pci_name(jme->pdev), sizeof(info->bus_info)); jme 2373 drivers/net/ethernet/jme.c mmapio_memcpy(struct jme_adapter *jme, u32 *p, u32 reg, int len) jme 2378 drivers/net/ethernet/jme.c p[i >> 2] = jread32(jme, reg + i); jme 2382 drivers/net/ethernet/jme.c mdio_memcpy(struct jme_adapter *jme, u32 *p, int reg_nr) jme 2388 drivers/net/ethernet/jme.c p16[i] = jme_mdio_read(jme->dev, jme->mii_if.phy_id, i); jme 2394 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2400 drivers/net/ethernet/jme.c mmapio_memcpy(jme, p32, JME_MAC, JME_MAC_LEN); jme 2403 drivers/net/ethernet/jme.c mmapio_memcpy(jme, p32, JME_PHY, JME_PHY_LEN); jme 2406 drivers/net/ethernet/jme.c mmapio_memcpy(jme, p32, JME_MISC, JME_MISC_LEN); jme 2409 drivers/net/ethernet/jme.c mmapio_memcpy(jme, p32, JME_RSS, JME_RSS_LEN); jme 2412 drivers/net/ethernet/jme.c mdio_memcpy(jme, p32, JME_PHY_REG_NR); jme 2418 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2423 drivers/net/ethernet/jme.c if (test_bit(JME_FLAG_POLL, &jme->flags)) { jme 2432 drivers/net/ethernet/jme.c switch (jme->dpi.cur) { jme 2455 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2456 drivers/net/ethernet/jme.c struct dynpcc_info *dpi = &(jme->dpi); jme 2462 drivers/net/ethernet/jme.c test_bit(JME_FLAG_POLL, &jme->flags)) { jme 2463 drivers/net/ethernet/jme.c clear_bit(JME_FLAG_POLL, &jme->flags); jme 2464 drivers/net/ethernet/jme.c jme->jme_rx = netif_rx; jme 2468 drivers/net/ethernet/jme.c jme_set_rx_pcc(jme, PCC_P1); jme 2469 drivers/net/ethernet/jme.c jme_interrupt_mode(jme); jme 2471 drivers/net/ethernet/jme.c !(test_bit(JME_FLAG_POLL, &jme->flags))) { jme 2472 drivers/net/ethernet/jme.c set_bit(JME_FLAG_POLL, &jme->flags); jme 2473 drivers/net/ethernet/jme.c jme->jme_rx = netif_receive_skb; jme 2474 drivers/net/ethernet/jme.c jme_interrupt_mode(jme); jme 2484 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2487 drivers/net/ethernet/jme.c ecmd->tx_pause = (jme->reg_txpfc & TXPFC_PF_EN) != 0; jme 2488 drivers/net/ethernet/jme.c ecmd->rx_pause = (jme->reg_rxmcs & RXMCS_FLOWCTRL) != 0; jme 2490 drivers/net/ethernet/jme.c spin_lock_bh(&jme->phy_lock); jme 2491 drivers/net/ethernet/jme.c val = jme_mdio_read(jme->dev, jme->mii_if.phy_id, MII_ADVERTISE); jme 2492 drivers/net/ethernet/jme.c spin_unlock_bh(&jme->phy_lock); jme 2502 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2505 drivers/net/ethernet/jme.c if (((jme->reg_txpfc & TXPFC_PF_EN) != 0) ^ jme 2509 drivers/net/ethernet/jme.c jme->reg_txpfc |= TXPFC_PF_EN; jme 2511 drivers/net/ethernet/jme.c jme->reg_txpfc &= ~TXPFC_PF_EN; jme 2513 drivers/net/ethernet/jme.c jwrite32(jme, JME_TXPFC, jme->reg_txpfc); jme 2516 drivers/net/ethernet/jme.c spin_lock_bh(&jme->rxmcs_lock); jme 2517 drivers/net/ethernet/jme.c if (((jme->reg_rxmcs & RXMCS_FLOWCTRL) != 0) ^ jme 2521 drivers/net/ethernet/jme.c jme->reg_rxmcs |= RXMCS_FLOWCTRL; jme 2523 drivers/net/ethernet/jme.c jme->reg_rxmcs &= ~RXMCS_FLOWCTRL; jme 2525 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXMCS, jme->reg_rxmcs); jme 2527 drivers/net/ethernet/jme.c spin_unlock_bh(&jme->rxmcs_lock); jme 2529 drivers/net/ethernet/jme.c spin_lock_bh(&jme->phy_lock); jme 2530 drivers/net/ethernet/jme.c val = jme_mdio_read(jme->dev, jme->mii_if.phy_id, MII_ADVERTISE); jme 2539 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme->mii_if.phy_id, jme 2542 drivers/net/ethernet/jme.c spin_unlock_bh(&jme->phy_lock); jme 2551 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2557 drivers/net/ethernet/jme.c if (jme->reg_pmcs & (PMCS_LFEN | PMCS_LREN)) jme 2560 drivers/net/ethernet/jme.c if (jme->reg_pmcs & PMCS_MFEN) jme 2569 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2578 drivers/net/ethernet/jme.c jme->reg_pmcs = 0; jme 2581 drivers/net/ethernet/jme.c jme->reg_pmcs |= PMCS_LFEN | PMCS_LREN; jme 2584 drivers/net/ethernet/jme.c jme->reg_pmcs |= PMCS_MFEN; jme 2593 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2595 drivers/net/ethernet/jme.c spin_lock_bh(&jme->phy_lock); jme 2596 drivers/net/ethernet/jme.c mii_ethtool_get_link_ksettings(&jme->mii_if, cmd); jme 2597 drivers/net/ethernet/jme.c spin_unlock_bh(&jme->phy_lock); jme 2605 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2616 drivers/net/ethernet/jme.c if (jme->mii_if.force_media && jme 2618 drivers/net/ethernet/jme.c (jme->mii_if.full_duplex != cmd->base.duplex)) jme 2621 drivers/net/ethernet/jme.c spin_lock_bh(&jme->phy_lock); jme 2622 drivers/net/ethernet/jme.c rc = mii_ethtool_set_link_ksettings(&jme->mii_if, cmd); jme 2623 drivers/net/ethernet/jme.c spin_unlock_bh(&jme->phy_lock); jme 2627 drivers/net/ethernet/jme.c jme_reset_link(jme); jme 2628 drivers/net/ethernet/jme.c jme->old_cmd = *cmd; jme 2629 drivers/net/ethernet/jme.c set_bit(JME_FLAG_SSET, &jme->flags); jme 2639 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2650 drivers/net/ethernet/jme.c spin_lock_bh(&jme->phy_lock); jme 2651 drivers/net/ethernet/jme.c rc = generic_mii_ioctl(&jme->mii_if, mii_data, cmd, &duplex_chg); jme 2652 drivers/net/ethernet/jme.c spin_unlock_bh(&jme->phy_lock); jme 2656 drivers/net/ethernet/jme.c jme_reset_link(jme); jme 2657 drivers/net/ethernet/jme.c jme_get_link_ksettings(netdev, &jme->old_cmd); jme 2658 drivers/net/ethernet/jme.c set_bit(JME_FLAG_SSET, &jme->flags); jme 2667 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2668 drivers/net/ethernet/jme.c return jread32(jme, JME_PHY_LINK) & PHY_LINK_UP; jme 2674 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2675 drivers/net/ethernet/jme.c return jme->msg_enable; jme 2681 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2682 drivers/net/ethernet/jme.c jme->msg_enable = value; jme 2696 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2698 drivers/net/ethernet/jme.c spin_lock_bh(&jme->rxmcs_lock); jme 2700 drivers/net/ethernet/jme.c jme->reg_rxmcs |= RXMCS_CHECKSUM; jme 2702 drivers/net/ethernet/jme.c jme->reg_rxmcs &= ~RXMCS_CHECKSUM; jme 2703 drivers/net/ethernet/jme.c jwrite32(jme, JME_RXMCS, jme->reg_rxmcs); jme 2704 drivers/net/ethernet/jme.c spin_unlock_bh(&jme->rxmcs_lock); jme 2723 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2724 drivers/net/ethernet/jme.c jme_restart_an(jme); jme 2729 drivers/net/ethernet/jme.c jme_smb_read(struct jme_adapter *jme, unsigned int addr) jme 2734 drivers/net/ethernet/jme.c val = jread32(jme, JME_SMBCSR); jme 2738 drivers/net/ethernet/jme.c val = jread32(jme, JME_SMBCSR); jme 2741 drivers/net/ethernet/jme.c netif_err(jme, hw, jme->dev, "SMB Bus Busy\n"); jme 2745 drivers/net/ethernet/jme.c jwrite32(jme, JME_SMBINTF, jme 2750 drivers/net/ethernet/jme.c val = jread32(jme, JME_SMBINTF); jme 2754 drivers/net/ethernet/jme.c val = jread32(jme, JME_SMBINTF); jme 2757 drivers/net/ethernet/jme.c netif_err(jme, hw, jme->dev, "SMB Bus Busy\n"); jme 2765 drivers/net/ethernet/jme.c jme_smb_write(struct jme_adapter *jme, unsigned int addr, u8 data) jme 2770 drivers/net/ethernet/jme.c val = jread32(jme, JME_SMBCSR); jme 2774 drivers/net/ethernet/jme.c val = jread32(jme, JME_SMBCSR); jme 2777 drivers/net/ethernet/jme.c netif_err(jme, hw, jme->dev, "SMB Bus Busy\n"); jme 2781 drivers/net/ethernet/jme.c jwrite32(jme, JME_SMBINTF, jme 2787 drivers/net/ethernet/jme.c val = jread32(jme, JME_SMBINTF); jme 2791 drivers/net/ethernet/jme.c val = jread32(jme, JME_SMBINTF); jme 2794 drivers/net/ethernet/jme.c netif_err(jme, hw, jme->dev, "SMB Bus Busy\n"); jme 2804 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2806 drivers/net/ethernet/jme.c val = jread32(jme, JME_SMBCSR); jme 2814 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2822 drivers/net/ethernet/jme.c data[i] = jme_smb_read(jme, i + offset); jme 2831 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 2841 drivers/net/ethernet/jme.c jme_smb_write(jme, i + offset, data[i]); jme 2888 drivers/net/ethernet/jme.c jme_phy_init(struct jme_adapter *jme) jme 2892 drivers/net/ethernet/jme.c reg26 = jme_mdio_read(jme->dev, jme->mii_if.phy_id, 26); jme 2893 drivers/net/ethernet/jme.c jme_mdio_write(jme->dev, jme->mii_if.phy_id, 26, reg26 | 0x1000); jme 2897 drivers/net/ethernet/jme.c jme_check_hw_ver(struct jme_adapter *jme) jme 2901 drivers/net/ethernet/jme.c chipmode = jread32(jme, JME_CHIPMODE); jme 2903 drivers/net/ethernet/jme.c jme->fpgaver = (chipmode & CM_FPGAVER_MASK) >> CM_FPGAVER_SHIFT; jme 2904 drivers/net/ethernet/jme.c jme->chiprev = (chipmode & CM_CHIPREV_MASK) >> CM_CHIPREV_SHIFT; jme 2905 drivers/net/ethernet/jme.c jme->chip_main_rev = jme->chiprev & 0xF; jme 2906 drivers/net/ethernet/jme.c jme->chip_sub_rev = (jme->chiprev >> 4) & 0xF; jme 2932 drivers/net/ethernet/jme.c struct jme_adapter *jme; jme 2972 drivers/net/ethernet/jme.c netdev = alloc_etherdev(sizeof(*jme)); jme 3006 drivers/net/ethernet/jme.c jme = netdev_priv(netdev); jme 3007 drivers/net/ethernet/jme.c jme->pdev = pdev; jme 3008 drivers/net/ethernet/jme.c jme->dev = netdev; jme 3009 drivers/net/ethernet/jme.c jme->jme_rx = netif_rx; jme 3010 drivers/net/ethernet/jme.c jme->old_mtu = netdev->mtu = 1500; jme 3011 drivers/net/ethernet/jme.c jme->phylink = 0; jme 3012 drivers/net/ethernet/jme.c jme->tx_ring_size = 1 << 10; jme 3013 drivers/net/ethernet/jme.c jme->tx_ring_mask = jme->tx_ring_size - 1; jme 3014 drivers/net/ethernet/jme.c jme->tx_wake_threshold = 1 << 9; jme 3015 drivers/net/ethernet/jme.c jme->rx_ring_size = 1 << 9; jme 3016 drivers/net/ethernet/jme.c jme->rx_ring_mask = jme->rx_ring_size - 1; jme 3017 drivers/net/ethernet/jme.c jme->msg_enable = JME_DEF_MSG_ENABLE; jme 3018 drivers/net/ethernet/jme.c jme->regs = ioremap(pci_resource_start(pdev, 0), jme 3020 drivers/net/ethernet/jme.c if (!(jme->regs)) { jme 3027 drivers/net/ethernet/jme.c apmc = jread32(jme, JME_APMC) & ~JME_APMC_PSEUDO_HP_EN; jme 3028 drivers/net/ethernet/jme.c jwrite32(jme, JME_APMC, apmc); jme 3030 drivers/net/ethernet/jme.c apmc = jread32(jme, JME_APMC) | JME_APMC_PSEUDO_HP_EN; jme 3031 drivers/net/ethernet/jme.c jwrite32(jme, JME_APMC, apmc); jme 3034 drivers/net/ethernet/jme.c NETIF_NAPI_SET(netdev, &jme->napi, jme_poll, NAPI_POLL_WEIGHT) jme 3036 drivers/net/ethernet/jme.c spin_lock_init(&jme->phy_lock); jme 3037 drivers/net/ethernet/jme.c spin_lock_init(&jme->macaddr_lock); jme 3038 drivers/net/ethernet/jme.c spin_lock_init(&jme->rxmcs_lock); jme 3040 drivers/net/ethernet/jme.c atomic_set(&jme->link_changing, 1); jme 3041 drivers/net/ethernet/jme.c atomic_set(&jme->rx_cleaning, 1); jme 3042 drivers/net/ethernet/jme.c atomic_set(&jme->tx_cleaning, 1); jme 3043 drivers/net/ethernet/jme.c atomic_set(&jme->rx_empty, 1); jme 3045 drivers/net/ethernet/jme.c tasklet_init(&jme->pcc_task, jme 3047 drivers/net/ethernet/jme.c (unsigned long) jme); jme 3048 drivers/net/ethernet/jme.c jme->dpi.cur = PCC_P1; jme 3050 drivers/net/ethernet/jme.c jme->reg_ghc = 0; jme 3051 drivers/net/ethernet/jme.c jme->reg_rxcs = RXCS_DEFAULT; jme 3052 drivers/net/ethernet/jme.c jme->reg_rxmcs = RXMCS_DEFAULT; jme 3053 drivers/net/ethernet/jme.c jme->reg_txpfc = 0; jme 3054 drivers/net/ethernet/jme.c jme->reg_pmcs = PMCS_MFEN; jme 3055 drivers/net/ethernet/jme.c jme->reg_gpreg1 = GPREG1_DEFAULT; jme 3057 drivers/net/ethernet/jme.c if (jme->reg_rxmcs & RXMCS_CHECKSUM) jme 3063 drivers/net/ethernet/jme.c pci_read_config_byte(pdev, PCI_DCSR_MRRS, &jme->mrrs); jme 3064 drivers/net/ethernet/jme.c jme->mrrs &= PCI_DCSR_MRRS_MASK; jme 3065 drivers/net/ethernet/jme.c switch (jme->mrrs) { jme 3067 drivers/net/ethernet/jme.c jme->reg_txcs = TXCS_DEFAULT | TXCS_DMASIZE_128B; jme 3070 drivers/net/ethernet/jme.c jme->reg_txcs = TXCS_DEFAULT | TXCS_DMASIZE_256B; jme 3073 drivers/net/ethernet/jme.c jme->reg_txcs = TXCS_DEFAULT | TXCS_DMASIZE_512B; jme 3080 drivers/net/ethernet/jme.c jme_check_hw_ver(jme); jme 3081 drivers/net/ethernet/jme.c jme->mii_if.dev = netdev; jme 3082 drivers/net/ethernet/jme.c if (jme->fpgaver) { jme 3083 drivers/net/ethernet/jme.c jme->mii_if.phy_id = 0; jme 3088 drivers/net/ethernet/jme.c jme->mii_if.phy_id = i; jme 3093 drivers/net/ethernet/jme.c if (!jme->mii_if.phy_id) { jme 3099 drivers/net/ethernet/jme.c jme->reg_ghc |= GHC_LINK_POLL; jme 3101 drivers/net/ethernet/jme.c jme->mii_if.phy_id = 1; jme 3104 drivers/net/ethernet/jme.c jme->mii_if.supports_gmii = true; jme 3106 drivers/net/ethernet/jme.c jme->mii_if.supports_gmii = false; jme 3107 drivers/net/ethernet/jme.c jme->mii_if.phy_id_mask = 0x1F; jme 3108 drivers/net/ethernet/jme.c jme->mii_if.reg_num_mask = 0x1F; jme 3109 drivers/net/ethernet/jme.c jme->mii_if.mdio_read = jme_mdio_read; jme 3110 drivers/net/ethernet/jme.c jme->mii_if.mdio_write = jme_mdio_write; jme 3112 drivers/net/ethernet/jme.c jme_clear_pm_disable_wol(jme); jme 3115 drivers/net/ethernet/jme.c jme_set_phyfifo_5level(jme); jme 3116 drivers/net/ethernet/jme.c jme->pcirev = pdev->revision; jme 3117 drivers/net/ethernet/jme.c if (!jme->fpgaver) jme 3118 drivers/net/ethernet/jme.c jme_phy_init(jme); jme 3119 drivers/net/ethernet/jme.c jme_phy_off(jme); jme 3124 drivers/net/ethernet/jme.c jme_reset_mac_processor(jme); jme 3125 drivers/net/ethernet/jme.c rc = jme_reload_eeprom(jme); jme 3143 drivers/net/ethernet/jme.c netif_info(jme, probe, jme->dev, "%s%s chiprev:%x pcirev:%x macaddr:%pM\n", jme 3144 drivers/net/ethernet/jme.c (jme->pdev->device == PCI_DEVICE_ID_JMICRON_JMC250) ? jme 3146 drivers/net/ethernet/jme.c (jme->pdev->device == PCI_DEVICE_ID_JMICRON_JMC260) ? jme 3148 drivers/net/ethernet/jme.c (jme->fpgaver != 0) ? " (FPGA)" : "", jme 3149 drivers/net/ethernet/jme.c (jme->fpgaver != 0) ? jme->fpgaver : jme->chiprev, jme 3150 drivers/net/ethernet/jme.c jme->pcirev, netdev->dev_addr); jme 3155 drivers/net/ethernet/jme.c iounmap(jme->regs); jme 3170 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 3173 drivers/net/ethernet/jme.c iounmap(jme->regs); jme 3184 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 3186 drivers/net/ethernet/jme.c jme_powersave_phy(jme); jme 3195 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 3200 drivers/net/ethernet/jme.c atomic_dec(&jme->link_changing); jme 3204 drivers/net/ethernet/jme.c jme_stop_irq(jme); jme 3206 drivers/net/ethernet/jme.c tasklet_disable(&jme->txclean_task); jme 3207 drivers/net/ethernet/jme.c tasklet_disable(&jme->rxclean_task); jme 3208 drivers/net/ethernet/jme.c tasklet_disable(&jme->rxempty_task); jme 3211 drivers/net/ethernet/jme.c if (test_bit(JME_FLAG_POLL, &jme->flags)) jme 3212 drivers/net/ethernet/jme.c jme_polling_mode(jme); jme 3214 drivers/net/ethernet/jme.c jme_stop_pcc_timer(jme); jme 3215 drivers/net/ethernet/jme.c jme_disable_rx_engine(jme); jme 3216 drivers/net/ethernet/jme.c jme_disable_tx_engine(jme); jme 3217 drivers/net/ethernet/jme.c jme_reset_mac_processor(jme); jme 3218 drivers/net/ethernet/jme.c jme_free_rx_resources(jme); jme 3219 drivers/net/ethernet/jme.c jme_free_tx_resources(jme); jme 3221 drivers/net/ethernet/jme.c jme->phylink = 0; jme 3224 drivers/net/ethernet/jme.c tasklet_enable(&jme->txclean_task); jme 3225 drivers/net/ethernet/jme.c tasklet_enable(&jme->rxclean_task); jme 3226 drivers/net/ethernet/jme.c tasklet_enable(&jme->rxempty_task); jme 3228 drivers/net/ethernet/jme.c jme_powersave_phy(jme); jme 3237 drivers/net/ethernet/jme.c struct jme_adapter *jme = netdev_priv(netdev); jme 3242 drivers/net/ethernet/jme.c jme_clear_pm_disable_wol(jme); jme 3243 drivers/net/ethernet/jme.c jme_phy_on(jme); jme 3244 drivers/net/ethernet/jme.c if (test_bit(JME_FLAG_SSET, &jme->flags)) jme 3245 drivers/net/ethernet/jme.c jme_set_link_ksettings(netdev, &jme->old_cmd); jme 3247 drivers/net/ethernet/jme.c jme_reset_phy_processor(jme); jme 3248 drivers/net/ethernet/jme.c jme_phy_calibration(jme); jme 3249 drivers/net/ethernet/jme.c jme_phy_setEA(jme); jme 3252 drivers/net/ethernet/jme.c atomic_inc(&jme->link_changing); jme 3254 drivers/net/ethernet/jme.c jme_reset_link(jme); jme 3256 drivers/net/ethernet/jme.c jme_start_irq(jme); jme 464 drivers/net/ethernet/jme.h struct jme_adapter *jme; jme 465 drivers/net/ethernet/jme.h jme = container_of(napi, struct jme_adapter, napi); jme 466 drivers/net/ethernet/jme.h return jme; jme 1174 drivers/net/ethernet/jme.h static inline void reg_dbg(const struct jme_adapter *jme, jme 1191 drivers/net/ethernet/jme.h printk(KERN_DEBUG "%s: %-20s %08x@%s\n", jme->dev->name, jme 1195 drivers/net/ethernet/jme.h static inline void reg_dbg(const struct jme_adapter *jme, jme 1202 drivers/net/ethernet/jme.h static inline u32 jread32(struct jme_adapter *jme, u32 reg) jme 1204 drivers/net/ethernet/jme.h return readl(jme->regs + reg); jme 1207 drivers/net/ethernet/jme.h static inline void jwrite32(struct jme_adapter *jme, u32 reg, u32 val) jme 1209 drivers/net/ethernet/jme.h reg_dbg(jme, "REG WRITE", val, reg); jme 1210 drivers/net/ethernet/jme.h writel(val, jme->regs + reg); jme 1211 drivers/net/ethernet/jme.h reg_dbg(jme, "VAL AFTER WRITE", readl(jme->regs + reg), reg); jme 1214 drivers/net/ethernet/jme.h static inline void jwrite32f(struct jme_adapter *jme, u32 reg, u32 val) jme 1219 drivers/net/ethernet/jme.h reg_dbg(jme, "REG WRITE FLUSH", val, reg); jme 1220 drivers/net/ethernet/jme.h writel(val, jme->regs + reg); jme 1221 drivers/net/ethernet/jme.h readl(jme->regs + reg); jme 1222 drivers/net/ethernet/jme.h reg_dbg(jme, "VAL AFTER WRITE", readl(jme->regs + reg), reg);