aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShrikrishna Khare <skhare@vmware.com>2016-06-16 13:51:53 -0400
committerDavid S. Miller <davem@davemloft.net>2016-06-17 01:37:04 -0400
commit190af10f0b5a07140ec4ce8e6ef04b7cb238dde1 (patch)
tree98679de6233551ea0f572456ece6975d6606f7bf
parenta264d830ab1f1dcca758e2b03f3ca65464f45f82 (diff)
vmxnet3: prepare for version 3 changes
vmxnet3 is currently at version 2, but some command definitions from previous vmxnet3 versions are missing. Add those definitions before moving to version 3. Also, introduce utility macros for vmxnet3 version comparison and update Copyright information and Maintained by. Signed-off-by: Shrikrishna Khare <skhare@vmware.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/vmxnet3/Makefile4
-rw-r--r--drivers/net/vmxnet3/upt1_defs.h4
-rw-r--r--drivers/net/vmxnet3/vmxnet3_defs.h9
-rw-r--r--drivers/net/vmxnet3/vmxnet3_drv.c22
-rw-r--r--drivers/net/vmxnet3/vmxnet3_ethtool.c4
-rw-r--r--drivers/net/vmxnet3/vmxnet3_int.h13
6 files changed, 36 insertions, 20 deletions
diff --git a/drivers/net/vmxnet3/Makefile b/drivers/net/vmxnet3/Makefile
index 880f5098eac9..8cdbb63d1bb0 100644
--- a/drivers/net/vmxnet3/Makefile
+++ b/drivers/net/vmxnet3/Makefile
@@ -2,7 +2,7 @@
2# 2#
3# Linux driver for VMware's vmxnet3 ethernet NIC. 3# Linux driver for VMware's vmxnet3 ethernet NIC.
4# 4#
5# Copyright (C) 2007-2009, VMware, Inc. All Rights Reserved. 5# Copyright (C) 2007-2016, VMware, Inc. All Rights Reserved.
6# 6#
7# This program is free software; you can redistribute it and/or modify it 7# This program is free software; you can redistribute it and/or modify it
8# under the terms of the GNU General Public License as published by the 8# under the terms of the GNU General Public License as published by the
@@ -21,7 +21,7 @@
21# The full GNU General Public License is included in this distribution in 21# The full GNU General Public License is included in this distribution in
22# the file called "COPYING". 22# the file called "COPYING".
23# 23#
24# Maintained by: Shreyas Bhatewara <pv-drivers@vmware.com> 24# Maintained by: pv-drivers@vmware.com
25# 25#
26# 26#
27################################################################################ 27################################################################################
diff --git a/drivers/net/vmxnet3/upt1_defs.h b/drivers/net/vmxnet3/upt1_defs.h
index 969c751ee404..db9f1fde3aac 100644
--- a/drivers/net/vmxnet3/upt1_defs.h
+++ b/drivers/net/vmxnet3/upt1_defs.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Linux driver for VMware's vmxnet3 ethernet NIC. 2 * Linux driver for VMware's vmxnet3 ethernet NIC.
3 * 3 *
4 * Copyright (C) 2008-2009, VMware, Inc. All Rights Reserved. 4 * Copyright (C) 2008-2016, VMware, Inc. All Rights Reserved.
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify it 6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the 7 * under the terms of the GNU General Public License as published by the
@@ -20,7 +20,7 @@
20 * The full GNU General Public License is included in this distribution in 20 * The full GNU General Public License is included in this distribution in
21 * the file called "COPYING". 21 * the file called "COPYING".
22 * 22 *
23 * Maintained by: Shreyas Bhatewara <pv-drivers@vmware.com> 23 * Maintained by: pv-drivers@vmware.com
24 * 24 *
25 */ 25 */
26 26
diff --git a/drivers/net/vmxnet3/vmxnet3_defs.h b/drivers/net/vmxnet3/vmxnet3_defs.h
index 72ba8ae7f09a..8345e0c4fec4 100644
--- a/drivers/net/vmxnet3/vmxnet3_defs.h
+++ b/drivers/net/vmxnet3/vmxnet3_defs.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Linux driver for VMware's vmxnet3 ethernet NIC. 2 * Linux driver for VMware's vmxnet3 ethernet NIC.
3 * 3 *
4 * Copyright (C) 2008-2015, VMware, Inc. All Rights Reserved. 4 * Copyright (C) 2008-2016, VMware, Inc. All Rights Reserved.
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify it 6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the 7 * under the terms of the GNU General Public License as published by the
@@ -20,7 +20,7 @@
20 * The full GNU General Public License is included in this distribution in 20 * The full GNU General Public License is included in this distribution in
21 * the file called "COPYING". 21 * the file called "COPYING".
22 * 22 *
23 * Maintained by: Shreyas Bhatewara <pv-drivers@vmware.com> 23 * Maintained by: pv-drivers@vmware.com
24 * 24 *
25 */ 25 */
26 26
@@ -76,7 +76,9 @@ enum {
76 VMXNET3_CMD_UPDATE_IML, 76 VMXNET3_CMD_UPDATE_IML,
77 VMXNET3_CMD_UPDATE_PMCFG, 77 VMXNET3_CMD_UPDATE_PMCFG,
78 VMXNET3_CMD_UPDATE_FEATURE, 78 VMXNET3_CMD_UPDATE_FEATURE,
79 VMXNET3_CMD_RESERVED1,
79 VMXNET3_CMD_LOAD_PLUGIN, 80 VMXNET3_CMD_LOAD_PLUGIN,
81 VMXNET3_CMD_RESERVED2,
80 82
81 VMXNET3_CMD_FIRST_GET = 0xF00D0000, 83 VMXNET3_CMD_FIRST_GET = 0xF00D0000,
82 VMXNET3_CMD_GET_QUEUE_STATUS = VMXNET3_CMD_FIRST_GET, 84 VMXNET3_CMD_GET_QUEUE_STATUS = VMXNET3_CMD_FIRST_GET,
@@ -87,7 +89,8 @@ enum {
87 VMXNET3_CMD_GET_DID_LO, 89 VMXNET3_CMD_GET_DID_LO,
88 VMXNET3_CMD_GET_DID_HI, 90 VMXNET3_CMD_GET_DID_HI,
89 VMXNET3_CMD_GET_DEV_EXTRA_INFO, 91 VMXNET3_CMD_GET_DEV_EXTRA_INFO,
90 VMXNET3_CMD_GET_CONF_INTR 92 VMXNET3_CMD_GET_CONF_INTR,
93 VMXNET3_CMD_GET_RESERVED1,
91}; 94};
92 95
93/* 96/*
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
index 08885bc8d6db..507c53d4e09c 100644
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Linux driver for VMware's vmxnet3 ethernet NIC. 2 * Linux driver for VMware's vmxnet3 ethernet NIC.
3 * 3 *
4 * Copyright (C) 2008-2009, VMware, Inc. All Rights Reserved. 4 * Copyright (C) 2008-2016, VMware, Inc. All Rights Reserved.
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify it 6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the 7 * under the terms of the GNU General Public License as published by the
@@ -20,7 +20,7 @@
20 * The full GNU General Public License is included in this distribution in 20 * The full GNU General Public License is included in this distribution in
21 * the file called "COPYING". 21 * the file called "COPYING".
22 * 22 *
23 * Maintained by: Shreyas Bhatewara <pv-drivers@vmware.com> 23 * Maintained by: pv-drivers@vmware.com
24 * 24 *
25 */ 25 */
26 26
@@ -1363,7 +1363,7 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq,
1363 rbi->dma_addr = new_dma_addr; 1363 rbi->dma_addr = new_dma_addr;
1364 rxd->addr = cpu_to_le64(rbi->dma_addr); 1364 rxd->addr = cpu_to_le64(rbi->dma_addr);
1365 rxd->len = rbi->len; 1365 rxd->len = rbi->len;
1366 if (adapter->version == 2 && 1366 if (VMXNET3_VERSION_GE_2(adapter) &&
1367 rcd->type == VMXNET3_CDTYPE_RXCOMP_LRO) { 1367 rcd->type == VMXNET3_CDTYPE_RXCOMP_LRO) {
1368 struct Vmxnet3_RxCompDescExt *rcdlro; 1368 struct Vmxnet3_RxCompDescExt *rcdlro;
1369 rcdlro = (struct Vmxnet3_RxCompDescExt *)rcd; 1369 rcdlro = (struct Vmxnet3_RxCompDescExt *)rcd;
@@ -3200,12 +3200,16 @@ vmxnet3_probe_device(struct pci_dev *pdev,
3200 goto err_alloc_pci; 3200 goto err_alloc_pci;
3201 3201
3202 ver = VMXNET3_READ_BAR1_REG(adapter, VMXNET3_REG_VRRS); 3202 ver = VMXNET3_READ_BAR1_REG(adapter, VMXNET3_REG_VRRS);
3203 if (ver & 2) { 3203 if (ver & (1 << VMXNET3_REV_2)) {
3204 VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_VRRS, 2); 3204 VMXNET3_WRITE_BAR1_REG(adapter,
3205 adapter->version = 2; 3205 VMXNET3_REG_VRRS,
3206 } else if (ver & 1) { 3206 1 << VMXNET3_REV_2);
3207 VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_VRRS, 1); 3207 adapter->version = VMXNET3_REV_2 + 1;
3208 adapter->version = 1; 3208 } else if (ver & (1 << VMXNET3_REV_1)) {
3209 VMXNET3_WRITE_BAR1_REG(adapter,
3210 VMXNET3_REG_VRRS,
3211 1 << VMXNET3_REV_1);
3212 adapter->version = VMXNET3_REV_1 + 1;
3209 } else { 3213 } else {
3210 dev_err(&pdev->dev, 3214 dev_err(&pdev->dev,
3211 "Incompatible h/w version (0x%x) for adapter\n", ver); 3215 "Incompatible h/w version (0x%x) for adapter\n", ver);
diff --git a/drivers/net/vmxnet3/vmxnet3_ethtool.c b/drivers/net/vmxnet3/vmxnet3_ethtool.c
index 9ba11d737753..163e99c91023 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethtool.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Linux driver for VMware's vmxnet3 ethernet NIC. 2 * Linux driver for VMware's vmxnet3 ethernet NIC.
3 * 3 *
4 * Copyright (C) 2008-2009, VMware, Inc. All Rights Reserved. 4 * Copyright (C) 2008-2016, VMware, Inc. All Rights Reserved.
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify it 6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the 7 * under the terms of the GNU General Public License as published by the
@@ -20,7 +20,7 @@
20 * The full GNU General Public License is included in this distribution in 20 * The full GNU General Public License is included in this distribution in
21 * the file called "COPYING". 21 * the file called "COPYING".
22 * 22 *
23 * Maintained by: Shreyas Bhatewara <pv-drivers@vmware.com> 23 * Maintained by: pv-drivers@vmware.com
24 * 24 *
25 */ 25 */
26 26
diff --git a/drivers/net/vmxnet3/vmxnet3_int.h b/drivers/net/vmxnet3/vmxnet3_int.h
index 3d2b64e63408..de068e92cedb 100644
--- a/drivers/net/vmxnet3/vmxnet3_int.h
+++ b/drivers/net/vmxnet3/vmxnet3_int.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Linux driver for VMware's vmxnet3 ethernet NIC. 2 * Linux driver for VMware's vmxnet3 ethernet NIC.
3 * 3 *
4 * Copyright (C) 2008-2009, VMware, Inc. All Rights Reserved. 4 * Copyright (C) 2008-2016, VMware, Inc. All Rights Reserved.
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify it 6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the 7 * under the terms of the GNU General Public License as published by the
@@ -20,7 +20,7 @@
20 * The full GNU General Public License is included in this distribution in 20 * The full GNU General Public License is included in this distribution in
21 * the file called "COPYING". 21 * the file called "COPYING".
22 * 22 *
23 * Maintained by: Shreyas Bhatewara <pv-drivers@vmware.com> 23 * Maintained by: pv-drivers@vmware.com
24 * 24 *
25 */ 25 */
26 26
@@ -79,6 +79,10 @@
79 #define VMXNET3_RSS 79 #define VMXNET3_RSS
80#endif 80#endif
81 81
82#define VMXNET3_REV_3 2 /* Vmxnet3 Rev. 3 */
83#define VMXNET3_REV_2 1 /* Vmxnet3 Rev. 2 */
84#define VMXNET3_REV_1 0 /* Vmxnet3 Rev. 1 */
85
82/* 86/*
83 * Capabilities 87 * Capabilities
84 */ 88 */
@@ -387,6 +391,11 @@ struct vmxnet3_adapter {
387#define VMXNET3_GET_ADDR_LO(dma) ((u32)(dma)) 391#define VMXNET3_GET_ADDR_LO(dma) ((u32)(dma))
388#define VMXNET3_GET_ADDR_HI(dma) ((u32)(((u64)(dma)) >> 32)) 392#define VMXNET3_GET_ADDR_HI(dma) ((u32)(((u64)(dma)) >> 32))
389 393
394#define VMXNET3_VERSION_GE_2(adapter) \
395 (adapter->version >= VMXNET3_REV_2 + 1)
396#define VMXNET3_VERSION_GE_3(adapter) \
397 (adapter->version >= VMXNET3_REV_3 + 1)
398
390/* must be a multiple of VMXNET3_RING_SIZE_ALIGN */ 399/* must be a multiple of VMXNET3_RING_SIZE_ALIGN */
391#define VMXNET3_DEF_TX_RING_SIZE 512 400#define VMXNET3_DEF_TX_RING_SIZE 512
392#define VMXNET3_DEF_RX_RING_SIZE 256 401#define VMXNET3_DEF_RX_RING_SIZE 256