Lines Matching refs:dpit

616 int bnxt_qplib_alloc_dpi(struct bnxt_qplib_dpi_tbl *dpit,  in bnxt_qplib_alloc_dpi()  argument
622 bit_num = find_first_bit(dpit->tbl, dpit->max); in bnxt_qplib_alloc_dpi()
623 if (bit_num == dpit->max) in bnxt_qplib_alloc_dpi()
627 clear_bit(bit_num, dpit->tbl); in bnxt_qplib_alloc_dpi()
628 dpit->app_tbl[bit_num] = app; in bnxt_qplib_alloc_dpi()
631 dpi->dbr = dpit->dbr_bar_reg_iomem + (bit_num * PAGE_SIZE); in bnxt_qplib_alloc_dpi()
632 dpi->umdbr = dpit->unmapped_dbr + (bit_num * PAGE_SIZE); in bnxt_qplib_alloc_dpi()
638 struct bnxt_qplib_dpi_tbl *dpit, in bnxt_qplib_dealloc_dpi() argument
641 if (dpi->dpi >= dpit->max) { in bnxt_qplib_dealloc_dpi()
645 if (test_and_set_bit(dpi->dpi, dpit->tbl)) { in bnxt_qplib_dealloc_dpi()
650 if (dpit->app_tbl) in bnxt_qplib_dealloc_dpi()
651 dpit->app_tbl[dpi->dpi] = NULL; in bnxt_qplib_dealloc_dpi()
658 struct bnxt_qplib_dpi_tbl *dpit) in bnxt_qplib_free_dpi_tbl() argument
660 kfree(dpit->tbl); in bnxt_qplib_free_dpi_tbl()
661 kfree(dpit->app_tbl); in bnxt_qplib_free_dpi_tbl()
662 if (dpit->dbr_bar_reg_iomem) in bnxt_qplib_free_dpi_tbl()
663 pci_iounmap(res->pdev, dpit->dbr_bar_reg_iomem); in bnxt_qplib_free_dpi_tbl()
664 memset(dpit, 0, sizeof(*dpit)); in bnxt_qplib_free_dpi_tbl()
668 struct bnxt_qplib_dpi_tbl *dpit, in bnxt_qplib_alloc_dpi_tbl() argument
675 if (dpit->dbr_bar_reg_iomem) { in bnxt_qplib_alloc_dpi_tbl()
695 dpit->dbr_bar_reg_iomem = ioremap_nocache(bar_reg_base + dbr_offset, in bnxt_qplib_alloc_dpi_tbl()
697 if (!dpit->dbr_bar_reg_iomem) { in bnxt_qplib_alloc_dpi_tbl()
704 dpit->unmapped_dbr = bar_reg_base + dbr_offset; in bnxt_qplib_alloc_dpi_tbl()
705 dpit->max = dbr_len / PAGE_SIZE; in bnxt_qplib_alloc_dpi_tbl()
707 dpit->app_tbl = kcalloc(dpit->max, sizeof(void *), GFP_KERNEL); in bnxt_qplib_alloc_dpi_tbl()
708 if (!dpit->app_tbl) in bnxt_qplib_alloc_dpi_tbl()
711 bytes = dpit->max >> 3; in bnxt_qplib_alloc_dpi_tbl()
715 dpit->tbl = kmalloc(bytes, GFP_KERNEL); in bnxt_qplib_alloc_dpi_tbl()
716 if (!dpit->tbl) { in bnxt_qplib_alloc_dpi_tbl()
717 kfree(dpit->app_tbl); in bnxt_qplib_alloc_dpi_tbl()
718 dpit->app_tbl = NULL; in bnxt_qplib_alloc_dpi_tbl()
722 memset((u8 *)dpit->tbl, 0xFF, bytes); in bnxt_qplib_alloc_dpi_tbl()
727 pci_iounmap(res->pdev, dpit->dbr_bar_reg_iomem); in bnxt_qplib_alloc_dpi_tbl()