diff options
author | Raghu Vatsavayi | 2016-08-31 20:03:24 +0200 |
---|---|---|
committer | David S. Miller | 2016-08-31 23:12:47 +0200 |
commit | e86b1ab6866690691f19a456f24fef8e633e5546 (patch) | |
tree | 06450b30eac41d93f5bd17321a8911ddbfd27902 /drivers/net/ethernet/cavium/liquidio/octeon_device.h | |
parent | liquidio: CN23XX register definitions (diff) | |
download | kernel-qcow2-linux-e86b1ab6866690691f19a456f24fef8e633e5546.tar.gz kernel-qcow2-linux-e86b1ab6866690691f19a456f24fef8e633e5546.tar.xz kernel-qcow2-linux-e86b1ab6866690691f19a456f24fef8e633e5546.zip |
liquidio: CN23XX queue definitions
Add support for cn23xx specific queue definitions and
features.
Signed-off-by: Derek Chickles <derek.chickles@caviumnetworks.com>
Signed-off-by: Satanand Burla <satananda.burla@caviumnetworks.com>
Signed-off-by: Felix Manlunas <felix.manlunas@caviumnetworks.com>
Signed-off-by: Raghu Vatsavayi <raghu.vatsavayi@caviumnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/cavium/liquidio/octeon_device.h')
-rw-r--r-- | drivers/net/ethernet/cavium/liquidio/octeon_device.h | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_device.h b/drivers/net/ethernet/cavium/liquidio/octeon_device.h index 02e9854477a1..f10cdd45729e 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_device.h +++ b/drivers/net/ethernet/cavium/liquidio/octeon_device.h @@ -30,13 +30,19 @@ /** PCI VendorId Device Id */ #define OCTEON_CN68XX_PCIID 0x91177d #define OCTEON_CN66XX_PCIID 0x92177d - +#define OCTEON_CN23XX_PCIID_PF 0x9702177d /** Driver identifies chips by these Ids, created by clubbing together * DeviceId+RevisionId; Where Revision Id is not used to distinguish * between chips, a value of 0 is used for revision id. */ #define OCTEON_CN68XX 0x0091 #define OCTEON_CN66XX 0x0092 +#define OCTEON_CN23XX_PF_VID 0x9702 + +/**RevisionId for the chips */ +#define OCTEON_CN23XX_REV_1_0 0x00 +#define OCTEON_CN23XX_REV_1_1 0x01 +#define OCTEON_CN23XX_REV_2_0 0x80 /** Endian-swap modes supported by Octeon. */ enum octeon_pci_swap_mode { @@ -270,6 +276,17 @@ struct octdev_props { struct net_device *netdev; }; +struct octeon_sriov_info { + /* Actual rings left for PF device */ + u32 num_pf_rings; + + /* SRN of PF usable IO queues */ + u32 pf_srn; + /* total pf rings */ + u32 trs; + +}; + /** The Octeon device. * Each Octeon device has this structure to represent all its * components. @@ -295,7 +312,7 @@ struct octeon_device { /** Octeon Chip type. */ u16 chip_id; u16 rev_id; - + u16 pf_num; /** This device's id - set by the driver. */ u32 octeon_id; @@ -394,6 +411,8 @@ struct octeon_device { void *priv; + struct octeon_sriov_info sriov_info; + int rx_pause; int tx_pause; @@ -407,6 +426,7 @@ struct octeon_device { #define OCT_DRV_OFFLINE 2 #define OCTEON_CN6XXX(oct) ((oct->chip_id == OCTEON_CN66XX) || \ (oct->chip_id == OCTEON_CN68XX)) +#define OCTEON_CN23XX_PF(oct) (oct->chip_id == OCTEON_CN23XX_PF_VID) #define CHIP_FIELD(oct, TYPE, field) \ (((struct octeon_ ## TYPE *)(oct->chip))->field) |