• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/drivers/infiniband/hw/amso1100/

Lines Matching defs:c2dev

80 static int c2_adapter_init(struct c2_dev *c2dev)
88 wr.hint_count = cpu_to_be64(c2dev->hint_count_dma);
89 wr.q0_host_shared = cpu_to_be64(c2dev->req_vq.shared_dma);
90 wr.q1_host_shared = cpu_to_be64(c2dev->rep_vq.shared_dma);
91 wr.q1_host_msg_pool = cpu_to_be64(c2dev->rep_vq.host_dma);
92 wr.q2_host_shared = cpu_to_be64(c2dev->aeq.shared_dma);
93 wr.q2_host_msg_pool = cpu_to_be64(c2dev->aeq.host_dma);
96 err = vq_send_wr(c2dev, (union c2wr *) & wr);
104 static void c2_adapter_term(struct c2_dev *c2dev)
113 vq_send_wr(c2dev, (union c2wr *) & wr);
114 c2dev->init = 0;
122 static int c2_rnic_query(struct c2_dev *c2dev, struct ib_device_attr *props)
129 vq_req = vq_req_alloc(c2dev);
135 wr.rnic_handle = c2dev->adapter_handle;
137 vq_req_get(c2dev, vq_req);
139 err = vq_send_wr(c2dev, (union c2wr *) &wr);
141 vq_req_put(c2dev, vq_req);
145 err = vq_wait_for_reply(c2dev, vq_req);
162 memcpy(&props->sys_image_guid, c2dev->netdev->dev_addr, 6);
170 props->device_cap_flags = c2dev->device_cap_flags;
201 vq_repbuf_free(c2dev, reply);
204 vq_req_free(c2dev, vq_req);
211 int c2_add_addr(struct c2_dev *c2dev, u32 inaddr, u32 inmask)
219 vq_req = vq_req_alloc(c2dev);
224 wr = kmalloc(c2dev->req_vq.msg_size, GFP_KERNEL);
232 wr->rnic_handle = c2dev->adapter_handle;
241 vq_req_get(c2dev, vq_req);
243 err = vq_send_wr(c2dev, (union c2wr *) wr);
245 vq_req_put(c2dev, vq_req);
249 err = vq_wait_for_reply(c2dev, vq_req);
261 vq_repbuf_free(c2dev, reply);
266 vq_req_free(c2dev, vq_req);
273 int c2_del_addr(struct c2_dev *c2dev, u32 inaddr, u32 inmask)
281 vq_req = vq_req_alloc(c2dev);
286 wr = kmalloc(c2dev->req_vq.msg_size, GFP_KERNEL);
294 wr->rnic_handle = c2dev->adapter_handle;
303 vq_req_get(c2dev, vq_req);
305 err = vq_send_wr(c2dev, (union c2wr *) wr);
307 vq_req_put(c2dev, vq_req);
311 err = vq_wait_for_reply(c2dev, vq_req);
323 vq_repbuf_free(c2dev, reply);
328 vq_req_free(c2dev, vq_req);
336 static int c2_rnic_open(struct c2_dev *c2dev)
343 vq_req = vq_req_alloc(c2dev);
353 wr.rnic_open.req.user_context = (unsigned long) c2dev;
355 vq_req_get(c2dev, vq_req);
357 err = vq_send_wr(c2dev, &wr);
359 vq_req_put(c2dev, vq_req);
363 err = vq_wait_for_reply(c2dev, vq_req);
378 c2dev->adapter_handle = reply->rnic_handle;
381 vq_repbuf_free(c2dev, reply);
383 vq_req_free(c2dev, vq_req);
390 static int c2_rnic_close(struct c2_dev *c2dev)
397 vq_req = vq_req_alloc(c2dev);
405 wr.rnic_close.req.rnic_handle = c2dev->adapter_handle;
407 vq_req_get(c2dev, vq_req);
409 err = vq_send_wr(c2dev, &wr);
411 vq_req_put(c2dev, vq_req);
415 err = vq_wait_for_reply(c2dev, vq_req);
430 c2dev->adapter_handle = 0;
433 vq_repbuf_free(c2dev, reply);
435 vq_req_free(c2dev, vq_req);
444 int __devinit c2_rnic_init(struct c2_dev *c2dev)
453 c2dev->device_cap_flags =
461 c2dev->qptr_array = vmalloc(C2_MAX_CQS * sizeof(void *));
462 if (!c2dev->qptr_array) {
467 memset(c2dev->qptr_array, 0, C2_MAX_CQS * sizeof(void *));
468 c2dev->qptr_array[0] = (void *) &c2dev->req_vq;
469 c2dev->qptr_array[1] = (void *) &c2dev->rep_vq;
470 c2dev->qptr_array[2] = (void *) &c2dev->aeq;
473 init_waitqueue_head(&c2dev->req_vq_wo);
474 spin_lock_init(&c2dev->vqlock);
475 spin_lock_init(&c2dev->lock);
480 err = c2_init_mqsp_pool(c2dev, GFP_KERNEL, &c2dev->kern_mqsp_pool);
489 c2dev->hint_count = c2_alloc_mqsp(c2dev, c2dev->kern_mqsp_pool,
490 &c2dev->hint_count_dma,
492 c2dev->req_vq.shared = c2_alloc_mqsp(c2dev, c2dev->kern_mqsp_pool,
493 &c2dev->req_vq.shared_dma,
495 c2dev->rep_vq.shared = c2_alloc_mqsp(c2dev, c2dev->kern_mqsp_pool,
496 &c2dev->rep_vq.shared_dma,
498 c2dev->aeq.shared = c2_alloc_mqsp(c2dev, c2dev->kern_mqsp_pool,
499 &c2dev->aeq.shared_dma, GFP_KERNEL);
500 if (!c2dev->hint_count || !c2dev->req_vq.shared ||
501 !c2dev->rep_vq.shared || !c2dev->aeq.shared) {
506 mmio_regs = c2dev->kva;
508 c2_mq_req_init(&c2dev->req_vq, 0,
520 q1_pages = dma_alloc_coherent(&c2dev->pcidev->dev, qsize * msgsize,
521 &c2dev->rep_vq.host_dma, GFP_KERNEL);
526 pci_unmap_addr_set(&c2dev->rep_vq, mapping, c2dev->rep_vq.host_dma);
528 (unsigned long long) c2dev->rep_vq.host_dma);
529 c2_mq_rep_init(&c2dev->rep_vq,
541 q2_pages = dma_alloc_coherent(&c2dev->pcidev->dev, qsize * msgsize,
542 &c2dev->aeq.host_dma, GFP_KERNEL);
547 pci_unmap_addr_set(&c2dev->aeq, mapping, c2dev->aeq.host_dma);
549 (unsigned long long) c2dev->aeq.host_dma);
550 c2_mq_rep_init(&c2dev->aeq,
560 err = vq_init(c2dev);
565 writel(0, c2dev->regs + C2_IDIS);
568 err = c2_adapter_init(c2dev);
571 c2dev->init++;
574 err = c2_rnic_open(c2dev);
579 if (c2_rnic_query(c2dev, &c2dev->props))
583 err = c2_init_pd_table(c2dev);
588 c2_init_qp_table(c2dev);
592 c2_rnic_close(c2dev);
594 vq_term(c2dev);
596 dma_free_coherent(&c2dev->pcidev->dev,
597 c2dev->aeq.q_size * c2dev->aeq.msg_size,
598 q2_pages, pci_unmap_addr(&c2dev->aeq, mapping));
600 dma_free_coherent(&c2dev->pcidev->dev,
601 c2dev->rep_vq.q_size * c2dev->rep_vq.msg_size,
602 q1_pages, pci_unmap_addr(&c2dev->rep_vq, mapping));
604 c2_free_mqsp_pool(c2dev, c2dev->kern_mqsp_pool);
606 vfree(c2dev->qptr_array);
614 void __devexit c2_rnic_term(struct c2_dev *c2dev)
618 c2_rnic_close(c2dev);
621 c2_adapter_term(c2dev);
624 writel(1, c2dev->regs + C2_IDIS);
627 c2_cleanup_qp_table(c2dev);
630 c2_cleanup_pd_table(c2dev);
633 vq_term(c2dev);
636 dma_free_coherent(&c2dev->pcidev->dev,
637 c2dev->aeq.q_size * c2dev->aeq.msg_size,
638 c2dev->aeq.msg_pool.host,
639 pci_unmap_addr(&c2dev->aeq, mapping));
642 dma_free_coherent(&c2dev->pcidev->dev,
643 c2dev->rep_vq.q_size * c2dev->rep_vq.msg_size,
644 c2dev->rep_vq.msg_pool.host,
645 pci_unmap_addr(&c2dev->rep_vq, mapping));
648 c2_free_mqsp_pool(c2dev, c2dev->kern_mqsp_pool);
651 vfree(c2dev->qptr_array);