Lines Matching refs:dev

132 iocpt_get_abs_stats(const struct iocpt_dev *dev,  in iocpt_get_abs_stats()  argument
140 for (i = 0; i < dev->crypto_dev->data->nb_queue_pairs; i++) { in iocpt_get_abs_stats()
141 struct rte_cryptodev_stats *q_stats = &dev->cryptoqs[i]->stats; in iocpt_get_abs_stats()
151 iocpt_get_stats(const struct iocpt_dev *dev, struct rte_cryptodev_stats *stats) in iocpt_get_stats() argument
154 iocpt_get_abs_stats(dev, stats); in iocpt_get_stats()
157 stats->enqueued_count -= dev->stats_base.enqueued_count; in iocpt_get_stats()
158 stats->dequeued_count -= dev->stats_base.dequeued_count; in iocpt_get_stats()
159 stats->enqueue_err_count -= dev->stats_base.enqueue_err_count; in iocpt_get_stats()
160 stats->dequeue_err_count -= dev->stats_base.dequeue_err_count; in iocpt_get_stats()
164 iocpt_reset_stats(struct iocpt_dev *dev) in iocpt_reset_stats() argument
169 for (i = 0; i < dev->crypto_dev->data->nb_queue_pairs; i++) in iocpt_reset_stats()
170 memset(&dev->cryptoqs[i]->stats, 0, in iocpt_reset_stats()
171 sizeof(dev->cryptoqs[i]->stats)); in iocpt_reset_stats()
174 iocpt_get_abs_stats(dev, &dev->stats_base); in iocpt_reset_stats()
181 struct iocpt_dev *dev = priv->dev; in iocpt_session_write() local
214 err = iocpt_adminq_post_wait(dev, &ctx); in iocpt_session_write()
223 iocpt_session_wdog(struct iocpt_dev *dev) in iocpt_session_wdog() argument
226 .dev = dev, in iocpt_session_wdog()
233 rte_bitmap_clear(dev->sess_bm, IOCPT_Q_WDOG_SESS_IDX); in iocpt_session_wdog()
241 struct iocpt_dev *dev = priv->dev; in iocpt_session_init() local
246 rte_spinlock_lock(&dev->adminq_lock); in iocpt_session_init()
248 if (rte_bitmap_scan(dev->sess_bm, &bm_pos, &bm_slab) > 0) { in iocpt_session_init()
250 rte_bitmap_clear(dev->sess_bm, priv->index); in iocpt_session_init()
254 rte_spinlock_unlock(&dev->adminq_lock); in iocpt_session_init()
263 rte_spinlock_lock(&dev->adminq_lock); in iocpt_session_init()
264 rte_bitmap_set(dev->sess_bm, priv->index); in iocpt_session_init()
265 rte_spinlock_unlock(&dev->adminq_lock); in iocpt_session_init()
283 struct iocpt_dev *dev = priv->dev; in iocpt_session_deinit() local
295 (void)iocpt_adminq_post_wait(dev, &ctx); in iocpt_session_deinit()
297 rte_spinlock_lock(&dev->adminq_lock); in iocpt_session_deinit()
298 rte_bitmap_set(dev->sess_bm, priv->index); in iocpt_session_deinit()
299 rte_spinlock_unlock(&dev->adminq_lock); in iocpt_session_deinit()
328 iocpt_commonq_alloc(struct iocpt_dev *dev, in iocpt_commonq_alloc() argument
374 new->dev = dev; in iocpt_commonq_alloc()
431 iocpt_cryptoq_alloc(struct iocpt_dev *dev, uint32_t socket_id, uint32_t index, in iocpt_cryptoq_alloc() argument
444 err = iocpt_commonq_alloc(dev, in iocpt_cryptoq_alloc()
462 dev->cryptoqs[index] = cptq; in iocpt_cryptoq_alloc()
468 iocpt_db_map(struct iocpt_dev *dev, struct iocpt_queue *q) in iocpt_db_map() argument
470 return dev->db_pages + q->hw_type; in iocpt_db_map()
477 struct iocpt_dev *dev = cptq->dev; in iocpt_cryptoq_init() local
484 .ver = dev->qtype_info[IOCPT_QTYPE_CRYPTOQ].version, in iocpt_cryptoq_init()
506 err = iocpt_adminq_post_wait(dev, &ctx); in iocpt_cryptoq_init()
512 q->db = iocpt_db_map(dev, q); in iocpt_cryptoq_init()
526 struct iocpt_dev *dev = cptq->dev; in iocpt_cryptoq_deinit() local
543 err = iocpt_adminq_post_wait(dev, &ctx); in iocpt_cryptoq_deinit()
582 iocpt_adminq_alloc(struct iocpt_dev *dev) in iocpt_adminq_alloc() argument
589 err = iocpt_commonq_alloc(dev, in iocpt_adminq_alloc()
607 dev->adminq = aq; in iocpt_adminq_alloc()
613 iocpt_adminq_init(struct iocpt_dev *dev) in iocpt_adminq_init() argument
615 return iocpt_dev_adminq_init(dev); in iocpt_adminq_init()
619 iocpt_adminq_deinit(struct iocpt_dev *dev) in iocpt_adminq_deinit() argument
621 dev->adminq->flags &= ~IOCPT_Q_F_INITED; in iocpt_adminq_deinit()
640 iocpt_alloc_objs(struct iocpt_dev *dev) in iocpt_alloc_objs() argument
646 IOCPT_PRINT(DEBUG, "Crypto: %s", dev->name); in iocpt_alloc_objs()
648 dev->cryptoqs = rte_calloc_socket("iocpt", in iocpt_alloc_objs()
649 dev->max_qps, sizeof(*dev->cryptoqs), in iocpt_alloc_objs()
650 RTE_CACHE_LINE_SIZE, dev->socket_id); in iocpt_alloc_objs()
651 if (dev->cryptoqs == NULL) { in iocpt_alloc_objs()
656 rte_spinlock_init(&dev->adminq_lock); in iocpt_alloc_objs()
657 rte_spinlock_init(&dev->adminq_service_lock); in iocpt_alloc_objs()
659 err = iocpt_adminq_alloc(dev); in iocpt_alloc_objs()
666 dev->info_sz = RTE_ALIGN(sizeof(*dev->info), rte_mem_page_size()); in iocpt_alloc_objs()
667 dev->info_z = iocpt_dma_zone_reserve("info", 0, dev->info_sz, in iocpt_alloc_objs()
668 IONIC_ALIGN, dev->socket_id); in iocpt_alloc_objs()
669 if (dev->info_z == NULL) { in iocpt_alloc_objs()
675 dev->info = dev->info_z->addr; in iocpt_alloc_objs()
676 dev->info_pa = dev->info_z->iova; in iocpt_alloc_objs()
678 bmsize = rte_bitmap_get_memory_footprint(dev->max_sessions); in iocpt_alloc_objs()
680 RTE_CACHE_LINE_SIZE, dev->socket_id); in iocpt_alloc_objs()
687 dev->sess_bm = rte_bitmap_init(dev->max_sessions, bm, bmsize); in iocpt_alloc_objs()
688 if (dev->sess_bm == NULL) { in iocpt_alloc_objs()
693 for (i = 0; i < dev->max_sessions; i++) in iocpt_alloc_objs()
694 rte_bitmap_set(dev->sess_bm, i); in iocpt_alloc_objs()
701 rte_memzone_free(dev->info_z); in iocpt_alloc_objs()
702 dev->info_z = NULL; in iocpt_alloc_objs()
703 dev->info = NULL; in iocpt_alloc_objs()
704 dev->info_pa = 0; in iocpt_alloc_objs()
706 iocpt_adminq_free(dev->adminq); in iocpt_alloc_objs()
707 dev->adminq = NULL; in iocpt_alloc_objs()
709 rte_free(dev->cryptoqs); in iocpt_alloc_objs()
710 dev->cryptoqs = NULL; in iocpt_alloc_objs()
715 iocpt_init(struct iocpt_dev *dev) in iocpt_init() argument
719 memset(&dev->stats_base, 0, sizeof(dev->stats_base)); in iocpt_init()
722 err = iocpt_dev_init(dev, dev->info_pa); in iocpt_init()
726 err = iocpt_adminq_init(dev); in iocpt_init()
731 err = iocpt_session_wdog(dev); in iocpt_init()
737 dev->state |= IOCPT_DEV_F_INITED; in iocpt_init()
742 iocpt_adminq_deinit(dev); in iocpt_init()
748 iocpt_configure(struct iocpt_dev *dev) in iocpt_configure() argument
750 RTE_SET_USED(dev); in iocpt_configure()
754 iocpt_start(struct iocpt_dev *dev) in iocpt_start() argument
760 dev->crypto_dev->data->nb_queue_pairs); in iocpt_start()
762 for (i = 0; i < dev->crypto_dev->data->nb_queue_pairs; i++) { in iocpt_start()
763 err = iocpt_cryptoq_init(dev->cryptoqs[i]); in iocpt_start()
768 dev->state |= IOCPT_DEV_F_UP; in iocpt_start()
774 iocpt_stop(struct iocpt_dev *dev) in iocpt_stop() argument
780 dev->state &= ~IOCPT_DEV_F_UP; in iocpt_stop()
782 for (i = 0; i < dev->crypto_dev->data->nb_queue_pairs; i++) { in iocpt_stop()
783 struct iocpt_crypto_q *cptq = dev->cryptoqs[i]; in iocpt_stop()
791 iocpt_deinit(struct iocpt_dev *dev) in iocpt_deinit() argument
795 if (!(dev->state & IOCPT_DEV_F_INITED)) in iocpt_deinit()
798 iocpt_adminq_deinit(dev); in iocpt_deinit()
800 dev->state &= ~IOCPT_DEV_F_INITED; in iocpt_deinit()
804 iocpt_free_objs(struct iocpt_dev *dev) in iocpt_free_objs() argument
806 void **queue_pairs = dev->crypto_dev->data->queue_pairs; in iocpt_free_objs()
811 for (i = 0; i < dev->crypto_dev->data->nb_queue_pairs; i++) { in iocpt_free_objs()
816 if (dev->sess_bm != NULL) { in iocpt_free_objs()
817 rte_bitmap_free(dev->sess_bm); in iocpt_free_objs()
818 rte_free(dev->sess_bm); in iocpt_free_objs()
819 dev->sess_bm = NULL; in iocpt_free_objs()
822 if (dev->adminq != NULL) { in iocpt_free_objs()
823 iocpt_adminq_free(dev->adminq); in iocpt_free_objs()
824 dev->adminq = NULL; in iocpt_free_objs()
827 if (dev->cryptoqs != NULL) { in iocpt_free_objs()
828 rte_free(dev->cryptoqs); in iocpt_free_objs()
829 dev->cryptoqs = NULL; in iocpt_free_objs()
832 if (dev->info != NULL) { in iocpt_free_objs()
833 rte_memzone_free(dev->info_z); in iocpt_free_objs()
834 dev->info_z = NULL; in iocpt_free_objs()
835 dev->info = NULL; in iocpt_free_objs()
836 dev->info_pa = 0; in iocpt_free_objs()
841 iocpt_devargs(struct rte_devargs *devargs, struct iocpt_dev *dev) in iocpt_devargs() argument
844 RTE_SET_USED(dev); in iocpt_devargs()
861 struct iocpt_dev *dev; in iocpt_probe() local
881 dev = cdev->data->dev_private; in iocpt_probe()
882 dev->crypto_dev = cdev; in iocpt_probe()
883 dev->bus_dev = bus_dev; in iocpt_probe()
884 dev->intf = intf; in iocpt_probe()
885 dev->driver_id = driver_id; in iocpt_probe()
886 dev->socket_id = socket_id; in iocpt_probe()
900 dev->bars.bar[i].vaddr = bar->vaddr; in iocpt_probe()
901 dev->bars.bar[i].bus_addr = bar->bus_addr; in iocpt_probe()
902 dev->bars.bar[i].len = bar->len; in iocpt_probe()
904 dev->bars.num_bars = bars->num_bars; in iocpt_probe()
906 err = iocpt_devargs(rte_dev->devargs, dev); in iocpt_probe()
912 err = iocpt_setup_bars(dev); in iocpt_probe()
918 sig = ioread32(&dev->dev_info->signature); in iocpt_probe()
926 dev->fw_version[i] = ioread8(&dev->dev_info->fw_version[i]); in iocpt_probe()
927 dev->fw_version[IOCPT_FWVERS_BUFLEN - 1] = '\0'; in iocpt_probe()
928 IOCPT_PRINT(DEBUG, "%s firmware: %s", dev->name, dev->fw_version); in iocpt_probe()
930 err = iocpt_dev_identify(dev); in iocpt_probe()
937 err = iocpt_alloc_objs(dev); in iocpt_probe()
943 err = iocpt_init(dev); in iocpt_probe()
958 iocpt_deinit(dev); in iocpt_probe()
960 iocpt_free_objs(dev); in iocpt_probe()
971 struct iocpt_dev *dev; in iocpt_remove() local
979 dev = cdev->data->dev_private; in iocpt_remove()
981 iocpt_deinit(dev); in iocpt_remove()
983 iocpt_dev_reset(dev); in iocpt_remove()
985 iocpt_free_objs(dev); in iocpt_remove()