diff options
| -rw-r--r-- | drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c index b2a94d02a521..d5190bf94ba0 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | |||
| @@ -420,6 +420,22 @@ static void pch_gbe_mac_reset_rx(struct pch_gbe_hw *hw) | |||
| 420 | return; | 420 | return; |
| 421 | } | 421 | } |
| 422 | 422 | ||
| 423 | static void pch_gbe_disable_mac_rx(struct pch_gbe_hw *hw) | ||
| 424 | { | ||
| 425 | u32 rctl; | ||
| 426 | /* Disables Receive MAC */ | ||
| 427 | rctl = ioread32(&hw->reg->MAC_RX_EN); | ||
| 428 | iowrite32((rctl & ~PCH_GBE_MRE_MAC_RX_EN), &hw->reg->MAC_RX_EN); | ||
| 429 | } | ||
| 430 | |||
| 431 | static void pch_gbe_enable_mac_rx(struct pch_gbe_hw *hw) | ||
| 432 | { | ||
| 433 | u32 rctl; | ||
| 434 | /* Enables Receive MAC */ | ||
| 435 | rctl = ioread32(&hw->reg->MAC_RX_EN); | ||
| 436 | iowrite32((rctl | PCH_GBE_MRE_MAC_RX_EN), &hw->reg->MAC_RX_EN); | ||
| 437 | } | ||
| 438 | |||
| 423 | /** | 439 | /** |
| 424 | * pch_gbe_mac_init_rx_addrs - Initialize receive address's | 440 | * pch_gbe_mac_init_rx_addrs - Initialize receive address's |
| 425 | * @hw: Pointer to the HW structure | 441 | * @hw: Pointer to the HW structure |
| @@ -913,7 +929,7 @@ static void pch_gbe_setup_rctl(struct pch_gbe_adapter *adapter) | |||
| 913 | static void pch_gbe_configure_rx(struct pch_gbe_adapter *adapter) | 929 | static void pch_gbe_configure_rx(struct pch_gbe_adapter *adapter) |
| 914 | { | 930 | { |
| 915 | struct pch_gbe_hw *hw = &adapter->hw; | 931 | struct pch_gbe_hw *hw = &adapter->hw; |
| 916 | u32 rdba, rdlen, rctl, rxdma; | 932 | u32 rdba, rdlen, rxdma; |
| 917 | 933 | ||
| 918 | pr_debug("dma adr = 0x%08llx size = 0x%08x\n", | 934 | pr_debug("dma adr = 0x%08llx size = 0x%08x\n", |
| 919 | (unsigned long long)adapter->rx_ring->dma, | 935 | (unsigned long long)adapter->rx_ring->dma, |
| @@ -921,9 +937,7 @@ static void pch_gbe_configure_rx(struct pch_gbe_adapter *adapter) | |||
| 921 | 937 | ||
| 922 | pch_gbe_mac_force_mac_fc(hw); | 938 | pch_gbe_mac_force_mac_fc(hw); |
| 923 | 939 | ||
| 924 | /* Disables Receive MAC */ | 940 | pch_gbe_disable_mac_rx(hw); |
| 925 | rctl = ioread32(&hw->reg->MAC_RX_EN); | ||
| 926 | iowrite32((rctl & ~PCH_GBE_MRE_MAC_RX_EN), &hw->reg->MAC_RX_EN); | ||
| 927 | 941 | ||
| 928 | /* Disables Receive DMA */ | 942 | /* Disables Receive DMA */ |
| 929 | rxdma = ioread32(&hw->reg->DMA_CTRL); | 943 | rxdma = ioread32(&hw->reg->DMA_CTRL); |
| @@ -1355,8 +1369,8 @@ static void pch_gbe_start_receive(struct pch_gbe_hw *hw) | |||
| 1355 | rxdma = ioread32(&hw->reg->DMA_CTRL); | 1369 | rxdma = ioread32(&hw->reg->DMA_CTRL); |
| 1356 | rxdma |= PCH_GBE_RX_DMA_EN; | 1370 | rxdma |= PCH_GBE_RX_DMA_EN; |
| 1357 | iowrite32(rxdma, &hw->reg->DMA_CTRL); | 1371 | iowrite32(rxdma, &hw->reg->DMA_CTRL); |
| 1358 | /* Enables Receive */ | 1372 | |
| 1359 | iowrite32(PCH_GBE_MRE_MAC_RX_EN, &hw->reg->MAC_RX_EN); | 1373 | pch_gbe_enable_mac_rx(hw); |
| 1360 | return; | 1374 | return; |
| 1361 | } | 1375 | } |
| 1362 | 1376 | ||
