cxgb4: Add is_t6 macro and T6 register ranges
authorHariprasad Shenai <hariprasad@chelsio.com>
Tue, 2 Jun 2015 08:29:38 +0000 (13:59 +0530)
committerDavid S. Miller <davem@davemloft.net>
Tue, 2 Jun 2015 05:14:35 +0000 (22:14 -0700)
Adds new macro is_t6 and adds the register address range for T6 adapter

Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c

index 15cca3013de2b5b48d99706ce78ddc1edd1f9360..83773f3bf2e7c73dc34dd20b8790d9dd373b583e 100644 (file)
@@ -273,6 +273,7 @@ struct pci_params {
 
 #define CHELSIO_T4             0x4
 #define CHELSIO_T5             0x5
+#define CHELSIO_T6             0x6
 
 enum chip_type {
        T4_A1 = CHELSIO_CHIP_CODE(CHELSIO_T4, 1),
@@ -284,6 +285,10 @@ enum chip_type {
        T5_A1 = CHELSIO_CHIP_CODE(CHELSIO_T5, 1),
        T5_FIRST_REV    = T5_A0,
        T5_LAST_REV     = T5_A1,
+
+       T6_A0 = CHELSIO_CHIP_CODE(CHELSIO_T6, 0),
+       T6_FIRST_REV    = T6_A0,
+       T6_LAST_REV     = T6_A0,
 };
 
 struct devlog_params {
@@ -850,6 +855,11 @@ enum {
        VLAN_REWRITE
 };
 
+static inline int is_t6(enum chip_type chip)
+{
+       return CHELSIO_CHIP_VERSION(chip) == CHELSIO_T6;
+}
+
 static inline int is_t5(enum chip_type chip)
 {
        return CHELSIO_CHIP_VERSION(chip) == CHELSIO_T5;
index 36a858c243051ab58676490f8c52cd1761827305..e9ccfeb4ec03ce4ba4d194f5305cc3f3c830ed21 100644 (file)
@@ -634,6 +634,7 @@ unsigned int t4_get_regs_len(struct adapter *adapter)
                return T4_REGMAP_SIZE;
 
        case CHELSIO_T5:
+       case CHELSIO_T6:
                return T5_REGMAP_SIZE;
        }
 
@@ -1316,6 +1317,344 @@ void t4_get_regs(struct adapter *adap, void *buf, size_t buf_size)
                0x51300, 0x51308,
        };
 
+       static const unsigned int t6_reg_ranges[] = {
+               0x1008, 0x114c,
+               0x1180, 0x11b4,
+               0x11fc, 0x1250,
+               0x1280, 0x133c,
+               0x1800, 0x18fc,
+               0x3000, 0x302c,
+               0x3060, 0x30d8,
+               0x30e0, 0x30fc,
+               0x3140, 0x357c,
+               0x35a8, 0x35cc,
+               0x35ec, 0x35ec,
+               0x3600, 0x5624,
+               0x56cc, 0x575c,
+               0x580c, 0x5814,
+               0x5890, 0x58bc,
+               0x5940, 0x595c,
+               0x5980, 0x598c,
+               0x59b0, 0x59dc,
+               0x59fc, 0x5a18,
+               0x5a60, 0x5a6c,
+               0x5a80, 0x5a9c,
+               0x5b94, 0x5bfc,
+               0x5c10, 0x5ec0,
+               0x5ec8, 0x5ec8,
+               0x6000, 0x6040,
+               0x6058, 0x6154,
+               0x7700, 0x7798,
+               0x77c0, 0x7880,
+               0x78cc, 0x78fc,
+               0x7b00, 0x7c54,
+               0x7d00, 0x7efc,
+               0x8dc0, 0x8de0,
+               0x8df8, 0x8e84,
+               0x8ea0, 0x8f88,
+               0x8fb8, 0x911c,
+               0x9400, 0x9470,
+               0x9600, 0x971c,
+               0x9800, 0x9808,
+               0x9820, 0x983c,
+               0x9850, 0x9864,
+               0x9c00, 0x9c6c,
+               0x9c80, 0x9cec,
+               0x9d00, 0x9d6c,
+               0x9d80, 0x9dec,
+               0x9e00, 0x9e6c,
+               0x9e80, 0x9eec,
+               0x9f00, 0x9f6c,
+               0x9f80, 0xa020,
+               0xd004, 0xd03c,
+               0xdfc0, 0xdfe0,
+               0xe000, 0xf008,
+               0x11000, 0x11014,
+               0x11048, 0x11110,
+               0x11118, 0x1117c,
+               0x11190, 0x11260,
+               0x11300, 0x1130c,
+               0x12000, 0x1205c,
+               0x19040, 0x1906c,
+               0x19078, 0x19080,
+               0x1908c, 0x19124,
+               0x19150, 0x191b0,
+               0x191d0, 0x191e8,
+               0x19238, 0x192b8,
+               0x193f8, 0x19474,
+               0x19490, 0x194cc,
+               0x194f0, 0x194f8,
+               0x19c00, 0x19c80,
+               0x19c94, 0x19cbc,
+               0x19ce4, 0x19d28,
+               0x19d50, 0x19d78,
+               0x19d94, 0x19dc8,
+               0x19df0, 0x19e10,
+               0x19e50, 0x19e6c,
+               0x19ea0, 0x19f34,
+               0x19f40, 0x19f50,
+               0x19f90, 0x19fac,
+               0x19fc4, 0x19fe4,
+               0x1a000, 0x1a06c,
+               0x1a0b0, 0x1a120,
+               0x1a128, 0x1a138,
+               0x1a190, 0x1a1c4,
+               0x1a1fc, 0x1a1fc,
+               0x1e008, 0x1e00c,
+               0x1e040, 0x1e04c,
+               0x1e284, 0x1e290,
+               0x1e2c0, 0x1e2c0,
+               0x1e2e0, 0x1e2e0,
+               0x1e300, 0x1e384,
+               0x1e3c0, 0x1e3c8,
+               0x1e408, 0x1e40c,
+               0x1e440, 0x1e44c,
+               0x1e684, 0x1e690,
+               0x1e6c0, 0x1e6c0,
+               0x1e6e0, 0x1e6e0,
+               0x1e700, 0x1e784,
+               0x1e7c0, 0x1e7c8,
+               0x1e808, 0x1e80c,
+               0x1e840, 0x1e84c,
+               0x1ea84, 0x1ea90,
+               0x1eac0, 0x1eac0,
+               0x1eae0, 0x1eae0,
+               0x1eb00, 0x1eb84,
+               0x1ebc0, 0x1ebc8,
+               0x1ec08, 0x1ec0c,
+               0x1ec40, 0x1ec4c,
+               0x1ee84, 0x1ee90,
+               0x1eec0, 0x1eec0,
+               0x1eee0, 0x1eee0,
+               0x1ef00, 0x1ef84,
+               0x1efc0, 0x1efc8,
+               0x1f008, 0x1f00c,
+               0x1f040, 0x1f04c,
+               0x1f284, 0x1f290,
+               0x1f2c0, 0x1f2c0,
+               0x1f2e0, 0x1f2e0,
+               0x1f300, 0x1f384,
+               0x1f3c0, 0x1f3c8,
+               0x1f408, 0x1f40c,
+               0x1f440, 0x1f44c,
+               0x1f684, 0x1f690,
+               0x1f6c0, 0x1f6c0,
+               0x1f6e0, 0x1f6e0,
+               0x1f700, 0x1f784,
+               0x1f7c0, 0x1f7c8,
+               0x1f808, 0x1f80c,
+               0x1f840, 0x1f84c,
+               0x1fa84, 0x1fa90,
+               0x1fac0, 0x1fac0,
+               0x1fae0, 0x1fae0,
+               0x1fb00, 0x1fb84,
+               0x1fbc0, 0x1fbc8,
+               0x1fc08, 0x1fc0c,
+               0x1fc40, 0x1fc4c,
+               0x1fe84, 0x1fe90,
+               0x1fec0, 0x1fec0,
+               0x1fee0, 0x1fee0,
+               0x1ff00, 0x1ff84,
+               0x1ffc0, 0x1ffc8,
+               0x30000, 0x30070,
+               0x30100, 0x3015c,
+               0x30190, 0x301d0,
+               0x30200, 0x30318,
+               0x30400, 0x3052c,
+               0x30540, 0x3061c,
+               0x30800, 0x3088c,
+               0x308c0, 0x30908,
+               0x30910, 0x309b8,
+               0x30a00, 0x30a04,
+               0x30a0c, 0x30a2c,
+               0x30a44, 0x30a50,
+               0x30a74, 0x30c24,
+               0x30d00, 0x30d3c,
+               0x30d44, 0x30d7c,
+               0x30de0, 0x30de0,
+               0x30e00, 0x30ed4,
+               0x30f00, 0x30fa4,
+               0x30fc0, 0x30fc4,
+               0x31000, 0x31004,
+               0x31080, 0x310fc,
+               0x31208, 0x31220,
+               0x3123c, 0x31254,
+               0x31300, 0x31300,
+               0x31308, 0x3131c,
+               0x31338, 0x3133c,
+               0x31380, 0x31380,
+               0x31388, 0x313a8,
+               0x313b4, 0x313b4,
+               0x31400, 0x31420,
+               0x31438, 0x3143c,
+               0x31480, 0x31480,
+               0x314a8, 0x314a8,
+               0x314b0, 0x314b4,
+               0x314c8, 0x314d4,
+               0x31a40, 0x31a4c,
+               0x31af0, 0x31b20,
+               0x31b38, 0x31b3c,
+               0x31b80, 0x31b80,
+               0x31ba8, 0x31ba8,
+               0x31bb0, 0x31bb4,
+               0x31bc8, 0x31bd4,
+               0x32140, 0x3218c,
+               0x321f0, 0x32200,
+               0x32218, 0x32218,
+               0x32400, 0x32400,
+               0x32408, 0x3241c,
+               0x32618, 0x32620,
+               0x32664, 0x32664,
+               0x326a8, 0x326a8,
+               0x326ec, 0x326ec,
+               0x32a00, 0x32abc,
+               0x32b00, 0x32b78,
+               0x32c00, 0x32c00,
+               0x32c08, 0x32c3c,
+               0x32e00, 0x32e2c,
+               0x32f00, 0x32f2c,
+               0x33000, 0x330ac,
+               0x330c0, 0x331ac,
+               0x331c0, 0x332c4,
+               0x332e4, 0x333c4,
+               0x333e4, 0x334ac,
+               0x334c0, 0x335ac,
+               0x335c0, 0x336c4,
+               0x336e4, 0x337c4,
+               0x337e4, 0x337fc,
+               0x33814, 0x33814,
+               0x33854, 0x33868,
+               0x33880, 0x3388c,
+               0x338c0, 0x338d0,
+               0x338e8, 0x338ec,
+               0x33900, 0x339ac,
+               0x339c0, 0x33ac4,
+               0x33ae4, 0x33b10,
+               0x33b24, 0x33b50,
+               0x33bf0, 0x33c10,
+               0x33c24, 0x33c50,
+               0x33cf0, 0x33cfc,
+               0x34000, 0x34070,
+               0x34100, 0x3415c,
+               0x34190, 0x341d0,
+               0x34200, 0x34318,
+               0x34400, 0x3452c,
+               0x34540, 0x3461c,
+               0x34800, 0x3488c,
+               0x348c0, 0x34908,
+               0x34910, 0x349b8,
+               0x34a00, 0x34a04,
+               0x34a0c, 0x34a2c,
+               0x34a44, 0x34a50,
+               0x34a74, 0x34c24,
+               0x34d00, 0x34d3c,
+               0x34d44, 0x34d7c,
+               0x34de0, 0x34de0,
+               0x34e00, 0x34ed4,
+               0x34f00, 0x34fa4,
+               0x34fc0, 0x34fc4,
+               0x35000, 0x35004,
+               0x35080, 0x350fc,
+               0x35208, 0x35220,
+               0x3523c, 0x35254,
+               0x35300, 0x35300,
+               0x35308, 0x3531c,
+               0x35338, 0x3533c,
+               0x35380, 0x35380,
+               0x35388, 0x353a8,
+               0x353b4, 0x353b4,
+               0x35400, 0x35420,
+               0x35438, 0x3543c,
+               0x35480, 0x35480,
+               0x354a8, 0x354a8,
+               0x354b0, 0x354b4,
+               0x354c8, 0x354d4,
+               0x35a40, 0x35a4c,
+               0x35af0, 0x35b20,
+               0x35b38, 0x35b3c,
+               0x35b80, 0x35b80,
+               0x35ba8, 0x35ba8,
+               0x35bb0, 0x35bb4,
+               0x35bc8, 0x35bd4,
+               0x36140, 0x3618c,
+               0x361f0, 0x36200,
+               0x36218, 0x36218,
+               0x36400, 0x36400,
+               0x36408, 0x3641c,
+               0x36618, 0x36620,
+               0x36664, 0x36664,
+               0x366a8, 0x366a8,
+               0x366ec, 0x366ec,
+               0x36a00, 0x36abc,
+               0x36b00, 0x36b78,
+               0x36c00, 0x36c00,
+               0x36c08, 0x36c3c,
+               0x36e00, 0x36e2c,
+               0x36f00, 0x36f2c,
+               0x37000, 0x370ac,
+               0x370c0, 0x371ac,
+               0x371c0, 0x372c4,
+               0x372e4, 0x373c4,
+               0x373e4, 0x374ac,
+               0x374c0, 0x375ac,
+               0x375c0, 0x376c4,
+               0x376e4, 0x377c4,
+               0x377e4, 0x377fc,
+               0x37814, 0x37814,
+               0x37854, 0x37868,
+               0x37880, 0x3788c,
+               0x378c0, 0x378d0,
+               0x378e8, 0x378ec,
+               0x37900, 0x379ac,
+               0x379c0, 0x37ac4,
+               0x37ae4, 0x37b10,
+               0x37b24, 0x37b50,
+               0x37bf0, 0x37c10,
+               0x37c24, 0x37c50,
+               0x37cf0, 0x37cfc,
+               0x40040, 0x40040,
+               0x40080, 0x40084,
+               0x40100, 0x40100,
+               0x40140, 0x401bc,
+               0x40200, 0x40214,
+               0x40228, 0x40228,
+               0x40240, 0x40258,
+               0x40280, 0x40280,
+               0x40304, 0x40304,
+               0x40330, 0x4033c,
+               0x41304, 0x413dc,
+               0x41400, 0x4141c,
+               0x41480, 0x414d0,
+               0x44000, 0x4407c,
+               0x440c0, 0x4427c,
+               0x442c0, 0x4447c,
+               0x444c0, 0x4467c,
+               0x446c0, 0x4487c,
+               0x448c0, 0x44a7c,
+               0x44ac0, 0x44c7c,
+               0x44cc0, 0x44e7c,
+               0x44ec0, 0x4507c,
+               0x450c0, 0x451fc,
+               0x45800, 0x45868,
+               0x45880, 0x45884,
+               0x458a0, 0x458b0,
+               0x45a00, 0x45a68,
+               0x45a80, 0x45a84,
+               0x45aa0, 0x45ab0,
+               0x460c0, 0x460e4,
+               0x47000, 0x4708c,
+               0x47200, 0x47250,
+               0x47400, 0x47420,
+               0x47600, 0x47618,
+               0x47800, 0x4782c,
+               0x50000, 0x500cc,
+               0x50400, 0x50400,
+               0x50800, 0x508cc,
+               0x50c00, 0x50c00,
+               0x51000, 0x510b0,
+               0x51300, 0x51324,
+       };
+
        u32 *buf_end = (u32 *)((char *)buf + buf_size);
        const unsigned int *reg_ranges;
        int reg_ranges_size, range;
@@ -1335,6 +1674,11 @@ void t4_get_regs(struct adapter *adap, void *buf, size_t buf_size)
                reg_ranges_size = ARRAY_SIZE(t5_reg_ranges);
                break;
 
+       case CHELSIO_T6:
+               reg_ranges = t6_reg_ranges;
+               reg_ranges_size = ARRAY_SIZE(t6_reg_ranges);
+               break;
+
        default:
                dev_err(adap->pdev_dev,
                        "Unsupported chip version %d\n", chip_version);