• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/infiniband/hw/mlx4/

Lines Matching refs:ibdev

69 static int mlx4_ib_query_device(struct ib_device *ibdev,
72 struct mlx4_ib_dev *dev = to_mdev(ibdev);
85 err = mlx4_MAD_IFC(to_mdev(ibdev), 1, 1, 1, NULL, NULL, in_mad, out_mad);
157 static int mlx4_ib_query_port(struct ib_device *ibdev, u8 port,
175 err = mlx4_MAD_IFC(to_mdev(ibdev), 1, 1, port, NULL, NULL, in_mad, out_mad);
186 props->gid_tbl_len = to_mdev(ibdev)->dev->caps.gid_table_len[port];
187 props->max_msg_sz = to_mdev(ibdev)->dev->caps.max_msg_sz;
188 props->pkey_tbl_len = to_mdev(ibdev)->dev->caps.pkey_table_len[port];
206 static int mlx4_ib_query_gid(struct ib_device *ibdev, u8 port, int index,
222 err = mlx4_MAD_IFC(to_mdev(ibdev), 1, 1, port, NULL, NULL, in_mad, out_mad);
232 err = mlx4_MAD_IFC(to_mdev(ibdev), 1, 1, port, NULL, NULL, in_mad, out_mad);
244 static int mlx4_ib_query_pkey(struct ib_device *ibdev, u8 port, u16 index,
260 err = mlx4_MAD_IFC(to_mdev(ibdev), 1, 1, port, NULL, NULL, in_mad, out_mad);
272 static int mlx4_ib_modify_device(struct ib_device *ibdev, int mask,
279 spin_lock(&to_mdev(ibdev)->sm_lock);
280 memcpy(ibdev->node_desc, props->node_desc, 64);
281 spin_unlock(&to_mdev(ibdev)->sm_lock);
314 static int mlx4_ib_modify_port(struct ib_device *ibdev, u8 port, int mask,
321 mutex_lock(&to_mdev(ibdev)->cap_mask_mutex);
323 err = mlx4_ib_query_port(ibdev, port, &attr);
330 err = mlx4_SET_PORT(to_mdev(ibdev), port,
335 mutex_unlock(&to_mdev(ibdev)->cap_mask_mutex);
339 static struct ib_ucontext *mlx4_ib_alloc_ucontext(struct ib_device *ibdev,
342 struct mlx4_ib_dev *dev = to_mdev(ibdev);
358 err = mlx4_uar_alloc(to_mdev(ibdev)->dev, &context->uar);
369 mlx4_uar_free(to_mdev(ibdev)->dev, &context->uar);
415 static struct ib_pd *mlx4_ib_alloc_pd(struct ib_device *ibdev,
426 err = mlx4_pd_alloc(to_mdev(ibdev)->dev, &pd->pdn);
434 mlx4_pd_free(to_mdev(ibdev)->dev, pd->pdn);
548 struct mlx4_ib_dev *ibdev;
561 ibdev = (struct mlx4_ib_dev *) ib_alloc_device(sizeof *ibdev);
562 if (!ibdev) {
567 if (mlx4_pd_alloc(dev, &ibdev->priv_pdn))
570 if (mlx4_uar_alloc(dev, &ibdev->priv_uar))
573 ibdev->uar_map = ioremap(ibdev->priv_uar.pfn << PAGE_SHIFT, PAGE_SIZE);
574 if (!ibdev->uar_map)
576 MLX4_INIT_DOORBELL_LOCK(&ibdev->uar_lock);
578 ibdev->dev = dev;
580 strlcpy(ibdev->ib_dev.name, "mlx4_%d", IB_DEVICE_NAME_MAX);
581 ibdev->ib_dev.owner = THIS_MODULE;
582 ibdev->ib_dev.node_type = RDMA_NODE_IB_CA;
583 ibdev->ib_dev.local_dma_lkey = dev->caps.reserved_lkey;
584 ibdev->num_ports = num_ports;
585 ibdev->ib_dev.phys_port_cnt = ibdev->num_ports;
586 ibdev->ib_dev.num_comp_vectors = dev->caps.num_comp_vectors;
587 ibdev->ib_dev.dma_device = &dev->pdev->dev;
589 ibdev->ib_dev.uverbs_abi_ver = MLX4_IB_UVERBS_ABI_VERSION;
590 ibdev->ib_dev.uverbs_cmd_mask =
613 ibdev->ib_dev.query_device = mlx4_ib_query_device;
614 ibdev->ib_dev.query_port = mlx4_ib_query_port;
615 ibdev->ib_dev.query_gid = mlx4_ib_query_gid;
616 ibdev->ib_dev.query_pkey = mlx4_ib_query_pkey;
617 ibdev->ib_dev.modify_device = mlx4_ib_modify_device;
618 ibdev->ib_dev.modify_port = mlx4_ib_modify_port;
619 ibdev->ib_dev.alloc_ucontext = mlx4_ib_alloc_ucontext;
620 ibdev->ib_dev.dealloc_ucontext = mlx4_ib_dealloc_ucontext;
621 ibdev->ib_dev.mmap = mlx4_ib_mmap;
622 ibdev->ib_dev.alloc_pd = mlx4_ib_alloc_pd;
623 ibdev->ib_dev.dealloc_pd = mlx4_ib_dealloc_pd;
624 ibdev->ib_dev.create_ah = mlx4_ib_create_ah;
625 ibdev->ib_dev.query_ah = mlx4_ib_query_ah;
626 ibdev->ib_dev.destroy_ah = mlx4_ib_destroy_ah;
627 ibdev->ib_dev.create_srq = mlx4_ib_create_srq;
628 ibdev->ib_dev.modify_srq = mlx4_ib_modify_srq;
629 ibdev->ib_dev.query_srq = mlx4_ib_query_srq;
630 ibdev->ib_dev.destroy_srq = mlx4_ib_destroy_srq;
631 ibdev->ib_dev.post_srq_recv = mlx4_ib_post_srq_recv;
632 ibdev->ib_dev.create_qp = mlx4_ib_create_qp;
633 ibdev->ib_dev.modify_qp = mlx4_ib_modify_qp;
634 ibdev->ib_dev.query_qp = mlx4_ib_query_qp;
635 ibdev->ib_dev.destroy_qp = mlx4_ib_destroy_qp;
636 ibdev->ib_dev.post_send = mlx4_ib_post_send;
637 ibdev->ib_dev.post_recv = mlx4_ib_post_recv;
638 ibdev->ib_dev.create_cq = mlx4_ib_create_cq;
639 ibdev->ib_dev.modify_cq = mlx4_ib_modify_cq;
640 ibdev->ib_dev.resize_cq = mlx4_ib_resize_cq;
641 ibdev->ib_dev.destroy_cq = mlx4_ib_destroy_cq;
642 ibdev->ib_dev.poll_cq = mlx4_ib_poll_cq;
643 ibdev->ib_dev.req_notify_cq = mlx4_ib_arm_cq;
644 ibdev->ib_dev.get_dma_mr = mlx4_ib_get_dma_mr;
645 ibdev->ib_dev.reg_user_mr = mlx4_ib_reg_user_mr;
646 ibdev->ib_dev.dereg_mr = mlx4_ib_dereg_mr;
647 ibdev->ib_dev.alloc_fast_reg_mr = mlx4_ib_alloc_fast_reg_mr;
648 ibdev->ib_dev.alloc_fast_reg_page_list = mlx4_ib_alloc_fast_reg_page_list;
649 ibdev->ib_dev.free_fast_reg_page_list = mlx4_ib_free_fast_reg_page_list;
650 ibdev->ib_dev.attach_mcast = mlx4_ib_mcg_attach;
651 ibdev->ib_dev.detach_mcast = mlx4_ib_mcg_detach;
652 ibdev->ib_dev.process_mad = mlx4_ib_process_mad;
654 ibdev->ib_dev.alloc_fmr = mlx4_ib_fmr_alloc;
655 ibdev->ib_dev.map_phys_fmr = mlx4_ib_map_phys_fmr;
656 ibdev->ib_dev.unmap_fmr = mlx4_ib_unmap_fmr;
657 ibdev->ib_dev.dealloc_fmr = mlx4_ib_fmr_dealloc;
659 if (init_node_data(ibdev))
662 spin_lock_init(&ibdev->sm_lock);
663 mutex_init(&ibdev->cap_mask_mutex);
665 if (ib_register_device(&ibdev->ib_dev, NULL))
668 if (mlx4_ib_mad_init(ibdev))
672 if (device_create_file(&ibdev->ib_dev.dev,
677 ibdev->ib_active = true;
679 return ibdev;
682 ib_unregister_device(&ibdev->ib_dev);
685 iounmap(ibdev->uar_map);
688 mlx4_uar_free(dev, &ibdev->priv_uar);
691 mlx4_pd_free(dev, ibdev->priv_pdn);
694 ib_dealloc_device(&ibdev->ib_dev);
701 struct mlx4_ib_dev *ibdev = ibdev_ptr;
704 mlx4_ib_mad_cleanup(ibdev);
705 ib_unregister_device(&ibdev->ib_dev);
707 for (p = 1; p <= ibdev->num_ports; ++p)
710 iounmap(ibdev->uar_map);
711 mlx4_uar_free(dev, &ibdev->priv_uar);
712 mlx4_pd_free(dev, ibdev->priv_pdn);
713 ib_dealloc_device(&ibdev->ib_dev);
720 struct mlx4_ib_dev *ibdev = to_mdev((struct ib_device *) ibdev_ptr);
722 if (port > ibdev->num_ports)
735 ibdev->ib_active = false;