Lines Matching refs:iaa_device

387 get_iaa_device_compression_mode(struct iaa_device *iaa_device, int idx)
389 return iaa_device->compression_modes[idx];
392 static void free_device_compression_mode(struct iaa_device *iaa_device,
396 struct device *dev = &iaa_device->idxd->pdev->dev;
419 static int init_device_compression_mode(struct iaa_device *iaa_device,
424 struct device *dev = &iaa_device->idxd->pdev->dev;
453 iaa_device->compression_modes[idx] = device_mode;
456 mode->name, iaa_device->idxd->id);
463 mode->name, iaa_device->idxd->id);
465 free_device_compression_mode(iaa_device, device_mode);
469 static int init_device_compression_modes(struct iaa_device *iaa_device,
480 ret = init_device_compression_mode(iaa_device, mode, i, wq);
488 static void remove_device_compression_modes(struct iaa_device *iaa_device)
494 device_mode = iaa_device->compression_modes[i];
498 free_device_compression_mode(iaa_device, device_mode);
499 iaa_device->compression_modes[i] = NULL;
505 static struct iaa_device *iaa_device_alloc(void)
507 struct iaa_device *iaa_device;
509 iaa_device = kzalloc(sizeof(*iaa_device), GFP_KERNEL);
510 if (!iaa_device)
513 INIT_LIST_HEAD(&iaa_device->wqs);
515 return iaa_device;
518 static bool iaa_has_wq(struct iaa_device *iaa_device, struct idxd_wq *wq)
522 list_for_each_entry(iaa_wq, &iaa_device->wqs, list) {
530 static struct iaa_device *add_iaa_device(struct idxd_device *idxd)
532 struct iaa_device *iaa_device;
534 iaa_device = iaa_device_alloc();
535 if (!iaa_device)
538 iaa_device->idxd = idxd;
540 list_add_tail(&iaa_device->list, &iaa_devices);
544 return iaa_device;
547 static int init_iaa_device(struct iaa_device *iaa_device, struct iaa_wq *iaa_wq)
551 ret = init_device_compression_modes(iaa_device, iaa_wq->wq);
558 static void del_iaa_device(struct iaa_device *iaa_device)
560 list_del(&iaa_device->list);
565 static int add_iaa_wq(struct iaa_device *iaa_device, struct idxd_wq *wq,
568 struct idxd_device *idxd = iaa_device->idxd;
578 iaa_wq->iaa_device = iaa_device;
581 list_add_tail(&iaa_wq->list, &iaa_device->wqs);
583 iaa_device->n_wq++;
589 wq->id, iaa_device->idxd->id, iaa_device->n_wq);
594 static void del_iaa_wq(struct iaa_device *iaa_device, struct idxd_wq *wq)
596 struct idxd_device *idxd = iaa_device->idxd;
601 list_for_each_entry(iaa_wq, &iaa_device->wqs, list) {
604 iaa_device->n_wq--;
606 dev_dbg(dev, "removed wq %d from iaa_device %d, n_wq %d, nr_iaa %d\n",
607 wq->id, iaa_device->idxd->id,
608 iaa_device->n_wq, nr_iaa);
610 if (iaa_device->n_wq == 0)
611 del_iaa_device(iaa_device);
627 static void free_iaa_device(struct iaa_device *iaa_device)
629 if (!iaa_device)
632 remove_device_compression_modes(iaa_device);
633 kfree(iaa_device);
638 struct iaa_device *iaa_device;
643 iaa_device = iaa_wq->iaa_device;
644 if (iaa_device->n_wq == 0)
645 free_iaa_device(iaa_wq->iaa_device);
746 struct iaa_device *iaa_device, *found = NULL;
752 list_for_each_entry(iaa_device, &iaa_devices, list) {
753 if (iaa_device->idxd == wq->idxd) {
754 idxd = iaa_device->idxd;
761 if (iaa_has_wq(iaa_device, wq)) {
762 dev_dbg(dev, "same wq probed multiple times for iaa_device %p\n",
763 iaa_device);
767 found = iaa_device;
769 ret = add_iaa_wq(iaa_device, wq, NULL);
778 struct iaa_device *new_device;
815 struct iaa_device *iaa_device;
817 list_for_each_entry(iaa_device, &iaa_devices, list) {
818 if (iaa_has_wq(iaa_device, wq)) {
819 del_iaa_wq(iaa_device, wq);
834 struct iaa_device *iaa_device, *found_device = NULL;
841 list_for_each_entry(iaa_device, &iaa_devices, list) {
842 idxd = iaa_device->idxd;
851 found_device = iaa_device;
852 dev_dbg(dev, "getting wq from iaa_device %d, cur_iaa %d\n",
859 struct iaa_device, list);
870 dev_dbg(dev, "getting wq from only iaa_device %d, cur_iaa %d\n",
1029 struct iaa_device *iaa_device;
1039 iaa_device = iaa_wq->iaa_device;
1040 idxd = iaa_device->idxd;
1044 active_compression_mode = get_iaa_device_compression_mode(iaa_device,
1134 struct iaa_device *iaa_device;
1144 iaa_device = iaa_wq->iaa_device;
1145 idxd = iaa_device->idxd;
1149 active_compression_mode = get_iaa_device_compression_mode(iaa_device, ctx->mode);
1251 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,
1264 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,
1286 struct iaa_device *iaa_device;
1296 iaa_device = iaa_wq->iaa_device;
1297 idxd = iaa_device->idxd;
1301 active_compression_mode = get_iaa_device_compression_mode(iaa_device, ctx->mode);
1373 struct iaa_device *iaa_device;
1383 iaa_device = iaa_wq->iaa_device;
1384 idxd = iaa_device->idxd;
1388 active_compression_mode = get_iaa_device_compression_mode(iaa_device, ctx->mode);
1549 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,
1562 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,
1643 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,
1666 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,
1744 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,
1757 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,