Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=31d76442f719af834718cbf5bf866370acc36093
Commit:     31d76442f719af834718cbf5bf866370acc36093
Parent:     e0aac5a289b1dacbc94bd9ae8c449bcdf9ab508c
Author:     Bruce Allan <[EMAIL PROTECTED]>
AuthorDate: Tue Mar 6 08:57:24 2007 -0800
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Thu Apr 26 02:22:41 2007 -0400

    e1000: FIX: firmware handover bits
    
    Upon code inspection it was spotted that the firmware handover bit get/set
    mismatched, which may have resulted in management issues on PCI-E
    adapters. Setting them correctly may fix some management issues such
    as arp routing etc.
    
    Signed-off-by: Auke Kok <[EMAIL PROTECTED]>
    Signed-off-by: Bruce Allan <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/e1000/e1000_main.c |   33 ++++++++++++---------------------
 1 files changed, 12 insertions(+), 21 deletions(-)

diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index f777d37..dd66f88 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -409,25 +409,21 @@ e1000_release_hw_control(struct e1000_adapter *adapter)
 {
        uint32_t ctrl_ext;
        uint32_t swsm;
-       uint32_t extcnf;
 
        /* Let firmware taken over control of h/w */
        switch (adapter->hw.mac_type) {
-       case e1000_82571:
-       case e1000_82572:
-       case e1000_80003es2lan:
-               ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT);
-               E1000_WRITE_REG(&adapter->hw, CTRL_EXT,
-                               ctrl_ext & ~E1000_CTRL_EXT_DRV_LOAD);
-               break;
        case e1000_82573:
                swsm = E1000_READ_REG(&adapter->hw, SWSM);
                E1000_WRITE_REG(&adapter->hw, SWSM,
                                swsm & ~E1000_SWSM_DRV_LOAD);
+               break;
+       case e1000_82571:
+       case e1000_82572:
+       case e1000_80003es2lan:
        case e1000_ich8lan:
-               extcnf = E1000_READ_REG(&adapter->hw, CTRL_EXT);
+               ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT);
                E1000_WRITE_REG(&adapter->hw, CTRL_EXT,
-                               extcnf & ~E1000_CTRL_EXT_DRV_LOAD);
+                               ctrl_ext & ~E1000_CTRL_EXT_DRV_LOAD);
                break;
        default:
                break;
@@ -450,26 +446,21 @@ e1000_get_hw_control(struct e1000_adapter *adapter)
 {
        uint32_t ctrl_ext;
        uint32_t swsm;
-       uint32_t extcnf;
 
        /* Let firmware know the driver has taken over */
        switch (adapter->hw.mac_type) {
-       case e1000_82571:
-       case e1000_82572:
-       case e1000_80003es2lan:
-               ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT);
-               E1000_WRITE_REG(&adapter->hw, CTRL_EXT,
-                               ctrl_ext | E1000_CTRL_EXT_DRV_LOAD);
-               break;
        case e1000_82573:
                swsm = E1000_READ_REG(&adapter->hw, SWSM);
                E1000_WRITE_REG(&adapter->hw, SWSM,
                                swsm | E1000_SWSM_DRV_LOAD);
                break;
+       case e1000_82571:
+       case e1000_82572:
+       case e1000_80003es2lan:
        case e1000_ich8lan:
-               extcnf = E1000_READ_REG(&adapter->hw, EXTCNF_CTRL);
-               E1000_WRITE_REG(&adapter->hw, EXTCNF_CTRL,
-                               extcnf | E1000_EXTCNF_CTRL_SWFLAG);
+               ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT);
+               E1000_WRITE_REG(&adapter->hw, CTRL_EXT,
+                               ctrl_ext | E1000_CTRL_EXT_DRV_LOAD);
                break;
        default:
                break;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to