• Home
  • Raw
  • Download

Lines Matching refs:q

45 	struct qdio_q *q;  in set_impl_params()  local
60 for_each_input_queue(irq_ptr, q, i) { in set_impl_params()
62 q->slib->slibe[j].parms = in set_impl_params()
69 for_each_output_queue(irq_ptr, q, i) { in set_impl_params()
71 q->slib->slibe[j].parms = in set_impl_params()
78 struct qdio_q *q; in __qdio_allocate_qs() local
82 q = kmem_cache_alloc(qdio_q_cache, GFP_KERNEL); in __qdio_allocate_qs()
83 if (!q) in __qdio_allocate_qs()
85 WARN_ON((unsigned long)q & 0xff); in __qdio_allocate_qs()
87 q->slib = (struct slib *) __get_free_page(GFP_KERNEL); in __qdio_allocate_qs()
88 if (!q->slib) { in __qdio_allocate_qs()
89 kmem_cache_free(qdio_q_cache, q); in __qdio_allocate_qs()
92 WARN_ON((unsigned long)q->slib & 0x7ff); in __qdio_allocate_qs()
93 irq_ptr_qs[i] = q; in __qdio_allocate_qs()
109 static void setup_queues_misc(struct qdio_q *q, struct qdio_irq *irq_ptr, in setup_queues_misc() argument
113 memset(q, 0, ((char *)&q->slib) - ((char *)q)); in setup_queues_misc()
114 memset(q->slib, 0, PAGE_SIZE); in setup_queues_misc()
116 q->irq_ptr = irq_ptr; in setup_queues_misc()
117 q->mask = 1 << (31 - i); in setup_queues_misc()
118 q->nr = i; in setup_queues_misc()
119 q->handler = handler; in setup_queues_misc()
120 spin_lock_init(&q->lock); in setup_queues_misc()
123 static void setup_storage_lists(struct qdio_q *q, struct qdio_irq *irq_ptr, in setup_storage_lists() argument
129 DBF_HEX(&q, sizeof(void *)); in setup_storage_lists()
130 q->sl = (struct sl *)((char *)q->slib + PAGE_SIZE / 2); in setup_storage_lists()
134 q->sbal[j] = *sbals_array++; in setup_storage_lists()
135 WARN_ON((unsigned long)q->sbal[j] & 0xff); in setup_storage_lists()
140 prev = (q->is_input_q) ? irq_ptr->input_qs[i - 1] in setup_storage_lists()
142 prev->slib->nsliba = (unsigned long)q->slib; in setup_storage_lists()
145 q->slib->sla = (unsigned long)q->sl; in setup_storage_lists()
146 q->slib->slsba = (unsigned long)&q->slsb.val[0]; in setup_storage_lists()
150 q->sl->element[j].sbal = (unsigned long)q->sbal[j]; in setup_storage_lists()
153 DBF_HEX(q->sl, sizeof(void *)); in setup_storage_lists()
154 DBF_HEX(&q->slsb, sizeof(void *)); in setup_storage_lists()
155 DBF_HEX(q->sbal, sizeof(void *)); in setup_storage_lists()
161 struct qdio_q *q; in setup_queues() local
166 for_each_input_queue(irq_ptr, q, i) { in setup_queues()
168 setup_queues_misc(q, irq_ptr, qdio_init->input_handler, i); in setup_queues()
170 q->is_input_q = 1; in setup_queues()
171 setup_storage_lists(q, irq_ptr, input_sbal_array, i); in setup_queues()
175 tasklet_init(&q->tasklet, tiqdio_inbound_processing, in setup_queues()
176 (unsigned long) q); in setup_queues()
178 tasklet_init(&q->tasklet, qdio_inbound_processing, in setup_queues()
179 (unsigned long) q); in setup_queues()
182 for_each_output_queue(irq_ptr, q, i) { in setup_queues()
184 setup_queues_misc(q, irq_ptr, qdio_init->output_handler, i); in setup_queues()
186 q->is_input_q = 0; in setup_queues()
187 setup_storage_lists(q, irq_ptr, output_sbal_array, i); in setup_queues()
190 tasklet_init(&q->tasklet, qdio_outbound_processing, in setup_queues()
191 (unsigned long) q); in setup_queues()
192 setup_timer(&q->u.out.timer, (void(*)(unsigned long)) in setup_queues()
193 &qdio_outbound_timer, (unsigned long)q); in setup_queues()
306 struct qdio_q *q; in qdio_release_memory() local
314 q = irq_ptr->input_qs[i]; in qdio_release_memory()
315 if (q) { in qdio_release_memory()
316 free_page((unsigned long) q->slib); in qdio_release_memory()
317 kmem_cache_free(qdio_q_cache, q); in qdio_release_memory()
321 q = irq_ptr->output_qs[i]; in qdio_release_memory()
322 if (q) { in qdio_release_memory()
323 free_page((unsigned long) q->slib); in qdio_release_memory()
324 kmem_cache_free(qdio_q_cache, q); in qdio_release_memory()