projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/linville...
[powerpc.git]
/
drivers
/
net
/
ixp2000
/
enp2611.c
diff --git
a/drivers/net/ixp2000/enp2611.c
b/drivers/net/ixp2000/enp2611.c
index
3262e70
..
6f7dce8
100644
(file)
--- a/
drivers/net/ixp2000/enp2611.c
+++ b/
drivers/net/ixp2000/enp2611.c
@@
-16,7
+16,7
@@
#include <linux/etherdevice.h>
#include <linux/init.h>
#include <linux/moduleparam.h>
#include <linux/etherdevice.h>
#include <linux/init.h>
#include <linux/moduleparam.h>
-#include <asm/
arch
/uengine.h>
+#include <asm/
hardware
/uengine.h>
#include <asm/mach-types.h>
#include <asm/io.h>
#include "ixpdev.h"
#include <asm/mach-types.h>
#include <asm/io.h>
#include "ixpdev.h"
@@
-148,18
+148,20
@@
static void enp2611_check_link_status(unsigned long __dummy)
struct net_device *dev;
int status;
struct net_device *dev;
int status;
- if (!netif_running(nds[i]))
- continue;
-
dev = nds[i];
status = pm3386_is_link_up(i);
dev = nds[i];
status = pm3386_is_link_up(i);
- if (status && !netif_carrier_ok(nds[i])) {
+ if (status && !netif_carrier_ok(dev)) {
+ /* @@@ Should report autonegotiation status. */
+ printk(KERN_INFO "%s: NIC Link is Up\n", dev->name);
+
pm3386_enable_tx(i);
caleb_enable_tx(i);
pm3386_enable_tx(i);
caleb_enable_tx(i);
- netif_carrier_on(nds[i]);
- } else if (!status && netif_carrier_ok(nds[i])) {
- netif_carrier_off(nds[i]);
+ netif_carrier_on(dev);
+ } else if (!status && netif_carrier_ok(dev)) {
+ printk(KERN_INFO "%s: NIC Link is Down\n", dev->name);
+
+ netif_carrier_off(dev);
caleb_disable_tx(i);
pm3386_disable_tx(i);
}
caleb_disable_tx(i);
pm3386_disable_tx(i);
}
@@
-173,10
+175,15
@@
static void enp2611_set_port_admin_status(int port, int up)
{
if (up) {
caleb_enable_rx(port);
{
if (up) {
caleb_enable_rx(port);
+
+ pm3386_set_carrier(port, 1);
pm3386_enable_rx(port);
} else {
caleb_disable_tx(port);
pm3386_disable_tx(port);
pm3386_enable_rx(port);
} else {
caleb_disable_tx(port);
pm3386_disable_tx(port);
+ /* @@@ Flush out pending packets. */
+ pm3386_set_carrier(port, 0);
+
pm3386_disable_rx(port);
caleb_disable_rx(port);
}
pm3386_disable_rx(port);
caleb_disable_rx(port);
}