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

Lines Matching defs:shca

208 int ehca_sense_attributes(struct ehca_shca *shca)
220 h_ret = hipz_h_query_hca(shca->ipz_hca_handle, rblock);
229 shca->num_ports = 1;
231 shca->num_ports = (u8)rblock->num_ports;
245 shca->hw_level = 0;
247 shca->hw_level = 1;
249 shca->hw_level = 2;
251 ehca_gen_dbg(" ... hardware level=%x", shca->hw_level);
253 shca->sport[0].rate = IB_RATE_30_GBPS;
254 shca->sport[1].rate = IB_RATE_30_GBPS;
261 static int init_node_guid(struct ehca_shca *shca)
268 ehca_err(&shca->ib_device, "Can't allocate rblock memory.");
272 if (hipz_h_query_hca(shca->ipz_hca_handle, rblock) != H_SUCCESS) {
273 ehca_err(&shca->ib_device, "Can't query device properties");
278 memcpy(&shca->ib_device.node_guid, &rblock->node_guid, sizeof(u64));
285 int ehca_init_device(struct ehca_shca *shca)
289 ret = init_node_guid(shca);
293 strlcpy(shca->ib_device.name, "ehca%d", IB_DEVICE_NAME_MAX);
294 shca->ib_device.owner = THIS_MODULE;
296 shca->ib_device.uverbs_abi_ver = 6;
297 shca->ib_device.uverbs_cmd_mask =
315 shca->ib_device.node_type = RDMA_NODE_IB_CA;
316 shca->ib_device.phys_port_cnt = shca->num_ports;
317 shca->ib_device.num_comp_vectors = 1;
318 shca->ib_device.dma_device = &shca->ibmebus_dev->ofdev.dev;
319 shca->ib_device.query_device = ehca_query_device;
320 shca->ib_device.query_port = ehca_query_port;
321 shca->ib_device.query_gid = ehca_query_gid;
322 shca->ib_device.query_pkey = ehca_query_pkey;
323 /* shca->in_device.modify_device = ehca_modify_device */
324 shca->ib_device.modify_port = ehca_modify_port;
325 shca->ib_device.alloc_ucontext = ehca_alloc_ucontext;
326 shca->ib_device.dealloc_ucontext = ehca_dealloc_ucontext;
327 shca->ib_device.alloc_pd = ehca_alloc_pd;
328 shca->ib_device.dealloc_pd = ehca_dealloc_pd;
329 shca->ib_device.create_ah = ehca_create_ah;
330 /* shca->ib_device.modify_ah = ehca_modify_ah; */
331 shca->ib_device.query_ah = ehca_query_ah;
332 shca->ib_device.destroy_ah = ehca_destroy_ah;
333 shca->ib_device.create_qp = ehca_create_qp;
334 shca->ib_device.modify_qp = ehca_modify_qp;
335 shca->ib_device.query_qp = ehca_query_qp;
336 shca->ib_device.destroy_qp = ehca_destroy_qp;
337 shca->ib_device.post_send = ehca_post_send;
338 shca->ib_device.post_recv = ehca_post_recv;
339 shca->ib_device.create_cq = ehca_create_cq;
340 shca->ib_device.destroy_cq = ehca_destroy_cq;
341 shca->ib_device.resize_cq = ehca_resize_cq;
342 shca->ib_device.poll_cq = ehca_poll_cq;
343 /* shca->ib_device.peek_cq = ehca_peek_cq; */
344 shca->ib_device.req_notify_cq = ehca_req_notify_cq;
345 /* shca->ib_device.req_ncomp_notif = ehca_req_ncomp_notif; */
346 shca->ib_device.get_dma_mr = ehca_get_dma_mr;
347 shca->ib_device.reg_phys_mr = ehca_reg_phys_mr;
348 shca->ib_device.reg_user_mr = ehca_reg_user_mr;
349 shca->ib_device.query_mr = ehca_query_mr;
350 shca->ib_device.dereg_mr = ehca_dereg_mr;
351 shca->ib_device.rereg_phys_mr = ehca_rereg_phys_mr;
352 shca->ib_device.alloc_mw = ehca_alloc_mw;
353 shca->ib_device.bind_mw = ehca_bind_mw;
354 shca->ib_device.dealloc_mw = ehca_dealloc_mw;
355 shca->ib_device.alloc_fmr = ehca_alloc_fmr;
356 shca->ib_device.map_phys_fmr = ehca_map_phys_fmr;
357 shca->ib_device.unmap_fmr = ehca_unmap_fmr;
358 shca->ib_device.dealloc_fmr = ehca_dealloc_fmr;
359 shca->ib_device.attach_mcast = ehca_attach_mcast;
360 shca->ib_device.detach_mcast = ehca_detach_mcast;
361 /* shca->ib_device.process_mad = ehca_process_mad; */
362 shca->ib_device.mmap = ehca_mmap;
367 static int ehca_create_aqp1(struct ehca_shca *shca, u32 port)
369 struct ehca_sport *sport = &shca->sport[port - 1];
376 ehca_err(&shca->ib_device, "AQP1 CQ is already created.");
380 ibcq = ib_create_cq(&shca->ib_device, NULL, NULL, (void*)(-1), 10, 0);
382 ehca_err(&shca->ib_device, "Cannot create AQP1 CQ.");
388 ehca_err(&shca->ib_device, "AQP1 QP is already created.");
407 ibqp = ib_create_qp(&shca->pd->ib_pd, &qp_init_attr);
409 ehca_err(&shca->ib_device, "Cannot create AQP1 QP.");
471 struct ehca_shca *shca; \
475 shca = dev->driver_data; \
483 if (hipz_h_query_hca(shca->ipz_hca_handle, rblock) != H_SUCCESS) { \
519 struct ehca_shca *shca = dev->driver_data;
521 return sprintf(buf, "%lx\n", shca->ipz_hca_handle.handle);
552 struct ehca_shca *shca;
570 shca = (struct ehca_shca *)ib_alloc_device(sizeof(*shca));
571 if (!shca) {
572 ehca_gen_err("Cannot allocate shca memory.");
575 mutex_init(&shca->modify_mutex);
577 shca->ibmebus_dev = dev;
578 shca->ipz_hca_handle.handle = *handle;
579 dev->ofdev.dev.driver_data = shca;
581 ret = ehca_sense_attributes(shca);
587 ret = ehca_init_device(shca);
594 ret = ehca_create_eq(shca, &shca->eq, EHCA_EQ, 2048);
596 ehca_err(&shca->ib_device, "Cannot create EQ.");
600 ret = ehca_create_eq(shca, &shca->neq, EHCA_NEQ, 513);
602 ehca_err(&shca->ib_device, "Cannot create NEQ.");
607 ibpd = ehca_alloc_pd(&shca->ib_device, (void*)(-1), NULL);
609 ehca_err(&shca->ib_device, "Cannot create internal PD.");
614 shca->pd = container_of(ibpd, struct ehca_pd, ib_pd);
615 shca->pd->ib_pd.device = &shca->ib_device;
618 ret = ehca_reg_internal_maxmr(shca, shca->pd, &shca->maxmr);
621 ehca_err(&shca->ib_device, "Cannot create internal MR ret=%x",
626 ret = ib_register_device(&shca->ib_device);
628 ehca_err(&shca->ib_device,
635 shca->sport[0].port_state = IB_PORT_DOWN;
636 ret = ehca_create_aqp1(shca, 1);
638 ehca_err(&shca->ib_device,
645 if ((ehca_open_aqp1 == 1) && (shca->num_ports == 2)) {
646 shca->sport[1].port_state = IB_PORT_DOWN;
647 ret = ehca_create_aqp1(shca, 2);
649 ehca_err(&shca->ib_device,
657 ehca_err(&shca->ib_device,
661 list_add(&shca->shca_list, &shca_list);
667 ret = ehca_destroy_aqp1(&shca->sport[0]);
669 ehca_err(&shca->ib_device,
673 ib_unregister_device(&shca->ib_device);
676 ret = ehca_dereg_internal_maxmr(shca);
678 ehca_err(&shca->ib_device,
682 ret = ehca_dealloc_pd(&shca->pd->ib_pd);
684 ehca_err(&shca->ib_device,
688 ret = ehca_destroy_eq(shca, &shca->neq);
690 ehca_err(&shca->ib_device,
694 ret = ehca_destroy_eq(shca, &shca->eq);
696 ehca_err(&shca->ib_device,
700 ib_dealloc_device(&shca->ib_device);
707 struct ehca_shca *shca = dev->ofdev.dev.driver_data;
714 for (i = 0; i < shca->num_ports; i++) {
715 ret = ehca_destroy_aqp1(&shca->sport[i]);
717 ehca_err(&shca->ib_device,
723 ib_unregister_device(&shca->ib_device);
725 ret = ehca_dereg_internal_maxmr(shca);
727 ehca_err(&shca->ib_device,
730 ret = ehca_dealloc_pd(&shca->pd->ib_pd);
732 ehca_err(&shca->ib_device,
735 ret = ehca_destroy_eq(shca, &shca->eq);
737 ehca_err(&shca->ib_device, "Cannot destroy EQ. ret=%x", ret);
739 ret = ehca_destroy_eq(shca, &shca->neq);
741 ehca_err(&shca->ib_device, "Canot destroy NEQ. ret=%x", ret);
743 ib_dealloc_device(&shca->ib_device);
746 list_del(&shca->shca_list);
770 struct ehca_shca *shca;
773 list_for_each_entry(shca, &shca_list, shca_list) {
774 if (shca->eq.is_initialized) {
776 struct ehca_eq *eq = &shca->eq;
790 ehca_process_eq(shca, 0);