Home
last modified time | relevance | path

Searched refs:idxd (Results 1 – 22 of 22) sorted by relevance

/linux-6.12.1/drivers/dma/idxd/
Dinit.c85 static int idxd_setup_interrupts(struct idxd_device *idxd) in idxd_setup_interrupts() argument
87 struct pci_dev *pdev = idxd->pdev; in idxd_setup_interrupts()
98 idxd->irq_cnt = msixcnt; in idxd_setup_interrupts()
108 ie = idxd_get_ie(idxd, 0); in idxd_setup_interrupts()
117 for (i = 0; i < idxd->max_wqs; i++) { in idxd_setup_interrupts()
120 ie = idxd_get_ie(idxd, msix_idx); in idxd_setup_interrupts()
130 idxd_unmask_error_interrupts(idxd); in idxd_setup_interrupts()
134 idxd_mask_error_interrupts(idxd); in idxd_setup_interrupts()
140 static void idxd_cleanup_interrupts(struct idxd_device *idxd) in idxd_cleanup_interrupts() argument
142 struct pci_dev *pdev = idxd->pdev; in idxd_cleanup_interrupts()
[all …]
Ddevice.c15 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 …]
Dperfmon.c96 struct idxd_device *idxd = idxd_pmu->idxd; in perfmon_assign_hw_event() local
100 hwc->config_base = ioread64(CNTRCFG_REG(idxd, idx)); in perfmon_assign_hw_event()
101 hwc->event_base = ioread64(CNTRCFG_REG(idxd, idx)); in perfmon_assign_hw_event()
170 struct idxd_device *idxd; in perfmon_pmu_event_init() local
173 idxd = event_to_idxd(event); in perfmon_pmu_event_init()
186 if (event->pmu != &idxd->idxd_pmu->pmu) in perfmon_pmu_event_init()
189 event->hw.event_base = ioread64(PERFMON_TABLE_OFFSET(idxd)); in perfmon_pmu_event_init()
194 ret = perfmon_validate_group(idxd->idxd_pmu, event); in perfmon_pmu_event_init()
202 struct idxd_device *idxd; in perfmon_pmu_read_counter() local
205 idxd = event_to_idxd(event); in perfmon_pmu_read_counter()
[all …]
Dsysfs.c36 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 …]
Dirq.c29 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 …]
Dperfmon.h38 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 …]
Ddebugfs.c15 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 …]
Didxd.h103 struct idxd_device *idxd; member
118 struct idxd_device *idxd; member
203 struct idxd_device *idxd; member
244 struct idxd_device *idxd; member
273 struct idxd_device *idxd; member
277 typedef int (*load_device_defaults_fn_t) (struct idxd_device *idxd);
379 static inline unsigned int evl_ent_size(struct idxd_device *idxd) in evl_ent_size() argument
381 return idxd->hw.gen_cap.evl_support ? in evl_ent_size()
382 (32 * (1 << idxd->hw.gen_cap.evl_support)) : 0; in evl_ent_size()
385 static inline unsigned int evl_size(struct idxd_device *idxd) in evl_size() argument
[all …]
Dcdev.c123 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 …]
Ddma.c27 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 …]
Ddefaults.c6 int idxd_load_iaa_device_defaults(struct idxd_device *idxd) in idxd_load_iaa_device_defaults() argument
12 if (!test_bit(IDXD_FLAG_CONFIGURABLE, &idxd->flags)) in idxd_load_iaa_device_defaults()
15 wq = idxd->wqs[0]; in idxd_load_iaa_device_defaults()
25 wq->size = idxd->max_wq_size; in idxd_load_iaa_device_defaults()
34 group = idxd->groups[0]; in idxd_load_iaa_device_defaults()
46 engine = idxd->engines[0]; in idxd_load_iaa_device_defaults()
49 engine->group = idxd->groups[0]; in idxd_load_iaa_device_defaults()
Dsubmit.c14 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()
172 struct idxd_device *idxd = wq->idxd; in idxd_submit_desc() local
178 if (idxd->state != IDXD_DEV_ENABLED) in idxd_submit_desc()
DMakefile6 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 defaults.o
9 idxd-$(CONFIG_INTEL_IDXD_PERFMON) += perfmon.o
/linux-6.12.1/drivers/crypto/intel/iaa/
Diaa_crypto_main.c52 entry->cur_wq, entry->wqs[entry->cur_wq]->idxd->id, in wq_table_next_wq()
68 entry->wqs[entry->n_wqs - 1]->idxd->id, in wq_table_add()
396 struct device *dev = &iaa_device->idxd->pdev->dev; in free_device_compression_mode()
424 struct device *dev = &iaa_device->idxd->pdev->dev; in init_device_compression_mode()
456 mode->name, iaa_device->idxd->id); in init_device_compression_mode()
463 mode->name, iaa_device->idxd->id); in init_device_compression_mode()
530 static struct iaa_device *add_iaa_device(struct idxd_device *idxd) in add_iaa_device() argument
538 iaa_device->idxd = idxd; in add_iaa_device()
568 struct idxd_device *idxd = iaa_device->idxd; in add_iaa_wq() local
569 struct pci_dev *pdev = idxd->pdev; in add_iaa_wq()
[all …]
DMakefile6 ccflags-y += -I $(srctree)/drivers/dma/idxd -DDEFAULT_SYMBOL_NAMESPACE=IDXD
Diaa_crypto.h69 struct idxd_device *idxd; member
Diaa_crypto_stats.c154 seq_printf(m, " id: %d\n", iaa_device->idxd->id); in device_stats_show()
/linux-6.12.1/Documentation/driver-api/crypto/iaa/
Diaa-crypto.rst166 https://github.com/intel/idxd-config/#readme
465 # echo -n 'module idxd +p' > /sys/kernel/debug/dynamic_debug/control
491 …[ 404.202972] idxd 0000:e7:02.0: iaa_comp_acompress: dma_map_sg, src_addr 223925c000, nr_sgs 1, r…
492 …[ 404.202973] idxd 0000:e7:02.0: iaa_comp_acompress: dma_map_sg, dst_addr 21dadf8000, nr_sgs 1, r…
493 …[ 404.202975] idxd 0000:e7:02.0: iaa_compress: desc->src1_addr 223925c000, desc->src1_size 4096, …
494 …[ 404.202981] idxd 0000:e7:02.0: iaa_compress_verify: (verify) desc->src1_addr 21dadf8000, desc->…
589 …[ 60.752344] idxd 0000:f6:02.0: add_iaa_wq: added wq 000000004068d14d to iaa 00000000c9585ba2, n…
592 [ 60.752349] idxd 0000:6a:02.0: request_iaa_wq: getting wq from iaa_device 0000000042d7bc52 (0)
593 …[ 60.752350] idxd 0000:6a:02.0: request_iaa_wq: returning unused wq 00000000c8bb4452 (0) from ia…
596 [ 60.752355] idxd 0000:6a:02.0: request_iaa_wq: getting wq from iaa_device 0000000042d7bc52 (0)
[all …]
/linux-6.12.1/drivers/dma/
DMakefile50 obj-y += idxd/
DKconfig311 bool "Legacy behavior for idxd driver"
328 # support shared virtual memory for the devices supported by idxd.
/linux-6.12.1/Documentation/admin-guide/
Dkernel-parameters.txt2011 idxd.sva= [HW]
2014 support for the idxd driver. By default it is set to
2017 idxd.tc_override= [HW]
/linux-6.12.1/
DMAINTAINERS11470 F: drivers/dma/idxd/*
11471 F: include/uapi/linux/idxd.h