]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
Merge tag 'wireless-drivers-for-davem-2015-10-17' of git://git.kernel.org/pub/scm...
[karo-tx-linux.git] / drivers / net / ethernet / broadcom / bnx2x / bnx2x_ethtool.c
index 5907c821d131eed6fa5b6b0aa7a93dc41cca0d66..be628bd9fb18b6f0116125e5a3f9ea16ad1d3561 100644 (file)
@@ -1,6 +1,8 @@
-/* bnx2x_ethtool.c: Broadcom Everest network driver.
+/* bnx2x_ethtool.c: QLogic Everest network driver.
  *
  * Copyright (c) 2007-2013 Broadcom Corporation
+ * Copyright (c) 2014 QLogic Corporation
+ * All rights reserved
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -1129,6 +1131,9 @@ static int bnx2x_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
        } else
                bp->wol = 0;
 
+       if (SHMEM2_HAS(bp, curr_cfg))
+               SHMEM2_WR(bp, curr_cfg, CURR_CFG_MET_OS);
+
        return 0;
 }
 
@@ -1343,8 +1348,8 @@ static int bnx2x_nvram_read_dword(struct bnx2x *bp, u32 offset, __be32 *ret_val,
        return rc;
 }
 
-static int bnx2x_nvram_read(struct bnx2x *bp, u32 offset, u8 *ret_buf,
-                           int buf_size)
+int bnx2x_nvram_read(struct bnx2x *bp, u32 offset, u8 *ret_buf,
+                    int buf_size)
 {
        int rc;
        u32 cmd_flags;
@@ -3346,6 +3351,13 @@ static int bnx2x_set_rss_flags(struct bnx2x *bp, struct ethtool_rxnfc *info)
                        udp_rss_requested = 0;
                else
                        return -EINVAL;
+
+               if (CHIP_IS_E1x(bp) && udp_rss_requested) {
+                       DP(BNX2X_MSG_ETHTOOL,
+                          "57710, 57711 boards don't support RSS according to UDP 4-tuple\n");
+                       return -EINVAL;
+               }
+
                if ((info->flow_type == UDP_V4_FLOW) &&
                    (bp->rss_conf_obj.udp_rss_v4 != udp_rss_requested)) {
                        bp->rss_conf_obj.udp_rss_v4 = udp_rss_requested;
@@ -3578,17 +3590,8 @@ static int bnx2x_get_ts_info(struct net_device *dev,
 
                info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) |
                                   (1 << HWTSTAMP_FILTER_PTP_V1_L4_EVENT) |
-                                  (1 << HWTSTAMP_FILTER_PTP_V1_L4_SYNC) |
-                                  (1 << HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ) |
                                   (1 << HWTSTAMP_FILTER_PTP_V2_L4_EVENT) |
-                                  (1 << HWTSTAMP_FILTER_PTP_V2_L4_SYNC) |
-                                  (1 << HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ) |
-                                  (1 << HWTSTAMP_FILTER_PTP_V2_L2_EVENT) |
-                                  (1 << HWTSTAMP_FILTER_PTP_V2_L2_SYNC) |
-                                  (1 << HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ) |
-                                  (1 << HWTSTAMP_FILTER_PTP_V2_EVENT) |
-                                  (1 << HWTSTAMP_FILTER_PTP_V2_SYNC) |
-                                  (1 << HWTSTAMP_FILTER_PTP_V2_DELAY_REQ);
+                                  (1 << HWTSTAMP_FILTER_PTP_V2_EVENT);
 
                info->tx_types = (1 << HWTSTAMP_TX_OFF)|(1 << HWTSTAMP_TX_ON);