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()
318 struct cnic_uio_dev *udev = cp->udev; in cnic_send_nlmsg() local
321 if (!udev || udev->uio_dev == -1) in cnic_send_nlmsg()
829 static void __cnic_free_uio_rings(struct cnic_uio_dev *udev) in __cnic_free_uio_rings() argument
831 if (udev->l2_buf) { in __cnic_free_uio_rings()
832 dma_free_coherent(&udev->pdev->dev, udev->l2_buf_size, in __cnic_free_uio_rings()
833 udev->l2_buf, udev->l2_buf_map); in __cnic_free_uio_rings()
834 udev->l2_buf = NULL; in __cnic_free_uio_rings()
837 if (udev->l2_ring) { in __cnic_free_uio_rings()
838 dma_free_coherent(&udev->pdev->dev, udev->l2_ring_size, in __cnic_free_uio_rings()
839 udev->l2_ring, udev->l2_ring_map); in __cnic_free_uio_rings()
840 udev->l2_ring = NULL; in __cnic_free_uio_rings()
845 static void __cnic_free_uio(struct cnic_uio_dev *udev) in __cnic_free_uio() argument
847 uio_unregister_device(&udev->cnic_uinfo); in __cnic_free_uio()
849 __cnic_free_uio_rings(udev); in __cnic_free_uio()
851 pci_dev_put(udev->pdev); in __cnic_free_uio()
852 kfree(udev); in __cnic_free_uio()
855 static void cnic_free_uio(struct cnic_uio_dev *udev) in cnic_free_uio() argument
857 if (!udev) in cnic_free_uio()
861 list_del_init(&udev->list); in cnic_free_uio()
863 __cnic_free_uio(udev); in cnic_free_uio()
869 struct cnic_uio_dev *udev = cp->udev; in cnic_free_resc() local
871 if (udev) { in cnic_free_resc()
872 udev->dev = NULL; in cnic_free_resc()
873 cp->udev = NULL; in cnic_free_resc()
874 if (udev->uio_dev == -1) in cnic_free_resc()
875 __cnic_free_uio_rings(udev); in cnic_free_resc()
1010 static int __cnic_alloc_uio_rings(struct cnic_uio_dev *udev, int pages) in __cnic_alloc_uio_rings() argument
1012 struct cnic_local *cp = udev->dev->cnic_priv; in __cnic_alloc_uio_rings()
1014 if (udev->l2_ring) in __cnic_alloc_uio_rings()
1017 udev->l2_ring_size = pages * CNIC_PAGE_SIZE; in __cnic_alloc_uio_rings()
1018 udev->l2_ring = dma_alloc_coherent(&udev->pdev->dev, udev->l2_ring_size, in __cnic_alloc_uio_rings()
1019 &udev->l2_ring_map, in __cnic_alloc_uio_rings()
1021 if (!udev->l2_ring) in __cnic_alloc_uio_rings()
1024 udev->l2_buf_size = (cp->l2_rx_ring_size + 1) * cp->l2_single_buf_size; in __cnic_alloc_uio_rings()
1025 udev->l2_buf_size = CNIC_PAGE_ALIGN(udev->l2_buf_size); in __cnic_alloc_uio_rings()
1026 udev->l2_buf = dma_alloc_coherent(&udev->pdev->dev, udev->l2_buf_size, in __cnic_alloc_uio_rings()
1027 &udev->l2_buf_map, in __cnic_alloc_uio_rings()
1029 if (!udev->l2_buf) { in __cnic_alloc_uio_rings()
1030 __cnic_free_uio_rings(udev); in __cnic_alloc_uio_rings()
1041 struct cnic_uio_dev *udev; in cnic_alloc_uio_rings() local
1043 list_for_each_entry(udev, &cnic_udev_list, list) { in cnic_alloc_uio_rings()
1044 if (udev->pdev == dev->pcidev) { in cnic_alloc_uio_rings()
1045 udev->dev = dev; in cnic_alloc_uio_rings()
1046 if (__cnic_alloc_uio_rings(udev, pages)) { in cnic_alloc_uio_rings()
1047 udev->dev = NULL; in cnic_alloc_uio_rings()
1050 cp->udev = udev; in cnic_alloc_uio_rings()
1055 udev = kzalloc(sizeof(struct cnic_uio_dev), GFP_ATOMIC); in cnic_alloc_uio_rings()
1056 if (!udev) in cnic_alloc_uio_rings()
1059 udev->uio_dev = -1; in cnic_alloc_uio_rings()
1061 udev->dev = dev; in cnic_alloc_uio_rings()
1062 udev->pdev = dev->pcidev; in cnic_alloc_uio_rings()
1064 if (__cnic_alloc_uio_rings(udev, pages)) in cnic_alloc_uio_rings()
1067 list_add(&udev->list, &cnic_udev_list); in cnic_alloc_uio_rings()
1069 pci_dev_get(udev->pdev); in cnic_alloc_uio_rings()
1071 cp->udev = udev; in cnic_alloc_uio_rings()
1076 kfree(udev); in cnic_alloc_uio_rings()
1083 struct cnic_uio_dev *udev = cp->udev; in cnic_init_uio() local
1087 if (!udev) in cnic_init_uio()
1090 uinfo = &udev->cnic_uinfo; in cnic_init_uio()
1119 uinfo->mem[2].addr = (unsigned long) udev->l2_ring; in cnic_init_uio()
1120 uinfo->mem[2].size = udev->l2_ring_size; in cnic_init_uio()
1123 uinfo->mem[3].addr = (unsigned long) udev->l2_buf; in cnic_init_uio()
1124 uinfo->mem[3].size = udev->l2_buf_size; in cnic_init_uio()
1133 if (udev->uio_dev == -1) { in cnic_init_uio()
1135 uinfo->priv = udev; in cnic_init_uio()
1137 ret = uio_register_device(&udev->pdev->dev, uinfo); in cnic_init_uio()
2907 struct cnic_uio_dev *udev = cp->udev; in cnic_l2_completion() local
2909 (udev->l2_ring + (2 * CNIC_PAGE_SIZE)); in cnic_l2_completion()
2955 if (cp->udev) in cnic_chk_pkt_rings()
2956 uio_event_notify(&cp->udev->cnic_uinfo); in cnic_chk_pkt_rings()
4521 struct cnic_uio_dev *udev = cp->udev; in cnic_init_bnx2_tx_ring() local
4526 dma_addr_t buf_map, ring_map = udev->l2_ring_map; in cnic_init_bnx2_tx_ring()
4568 txbd = udev->l2_ring; in cnic_init_bnx2_tx_ring()
4570 buf_map = udev->l2_buf_map; in cnic_init_bnx2_tx_ring()
4588 struct cnic_uio_dev *udev = cp->udev; in cnic_init_bnx2_rx_ring() local
4593 dma_addr_t ring_map = udev->l2_ring_map; in cnic_init_bnx2_rx_ring()
4627 rxbd = udev->l2_ring + CNIC_PAGE_SIZE; in cnic_init_bnx2_rx_ring()
4632 buf_map = udev->l2_buf_map + (n * cp->l2_single_buf_size); in cnic_init_bnx2_rx_ring()
4909 struct cnic_uio_dev *udev = cp->udev; in cnic_init_bnx2x_tx_ring() local
4910 union eth_tx_bd_types *txbd = (union eth_tx_bd_types *) udev->l2_ring; in cnic_init_bnx2x_tx_ring()
4911 dma_addr_t buf_map, ring_map = udev->l2_ring_map; in cnic_init_bnx2x_tx_ring()
4919 buf_map = udev->l2_buf_map; in cnic_init_bnx2x_tx_ring()
4975 struct cnic_uio_dev *udev = cp->udev; in cnic_init_bnx2x_rx_ring() local
4976 struct eth_rx_bd *rxbd = (struct eth_rx_bd *) (udev->l2_ring + in cnic_init_bnx2x_rx_ring()
4979 (udev->l2_ring + (2 * CNIC_PAGE_SIZE)); in cnic_init_bnx2x_rx_ring()
4985 dma_addr_t ring_map = udev->l2_ring_map; in cnic_init_bnx2x_rx_ring()
4998 buf_map = udev->l2_buf_map + (n * cp->l2_single_buf_size); in cnic_init_bnx2x_rx_ring()
5157 struct cnic_uio_dev *udev = cp->udev; in cnic_init_rings() local
5191 data = udev->l2_buf; in cnic_init_rings()
5192 cid_ptr = udev->l2_buf + 12; in cnic_init_rings()
5199 l5_data.phy_address.lo = udev->l2_buf_map & 0xffffffff; in cnic_init_rings()
5200 l5_data.phy_address.hi = (u64) udev->l2_buf_map >> 32; in cnic_init_rings()
5226 struct cnic_uio_dev *udev = cp->udev; in cnic_shutdown_rings() local
5264 rx_ring = udev->l2_ring + CNIC_PAGE_SIZE; in cnic_shutdown_rings()
5404 while (cp->udev && cp->udev->uio_dev != -1 && i < 15) { in cnic_stop_hw()
5720 struct cnic_uio_dev *udev; in cnic_release() local
5723 udev = list_entry(cnic_udev_list.next, struct cnic_uio_dev, in cnic_release()
5725 cnic_free_uio(udev); in cnic_release()