| /linux-6.15/drivers/cxl/core/ |
| H A D | memdev.c | 30 kfree(cxlmd); in cxl_memdev_release() 629 cxlmd = container_of(work, typeof(*cxlmd), detach_work); in detach_memdev() 644 cxlmd = kzalloc(sizeof(*cxlmd), GFP_KERNEL); in cxl_memdev_alloc() 645 if (!cxlmd) in cxl_memdev_alloc() 666 return cxlmd; in cxl_memdev_alloc() 669 kfree(cxlmd); in cxl_memdev_alloc() 839 struct cxl_memdev *cxlmd = cxlds->cxlmd; in cxl_fw_do_cancel() local 881 struct cxl_memdev *cxlmd = cxlds->cxlmd; in cxl_fw_write() local 1049 return cxlmd; in devm_cxl_add_memdev() 1061 cxlds->cxlmd = cxlmd; in devm_cxl_add_memdev() [all …]
|
| H A D | pmem.c | 206 cxl_nvd->cxlmd = cxlmd; in cxl_nvdimm_alloc() 207 cxlmd->cxl_nvd = cxl_nvd; in cxl_nvdimm_alloc() 211 dev->parent = &cxlmd->dev; in cxl_nvdimm_alloc() 231 cxl_nvd->cxlmd = NULL; in cxlmd_release_nvdimm() 232 cxlmd->cxl_nvd = NULL; in cxlmd_release_nvdimm() 233 cxlmd->cxl_nvb = NULL; in cxlmd_release_nvdimm() 246 struct cxl_memdev *cxlmd) in devm_cxl_add_nvdimm() argument 262 cxlmd->cxl_nvb = cxl_nvb; in devm_cxl_add_nvdimm() 276 return devm_add_action_or_reset(&cxlmd->dev, cxlmd_release_nvdimm, cxlmd); in devm_cxl_add_nvdimm() 281 cxlmd->cxl_nvb = NULL; in devm_cxl_add_nvdimm() [all …]
|
| H A D | trace.h | 81 TP_ARGS(cxlmd, status, fe, hl), 83 __string(memdev, dev_name(&cxlmd->dev)) 93 __entry->serial = cxlmd->cxlds->serial; 148 TP_ARGS(cxlmd, status), 150 __string(memdev, dev_name(&cxlmd->dev)) 158 __entry->serial = cxlmd->cxlds->serial; 179 TP_ARGS(cxlmd, log, payload), 182 __string(memdev, dev_name(&cxlmd->dev)) 194 __entry->serial = cxlmd->cxlds->serial; 282 TP_ARGS(cxlmd, log, uuid, gen_rec), [all …]
|
| H A D | region.c | 1542 struct cxl_memdev *cxlmd; in cxl_region_teardown_targets() local 1557 cxlds = cxlmd->cxlds; in cxl_region_teardown_targets() 1578 struct cxl_memdev *cxlmd; in cxl_region_setup_targets() local 1585 cxlds = cxlmd->cxlds; in cxl_region_setup_targets() 1875 dev_dbg(&cxlmd->dev, in cxl_calc_interleave_pos() 2668 struct cxl_memdev *cxlmd = cxlr_pmem->mapping[i].cxlmd; in cxl_pmem_region_release() local 2670 put_device(&cxlmd->dev); in cxl_pmem_region_release() 2751 struct cxl_memdev *cxlmd; in poison_by_decoder() local 2763 cxlds = cxlmd->cxlds; in poison_by_decoder() 2860 port = cxlmd->endpoint; in cxl_dpa_to_region() [all …]
|
| H A D | port.c | 859 cxlmd->endpoint = port; in cxl_port_add() 1414 cxlmd->endpoint = NULL; in delete_endpoint() 1427 cxlmd->depth = endpoint->depth; in cxl_endpoint_autoremove() 1463 struct cxl_memdev *cxlmd; member 1489 .cxlmd = cxlmd, in cxl_detach_ep() 1504 ep = cxl_ep_load(port, cxlmd); in cxl_detach_ep() 1582 dev_warn(&cxlmd->dev, in add_port_attach_ep() 1627 if (cxlmd->cxlds->rcd) in devm_cxl_enumerate_ports() 1630 rc = devm_add_action_or_reset(&cxlmd->dev, cxl_detach_ep, cxlmd); in devm_cxl_enumerate_ports() 1665 dev_dbg(&cxlmd->dev, in devm_cxl_enumerate_ports() [all …]
|
| H A D | mce.c | 15 struct cxl_memdev *cxlmd = mds->cxlds.cxlmd; in cxl_handle_mce() local 16 struct cxl_port *endpoint = cxlmd->endpoint; in cxl_handle_mce()
|
| H A D | mbox.c | 916 cxlr = cxl_dpa_to_region(cxlmd, dpa); in cxl_event_trace_record() 920 hpa = cxl_dpa_to_hpa(cxlr, cxlmd, dpa); in cxl_event_trace_record() 926 trace_cxl_general_media(cxlmd, type, cxlr, hpa, in cxl_event_trace_record() 929 trace_cxl_dram(cxlmd, type, cxlr, hpa, hpa_alias, in cxl_event_trace_record() 1027 struct cxl_memdev *cxlmd = mds->cxlds.cxlmd; in cxl_mem_get_records_log() local 1060 __cxl_event_trace_record(cxlmd, type, in cxl_mem_get_records_log() 1064 trace_cxl_overflow(cxlmd, type, payload); in cxl_mem_get_records_log() 1253 int cxl_mem_sanitize(struct cxl_memdev *cxlmd, u16 cmd) in cxl_mem_sanitize() argument 1259 guard(device)(&cxlmd->dev); in cxl_mem_sanitize() 1260 endpoint = cxlmd->endpoint; in cxl_mem_sanitize() [all …]
|
| H A D | core.h | 32 struct cxl_region *cxl_dpa_to_region(const struct cxl_memdev *cxlmd, u64 dpa); 33 u64 cxl_dpa_to_hpa(struct cxl_region *cxlr, const struct cxl_memdev *cxlmd, 38 const struct cxl_memdev *cxlmd, u64 dpa) in cxl_dpa_to_hpa() argument 43 struct cxl_region *cxl_dpa_to_region(const struct cxl_memdev *cxlmd, u64 dpa) in cxl_dpa_to_region() argument
|
| H A D | cdat.c | 348 static void cxl_qos_class_verify(struct cxl_memdev *cxlmd) in cxl_qos_class_verify() argument 350 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_qos_class_verify() 354 find_cxl_root(cxlmd->endpoint); in cxl_qos_class_verify() 372 cxlmd->endpoint->host_bridge, in cxl_qos_class_verify() 406 struct cxl_dev_state *cxlds = cxlmd->cxlds; in DEFINE_FREE() 428 cxl_qos_class_verify(cxlmd); in DEFINE_FREE() 429 cxl_memdev_update_perf(cxlmd); in DEFINE_FREE() 587 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxled_get_dpa_perf() local 588 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxled_get_dpa_perf() 642 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_endpoint_gather_bandwidth() local [all …]
|
| H A D | hdm.c | 262 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in __cxl_dpa_release() local 264 struct cxl_dev_state *cxlds = cxlmd->cxlds; in __cxl_dpa_release() 356 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in __cxl_dpa_reserve() local 358 struct cxl_dev_state *cxlds = cxlmd->cxlds; in __cxl_dpa_reserve() 579 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_dpa_set_part() local 580 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_dpa_set_part() 608 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in __cxl_dpa_alloc() local 609 struct cxl_dev_state *cxlds = cxlmd->cxlds; in __cxl_dpa_alloc() 795 to_cxl_memdev_state(cxlmd->cxlds); in cxl_decoder_commit() 798 dev_dbg(&cxlmd->dev, in cxl_decoder_commit() [all …]
|
| H A D | pci.c | 588 struct cxl_memdev *cxlmd; in read_cdat_data() local 596 cxlmd = to_cxl_memdev(uport); in read_cdat_data() 597 host = cxlmd->dev.parent; in read_cdat_data() 666 trace_cxl_aer_correctable_error(cxlds->cxlmd, status); in __cxl_handle_cor_ras() 724 trace_cxl_aer_uncorrectable_error(cxlds->cxlmd, status, fe, hl); in __cxl_handle_ras() 903 struct device *dev = &cxlds->cxlmd->dev; in cxl_cor_error_detected() 925 struct cxl_memdev *cxlmd = cxlds->cxlmd; in cxl_error_detected() local 926 struct device *dev = &cxlmd->dev; in cxl_error_detected()
|
| H A D | ras.c | 44 trace_cxl_aer_correctable_error(cxlds->cxlmd, status); in cxl_cper_trace_corr_prot_err() 64 trace_cxl_aer_uncorrectable_error(cxlds->cxlmd, status, fe, in cxl_cper_trace_uncorr_prot_err()
|
| H A D | features.c | 651 struct cxl_memdev *cxlmd = fwctl_to_memdev(fwctl_dev); in cxlctl_fw_rpc() local 652 struct cxl_features_state *cxlfs = to_cxlfs(cxlmd->cxlds); in cxlctl_fw_rpc() 680 int devm_cxl_setup_fwctl(struct device *host, struct cxl_memdev *cxlmd) in devm_cxl_setup_fwctl() argument 682 struct cxl_dev_state *cxlds = cxlmd->cxlds; in devm_cxl_setup_fwctl() 695 _fwctl_alloc_device(&cxlmd->dev, &cxlctl_ops, sizeof(*fwctl_dev)); in devm_cxl_setup_fwctl()
|
| /linux-6.15/drivers/cxl/ |
| H A D | mem.c | 43 cxl_dpa_debug(file, cxlmd->cxlds); in cxl_mem_dpa_show() 63 ep = cxl_ep_load(iter, cxlmd); in devm_cxl_add_endpoint() 78 dev_err(&cxlmd->dev, "%s failed probe\n", in devm_cxl_add_endpoint() 88 struct cxl_memdev *cxlmd = data; in cxl_debugfs_poison_inject() local 90 return cxl_inject_poison(cxlmd, dpa); in cxl_debugfs_poison_inject() 98 struct cxl_memdev *cxlmd = data; in cxl_debugfs_poison_clear() local 100 return cxl_clear_poison(cxlmd, dpa); in cxl_debugfs_poison_clear() 110 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_mem_probe() 127 if (work_pending(&cxlmd->detach_work)) in cxl_mem_probe() 144 rc = devm_cxl_enumerate_ports(cxlmd); in cxl_mem_probe() [all …]
|
| H A D | security.c | 16 struct cxl_memdev *cxlmd = cxl_nvd->cxlmd; in cxl_pmem_get_security_flags() local 17 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_pmem_get_security_flags() 73 struct cxl_memdev *cxlmd = cxl_nvd->cxlmd; in cxl_pmem_security_change_key() local 74 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_pmem_security_change_key() 99 struct cxl_memdev *cxlmd = cxl_nvd->cxlmd; in __cxl_pmem_security_disable() local 100 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in __cxl_pmem_security_disable() 134 struct cxl_memdev *cxlmd = cxl_nvd->cxlmd; in cxl_pmem_security_freeze() local 135 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_pmem_security_freeze() 147 struct cxl_memdev *cxlmd = cxl_nvd->cxlmd; in cxl_pmem_security_unlock() local 148 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_pmem_security_unlock() [all …]
|
| H A D | pmem.c | 39 struct cxl_dev_state *cxlds = cxl_nvd->cxlmd->cxlds; in id_show() 92 struct cxl_memdev *cxlmd = cxl_nvd->cxlmd; in cxl_nvdimm_arm_dirty_shutdown_tracking() local 93 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_nvdimm_arm_dirty_shutdown_tracking() 125 struct cxl_memdev *cxlmd = cxl_nvd->cxlmd; in cxl_nvdimm_probe() local 268 struct cxl_memdev *cxlmd = cxl_nvd->cxlmd; in cxl_pmem_nvdimm_ctl() local 312 if (cxl_nvd->cxlmd && cxl_nvd->cxlmd->cxl_nvb == data) in detach_nvdimm() 435 struct cxl_memdev *cxlmd = m->cxlmd; in cxl_pmem_region_probe() local 436 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_pmem_region_probe() 438 cxl_nvd = cxlmd->cxl_nvd; in cxl_pmem_region_probe() 442 dev_name(&cxlmd->dev)); in cxl_pmem_region_probe() [all …]
|
| H A D | port.c | 28 static void schedule_detach(void *cxlmd) in schedule_detach() argument 30 schedule_cxl_memdev_detach(cxlmd); in schedule_detach() 95 struct cxl_memdev *cxlmd = to_cxl_memdev(port->uport_dev); in cxl_endpoint_port_probe() local 96 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_endpoint_port_probe() 116 get_device(&cxlmd->dev); in cxl_endpoint_port_probe() 117 rc = devm_add_action_or_reset(&port->dev, schedule_detach, cxlmd); in cxl_endpoint_port_probe()
|
| H A D | pci.c | 826 struct cxl_memdev *cxlmd = cxlds->cxlmd; in rcd_pcie_cap_emit() local 910 struct cxl_memdev *cxlmd; in cxl_pci_probe() local 1010 if (IS_ERR(cxlmd)) in cxl_pci_probe() 1011 return PTR_ERR(cxlmd); in cxl_pci_probe() 1073 struct cxl_memdev *cxlmd = cxlds->cxlmd; in cxl_slot_reset() local 1074 struct device *dev = &cxlmd->dev; in cxl_slot_reset() 1087 struct cxl_memdev *cxlmd = cxlds->cxlmd; in cxl_error_resume() local 1088 struct device *dev = &cxlmd->dev; in cxl_error_resume() 1097 struct cxl_memdev *cxlmd = cxlds->cxlmd; in cxl_reset_done() local 1106 guard(device)(&cxlmd->dev); in cxl_reset_done() [all …]
|
| H A D | cxlmem.h | 93 struct cxl_memdev *cxlmd); 114 struct cxl_memdev *cxlmd) in cxl_ep_load() argument 119 return xa_load(&port->endpoints, (unsigned long)&cxlmd->dev); in cxl_ep_load() 424 struct cxl_memdev *cxlmd; member 842 void cxl_event_trace_record(const struct cxl_memdev *cxlmd, 850 int cxl_mem_get_poison(struct cxl_memdev *cxlmd, u64 offset, u64 len, 852 int cxl_trigger_poison_list(struct cxl_memdev *cxlmd); 853 int cxl_inject_poison(struct cxl_memdev *cxlmd, u64 dpa); 854 int cxl_clear_poison(struct cxl_memdev *cxlmd, u64 dpa); 868 int cxl_mem_sanitize(struct cxl_memdev *cxlmd, u16 cmd);
|
| H A D | cxl.h | 545 struct cxl_memdev *cxlmd; member 551 struct cxl_memdev *cxlmd; member 743 int devm_cxl_enumerate_ports(struct cxl_memdev *cxlmd); 748 struct cxl_port *cxl_mem_find_port(struct cxl_memdev *cxlmd, 750 bool schedule_cxl_memdev_detach(struct cxl_memdev *cxlmd); 787 int cxl_endpoint_autoremove(struct cxl_memdev *cxlmd, struct cxl_port *endpoint); 853 int devm_cxl_add_nvdimm(struct cxl_port *parent_port, struct cxl_memdev *cxlmd); 897 void cxl_memdev_update_perf(struct cxl_memdev *cxlmd);
|
| /linux-6.15/include/cxl/ |
| H A D | features.h | 69 int devm_cxl_setup_fwctl(struct device *host, struct cxl_memdev *cxlmd); 82 struct cxl_memdev *cxlmd) in devm_cxl_setup_fwctl() argument
|
| /linux-6.15/tools/testing/cxl/test/ |
| H A D | cxl.c | 748 struct cxl_memdev *cxlmd; in mock_init_hdm_decoder() local 757 cxlmd = cxled_to_memdev(cxled); in mock_init_hdm_decoder() 758 WARN_ON(!dev_is_platform(cxlmd->dev.parent)); in mock_init_hdm_decoder() 759 pdev = to_platform_device(cxlmd->dev.parent); in mock_init_hdm_decoder() 1001 struct cxl_memdev *cxlmd = to_cxl_memdev(port->uport_dev); in mock_cxl_endpoint_parse_cdat() local 1002 struct cxl_dev_state *cxlds = cxlmd->cxlds; in mock_cxl_endpoint_parse_cdat() 1019 cxl_memdev_update_perf(cxlmd); in mock_cxl_endpoint_parse_cdat()
|
| H A D | mock.c | 292 struct cxl_memdev *cxlmd = to_cxl_memdev(port->uport_dev); in __wrap_cxl_endpoint_parse_cdat() local 294 if (ops && ops->is_mock_dev(cxlmd->dev.parent)) in __wrap_cxl_endpoint_parse_cdat()
|
| H A D | mem.c | 1691 struct cxl_memdev *cxlmd; in cxl_mock_mem_probe() local 1771 cxlmd = devm_cxl_add_memdev(&pdev->dev, cxlds); in cxl_mock_mem_probe() 1772 if (IS_ERR(cxlmd)) in cxl_mock_mem_probe() 1773 return PTR_ERR(cxlmd); in cxl_mock_mem_probe() 1779 rc = devm_cxl_sanitize_setup_notifier(&pdev->dev, cxlmd); in cxl_mock_mem_probe() 1783 rc = devm_cxl_setup_fwctl(&pdev->dev, cxlmd); in cxl_mock_mem_probe()
|