Lines Matching defs:iaa_device
385 get_iaa_device_compression_mode(struct iaa_device *iaa_device, int idx)
387 return iaa_device->compression_modes[idx];
390 static void free_device_compression_mode(struct iaa_device *iaa_device,
394 struct device *dev = &iaa_device->idxd->pdev->dev;
417 static int init_device_compression_mode(struct iaa_device *iaa_device,
422 struct device *dev = &iaa_device->idxd->pdev->dev;
451 iaa_device->compression_modes[idx] = device_mode;
454 mode->name, iaa_device->idxd->id);
461 mode->name, iaa_device->idxd->id);
463 free_device_compression_mode(iaa_device, device_mode);
467 static int init_device_compression_modes(struct iaa_device *iaa_device,
478 ret = init_device_compression_mode(iaa_device, mode, i, wq);
486 static void remove_device_compression_modes(struct iaa_device *iaa_device)
492 device_mode = iaa_device->compression_modes[i];
498 free_device_compression_mode(iaa_device, device_mode);
499 iaa_device->compression_modes[i] = NULL;
503 static struct iaa_device *iaa_device_alloc(void)
505 struct iaa_device *iaa_device;
507 iaa_device = kzalloc(sizeof(*iaa_device), GFP_KERNEL);
508 if (!iaa_device)
511 INIT_LIST_HEAD(&iaa_device->wqs);
513 return iaa_device;
516 static bool iaa_has_wq(struct iaa_device *iaa_device, struct idxd_wq *wq)
520 list_for_each_entry(iaa_wq, &iaa_device->wqs, list) {
528 static struct iaa_device *add_iaa_device(struct idxd_device *idxd)
530 struct iaa_device *iaa_device;
532 iaa_device = iaa_device_alloc();
533 if (!iaa_device)
536 iaa_device->idxd = idxd;
538 list_add_tail(&iaa_device->list, &iaa_devices);
542 return iaa_device;
545 static int init_iaa_device(struct iaa_device *iaa_device, struct iaa_wq *iaa_wq)
549 ret = init_device_compression_modes(iaa_device, iaa_wq->wq);
556 static void del_iaa_device(struct iaa_device *iaa_device)
558 list_del(&iaa_device->list);
563 static int add_iaa_wq(struct iaa_device *iaa_device, struct idxd_wq *wq,
566 struct idxd_device *idxd = iaa_device->idxd;
576 iaa_wq->iaa_device = iaa_device;
579 list_add_tail(&iaa_wq->list, &iaa_device->wqs);
581 iaa_device->n_wq++;
587 wq->id, iaa_device->idxd->id, iaa_device->n_wq);
592 static void del_iaa_wq(struct iaa_device *iaa_device, struct idxd_wq *wq)
594 struct idxd_device *idxd = iaa_device->idxd;
599 list_for_each_entry(iaa_wq, &iaa_device->wqs, list) {
602 iaa_device->n_wq--;
604 dev_dbg(dev, "removed wq %d from iaa_device %d, n_wq %d, nr_iaa %d\n",
605 wq->id, iaa_device->idxd->id,
606 iaa_device->n_wq, nr_iaa);
608 if (iaa_device->n_wq == 0)
609 del_iaa_device(iaa_device);
625 static void free_iaa_device(struct iaa_device *iaa_device)
627 if (!iaa_device)
630 remove_device_compression_modes(iaa_device);
631 kfree(iaa_device);
636 struct iaa_device *iaa_device;
641 iaa_device = iaa_wq->iaa_device;
642 if (iaa_device->n_wq == 0)
643 free_iaa_device(iaa_wq->iaa_device);
744 struct iaa_device *iaa_device, *found = NULL;
750 list_for_each_entry(iaa_device, &iaa_devices, list) {
751 if (iaa_device->idxd == wq->idxd) {
752 idxd = iaa_device->idxd;
759 if (iaa_has_wq(iaa_device, wq)) {
760 dev_dbg(dev, "same wq probed multiple times for iaa_device %p\n",
761 iaa_device);
765 found = iaa_device;
767 ret = add_iaa_wq(iaa_device, wq, NULL);
776 struct iaa_device *new_device;
813 struct iaa_device *iaa_device;
815 list_for_each_entry(iaa_device, &iaa_devices, list) {
816 if (iaa_has_wq(iaa_device, wq)) {
817 del_iaa_wq(iaa_device, wq);
832 struct iaa_device *iaa_device, *found_device = NULL;
839 list_for_each_entry(iaa_device, &iaa_devices, list) {
840 idxd = iaa_device->idxd;
849 found_device = iaa_device;
850 dev_dbg(dev, "getting wq from iaa_device %d, cur_iaa %d\n",
857 struct iaa_device, list);
868 dev_dbg(dev, "getting wq from only iaa_device %d, cur_iaa %d\n",
1034 struct iaa_device *iaa_device;
1044 iaa_device = iaa_wq->iaa_device;
1045 idxd = iaa_device->idxd;
1049 active_compression_mode = get_iaa_device_compression_mode(iaa_device,
1138 struct iaa_device *iaa_device;
1148 iaa_device = iaa_wq->iaa_device;
1149 idxd = iaa_device->idxd;
1153 active_compression_mode = get_iaa_device_compression_mode(iaa_device, ctx->mode);
1255 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,
1268 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,
1290 struct iaa_device *iaa_device;
1300 iaa_device = iaa_wq->iaa_device;
1301 idxd = iaa_device->idxd;
1305 active_compression_mode = get_iaa_device_compression_mode(iaa_device, ctx->mode);
1377 struct iaa_device *iaa_device;
1387 iaa_device = iaa_wq->iaa_device;
1388 idxd = iaa_device->idxd;
1392 active_compression_mode = get_iaa_device_compression_mode(iaa_device, ctx->mode);
1536 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,
1549 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,
1634 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,
1647 " wq %d: ret=%d\n", iaa_wq->iaa_device->idxd->id,