summaryrefslogtreecommitdiff
path: root/ethtool.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-09-19 15:04:17 -0400
committerJeff Garzik <jeff@garzik.org>2006-09-19 15:04:17 -0400
commit5860312ac4ae67da856df19b31bd26ada6927955 (patch)
treec16ce31921aafcc24192a94172c8a4f7e15fd5df /ethtool.c
parent9fecbca7a032cd644d76a8b35ae4fe743e7b2b16 (diff)
parentbfcb014b3b18dce0e3f744b0ad919eef47b9d25d (diff)
downloadethtool-5860312ac4ae67da856df19b31bd26ada6927955.tar.gz
Merge branch 'e1000' of git://lost.foo-projects.org/~jtkirshe/ethtool into tmp
Diffstat (limited to 'ethtool.c')
-rw-r--r--ethtool.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/ethtool.c b/ethtool.c
index 87e22ab..b7f189a 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -99,6 +99,7 @@ static struct option {
" [ duplex half|full ]\n"
" [ port tp|aui|bnc|mii|fibre ]\n"
" [ autoneg on|off ]\n"
+ " [ advertise %%x ]\n"
" [ phyad %%d ]\n"
" [ xcvr internal|external ]\n"
" [ wol p|u|m|b|a|g|s|d... ]\n"
@@ -549,6 +550,15 @@ static void parse_cmdline(int argc, char **argp)
show_usage(1);
}
break;
+ } else if (!strcmp(argp[i], "advertise")) {
+ gset_changed = 1;
+ i += 1;
+ if (i >= argc)
+ show_usage(1);
+ advertising_wanted = strtol(argp[i], NULL, 16);
+ if (advertising_wanted < 0)
+ show_usage(1);
+ break;
} else if (!strcmp(argp[i], "phyad")) {
gset_changed = 1;
i += 1;
@@ -601,7 +611,7 @@ static void parse_cmdline(int argc, char **argp)
}
}
- if (autoneg_wanted == AUTONEG_ENABLE){
+ if ((autoneg_wanted == AUTONEG_ENABLE) && (advertising_wanted < 0)) {
if (speed_wanted == SPEED_10 && duplex_wanted == DUPLEX_HALF)
advertising_wanted = ADVERTISED_10baseT_Half;
else if (speed_wanted == SPEED_10 &&