Lines Matching defs:eq
257 struct ehea_eq *eq;
259 eq = kzalloc(sizeof(*eq), GFP_KERNEL);
260 if (!eq) {
261 pr_err("no mem for eq\n");
265 eq->adapter = adapter;
266 eq->attr.type = type;
267 eq->attr.max_nr_of_eqes = max_nr_of_eqes;
268 eq->attr.eqe_gen = eqe_gen;
269 spin_lock_init(&eq->spinlock);
272 &eq->attr, &eq->fw_handle);
278 ret = hw_queue_ctor(&eq->hw_queue, eq->attr.nr_pages,
281 pr_err("can't allocate eq pages\n");
285 for (i = 0; i < eq->attr.nr_pages; i++) {
286 vpage = hw_qpageit_get_inc(&eq->hw_queue);
297 eq->fw_handle, rpage, 1);
299 if (i == (eq->attr.nr_pages - 1)) {
301 vpage = hw_qpageit_get_inc(&eq->hw_queue);
312 hw_qeit_reset(&eq->hw_queue);
313 return eq;
316 hw_queue_dtor(&eq->hw_queue);
319 ehea_h_free_resource(adapter->handle, eq->fw_handle, FORCE_FREE);
322 kfree(eq);
326 struct ehea_eqe *ehea_poll_eq(struct ehea_eq *eq)
331 spin_lock_irqsave(&eq->spinlock, flags);
332 eqe = hw_eqit_eq_get_inc_valid(&eq->hw_queue);
333 spin_unlock_irqrestore(&eq->spinlock, flags);
338 static u64 ehea_destroy_eq_res(struct ehea_eq *eq, u64 force)
343 spin_lock_irqsave(&eq->spinlock, flags);
345 hret = ehea_h_free_resource(eq->adapter->handle, eq->fw_handle, force);
346 spin_unlock_irqrestore(&eq->spinlock, flags);
351 hw_queue_dtor(&eq->hw_queue);
352 kfree(eq);
357 int ehea_destroy_eq(struct ehea_eq *eq)
360 if (!eq)
363 hcp_epas_dtor(&eq->epas);
365 hret = ehea_destroy_eq_res(eq, NORMAL_FREE);
367 ehea_error_data(eq->adapter, eq->fw_handle, &aer, &aerr);
368 hret = ehea_destroy_eq_res(eq, FORCE_FREE);