/openbmc/linux/drivers/dma/idxd/ |
H A D | init.c | 77 static int idxd_setup_interrupts(struct idxd_device *idxd) in idxd_setup_interrupts() argument 79 struct pci_dev *pdev = idxd->pdev; in idxd_setup_interrupts() 90 idxd->irq_cnt = msixcnt; in idxd_setup_interrupts() 100 ie = idxd_get_ie(idxd, 0); in idxd_setup_interrupts() 109 for (i = 0; i < idxd->max_wqs; i++) { in idxd_setup_interrupts() 112 ie = idxd_get_ie(idxd, msix_idx); in idxd_setup_interrupts() 122 idxd_unmask_error_interrupts(idxd); in idxd_setup_interrupts() 126 idxd_mask_error_interrupts(idxd); in idxd_setup_interrupts() 132 static void idxd_cleanup_interrupts(struct idxd_device *idxd) in idxd_cleanup_interrupts() argument 134 struct pci_dev *pdev = idxd->pdev; in idxd_cleanup_interrupts() [all …]
|
H A D | device.c | 15 static void idxd_cmd_exec(struct idxd_device *idxd, int cmd_code, u32 operand, 17 static void idxd_device_wqs_clear_state(struct idxd_device *idxd); 21 void idxd_unmask_error_interrupts(struct idxd_device *idxd) in idxd_unmask_error_interrupts() argument 25 genctrl.bits = ioread32(idxd->reg_base + IDXD_GENCTRL_OFFSET); in idxd_unmask_error_interrupts() 28 iowrite32(genctrl.bits, idxd->reg_base + IDXD_GENCTRL_OFFSET); in idxd_unmask_error_interrupts() 31 void idxd_mask_error_interrupts(struct idxd_device *idxd) in idxd_mask_error_interrupts() argument 35 genctrl.bits = ioread32(idxd->reg_base + IDXD_GENCTRL_OFFSET); in idxd_mask_error_interrupts() 38 iowrite32(genctrl.bits, idxd->reg_base + IDXD_GENCTRL_OFFSET); in idxd_mask_error_interrupts() 53 struct device *dev = &wq->idxd->pdev->dev; in alloc_hw_descs() 86 struct device *dev = &wq->idxd->pdev->dev; in alloc_descs() [all …]
|
H A D | sysfs.c | 36 struct idxd_device *idxd = engine->idxd; in engine_group_id_store() local 45 if (!test_bit(IDXD_FLAG_CONFIGURABLE, &idxd->flags)) in engine_group_id_store() 48 if (id > idxd->max_groups - 1 || id < -1) in engine_group_id_store() 63 engine->group = idxd->groups[id]; in engine_group_id_store() 102 static void idxd_set_free_rdbufs(struct idxd_device *idxd) in idxd_set_free_rdbufs() argument 106 for (i = 0, rdbufs = 0; i < idxd->max_groups; i++) { in idxd_set_free_rdbufs() 107 struct idxd_group *g = idxd->groups[i]; in idxd_set_free_rdbufs() 112 idxd->nr_rdbufs = idxd->max_rdbufs - rdbufs; in idxd_set_free_rdbufs() 137 struct idxd_device *idxd = group->idxd; in group_read_buffers_reserved_store() local 145 if (idxd->data->type == IDXD_TYPE_IAX) in group_read_buffers_reserved_store() [all …]
|
H A D | irq.c | 29 struct idxd_device *idxd; member 34 struct idxd_device *idxd = container_of(work, struct idxd_device, work); in idxd_device_reinit() local 35 struct device *dev = &idxd->pdev->dev; in idxd_device_reinit() 38 idxd_device_reset(idxd); in idxd_device_reinit() 39 rc = idxd_device_config(idxd); in idxd_device_reinit() 43 rc = idxd_device_enable(idxd); in idxd_device_reinit() 47 for (i = 0; i < idxd->max_wqs; i++) { in idxd_device_reinit() 48 if (test_bit(i, idxd->wq_enable_map)) { in idxd_device_reinit() 49 struct idxd_wq *wq = idxd->wqs[i]; in idxd_device_reinit() 53 clear_bit(i, idxd->wq_enable_map); in idxd_device_reinit() [all …]
|
H A D | perfmon.c | 126 struct idxd_device *idxd = idxd_pmu->idxd; in perfmon_assign_hw_event() local 130 hwc->config_base = ioread64(CNTRCFG_REG(idxd, idx)); in perfmon_assign_hw_event() 131 hwc->event_base = ioread64(CNTRCFG_REG(idxd, idx)); in perfmon_assign_hw_event() 200 struct idxd_device *idxd; in perfmon_pmu_event_init() local 203 idxd = event_to_idxd(event); in perfmon_pmu_event_init() 216 if (event->pmu != &idxd->idxd_pmu->pmu) in perfmon_pmu_event_init() 219 event->hw.event_base = ioread64(PERFMON_TABLE_OFFSET(idxd)); in perfmon_pmu_event_init() 220 event->cpu = idxd->idxd_pmu->cpu; in perfmon_pmu_event_init() 225 ret = perfmon_validate_group(idxd->idxd_pmu, event); in perfmon_pmu_event_init() 233 struct idxd_device *idxd; in perfmon_pmu_read_counter() local [all …]
|
H A D | perfmon.h | 38 return idxd_pmu->idxd; in event_to_idxd() 47 return idxd_pmu->idxd; in pmu_to_idxd() 87 #define PERFMON_REG_OFFSET(idxd, offset) \ argument 88 (PERFMON_TABLE_OFFSET(idxd) + (offset)) 90 #define PERFCAP_REG(idxd) (PERFMON_REG_OFFSET(idxd, IDXD_PERFCAP_OFFSET)) argument 91 #define PERFRST_REG(idxd) (PERFMON_REG_OFFSET(idxd, IDXD_PERFRST_OFFSET)) argument 92 #define OVFSTATUS_REG(idxd) (PERFMON_REG_OFFSET(idxd, IDXD_OVFSTATUS_OFFSET)) argument 93 #define PERFFRZ_REG(idxd) (PERFMON_REG_OFFSET(idxd, IDXD_PERFFRZ_OFFSET)) argument 95 #define FLTCFG_REG(idxd, cntr, flt) \ argument 96 (PERFMON_REG_OFFSET(idxd, IDXD_FLTCFG_OFFSET) + ((cntr) * 32) + ((flt) * 4)) [all …]
|
H A D | debugfs.c | 15 static void dump_event_entry(struct idxd_device *idxd, struct seq_file *s, in dump_event_entry() argument 18 struct idxd_evl *evl = idxd->evl; in dump_event_entry() 23 int evl_strides = evl_ent_size(idxd) / sizeof(u64); in dump_event_entry() 59 struct idxd_device *idxd = s->private; in debugfs_evl_show() local 60 struct idxd_evl *evl = idxd->evl; in debugfs_evl_show() 71 evl_status.bits = ioread64(idxd->reg_base + IDXD_EVLSTATUS_OFFSET); in debugfs_evl_show() 87 dump_event_entry(idxd, s, i, &count, processed); in debugfs_evl_show() 96 int idxd_device_init_debugfs(struct idxd_device *idxd) in idxd_device_init_debugfs() argument 101 idxd->dbgfs_dir = debugfs_create_dir(dev_name(idxd_confdev(idxd)), idxd_debugfs_dir); in idxd_device_init_debugfs() 102 if (IS_ERR(idxd->dbgfs_dir)) in idxd_device_init_debugfs() [all …]
|
H A D | idxd.h | 90 struct idxd_device *idxd; member 105 struct idxd_device *idxd; member 197 struct idxd_device *idxd; member 236 struct idxd_device *idxd; member 265 struct idxd_device *idxd; member 368 static inline unsigned int evl_ent_size(struct idxd_device *idxd) in evl_ent_size() argument 370 return idxd->hw.gen_cap.evl_support ? in evl_ent_size() 371 (32 * (1 << idxd->hw.gen_cap.evl_support)) : 0; in evl_ent_size() 374 static inline unsigned int evl_size(struct idxd_device *idxd) in evl_size() argument 376 return idxd->evl->size * evl_ent_size(idxd); in evl_size() [all …]
|
H A D | cdev.c | 123 struct idxd_device *idxd = wq->idxd; in idxd_file_dev_release() local 132 idxd_device_drain_pasid(idxd, ctx->pasid); in idxd_file_dev_release() 134 if (device_user_pasid_enabled(idxd)) { in idxd_file_dev_release() 167 cdev_ctx = &ictx[wq->idxd->data->type]; in idxd_cdev_dev_release() 199 dev_warn(&wq->idxd->pdev->dev, "xarray cmpxchg failed for pasid %u\n", in idxd_xa_pasid_remove() 224 struct idxd_device *idxd; in idxd_cdev_open() local 233 idxd = wq->idxd; in idxd_cdev_open() 234 dev = &idxd->pdev->dev; in idxd_cdev_open() 253 if (device_user_pasid_enabled(idxd)) { in idxd_cdev_open() 322 if (device_user_pasid_enabled(idxd)) in idxd_cdev_open() [all …]
|
H A D | dma.c | 27 struct idxd_device *idxd = desc->wq->idxd; in idxd_dma_complete_txd() local 35 if (idxd->request_int_handles && comp_type != IDXD_COMPLETE_ABORT && in idxd_dma_complete_txd() 112 struct idxd_device *idxd = wq->idxd; in idxd_dma_submit_memcpy() local 118 if (len > idxd->max_xfer_bytes) in idxd_dma_submit_memcpy() 138 struct device *dev = &wq->idxd->pdev->dev; in idxd_dma_alloc_chan_resources() 149 struct device *dev = &wq->idxd->pdev->dev; in idxd_dma_free_chan_resources() 197 int idxd_register_dma_device(struct idxd_device *idxd) in idxd_register_dma_device() argument 201 struct device *dev = &idxd->pdev->dev; in idxd_register_dma_device() 218 if (idxd->hw.opcap.bits[0] & IDXD_OPCAP_MEMMOVE) { in idxd_register_dma_device() 234 idxd_dma->idxd = idxd; in idxd_register_dma_device() [all …]
|
H A D | submit.c | 14 struct idxd_device *idxd = wq->idxd; in __get_desc() local 18 memset(desc->completion, 0, idxd->data->compl_size); in __get_desc() 21 if (device_pasid_enabled(idxd)) in __get_desc() 22 desc->hw->pasid = idxd->pasid; in __get_desc() 30 struct idxd_device *idxd = wq->idxd; in idxd_alloc_desc() local 35 if (idxd->state != IDXD_DEV_ENABLED) in idxd_alloc_desc() 168 struct idxd_device *idxd = wq->idxd; in idxd_submit_desc() local 174 if (idxd->state != IDXD_DEV_ENABLED) in idxd_submit_desc()
|
H A D | Makefile | 6 obj-$(CONFIG_INTEL_IDXD) += idxd.o 7 idxd-y := init.o irq.o device.o sysfs.o submit.o dma.o cdev.o debugfs.o 9 idxd-$(CONFIG_INTEL_IDXD_PERFMON) += perfmon.o
|
/openbmc/qemu/docs/devel/migration/ |
H A D | qpl-compression.rst | 34 | |idxd driver| 91 <https://github.com/intel/idxd-config>`_ 128 <https://github.com/intel/idxd-config/tree/stable/Documentation/accfg>`_ 136 - ``IAA`` device driver is Intel Data Accelerator Driver (idxd), it is 143 <https://github.com/intel/idxd-config/tree/stable/test>`_
|
/openbmc/linux/drivers/dma/ |
H A D | Makefile | 48 obj-y += idxd/
|
H A D | Kconfig | 311 bool "Legacy behavior for idxd driver" 328 # support shared virtual memory for the devices supported by idxd.
|
/openbmc/linux/Documentation/admin-guide/ |
H A D | kernel-parameters.txt | 1924 idxd.sva= [HW] 1927 support for the idxd driver. By default it is set to 1930 idxd.tc_override= [HW]
|
/openbmc/linux/ |
H A D | MAINTAINERS | 10615 F: drivers/dma/idxd/* 10616 F: include/uapi/linux/idxd.h
|
H A D | opengrok2.0.log | [all...] |
H A D | opengrok0.0.log | [all...] |
H A D | opengrok1.0.log | [all...] |
/openbmc/ |
D | opengrok1.0.log | 4781 2025-03-27 03:00:46.301-0500 FINEST t563 IndexDatabase.setupDeletedUids: live doc: '/openbmc/linux/drivers/dma/idxd/init.c' (1,993) at 20240520080015139 [all...] |
D | opengrok2.0.log | 3700 2025-03-26 03:00:54.884-0500 FINEST t510 IndexDatabase.setupDeletedUids: live doc: '/openbmc/linux/drivers/dma/idxd/init.c' (1,993) at 20240520080015139 [all...] |