aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
diff options
context:
space:
mode:
authorSantosh Rastapur <santosh@chelsio.com>2013-03-14 01:08:48 -0400
committerDavid S. Miller <davem@davemloft.net>2013-03-14 11:35:53 -0400
commit2422d9a32747b85801ca705f4d6376e16d230c67 (patch)
tree5ae3362be94c775a06edf513337fe011a89afc3f /drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
parentb2decadd837fd7f5e789bd7e1de11be79ed22a06 (diff)
cxgb4: Add macros, structures and inline functions for T5
Signed-off-by: Santosh Rastapur <santosh@chelsio.com> Signed-off-by: Vipul Pandya <vipul@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/chelsio/cxgb4/cxgb4.h')
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4.h50
1 files changed, 49 insertions, 1 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
index 6db997c78a5f..a91dea621fcf 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
@@ -54,6 +54,10 @@
54#define FW_VERSION_MINOR 1 54#define FW_VERSION_MINOR 1
55#define FW_VERSION_MICRO 0 55#define FW_VERSION_MICRO 0
56 56
57#define FW_VERSION_MAJOR_T5 0
58#define FW_VERSION_MINOR_T5 0
59#define FW_VERSION_MICRO_T5 0
60
57#define CH_WARN(adap, fmt, ...) dev_warn(adap->pdev_dev, fmt, ## __VA_ARGS__) 61#define CH_WARN(adap, fmt, ...) dev_warn(adap->pdev_dev, fmt, ## __VA_ARGS__)
58 62
59enum { 63enum {
@@ -66,7 +70,9 @@ enum {
66enum { 70enum {
67 MEM_EDC0, 71 MEM_EDC0,
68 MEM_EDC1, 72 MEM_EDC1,
69 MEM_MC 73 MEM_MC,
74 MEM_MC0 = MEM_MC,
75 MEM_MC1
70}; 76};
71 77
72enum { 78enum {
@@ -74,8 +80,10 @@ enum {
74 MEMWIN0_BASE = 0x1b800, 80 MEMWIN0_BASE = 0x1b800,
75 MEMWIN1_APERTURE = 32768, 81 MEMWIN1_APERTURE = 32768,
76 MEMWIN1_BASE = 0x28000, 82 MEMWIN1_BASE = 0x28000,
83 MEMWIN1_BASE_T5 = 0x52000,
77 MEMWIN2_APERTURE = 65536, 84 MEMWIN2_APERTURE = 65536,
78 MEMWIN2_BASE = 0x30000, 85 MEMWIN2_BASE = 0x30000,
86 MEMWIN2_BASE_T5 = 0x54000,
79}; 87};
80 88
81enum dev_master { 89enum dev_master {
@@ -504,6 +512,35 @@ struct sge {
504 512
505struct l2t_data; 513struct l2t_data;
506 514
515#define CHELSIO_CHIP_CODE(version, revision) (((version) << 4) | (revision))
516#define CHELSIO_CHIP_VERSION(code) ((code) >> 4)
517#define CHELSIO_CHIP_RELEASE(code) ((code) & 0xf)
518
519#define CHELSIO_T4 0x4
520#define CHELSIO_T5 0x5
521
522enum chip_type {
523 T4_A1 = CHELSIO_CHIP_CODE(CHELSIO_T4, 0),
524 T4_A2 = CHELSIO_CHIP_CODE(CHELSIO_T4, 1),
525 T4_A3 = CHELSIO_CHIP_CODE(CHELSIO_T4, 2),
526 T4_FIRST_REV = T4_A1,
527 T4_LAST_REV = T4_A3,
528
529 T5_A1 = CHELSIO_CHIP_CODE(CHELSIO_T5, 0),
530 T5_FIRST_REV = T5_A1,
531 T5_LAST_REV = T5_A1,
532};
533
534#ifdef CONFIG_PCI_IOV
535
536/* T4 - 4 PFs support SRIOV
537 * T5 - 8 PFs support SRIOV
538 */
539#define NUM_OF_PF_WITH_SRIOV_T4 4
540#define NUM_OF_PF_WITH_SRIOV_T5 8
541
542#endif
543
507struct adapter { 544struct adapter {
508 void __iomem *regs; 545 void __iomem *regs;
509 struct pci_dev *pdev; 546 struct pci_dev *pdev;
@@ -511,6 +548,7 @@ struct adapter {
511 unsigned int mbox; 548 unsigned int mbox;
512 unsigned int fn; 549 unsigned int fn;
513 unsigned int flags; 550 unsigned int flags;
551 enum chip_type chip;
514 552
515 int msg_enable; 553 int msg_enable;
516 554
@@ -673,6 +711,16 @@ enum {
673 VLAN_REWRITE 711 VLAN_REWRITE
674}; 712};
675 713
714static inline int is_t5(enum chip_type chip)
715{
716 return (chip >= T5_FIRST_REV && chip <= T5_LAST_REV);
717}
718
719static inline int is_t4(enum chip_type chip)
720{
721 return (chip >= T4_FIRST_REV && chip <= T4_LAST_REV);
722}
723
676static inline u32 t4_read_reg(struct adapter *adap, u32 reg_addr) 724static inline u32 t4_read_reg(struct adapter *adap, u32 reg_addr)
677{ 725{
678 return readl(adap->regs + reg_addr); 726 return readl(adap->regs + reg_addr);