Symbol: mc7
drivers/net/ethernet/chelsio/cxgb3/adapter.h
245
struct mc7 pmrx;
drivers/net/ethernet/chelsio/cxgb3/adapter.h
246
struct mc7 pmtx;
drivers/net/ethernet/chelsio/cxgb3/adapter.h
247
struct mc7 cm;
drivers/net/ethernet/chelsio/cxgb3/common.h
466
static inline unsigned int t3_mc7_size(const struct mc7 *p)
drivers/net/ethernet/chelsio/cxgb3/common.h
701
int t3_mc7_bd_read(struct mc7 *mc7, unsigned int start, unsigned int n,
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
2445
struct mc7 *mem;
drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c
311
struct mc7 *mem;
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
146
int t3_mc7_bd_read(struct mc7 *mc7, unsigned int start, unsigned int n,
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
152
unsigned int size64 = mc7->size / 8; /* # of 64-bit words */
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
153
struct adapter *adap = mc7->adapter;
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
158
start *= (8 << mc7->width);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
163
for (i = (1 << mc7->width) - 1; i >= 0; --i) {
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
167
t3_write_reg(adap, mc7->offset + A_MC7_BD_ADDR, start);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
168
t3_write_reg(adap, mc7->offset + A_MC7_BD_OP, 0);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
169
val = t3_read_reg(adap, mc7->offset + A_MC7_BD_OP);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
172
mc7->offset + A_MC7_BD_OP);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1726
static void mc7_intr_handler(struct mc7 *mc7)
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1728
struct adapter *adapter = mc7->adapter;
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1729
u32 cause = t3_read_reg(adapter, mc7->offset + A_MC7_INT_CAUSE);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1732
mc7->stats.corr_err++;
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1734
"data 0x%x 0x%x 0x%x\n", mc7->name,
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1735
t3_read_reg(adapter, mc7->offset + A_MC7_CE_ADDR),
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1736
t3_read_reg(adapter, mc7->offset + A_MC7_CE_DATA0),
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1737
t3_read_reg(adapter, mc7->offset + A_MC7_CE_DATA1),
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1738
t3_read_reg(adapter, mc7->offset + A_MC7_CE_DATA2));
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1742
mc7->stats.uncorr_err++;
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1744
"data 0x%x 0x%x 0x%x\n", mc7->name,
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1745
t3_read_reg(adapter, mc7->offset + A_MC7_UE_ADDR),
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1746
t3_read_reg(adapter, mc7->offset + A_MC7_UE_DATA0),
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1747
t3_read_reg(adapter, mc7->offset + A_MC7_UE_DATA1),
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1748
t3_read_reg(adapter, mc7->offset + A_MC7_UE_DATA2));
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1752
mc7->stats.parity_err++;
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1754
mc7->name, G_PE(cause));
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
176
val = t3_read_reg(adap, mc7->offset + A_MC7_BD_DATA1);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1762
mc7->offset + A_MC7_ERR_ADDR);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1763
mc7->stats.addr_err++;
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1765
mc7->name, addr);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
177
if (mc7->width == 0) {
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
1771
t3_write_reg(adapter, mc7->offset + A_MC7_INT_CAUSE, cause);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
179
mc7->offset +
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
183
if (mc7->width > 1)
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
184
val >>= shift[mc7->width];
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
185
val64 |= (u64) val << (step[mc7->width] * i);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3130
static int mc7_init(struct mc7 *mc7, unsigned int mc7_clock, int mem_type)
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3145
struct adapter *adapter = mc7->adapter;
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3148
if (!mc7->size)
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3151
val = t3_read_reg(adapter, mc7->offset + A_MC7_CFG);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3156
t3_write_reg(adapter, mc7->offset + A_MC7_CFG, val | F_IFEN);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3157
val = t3_read_reg(adapter, mc7->offset + A_MC7_CFG); /* flush */
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3161
t3_write_reg(adapter, mc7->offset + A_MC7_CAL, F_SGL_CAL_EN);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3162
t3_read_reg(adapter, mc7->offset + A_MC7_CAL);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3164
if (t3_read_reg(adapter, mc7->offset + A_MC7_CAL) &
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3167
mc7->name);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3172
t3_write_reg(adapter, mc7->offset + A_MC7_PARM,
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3178
t3_write_reg(adapter, mc7->offset + A_MC7_CFG,
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3180
t3_read_reg(adapter, mc7->offset + A_MC7_CFG); /* flush */
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3183
t3_set_reg_field(adapter, mc7->offset + A_MC7_DLL, F_DLLENB,
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3188
if (wrreg_wait(adapter, mc7->offset + A_MC7_PRE, 0) ||
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3189
wrreg_wait(adapter, mc7->offset + A_MC7_EXT_MODE2, 0) ||
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3190
wrreg_wait(adapter, mc7->offset + A_MC7_EXT_MODE3, 0) ||
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3191
wrreg_wait(adapter, mc7->offset + A_MC7_EXT_MODE1, val))
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3195
t3_write_reg(adapter, mc7->offset + A_MC7_MODE, 0x100);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3196
t3_set_reg_field(adapter, mc7->offset + A_MC7_DLL, F_DLLRST, 0);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3200
if (wrreg_wait(adapter, mc7->offset + A_MC7_PRE, 0) ||
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3201
wrreg_wait(adapter, mc7->offset + A_MC7_REF, 0) ||
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3202
wrreg_wait(adapter, mc7->offset + A_MC7_REF, 0) ||
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3203
wrreg_wait(adapter, mc7->offset + A_MC7_MODE,
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3205
wrreg_wait(adapter, mc7->offset + A_MC7_EXT_MODE1, val | 0x380) ||
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3206
wrreg_wait(adapter, mc7->offset + A_MC7_EXT_MODE1, val))
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3213
t3_write_reg(adapter, mc7->offset + A_MC7_REF,
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3215
t3_read_reg(adapter, mc7->offset + A_MC7_REF); /* flush */
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3217
t3_write_reg(adapter, mc7->offset + A_MC7_ECC, F_ECCGENEN | F_ECCCHKEN);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3218
t3_write_reg(adapter, mc7->offset + A_MC7_BIST_DATA, 0);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3219
t3_write_reg(adapter, mc7->offset + A_MC7_BIST_ADDR_BEG, 0);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3220
t3_write_reg(adapter, mc7->offset + A_MC7_BIST_ADDR_END,
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3221
(mc7->size << width) - 1);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3222
t3_write_reg(adapter, mc7->offset + A_MC7_BIST_OP, V_OP(1));
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3223
t3_read_reg(adapter, mc7->offset + A_MC7_BIST_OP); /* flush */
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3228
val = t3_read_reg(adapter, mc7->offset + A_MC7_BIST_OP);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3231
CH_ERR(adapter, "%s MC7 BIST timed out\n", mc7->name);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3236
t3_set_reg_field(adapter, mc7->offset + A_MC7_CFG, 0, F_RDY);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3462
static void mc7_prep(struct adapter *adapter, struct mc7 *mc7,
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3467
mc7->adapter = adapter;
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3468
mc7->name = name;
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3469
mc7->offset = base_addr - MC7_PMRX_BASE_ADDR;
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3470
cfg = t3_read_reg(adapter, mc7->offset + A_MC7_CFG);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3471
mc7->size = G_DEN(cfg) == M_DEN ? 0 : mc7_calc_size(cfg);
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c
3472
mc7->width = G_WIDTH(cfg);