Lines Matching refs:mc5

139 static int init_mask_data_array(struct mc5 *mc5, u32 mask_array_base,  in init_mask_data_array()  argument
144 struct adapter *adap = mc5->adapter; in init_mask_data_array()
150 unsigned int size72 = mc5->tcam_size; in init_mask_data_array()
153 if (mc5->mode == MC5_MODE_144_BIT) { in init_mask_data_array()
170 mc5->mode == MC5_MODE_144_BIT ? in init_mask_data_array()
179 static int init_idt52100(struct mc5 *mc5) in init_idt52100() argument
182 struct adapter *adap = mc5->adapter; in init_idt52100()
237 return init_mask_data_array(mc5, IDT_MSKARY_BASE_ADR0, in init_idt52100()
243 static int init_idt43102(struct mc5 *mc5) in init_idt43102() argument
246 struct adapter *adap = mc5->adapter; in init_idt43102()
297 return init_mask_data_array(mc5, IDT4_MSKARY_BASE_ADR0, in init_idt43102()
304 static inline void mc5_dbgi_mode_enable(const struct mc5 *mc5) in mc5_dbgi_mode_enable() argument
306 t3_write_reg(mc5->adapter, A_MC5_DB_CONFIG, in mc5_dbgi_mode_enable()
307 V_TMMODE(mc5->mode == MC5_MODE_72_BIT) | F_DBGIEN); in mc5_dbgi_mode_enable()
311 static void mc5_dbgi_mode_disable(const struct mc5 *mc5) in mc5_dbgi_mode_disable() argument
313 t3_write_reg(mc5->adapter, A_MC5_DB_CONFIG, in mc5_dbgi_mode_disable()
314 V_TMMODE(mc5->mode == MC5_MODE_72_BIT) | in mc5_dbgi_mode_disable()
315 V_COMPEN(mc5->mode == MC5_MODE_72_BIT) | in mc5_dbgi_mode_disable()
316 V_PRTYEN(mc5->parity_enabled) | F_MBUSEN); in mc5_dbgi_mode_disable()
323 int t3_mc5_init(struct mc5 *mc5, unsigned int nservers, unsigned int nfilters, in t3_mc5_init() argument
328 unsigned int tcam_size = mc5->tcam_size; in t3_mc5_init()
329 struct adapter *adap = mc5->adapter; in t3_mc5_init()
339 cfg |= V_TMMODE(mc5->mode == MC5_MODE_72_BIT) | F_TMRST; in t3_mc5_init()
352 mc5->parity_enabled = 1; in t3_mc5_init()
358 mc5_dbgi_mode_enable(mc5); in t3_mc5_init()
360 switch (mc5->part_type) { in t3_mc5_init()
362 err = init_idt52100(mc5); in t3_mc5_init()
365 err = init_idt43102(mc5); in t3_mc5_init()
368 CH_ERR(adap, "Unsupported TCAM type %d\n", mc5->part_type); in t3_mc5_init()
373 mc5_dbgi_mode_disable(mc5); in t3_mc5_init()
383 void t3_mc5_intr_handler(struct mc5 *mc5) in t3_mc5_intr_handler() argument
385 struct adapter *adap = mc5->adapter; in t3_mc5_intr_handler()
388 if ((cause & F_PARITYERR) && mc5->parity_enabled) { in t3_mc5_intr_handler()
390 mc5->stats.parity_err++; in t3_mc5_intr_handler()
395 mc5->stats.reqq_parity_err++; in t3_mc5_intr_handler()
400 mc5->stats.dispq_parity_err++; in t3_mc5_intr_handler()
404 mc5->stats.active_rgn_full++; in t3_mc5_intr_handler()
406 mc5->stats.nfa_srch_err++; in t3_mc5_intr_handler()
408 mc5->stats.unknown_cmd++; in t3_mc5_intr_handler()
410 mc5->stats.del_act_empty++; in t3_mc5_intr_handler()
417 void t3_mc5_prep(struct adapter *adapter, struct mc5 *mc5, int mode) in t3_mc5_prep() argument
429 mc5->adapter = adapter; in t3_mc5_prep()
430 mc5->mode = (unsigned char)mode; in t3_mc5_prep()
431 mc5->part_type = (unsigned char)G_TMTYPE(cfg); in t3_mc5_prep()
433 mc5->part_type |= 4; in t3_mc5_prep()
435 mc5->tcam_size = tcam_part_size[G_TMPARTSIZE(cfg)]; in t3_mc5_prep()
437 mc5->tcam_size /= 2; in t3_mc5_prep()