Commit 190af10f authored by Shrikrishna Khare's avatar Shrikrishna Khare Committed by David S. Miller

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: default avatarShrikrishna Khare <skhare@vmware.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a264d830
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# #
# Linux driver for VMware's vmxnet3 ethernet NIC. # Linux driver for VMware's vmxnet3 ethernet NIC.
# #
# Copyright (C) 2007-2009, VMware, Inc. All Rights Reserved. # Copyright (C) 2007-2016, VMware, Inc. All Rights Reserved.
# #
# This program is free software; you can redistribute it and/or modify it # 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 the # under the terms of the GNU General Public License as published by the
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
# The full GNU General Public License is included in this distribution in # The full GNU General Public License is included in this distribution in
# the file called "COPYING". # the file called "COPYING".
# #
# Maintained by: Shreyas Bhatewara <pv-drivers@vmware.com> # Maintained by: pv-drivers@vmware.com
# #
# #
################################################################################ ################################################################################
......
/* /*
* Linux driver for VMware's vmxnet3 ethernet NIC. * Linux driver for VMware's vmxnet3 ethernet NIC.
* *
* Copyright (C) 2008-2009, VMware, Inc. All Rights Reserved. * Copyright (C) 2008-2016, VMware, Inc. All Rights Reserved.
* *
* This program is free software; you can redistribute it and/or modify it * 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 the * under the terms of the GNU General Public License as published by the
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
* The full GNU General Public License is included in this distribution in * The full GNU General Public License is included in this distribution in
* the file called "COPYING". * the file called "COPYING".
* *
* Maintained by: Shreyas Bhatewara <pv-drivers@vmware.com> * Maintained by: pv-drivers@vmware.com
* *
*/ */
......
/* /*
* Linux driver for VMware's vmxnet3 ethernet NIC. * Linux driver for VMware's vmxnet3 ethernet NIC.
* *
* Copyright (C) 2008-2015, VMware, Inc. All Rights Reserved. * Copyright (C) 2008-2016, VMware, Inc. All Rights Reserved.
* *
* This program is free software; you can redistribute it and/or modify it * 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 the * under the terms of the GNU General Public License as published by the
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
* The full GNU General Public License is included in this distribution in * The full GNU General Public License is included in this distribution in
* the file called "COPYING". * the file called "COPYING".
* *
* Maintained by: Shreyas Bhatewara <pv-drivers@vmware.com> * Maintained by: pv-drivers@vmware.com
* *
*/ */
...@@ -76,7 +76,9 @@ enum { ...@@ -76,7 +76,9 @@ enum {
VMXNET3_CMD_UPDATE_IML, VMXNET3_CMD_UPDATE_IML,
VMXNET3_CMD_UPDATE_PMCFG, VMXNET3_CMD_UPDATE_PMCFG,
VMXNET3_CMD_UPDATE_FEATURE, VMXNET3_CMD_UPDATE_FEATURE,
VMXNET3_CMD_RESERVED1,
VMXNET3_CMD_LOAD_PLUGIN, VMXNET3_CMD_LOAD_PLUGIN,
VMXNET3_CMD_RESERVED2,
VMXNET3_CMD_FIRST_GET = 0xF00D0000, VMXNET3_CMD_FIRST_GET = 0xF00D0000,
VMXNET3_CMD_GET_QUEUE_STATUS = VMXNET3_CMD_FIRST_GET, VMXNET3_CMD_GET_QUEUE_STATUS = VMXNET3_CMD_FIRST_GET,
...@@ -87,7 +89,8 @@ enum { ...@@ -87,7 +89,8 @@ enum {
VMXNET3_CMD_GET_DID_LO, VMXNET3_CMD_GET_DID_LO,
VMXNET3_CMD_GET_DID_HI, VMXNET3_CMD_GET_DID_HI,
VMXNET3_CMD_GET_DEV_EXTRA_INFO, VMXNET3_CMD_GET_DEV_EXTRA_INFO,
VMXNET3_CMD_GET_CONF_INTR VMXNET3_CMD_GET_CONF_INTR,
VMXNET3_CMD_GET_RESERVED1,
}; };
/* /*
......
/* /*
* Linux driver for VMware's vmxnet3 ethernet NIC. * Linux driver for VMware's vmxnet3 ethernet NIC.
* *
* Copyright (C) 2008-2009, VMware, Inc. All Rights Reserved. * Copyright (C) 2008-2016, VMware, Inc. All Rights Reserved.
* *
* This program is free software; you can redistribute it and/or modify it * 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 the * under the terms of the GNU General Public License as published by the
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
* The full GNU General Public License is included in this distribution in * The full GNU General Public License is included in this distribution in
* the file called "COPYING". * the file called "COPYING".
* *
* Maintained by: Shreyas Bhatewara <pv-drivers@vmware.com> * Maintained by: pv-drivers@vmware.com
* *
*/ */
...@@ -1363,7 +1363,7 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq, ...@@ -1363,7 +1363,7 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq,
rbi->dma_addr = new_dma_addr; rbi->dma_addr = new_dma_addr;
rxd->addr = cpu_to_le64(rbi->dma_addr); rxd->addr = cpu_to_le64(rbi->dma_addr);
rxd->len = rbi->len; rxd->len = rbi->len;
if (adapter->version == 2 && if (VMXNET3_VERSION_GE_2(adapter) &&
rcd->type == VMXNET3_CDTYPE_RXCOMP_LRO) { rcd->type == VMXNET3_CDTYPE_RXCOMP_LRO) {
struct Vmxnet3_RxCompDescExt *rcdlro; struct Vmxnet3_RxCompDescExt *rcdlro;
rcdlro = (struct Vmxnet3_RxCompDescExt *)rcd; rcdlro = (struct Vmxnet3_RxCompDescExt *)rcd;
...@@ -3200,12 +3200,16 @@ vmxnet3_probe_device(struct pci_dev *pdev, ...@@ -3200,12 +3200,16 @@ vmxnet3_probe_device(struct pci_dev *pdev,
goto err_alloc_pci; goto err_alloc_pci;
ver = VMXNET3_READ_BAR1_REG(adapter, VMXNET3_REG_VRRS); ver = VMXNET3_READ_BAR1_REG(adapter, VMXNET3_REG_VRRS);
if (ver & 2) { if (ver & (1 << VMXNET3_REV_2)) {
VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_VRRS, 2); VMXNET3_WRITE_BAR1_REG(adapter,
adapter->version = 2; VMXNET3_REG_VRRS,
} else if (ver & 1) { 1 << VMXNET3_REV_2);
VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_VRRS, 1); adapter->version = VMXNET3_REV_2 + 1;
adapter->version = 1; } else if (ver & (1 << VMXNET3_REV_1)) {
VMXNET3_WRITE_BAR1_REG(adapter,
VMXNET3_REG_VRRS,
1 << VMXNET3_REV_1);
adapter->version = VMXNET3_REV_1 + 1;
} else { } else {
dev_err(&pdev->dev, dev_err(&pdev->dev,
"Incompatible h/w version (0x%x) for adapter\n", ver); "Incompatible h/w version (0x%x) for adapter\n", ver);
......
/* /*
* Linux driver for VMware's vmxnet3 ethernet NIC. * Linux driver for VMware's vmxnet3 ethernet NIC.
* *
* Copyright (C) 2008-2009, VMware, Inc. All Rights Reserved. * Copyright (C) 2008-2016, VMware, Inc. All Rights Reserved.
* *
* This program is free software; you can redistribute it and/or modify it * 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 the * under the terms of the GNU General Public License as published by the
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
* The full GNU General Public License is included in this distribution in * The full GNU General Public License is included in this distribution in
* the file called "COPYING". * the file called "COPYING".
* *
* Maintained by: Shreyas Bhatewara <pv-drivers@vmware.com> * Maintained by: pv-drivers@vmware.com
* *
*/ */
......
/* /*
* Linux driver for VMware's vmxnet3 ethernet NIC. * Linux driver for VMware's vmxnet3 ethernet NIC.
* *
* Copyright (C) 2008-2009, VMware, Inc. All Rights Reserved. * Copyright (C) 2008-2016, VMware, Inc. All Rights Reserved.
* *
* This program is free software; you can redistribute it and/or modify it * 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 the * under the terms of the GNU General Public License as published by the
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
* The full GNU General Public License is included in this distribution in * The full GNU General Public License is included in this distribution in
* the file called "COPYING". * the file called "COPYING".
* *
* Maintained by: Shreyas Bhatewara <pv-drivers@vmware.com> * Maintained by: pv-drivers@vmware.com
* *
*/ */
...@@ -79,6 +79,10 @@ ...@@ -79,6 +79,10 @@
#define VMXNET3_RSS #define VMXNET3_RSS
#endif #endif
#define VMXNET3_REV_3 2 /* Vmxnet3 Rev. 3 */
#define VMXNET3_REV_2 1 /* Vmxnet3 Rev. 2 */
#define VMXNET3_REV_1 0 /* Vmxnet3 Rev. 1 */
/* /*
* Capabilities * Capabilities
*/ */
...@@ -387,6 +391,11 @@ struct vmxnet3_adapter { ...@@ -387,6 +391,11 @@ struct vmxnet3_adapter {
#define VMXNET3_GET_ADDR_LO(dma) ((u32)(dma)) #define VMXNET3_GET_ADDR_LO(dma) ((u32)(dma))
#define VMXNET3_GET_ADDR_HI(dma) ((u32)(((u64)(dma)) >> 32)) #define VMXNET3_GET_ADDR_HI(dma) ((u32)(((u64)(dma)) >> 32))
#define VMXNET3_VERSION_GE_2(adapter) \
(adapter->version >= VMXNET3_REV_2 + 1)
#define VMXNET3_VERSION_GE_3(adapter) \
(adapter->version >= VMXNET3_REV_3 + 1)
/* must be a multiple of VMXNET3_RING_SIZE_ALIGN */ /* must be a multiple of VMXNET3_RING_SIZE_ALIGN */
#define VMXNET3_DEF_TX_RING_SIZE 512 #define VMXNET3_DEF_TX_RING_SIZE 512
#define VMXNET3_DEF_RX_RING_SIZE 256 #define VMXNET3_DEF_RX_RING_SIZE 256
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment