Lines Matching refs:adapter

35 	adapter_t *adapter;  member
46 u32 en = t1_read_reg_4(mc3->adapter, A_PL_ENABLE); in t1_mc3_intr_enable()
48 if (t1_is_asic(mc3->adapter)) { in t1_mc3_intr_enable()
49 t1_write_reg_4(mc3->adapter, A_MC3_INT_ENABLE, MC3_INTR_MASK); in t1_mc3_intr_enable()
50 t1_write_reg_4(mc3->adapter, A_PL_ENABLE, en | F_PL_INTR_MC3); in t1_mc3_intr_enable()
53 t1_write_reg_4(mc3->adapter, FPGA_MC3_REG_INTRENABLE, in t1_mc3_intr_enable()
55 t1_write_reg_4(mc3->adapter, A_PL_ENABLE, in t1_mc3_intr_enable()
63 u32 pl_intr = t1_read_reg_4(mc3->adapter, A_PL_ENABLE); in t1_mc3_intr_disable()
65 if (t1_is_asic(mc3->adapter)) { in t1_mc3_intr_disable()
66 t1_write_reg_4(mc3->adapter, A_MC3_INT_ENABLE, 0); in t1_mc3_intr_disable()
67 t1_write_reg_4(mc3->adapter, A_PL_ENABLE, in t1_mc3_intr_disable()
71 t1_write_reg_4(mc3->adapter, FPGA_MC3_REG_INTRENABLE, 0); in t1_mc3_intr_disable()
72 t1_write_reg_4(mc3->adapter, A_PL_ENABLE, in t1_mc3_intr_disable()
80 if (t1_is_asic(mc3->adapter)) { in t1_mc3_intr_clear()
81 if (t1_is_T1B(mc3->adapter)) { in t1_mc3_intr_clear()
88 old_en = t1_read_reg_4(mc3->adapter, A_MC3_INT_ENABLE); in t1_mc3_intr_clear()
89 t1_write_reg_4(mc3->adapter, A_MC3_INT_ENABLE, in t1_mc3_intr_clear()
91 t1_write_reg_4(mc3->adapter, A_MC3_INT_ENABLE, old_en); in t1_mc3_intr_clear()
93 t1_write_reg_4(mc3->adapter, A_MC3_INT_CAUSE, in t1_mc3_intr_clear()
96 t1_write_reg_4(mc3->adapter, A_PL_CAUSE, F_PL_INTR_MC3); in t1_mc3_intr_clear()
99 t1_write_reg_4(mc3->adapter, FPGA_MC3_REG_INTRCAUSE, in t1_mc3_intr_clear()
101 t1_write_reg_4(mc3->adapter, A_PL_CAUSE, in t1_mc3_intr_clear()
109 adapter_t *adapter = mc3->adapter; in t1_mc3_intr_handler() local
114 if (!t1_is_asic(adapter)) in t1_mc3_intr_handler()
117 cause = t1_read_reg_4(adapter, cause_reg); in t1_mc3_intr_handler()
123 adapter_name(adapter), in t1_mc3_intr_handler()
124 G_MC3_CE_ADDR(t1_read_reg_4(adapter, A_MC3_CE_ADDR)), in t1_mc3_intr_handler()
125 t1_read_reg_4(adapter, A_MC3_CE_DATA0), in t1_mc3_intr_handler()
126 t1_read_reg_4(adapter, A_MC3_CE_DATA1), in t1_mc3_intr_handler()
127 t1_read_reg_4(adapter, A_MC3_CE_DATA2), in t1_mc3_intr_handler()
128 t1_read_reg_4(adapter, A_MC3_CE_DATA3), in t1_mc3_intr_handler()
129 t1_read_reg_4(adapter, A_MC3_CE_DATA4)); in t1_mc3_intr_handler()
136 adapter_name(adapter), in t1_mc3_intr_handler()
137 G_MC3_UE_ADDR(t1_read_reg_4(adapter, A_MC3_UE_ADDR)), in t1_mc3_intr_handler()
138 t1_read_reg_4(adapter, A_MC3_UE_DATA0), in t1_mc3_intr_handler()
139 t1_read_reg_4(adapter, A_MC3_UE_DATA1), in t1_mc3_intr_handler()
140 t1_read_reg_4(adapter, A_MC3_UE_DATA2), in t1_mc3_intr_handler()
141 t1_read_reg_4(adapter, A_MC3_UE_DATA3), in t1_mc3_intr_handler()
142 t1_read_reg_4(adapter, A_MC3_UE_DATA4)); in t1_mc3_intr_handler()
147 CH_ALERT("%s: MC3 parity error 0x%x\n", adapter_name(adapter), in t1_mc3_intr_handler()
153 CH_ALERT("%s: MC3 address error\n", adapter_name(adapter)); in t1_mc3_intr_handler()
157 t1_fatal_err(adapter); in t1_mc3_intr_handler()
159 if (t1_is_T1B(adapter)) { in t1_mc3_intr_handler()
164 t1_write_reg_4(adapter, A_MC3_INT_ENABLE, cause); in t1_mc3_intr_handler()
166 t1_write_reg_4(adapter, A_MC3_INT_ENABLE, MC3_INTR_MASK); in t1_mc3_intr_handler()
168 t1_write_reg_4(adapter, cause_reg, cause); in t1_mc3_intr_handler()
173 #define is_MC3A(adapter) (!t1_is_T1B(adapter)) argument
180 static int wrreg_wait(adapter_t *adapter, unsigned int addr, u32 val) in wrreg_wait() argument
182 t1_write_reg_4(adapter, addr, val); in wrreg_wait()
183 val = t1_read_reg_4(adapter, addr); /* flush */ in wrreg_wait()
184 if (!(t1_read_reg_4(adapter, addr) & F_BUSY)) in wrreg_wait()
187 adapter_name(adapter), addr); in wrreg_wait()
197 adapter_t *adapter = mc3->adapter; in t1_mc3_init() local
200 val = t1_read_reg_4(adapter, A_MC3_CFG); in t1_mc3_init()
201 width = is_MC3A(adapter) ? G_MC3_WIDTH(val) : 0; in t1_mc3_init()
202 fast_asic = t1_is_asic(adapter) && !(val & F_MC3_SLOW); in t1_mc3_init()
225 t1_write_reg_4(adapter, A_MC3_CFG, val); in t1_mc3_init()
227 val = t1_read_reg_4(adapter, A_MC3_CFG); in t1_mc3_init()
228 t1_write_reg_4(adapter, A_MC3_CFG, val | F_CLK_ENABLE); in t1_mc3_init()
229 val = t1_read_reg_4(adapter, A_MC3_CFG); /* flush */ in t1_mc3_init()
232 val = t1_read_reg_4(adapter, A_MC3_STROBE); in t1_mc3_init()
233 if (is_MC3A(adapter)) { in t1_mc3_init()
234 t1_write_reg_4(adapter, A_MC3_STROBE, in t1_mc3_init()
241 t1_write_reg_4(adapter, A_MC3_STROBE, in t1_mc3_init()
248 val = t1_read_reg_4(adapter, A_MC3_STROBE); in t1_mc3_init()
252 adapter_name(adapter)); in t1_mc3_init()
259 if (wrreg_wait(adapter, A_MC3_PRECHARG, 0)) in t1_mc3_init()
263 if (wrreg_wait(adapter, A_MC3_EXT_MODE, fast_asic ? 0 : 1)) in t1_mc3_init()
267 if (wrreg_wait(adapter, A_MC3_MODE, fast_asic ? 0x161 : 0x21)) in t1_mc3_init()
271 if (wrreg_wait(adapter, A_MC3_PRECHARG, 0)) in t1_mc3_init()
275 val = t1_read_reg_4(adapter, A_MC3_REFRESH); in t1_mc3_init()
276 if (wrreg_wait(adapter, A_MC3_REFRESH, val & ~F_REFRESH_ENABLE)) in t1_mc3_init()
280 if (wrreg_wait(adapter, A_MC3_REFRESH, val & ~F_REFRESH_ENABLE)) in t1_mc3_init()
284 if (wrreg_wait(adapter, A_MC3_MODE, fast_asic ? 0x61 : 0x21)) in t1_mc3_init()
293 t1_write_reg_4(adapter, A_MC3_REFRESH, in t1_mc3_init()
295 (void) t1_read_reg_4(adapter, A_MC3_REFRESH); /* flush */ in t1_mc3_init()
297 t1_write_reg_4(adapter, A_MC3_ECC_CNTL, in t1_mc3_init()
301 t1_write_reg_4(adapter, A_MC3_BIST_ADDR_BEG, 0); in t1_mc3_init()
302 t1_write_reg_4(adapter, A_MC3_BIST_ADDR_END, (mc3->size << width) - 1); in t1_mc3_init()
303 t1_write_reg_4(adapter, A_MC3_BIST_DATA, 0); in t1_mc3_init()
304 t1_write_reg_4(adapter, A_MC3_BIST_OP, V_OP(1) | 0x1f0); in t1_mc3_init()
305 (void) t1_read_reg_4(adapter, A_MC3_BIST_OP); /* flush */ in t1_mc3_init()
310 val = t1_read_reg_4(adapter, A_MC3_BIST_OP); in t1_mc3_init()
313 CH_ERR("%s: MC3 BIST timed out\n", adapter_name(adapter)); in t1_mc3_init()
318 val = t1_read_reg_4(adapter, A_MC3_CFG); in t1_mc3_init()
319 t1_write_reg_4(adapter, A_MC3_CFG, val | F_READY); in t1_mc3_init()
326 static unsigned int __devinit mc3_calc_size(const adapter_t *adapter, u32 cfg) in mc3_calc_size() argument
332 unsigned int capacity_in_MB = is_MC3A(adapter) ? in mc3_calc_size()
339 struct pemc3 * __devinit t1_mc3_create(adapter_t *adapter) in t1_mc3_create() argument
344 mc3->adapter = adapter; in t1_mc3_create()
345 mc3->size = mc3_calc_size(adapter, in t1_mc3_create()
346 t1_read_reg_4(adapter, A_MC3_CFG)); in t1_mc3_create()