Lines Matching refs:q
57 struct qdio_q *q; in set_impl_params() local
71 for_each_input_queue(irq_ptr, q, i) { in set_impl_params()
73 q->slib->slibe[j].parms = in set_impl_params()
80 for_each_output_queue(irq_ptr, q, i) { in set_impl_params()
82 q->slib->slibe[j].parms = in set_impl_params()
89 struct qdio_q *q; in __qdio_allocate_qs() local
93 q = kmem_cache_alloc(qdio_q_cache, GFP_KERNEL); in __qdio_allocate_qs()
94 if (!q) in __qdio_allocate_qs()
97 q->slib = (struct slib *) __get_free_page(GFP_KERNEL); in __qdio_allocate_qs()
98 if (!q->slib) { in __qdio_allocate_qs()
99 kmem_cache_free(qdio_q_cache, q); in __qdio_allocate_qs()
102 irq_ptr_qs[i] = q; in __qdio_allocate_qs()
118 static void setup_queues_misc(struct qdio_q *q, struct qdio_irq *irq_ptr, in setup_queues_misc() argument
121 struct slib *slib = q->slib; in setup_queues_misc()
124 memset(q, 0, sizeof(*q)); in setup_queues_misc()
126 q->slib = slib; in setup_queues_misc()
127 q->irq_ptr = irq_ptr; in setup_queues_misc()
128 q->mask = 1 << (31 - i); in setup_queues_misc()
129 q->nr = i; in setup_queues_misc()
130 q->handler = handler; in setup_queues_misc()
133 static void setup_storage_lists(struct qdio_q *q, struct qdio_irq *irq_ptr, in setup_storage_lists() argument
139 DBF_HEX(&q, sizeof(void *)); in setup_storage_lists()
140 q->sl = (struct sl *)((char *)q->slib + PAGE_SIZE / 2); in setup_storage_lists()
144 q->sbal[j] = *sbals_array++; in setup_storage_lists()
148 prev = (q->is_input_q) ? irq_ptr->input_qs[i - 1] in setup_storage_lists()
150 prev->slib->nsliba = (unsigned long)q->slib; in setup_storage_lists()
153 q->slib->sla = (unsigned long)q->sl; in setup_storage_lists()
154 q->slib->slsba = (unsigned long)&q->slsb.val[0]; in setup_storage_lists()
158 q->sl->element[j].sbal = (unsigned long)q->sbal[j]; in setup_storage_lists()
164 struct qdio_q *q; in setup_queues() local
171 for_each_input_queue(irq_ptr, q, i) { in setup_queues()
173 setup_queues_misc(q, irq_ptr, qdio_init->input_handler, i); in setup_queues()
175 q->is_input_q = 1; in setup_queues()
176 q->u.in.queue_start_poll = qdio_init->queue_start_poll_array ? in setup_queues()
179 setup_storage_lists(q, irq_ptr, input_sbal_array, i); in setup_queues()
183 tasklet_init(&q->tasklet, tiqdio_inbound_processing, in setup_queues()
184 (unsigned long) q); in setup_queues()
186 tasklet_init(&q->tasklet, qdio_inbound_processing, in setup_queues()
187 (unsigned long) q); in setup_queues()
191 for_each_output_queue(irq_ptr, q, i) { in setup_queues()
193 setup_queues_misc(q, irq_ptr, qdio_init->output_handler, i); in setup_queues()
195 q->u.out.sbal_state = output_sbal_state_array; in setup_queues()
198 q->is_input_q = 0; in setup_queues()
199 q->u.out.scan_threshold = qdio_init->scan_threshold; in setup_queues()
200 setup_storage_lists(q, irq_ptr, output_sbal_array, i); in setup_queues()
203 tasklet_init(&q->tasklet, qdio_outbound_processing, in setup_queues()
204 (unsigned long) q); in setup_queues()
205 setup_timer(&q->u.out.timer, (void(*)(unsigned long)) in setup_queues()
206 &qdio_outbound_timer, (unsigned long)q); in setup_queues()
316 struct qdio_q *q; in qdio_release_memory() local
324 q = irq_ptr->input_qs[i]; in qdio_release_memory()
325 if (q) { in qdio_release_memory()
326 free_page((unsigned long) q->slib); in qdio_release_memory()
327 kmem_cache_free(qdio_q_cache, q); in qdio_release_memory()
331 q = irq_ptr->output_qs[i]; in qdio_release_memory()
332 if (q) { in qdio_release_memory()
333 if (q->u.out.use_cq) { in qdio_release_memory()
337 struct qaob *aob = q->u.out.aobs[n]; in qdio_release_memory()
340 q->u.out.aobs[n] = NULL; in qdio_release_memory()
344 qdio_disable_async_operation(&q->u.out); in qdio_release_memory()
346 free_page((unsigned long) q->slib); in qdio_release_memory()
347 kmem_cache_free(qdio_q_cache, q); in qdio_release_memory()
512 void qdio_disable_async_operation(struct qdio_output_q *q) in qdio_disable_async_operation() argument
514 kfree(q->aobs); in qdio_disable_async_operation()
515 q->aobs = NULL; in qdio_disable_async_operation()
516 q->use_cq = 0; in qdio_disable_async_operation()