Lines Matching refs:udev

108 	struct cnic_uio_dev *udev = uinfo->priv;  in cnic_uio_open()  local
114 if (udev->uio_dev != -1) in cnic_uio_open()
118 dev = udev->dev; in cnic_uio_open()
125 udev->uio_dev = iminor(inode); in cnic_uio_open()
136 struct cnic_uio_dev *udev = uinfo->priv; in cnic_uio_close() local
138 udev->uio_dev = -1; in cnic_uio_close()
326 struct cnic_uio_dev *udev = cp->udev; in cnic_send_nlmsg() local
329 if (!udev || udev->uio_dev == -1) in cnic_send_nlmsg()
840 static void __cnic_free_uio_rings(struct cnic_uio_dev *udev) in __cnic_free_uio_rings() argument
842 if (udev->l2_buf) { in __cnic_free_uio_rings()
843 dma_free_coherent(&udev->pdev->dev, udev->l2_buf_size, in __cnic_free_uio_rings()
844 udev->l2_buf, udev->l2_buf_map); in __cnic_free_uio_rings()
845 udev->l2_buf = NULL; in __cnic_free_uio_rings()
848 if (udev->l2_ring) { in __cnic_free_uio_rings()
849 dma_free_coherent(&udev->pdev->dev, udev->l2_ring_size, in __cnic_free_uio_rings()
850 udev->l2_ring, udev->l2_ring_map); in __cnic_free_uio_rings()
851 udev->l2_ring = NULL; in __cnic_free_uio_rings()
856 static void __cnic_free_uio(struct cnic_uio_dev *udev) in __cnic_free_uio() argument
858 uio_unregister_device(&udev->cnic_uinfo); in __cnic_free_uio()
860 __cnic_free_uio_rings(udev); in __cnic_free_uio()
862 pci_dev_put(udev->pdev); in __cnic_free_uio()
863 kfree(udev); in __cnic_free_uio()
866 static void cnic_free_uio(struct cnic_uio_dev *udev) in cnic_free_uio() argument
868 if (!udev) in cnic_free_uio()
872 list_del_init(&udev->list); in cnic_free_uio()
874 __cnic_free_uio(udev); in cnic_free_uio()
880 struct cnic_uio_dev *udev = cp->udev; in cnic_free_resc() local
882 if (udev) { in cnic_free_resc()
883 udev->dev = NULL; in cnic_free_resc()
884 cp->udev = NULL; in cnic_free_resc()
885 if (udev->uio_dev == -1) in cnic_free_resc()
886 __cnic_free_uio_rings(udev); in cnic_free_resc()
1021 static int __cnic_alloc_uio_rings(struct cnic_uio_dev *udev, int pages) in __cnic_alloc_uio_rings() argument
1023 struct cnic_local *cp = udev->dev->cnic_priv; in __cnic_alloc_uio_rings()
1025 if (udev->l2_ring) in __cnic_alloc_uio_rings()
1028 udev->l2_ring_size = pages * CNIC_PAGE_SIZE; in __cnic_alloc_uio_rings()
1029 udev->l2_ring = dma_alloc_coherent(&udev->pdev->dev, udev->l2_ring_size, in __cnic_alloc_uio_rings()
1030 &udev->l2_ring_map, in __cnic_alloc_uio_rings()
1032 if (!udev->l2_ring) in __cnic_alloc_uio_rings()
1035 udev->l2_buf_size = (cp->l2_rx_ring_size + 1) * cp->l2_single_buf_size; in __cnic_alloc_uio_rings()
1036 udev->l2_buf_size = CNIC_PAGE_ALIGN(udev->l2_buf_size); in __cnic_alloc_uio_rings()
1037 udev->l2_buf = dma_alloc_coherent(&udev->pdev->dev, udev->l2_buf_size, in __cnic_alloc_uio_rings()
1038 &udev->l2_buf_map, in __cnic_alloc_uio_rings()
1040 if (!udev->l2_buf) { in __cnic_alloc_uio_rings()
1041 __cnic_free_uio_rings(udev); in __cnic_alloc_uio_rings()
1052 struct cnic_uio_dev *udev; in cnic_alloc_uio_rings() local
1054 list_for_each_entry(udev, &cnic_udev_list, list) { in cnic_alloc_uio_rings()
1055 if (udev->pdev == dev->pcidev) { in cnic_alloc_uio_rings()
1056 udev->dev = dev; in cnic_alloc_uio_rings()
1057 if (__cnic_alloc_uio_rings(udev, pages)) { in cnic_alloc_uio_rings()
1058 udev->dev = NULL; in cnic_alloc_uio_rings()
1061 cp->udev = udev; in cnic_alloc_uio_rings()
1066 udev = kzalloc(sizeof(struct cnic_uio_dev), GFP_ATOMIC); in cnic_alloc_uio_rings()
1067 if (!udev) in cnic_alloc_uio_rings()
1070 udev->uio_dev = -1; in cnic_alloc_uio_rings()
1072 udev->dev = dev; in cnic_alloc_uio_rings()
1073 udev->pdev = dev->pcidev; in cnic_alloc_uio_rings()
1075 if (__cnic_alloc_uio_rings(udev, pages)) in cnic_alloc_uio_rings()
1078 list_add(&udev->list, &cnic_udev_list); in cnic_alloc_uio_rings()
1080 pci_dev_get(udev->pdev); in cnic_alloc_uio_rings()
1082 cp->udev = udev; in cnic_alloc_uio_rings()
1087 kfree(udev); in cnic_alloc_uio_rings()
1094 struct cnic_uio_dev *udev = cp->udev; in cnic_init_uio() local
1098 if (!udev) in cnic_init_uio()
1101 uinfo = &udev->cnic_uinfo; in cnic_init_uio()
1130 uinfo->mem[2].addr = (unsigned long) udev->l2_ring; in cnic_init_uio()
1131 uinfo->mem[2].size = udev->l2_ring_size; in cnic_init_uio()
1134 uinfo->mem[3].addr = (unsigned long) udev->l2_buf; in cnic_init_uio()
1135 uinfo->mem[3].size = udev->l2_buf_size; in cnic_init_uio()
1144 if (udev->uio_dev == -1) { in cnic_init_uio()
1146 uinfo->priv = udev; in cnic_init_uio()
1148 ret = uio_register_device(&udev->pdev->dev, uinfo); in cnic_init_uio()
2918 struct cnic_uio_dev *udev = cp->udev; in cnic_l2_completion() local
2920 (udev->l2_ring + (2 * CNIC_PAGE_SIZE)); in cnic_l2_completion()
2966 if (cp->udev) in cnic_chk_pkt_rings()
2967 uio_event_notify(&cp->udev->cnic_uinfo); in cnic_chk_pkt_rings()
4533 struct cnic_uio_dev *udev = cp->udev; in cnic_init_bnx2_tx_ring() local
4538 dma_addr_t buf_map, ring_map = udev->l2_ring_map; in cnic_init_bnx2_tx_ring()
4580 txbd = udev->l2_ring; in cnic_init_bnx2_tx_ring()
4582 buf_map = udev->l2_buf_map; in cnic_init_bnx2_tx_ring()
4600 struct cnic_uio_dev *udev = cp->udev; in cnic_init_bnx2_rx_ring() local
4605 dma_addr_t ring_map = udev->l2_ring_map; in cnic_init_bnx2_rx_ring()
4639 rxbd = udev->l2_ring + CNIC_PAGE_SIZE; in cnic_init_bnx2_rx_ring()
4644 buf_map = udev->l2_buf_map + (n * cp->l2_single_buf_size); in cnic_init_bnx2_rx_ring()
4921 struct cnic_uio_dev *udev = cp->udev; in cnic_init_bnx2x_tx_ring() local
4922 union eth_tx_bd_types *txbd = (union eth_tx_bd_types *) udev->l2_ring; in cnic_init_bnx2x_tx_ring()
4923 dma_addr_t buf_map, ring_map = udev->l2_ring_map; in cnic_init_bnx2x_tx_ring()
4931 buf_map = udev->l2_buf_map; in cnic_init_bnx2x_tx_ring()
4987 struct cnic_uio_dev *udev = cp->udev; in cnic_init_bnx2x_rx_ring() local
4988 struct eth_rx_bd *rxbd = (struct eth_rx_bd *) (udev->l2_ring + in cnic_init_bnx2x_rx_ring()
4991 (udev->l2_ring + (2 * CNIC_PAGE_SIZE)); in cnic_init_bnx2x_rx_ring()
4997 dma_addr_t ring_map = udev->l2_ring_map; in cnic_init_bnx2x_rx_ring()
5010 buf_map = udev->l2_buf_map + (n * cp->l2_single_buf_size); in cnic_init_bnx2x_rx_ring()
5169 struct cnic_uio_dev *udev = cp->udev; in cnic_init_rings() local
5203 data = udev->l2_buf; in cnic_init_rings()
5204 cid_ptr = udev->l2_buf + 12; in cnic_init_rings()
5211 l5_data.phy_address.lo = udev->l2_buf_map & 0xffffffff; in cnic_init_rings()
5212 l5_data.phy_address.hi = (u64) udev->l2_buf_map >> 32; in cnic_init_rings()
5238 struct cnic_uio_dev *udev = cp->udev; in cnic_shutdown_rings() local
5276 rx_ring = udev->l2_ring + CNIC_PAGE_SIZE; in cnic_shutdown_rings()
5416 while (cp->udev && cp->udev->uio_dev != -1 && i < 15) { in cnic_stop_hw()
5750 struct cnic_uio_dev *udev; in cnic_release() local
5753 udev = list_entry(cnic_udev_list.next, struct cnic_uio_dev, in cnic_release()
5755 cnic_free_uio(udev); in cnic_release()