* [net-next-2.6 PATCH 1/2] igb: do not re-register DCA requester on device reset @ 2009-05-21 23:06 Jeff Kirsher 2009-05-21 23:07 ` [net-next-2.6 PATCH 2/2] ixgbe: only register DCA requester once Jeff Kirsher 2009-05-22 0:20 ` [net-next-2.6 PATCH 1/2] igb: do not re-register DCA requester on device reset David Miller 0 siblings, 2 replies; 4+ messages in thread From: Jeff Kirsher @ 2009-05-21 23:06 UTC (permalink / raw) To: davem; +Cc: netdev, Alexander Duyck, Jeff Kirsher From: Alexander Duyck <alexander.h.duyck@intel.com> The current driver is re-registering the DCA requester after every reset. Instead of doing this we should only be updating the on board DCA registers and not unregistering/re-registering our requester. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/igb/igb_main.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index ffd7315..2ec9809 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c @@ -996,6 +996,11 @@ void igb_down(struct igb_adapter *adapter) igb_reset(adapter); igb_clean_all_tx_rings(adapter); igb_clean_all_rx_rings(adapter); +#ifdef CONFIG_IGB_DCA + + /* since we reset the hardware DCA settings were cleared */ + igb_setup_dca(adapter); +#endif } void igb_reinit_locked(struct igb_adapter *adapter) @@ -1457,9 +1462,6 @@ static int __devinit igb_probe(struct pci_dev *pdev, if (dca_add_requester(&pdev->dev) == 0) { adapter->flags |= IGB_FLAG_DCA_ENABLED; dev_info(&pdev->dev, "DCA enabled\n"); - /* Always use CB2 mode, difference is masked - * in the CB driver. */ - wr32(E1000_DCA_CTRL, E1000_DCA_CTRL_DCA_MODE_CB2); igb_setup_dca(adapter); } #endif @@ -3771,11 +3773,15 @@ static void igb_update_tx_dca(struct igb_ring *tx_ring) static void igb_setup_dca(struct igb_adapter *adapter) { + struct e1000_hw *hw = &adapter->hw; int i; if (!(adapter->flags & IGB_FLAG_DCA_ENABLED)) return; + /* Always use CB2 mode, difference is masked in the CB driver. */ + wr32(E1000_DCA_CTRL, E1000_DCA_CTRL_DCA_MODE_CB2); + for (i = 0; i < adapter->num_tx_queues; i++) { adapter->tx_ring[i].cpu = -1; igb_update_tx_dca(&adapter->tx_ring[i]); ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [net-next-2.6 PATCH 2/2] ixgbe: only register DCA requester once 2009-05-21 23:06 [net-next-2.6 PATCH 1/2] igb: do not re-register DCA requester on device reset Jeff Kirsher @ 2009-05-21 23:07 ` Jeff Kirsher 2009-05-22 0:20 ` David Miller 2009-05-22 0:20 ` [net-next-2.6 PATCH 1/2] igb: do not re-register DCA requester on device reset David Miller 1 sibling, 1 reply; 4+ messages in thread From: Jeff Kirsher @ 2009-05-21 23:07 UTC (permalink / raw) To: davem; +Cc: netdev, Alexander Duyck, Jeff Kirsher From: Alexander Duyck <alexander.h.duyck@intel.com> The current driver tries to re-register the DCA requester after reset and this is not correct. This change makes it so all we are doing is resetting the DCA registers after reset and not re-adding the requester. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ixgbe/ixgbe_main.c | 24 ++++-------------------- 1 files changed, 4 insertions(+), 20 deletions(-) diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index 3d5f7f5..e52798c 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c @@ -411,6 +411,9 @@ static void ixgbe_setup_dca(struct ixgbe_adapter *adapter) if (!(adapter->flags & IXGBE_FLAG_DCA_ENABLED)) return; + /* always use CB2 mode, difference is masked in the CB driver */ + IXGBE_WRITE_REG(&adapter->hw, IXGBE_DCA_CTRL, 2); + for (i = 0; i < adapter->num_tx_queues; i++) { adapter->tx_ring[i].cpu = -1; ixgbe_update_tx_dca(adapter, &adapter->tx_ring[i]); @@ -432,9 +435,6 @@ static int __ixgbe_notify_dca(struct device *dev, void *data) /* if we're already enabled, don't do it again */ if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) break; - /* Always use CB2 mode, difference is masked - * in the CB driver. */ - IXGBE_WRITE_REG(&adapter->hw, IXGBE_DCA_CTRL, 2); if (dca_add_requester(dev) == 0) { adapter->flags |= IXGBE_FLAG_DCA_ENABLED; ixgbe_setup_dca(adapter); @@ -2767,13 +2767,6 @@ void ixgbe_down(struct ixgbe_adapter *adapter) netif_carrier_off(netdev); -#ifdef CONFIG_IXGBE_DCA - if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) { - adapter->flags &= ~IXGBE_FLAG_DCA_ENABLED; - dca_remove_requester(&adapter->pdev->dev); - } - -#endif if (!pci_channel_offline(adapter->pdev)) ixgbe_reset(adapter); ixgbe_clean_all_tx_rings(adapter); @@ -2781,13 +2774,7 @@ void ixgbe_down(struct ixgbe_adapter *adapter) #ifdef CONFIG_IXGBE_DCA /* since we reset the hardware DCA settings were cleared */ - if (dca_add_requester(&adapter->pdev->dev) == 0) { - adapter->flags |= IXGBE_FLAG_DCA_ENABLED; - /* always use CB2 mode, difference is masked - * in the CB driver */ - IXGBE_WRITE_REG(hw, IXGBE_DCA_CTRL, 2); - ixgbe_setup_dca(adapter); - } + ixgbe_setup_dca(adapter); #endif } @@ -5354,9 +5341,6 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev, #ifdef CONFIG_IXGBE_DCA if (dca_add_requester(&pdev->dev) == 0) { adapter->flags |= IXGBE_FLAG_DCA_ENABLED; - /* always use CB2 mode, difference is masked - * in the CB driver */ - IXGBE_WRITE_REG(hw, IXGBE_DCA_CTRL, 2); ixgbe_setup_dca(adapter); } #endif ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [net-next-2.6 PATCH 2/2] ixgbe: only register DCA requester once 2009-05-21 23:07 ` [net-next-2.6 PATCH 2/2] ixgbe: only register DCA requester once Jeff Kirsher @ 2009-05-22 0:20 ` David Miller 0 siblings, 0 replies; 4+ messages in thread From: David Miller @ 2009-05-22 0:20 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, alexander.h.duyck From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Thu, 21 May 2009 16:07:12 -0700 > The current driver tries to re-register the DCA requester after reset and > this is not correct. This change makes it so all we are doing is resetting > the DCA registers after reset and not re-adding the requester. > > Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> > Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Applied. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [net-next-2.6 PATCH 1/2] igb: do not re-register DCA requester on device reset 2009-05-21 23:06 [net-next-2.6 PATCH 1/2] igb: do not re-register DCA requester on device reset Jeff Kirsher 2009-05-21 23:07 ` [net-next-2.6 PATCH 2/2] ixgbe: only register DCA requester once Jeff Kirsher @ 2009-05-22 0:20 ` David Miller 1 sibling, 0 replies; 4+ messages in thread From: David Miller @ 2009-05-22 0:20 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, alexander.h.duyck From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Thu, 21 May 2009 16:06:56 -0700 > The current driver is re-registering the DCA requester after every reset. > Instead of doing this we should only be updating the on board DCA registers > and not unregistering/re-registering our requester. > > Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> > Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Applied. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-05-22 0:20 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-05-21 23:06 [net-next-2.6 PATCH 1/2] igb: do not re-register DCA requester on device reset Jeff Kirsher 2009-05-21 23:07 ` [net-next-2.6 PATCH 2/2] ixgbe: only register DCA requester once Jeff Kirsher 2009-05-22 0:20 ` David Miller 2009-05-22 0:20 ` [net-next-2.6 PATCH 1/2] igb: do not re-register DCA requester on device reset David Miller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox