Lines Matching refs:rcd

129 void __aspm_ctx_disable(struct hfi1_ctxtdata *rcd)  in __aspm_ctx_disable()  argument
136 spin_lock_irqsave(&rcd->aspm_lock, flags); in __aspm_ctx_disable()
138 if (!rcd->aspm_intr_enable) in __aspm_ctx_disable()
141 prev = rcd->aspm_ts_last_intr; in __aspm_ctx_disable()
143 rcd->aspm_ts_last_intr = now; in __aspm_ctx_disable()
149 restart_timer = ktime_to_ns(ktime_sub(now, rcd->aspm_ts_timer_sched)) > in __aspm_ctx_disable()
154 if (rcd->aspm_enabled && close_interrupts) { in __aspm_ctx_disable()
155 aspm_disable_inc(rcd->dd); in __aspm_ctx_disable()
156 rcd->aspm_enabled = false; in __aspm_ctx_disable()
161 mod_timer(&rcd->aspm_timer, in __aspm_ctx_disable()
163 rcd->aspm_ts_timer_sched = now; in __aspm_ctx_disable()
166 spin_unlock_irqrestore(&rcd->aspm_lock, flags); in __aspm_ctx_disable()
172 struct hfi1_ctxtdata *rcd = from_timer(rcd, t, aspm_timer); in aspm_ctx_timer_function() local
175 spin_lock_irqsave(&rcd->aspm_lock, flags); in aspm_ctx_timer_function()
176 aspm_enable_dec(rcd->dd); in aspm_ctx_timer_function()
177 rcd->aspm_enabled = true; in aspm_ctx_timer_function()
178 spin_unlock_irqrestore(&rcd->aspm_lock, flags); in aspm_ctx_timer_function()
187 struct hfi1_ctxtdata *rcd; in aspm_disable_all() local
192 rcd = hfi1_rcd_get_by_index(dd, i); in aspm_disable_all()
193 if (rcd) { in aspm_disable_all()
194 del_timer_sync(&rcd->aspm_timer); in aspm_disable_all()
195 spin_lock_irqsave(&rcd->aspm_lock, flags); in aspm_disable_all()
196 rcd->aspm_intr_enable = false; in aspm_disable_all()
197 spin_unlock_irqrestore(&rcd->aspm_lock, flags); in aspm_disable_all()
198 hfi1_rcd_put(rcd); in aspm_disable_all()
209 struct hfi1_ctxtdata *rcd; in aspm_enable_all() local
219 rcd = hfi1_rcd_get_by_index(dd, i); in aspm_enable_all()
220 if (rcd) { in aspm_enable_all()
221 spin_lock_irqsave(&rcd->aspm_lock, flags); in aspm_enable_all()
222 rcd->aspm_intr_enable = true; in aspm_enable_all()
223 rcd->aspm_enabled = true; in aspm_enable_all()
224 spin_unlock_irqrestore(&rcd->aspm_lock, flags); in aspm_enable_all()
225 hfi1_rcd_put(rcd); in aspm_enable_all()
230 static void aspm_ctx_init(struct hfi1_ctxtdata *rcd) in aspm_ctx_init() argument
232 spin_lock_init(&rcd->aspm_lock); in aspm_ctx_init()
233 timer_setup(&rcd->aspm_timer, aspm_ctx_timer_function, 0); in aspm_ctx_init()
234 rcd->aspm_intr_supported = rcd->dd->aspm_supported && in aspm_ctx_init()
236 rcd->ctxt < rcd->dd->first_dyn_alloc_ctxt; in aspm_ctx_init()
241 struct hfi1_ctxtdata *rcd; in aspm_init() local
248 rcd = hfi1_rcd_get_by_index(dd, i); in aspm_init()
249 if (rcd) in aspm_init()
250 aspm_ctx_init(rcd); in aspm_init()
251 hfi1_rcd_put(rcd); in aspm_init()