aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
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 19:50:25 -0400
commit92c487996dfc01c6c1f7c660d076037a3a01a6ae (patch)
tree309986e775f2a0253edca70b179599d66e4c724f /drivers
parentc77dd43e77c530a12a466865805d2068ede96860 (diff)
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>
Diffstat (limited to 'drivers')
-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 @@
84#include "s2io.h" 84#include "s2io.h"
85#include "s2io-regs.h" 85#include "s2io-regs.h"
86 86
87#define DRV_VERSION "2.0.25.1" 87#define DRV_VERSION "2.0.26.1"
88 88
89/* S2io Driver name & version. */ 89/* S2io Driver name & version. */
90static char s2io_driver_name[] = "Neterion"; 90static char s2io_driver_name[] = "Neterion";
@@ -6201,13 +6201,10 @@ static void s2io_set_link(struct work_struct *work)
6201 netif_stop_queue(dev); 6201 netif_stop_queue(dev);
6202 } 6202 }
6203 } 6203 }
6204 val64 = readq(&bar0->adapter_status); 6204 val64 = readq(&bar0->adapter_control);
6205 if (!LINK_IS_UP(val64)) { 6205 val64 |= ADAPTER_LED_ON;
6206 DBG_PRINT(ERR_DBG, "%s:", dev->name); 6206 writeq(val64, &bar0->adapter_control);
6207 DBG_PRINT(ERR_DBG, " Link down after enabling "); 6207 s2io_link(nic, LINK_UP);
6208 DBG_PRINT(ERR_DBG, "device \n");
6209 } else
6210 s2io_link(nic, LINK_UP);
6211 } else { 6208 } else {
6212 if (CARDS_WITH_FAULTY_LINK_INDICATORS(nic->device_type, 6209 if (CARDS_WITH_FAULTY_LINK_INDICATORS(nic->device_type,
6213 subid)) { 6210 subid)) {
@@ -6216,6 +6213,10 @@ static void s2io_set_link(struct work_struct *work)
6216 writeq(val64, &bar0->gpio_control); 6213 writeq(val64, &bar0->gpio_control);
6217 val64 = readq(&bar0->gpio_control); 6214 val64 = readq(&bar0->gpio_control);
6218 } 6215 }
6216 /* turn off LED */
6217 val64 = readq(&bar0->adapter_control);
6218 val64 = val64 &(~ADAPTER_LED_ON);
6219 writeq(val64, &bar0->adapter_control);
6219 s2io_link(nic, LINK_DOWN); 6220 s2io_link(nic, LINK_DOWN);
6220 } 6221 }
6221 clear_bit(0, &(nic->link_state)); 6222 clear_bit(0, &(nic->link_state));