]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/sfc/ethtool.c
Merge branches 'x86/acpi', 'x86/asm', 'x86/cpudetect', 'x86/crashdump', 'x86/debug...
[linux-2.6-omap-h63xx.git] / drivers / net / sfc / ethtool.c
index 7fa28443c7bc8537da5129ebe63e230a8d73f684..7b5924c039b31508069591b2dd977e8417614525 100644 (file)
@@ -219,9 +219,6 @@ int efx_ethtool_set_settings(struct net_device *net_dev,
        struct efx_nic *efx = netdev_priv(net_dev);
        int rc;
 
-       if (EFX_WORKAROUND_13963(efx) && !ecmd->autoneg)
-               return -EINVAL;
-
        /* Falcon GMAC does not support 1000Mbps HD */
        if (ecmd->speed == SPEED_1000 && ecmd->duplex != DUPLEX_FULL) {
                EFX_LOG(efx, "rejecting unsupported 1000Mbps HD"
@@ -345,7 +342,7 @@ static int efx_ethtool_fill_self_tests(struct efx_nic *efx,
                                       u64 *data)
 {
        struct efx_channel *channel;
-       unsigned int n = 0;
+       unsigned int n = 0, i;
        enum efx_loopback_mode mode;
 
        efx_fill_test(n++, strings, data, &tests->mii,
@@ -373,8 +370,10 @@ static int efx_ethtool_fill_self_tests(struct efx_nic *efx,
 
        efx_fill_test(n++, strings, data, &tests->registers,
                      "core", 0, "registers", NULL);
-       efx_fill_test(n++, strings, data, &tests->phy,
-                     "phy", 0, "bist", NULL);
+
+       for (i = 0; i < efx->phy_op->num_tests; i++)
+               efx_fill_test(n++, strings, data, &tests->phy[i],
+                             "phy", 0, efx->phy_op->test_names[i], NULL);
 
        /* Loopback tests */
        for (mode = LOOPBACK_NONE; mode <= LOOPBACK_TEST_MAX; mode++) {