* [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 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
* 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
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;
as well as URLs for NNTP newsgroup(s).