Lines Matching defs:dma

28 #include <linux/dma-mapping.h>
732 static void cnic_free_dma(struct cnic_dev *dev, struct cnic_dma *dma)
736 if (!dma->pg_arr)
739 for (i = 0; i < dma->num_pages; i++) {
740 if (dma->pg_arr[i]) {
742 dma->pg_arr[i], dma->pg_map_arr[i]);
743 dma->pg_arr[i] = NULL;
746 if (dma->pgtbl) {
747 dma_free_coherent(&dev->pcidev->dev, dma->pgtbl_size,
748 dma->pgtbl, dma->pgtbl_map);
749 dma->pgtbl = NULL;
751 kfree(dma->pg_arr);
752 dma->pg_arr = NULL;
753 dma->num_pages = 0;
756 static void cnic_setup_page_tbl(struct cnic_dev *dev, struct cnic_dma *dma)
759 __le32 *page_table = (__le32 *) dma->pgtbl;
761 for (i = 0; i < dma->num_pages; i++) {
763 *page_table = cpu_to_le32((u64) dma->pg_map_arr[i] >> 32);
765 *page_table = cpu_to_le32(dma->pg_map_arr[i] & 0xffffffff);
770 static void cnic_setup_page_tbl_le(struct cnic_dev *dev, struct cnic_dma *dma)
773 __le32 *page_table = (__le32 *) dma->pgtbl;
775 for (i = 0; i < dma->num_pages; i++) {
777 *page_table = cpu_to_le32(dma->pg_map_arr[i] & 0xffffffff);
779 *page_table = cpu_to_le32((u64) dma->pg_map_arr[i] >> 32);
784 static int cnic_alloc_dma(struct cnic_dev *dev, struct cnic_dma *dma,
791 dma->pg_arr = kzalloc(size, GFP_ATOMIC);
792 if (dma->pg_arr == NULL)
795 dma->pg_map_arr = (dma_addr_t *) (dma->pg_arr + pages);
796 dma->num_pages = pages;
799 dma->pg_arr[i] = dma_alloc_coherent(&dev->pcidev->dev,
801 &dma->pg_map_arr[i],
803 if (dma->pg_arr[i] == NULL)
809 dma->pgtbl_size = ((pages * 8) + CNIC_PAGE_SIZE - 1) &
811 dma->pgtbl = dma_alloc_coherent(&dev->pcidev->dev, dma->pgtbl_size,
812 &dma->pgtbl_map, GFP_ATOMIC);
813 if (dma->pgtbl == NULL)
816 cp->setup_pgtbl(dev, dma);
821 cnic_free_dma(dev, dma);
897 cnic_free_dma(dev, &cp->kcq2.dma);
898 cnic_free_dma(dev, &cp->kcq1.dma);
993 err = cnic_alloc_dma(dev, &info->dma, KCQ_PAGE_CNT, use_page_tbl);
997 kcq = (struct kcqe **) info->dma.pg_arr;
1015 next->addr_hi = (u64) info->dma.pg_map_arr[j] >> 32;
1016 next->addr_lo = info->dma.pg_map_arr[j] & 0xffffffff;
2320 fcoe_init->eq_pbl_base.lo = cp->kcq2.dma.pgtbl_map & 0xffffffff;
2321 fcoe_init->eq_pbl_base.hi = (u64) cp->kcq2.dma.pgtbl_map >> 32;
2322 fcoe_init->eq_pbl_size = cp->kcq2.dma.num_pages;
4787 val = (u32) ((u64) cp->kcq1.dma.pgtbl_map >> 32);
4790 val = (u32) cp->kcq1.dma.pgtbl_map;
5124 cp->kcq1.dma.pg_map_arr[1] & 0xffffffff);
5127 (u64) cp->kcq1.dma.pg_map_arr[1] >> 32);
5130 cp->kcq1.dma.pg_map_arr[0] & 0xffffffff);
5133 (u64) cp->kcq1.dma.pg_map_arr[0] >> 32);