Lines Matching refs:eq
54 struct ehca_eq *eq,
64 spin_lock_init(&eq->spinlock);
65 spin_lock_init(&eq->irq_spinlock);
66 eq->is_initialized = 0;
69 ehca_err(ib_dev, "Invalid EQ type %x. eq=%p", type, eq);
73 ehca_err(ib_dev, "EQ length must not be zero. eq=%p", eq);
78 &eq->pf,
81 &eq->ipz_eq_handle,
82 &eq->length,
83 &nr_pages, &eq->ist);
86 ehca_err(ib_dev, "Can't allocate EQ/NEQ. eq=%p", eq);
90 ret = ipz_queue_ctor(NULL, &eq->ipz_queue, nr_pages,
93 ehca_err(ib_dev, "Can't allocate EQ pages eq=%p", eq);
100 vpage = ipz_qpageit_get_inc(&eq->ipz_queue);
106 eq->ipz_eq_handle,
107 &eq->pf,
112 vpage = ipz_qpageit_get_inc(&eq->ipz_queue);
121 ipz_qeit_reset(&eq->ipz_queue);
125 tasklet_init(&eq->interrupt_task, ehca_tasklet_eq, (long)shca);
127 ret = ibmebus_request_irq(eq->ist, ehca_interrupt_eq,
133 tasklet_init(&eq->interrupt_task, ehca_tasklet_neq, (long)shca);
135 ret = ibmebus_request_irq(eq->ist, ehca_interrupt_neq,
142 eq->is_initialized = 1;
147 ipz_queue_dtor(NULL, &eq->ipz_queue);
150 hipz_h_destroy_eq(shca->ipz_hca_handle, eq);
155 void *ehca_poll_eq(struct ehca_shca *shca, struct ehca_eq *eq)
160 spin_lock_irqsave(&eq->spinlock, flags);
161 eqe = ipz_eqit_eq_get_inc_valid(&eq->ipz_queue);
162 spin_unlock_irqrestore(&eq->spinlock, flags);
167 int ehca_destroy_eq(struct ehca_shca *shca, struct ehca_eq *eq)
172 ibmebus_free_irq(eq->ist, (void *)shca);
175 eq->is_initialized = 0;
178 tasklet_kill(&eq->interrupt_task);
180 h_ret = hipz_h_destroy_eq(shca->ipz_hca_handle, eq);
186 ipz_queue_dtor(NULL, &eq->ipz_queue);