summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSivakumar Subramani <Sivakumar.Subramani@neterion.com>2007-08-06 05:38:19 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 16:50:25 -0700
commit92c487996dfc01c6c1f7c660d076037a3a01a6ae (patch)
tree309986e775f2a0253edca70b179599d66e4c724f
parentc77dd43e77c530a12a466865805d2068ede96860 (diff)
downloadlinux-92c487996dfc01c6c1f7c660d076037a3a01a6ae.tar.gz
linux-92c487996dfc01c6c1f7c660d076037a3a01a6ae.tar.bz2
linux-92c487996dfc01c6c1f7c660d076037a3a01a6ae.zip
S2IO: Fixed Link LED issue when MSI-X is enabled
-Fixed Link LED issue when MSI-X is enabled. Signed-off-by: Sivakumar Subramani <sivakumar.subramani@neterion.com> Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r--drivers/net/s2io.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index e7b432c508f9..e7431c58da49 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -84,7 +84,7 @@
#include "s2io.h"
#include "s2io-regs.h"
-#define DRV_VERSION "2.0.25.1"
+#define DRV_VERSION "2.0.26.1"
/* S2io Driver name & version. */
static char s2io_driver_name[] = "Neterion";
@@ -6201,13 +6201,10 @@ static void s2io_set_link(struct work_struct *work)
netif_stop_queue(dev);
}
}
- val64 = readq(&bar0->adapter_status);
- if (!LINK_IS_UP(val64)) {
- DBG_PRINT(ERR_DBG, "%s:", dev->name);
- DBG_PRINT(ERR_DBG, " Link down after enabling ");
- DBG_PRINT(ERR_DBG, "device \n");
- } else
- s2io_link(nic, LINK_UP);
+ val64 = readq(&bar0->adapter_control);
+ val64 |= ADAPTER_LED_ON;
+ writeq(val64, &bar0->adapter_control);
+ s2io_link(nic, LINK_UP);
} else {
if (CARDS_WITH_FAULTY_LINK_INDICATORS(nic->device_type,
subid)) {
@@ -6216,6 +6213,10 @@ static void s2io_set_link(struct work_struct *work)
writeq(val64, &bar0->gpio_control);
val64 = readq(&bar0->gpio_control);
}
+ /* turn off LED */
+ val64 = readq(&bar0->adapter_control);
+ val64 = val64 &(~ADAPTER_LED_ON);
+ writeq(val64, &bar0->adapter_control);
s2io_link(nic, LINK_DOWN);
}
clear_bit(0, &(nic->link_state));