| /linux/drivers/cxl/core/ |
| H A D | memdev.c | 27 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in cxl_memdev_release() local 29 ida_free(&cxl_memdev_ida, cxlmd->id); in cxl_memdev_release() 30 kfree(cxlmd); in cxl_memdev_release() 42 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in firmware_version_show() local 43 struct cxl_dev_state *cxlds = cxlmd->cxlds; in firmware_version_show() 55 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in payload_max_show() local 56 struct cxl_dev_state *cxlds = cxlmd->cxlds; in payload_max_show() 68 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in label_storage_size_show() local 69 struct cxl_dev_state *cxlds = cxlmd->cxlds; in label_storage_size_show() 89 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in ram_size_show() local [all …]
|
| H A D | edac.c | 36 struct cxl_memdev *cxlmd; member 107 struct cxl_memdev *cxlmd; in cxl_scrub_get_attrbs() local 113 cxl_mbox = &cxl_ps_ctx->cxlmd->cxlds->cxl_mbox; in cxl_scrub_get_attrbs() 128 cxlmd = cxled_to_memdev(cxled); in cxl_scrub_get_attrbs() 129 cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_scrub_get_attrbs() 156 struct cxl_memdev *cxlmd; in cxl_scrub_set_attrbs_region() local 172 cxlmd = cxled_to_memdev(cxled); in cxl_scrub_set_attrbs_region() 173 cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_scrub_set_attrbs_region() 182 if (cycle != cxlmd->scrub_cycle) { in cxl_scrub_set_attrbs_region() 183 if (cxlmd->scrub_region_id != CXL_SCRUB_NO_REGION) in cxl_scrub_set_attrbs_region() [all …]
|
| H A D | pmem.c | 203 struct cxl_memdev *cxlmd) in cxl_nvdimm_alloc() argument 213 cxl_nvd->cxlmd = cxlmd; in cxl_nvdimm_alloc() 214 cxlmd->cxl_nvd = cxl_nvd; in cxl_nvdimm_alloc() 218 dev->parent = &cxlmd->dev; in cxl_nvdimm_alloc() 227 sprintf(cxl_nvd->dev_id, "%llx", cxlmd->cxlds->serial); in cxl_nvdimm_alloc() 234 struct cxl_memdev *cxlmd = _cxlmd; in cxlmd_release_nvdimm() local 235 struct cxl_nvdimm *cxl_nvd = cxlmd->cxl_nvd; in cxlmd_release_nvdimm() 236 struct cxl_nvdimm_bridge *cxl_nvb = cxlmd->cxl_nvb; in cxlmd_release_nvdimm() 238 cxl_nvd->cxlmd = NULL; in cxlmd_release_nvdimm() 239 cxlmd->cxl_nvd = NULL; in cxlmd_release_nvdimm() [all …]
|
| H A D | ras.c | 35 static void cxl_cper_trace_corr_prot_err(struct cxl_memdev *cxlmd, in cxl_cper_trace_corr_prot_err() argument 40 trace_cxl_aer_correctable_error(cxlmd, status); in cxl_cper_trace_corr_prot_err() 44 cxl_cper_trace_uncorr_prot_err(struct cxl_memdev *cxlmd, in cxl_cper_trace_uncorr_prot_err() argument 56 trace_cxl_aer_uncorrectable_error(cxlmd, status, fe, in cxl_cper_trace_uncorr_prot_err() 75 struct cxl_memdev *cxlmd; in cxl_cper_handle_prot_err() local 102 cxlmd = to_cxl_memdev(mem_dev); in cxl_cper_handle_prot_err() 104 cxl_cper_trace_corr_prot_err(cxlmd, data->ras_cap); in cxl_cper_handle_prot_err() 106 cxl_cper_trace_uncorr_prot_err(cxlmd, data->ras_cap); in cxl_cper_handle_prot_err() 259 struct cxl_memdev *cxlmd = cxlds->cxlmd; in cxl_cor_error_detected() local 260 struct device *dev = &cxlds->cxlmd->dev; in cxl_cor_error_detected() [all …]
|
| H A D | trace.h | 80 TP_PROTO(const struct cxl_memdev *cxlmd, u32 status, u32 fe, u32 *hl), 81 TP_ARGS(cxlmd, status, fe, hl), 83 __string(memdev, dev_name(&cxlmd->dev)) 84 __string(host, dev_name(cxlmd->dev.parent)) 93 __entry->serial = cxlmd->cxlds->serial; 147 TP_PROTO(const struct cxl_memdev *cxlmd, u32 status), 148 TP_ARGS(cxlmd, status), 150 __string(memdev, dev_name(&cxlmd->dev)) 151 __string(host, dev_name(cxlmd->dev.parent)) 158 __entry->serial = cxlmd->cxlds->serial; [all …]
|
| H A D | region.c | 263 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_region_decode_reset() local 265 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_region_decode_reset() 274 for (ep = cxl_ep_load(iter, cxlmd); iter; in cxl_region_decode_reset() 275 iter = ep->next, ep = cxl_ep_load(iter, cxlmd)) { in cxl_region_decode_reset() 318 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_region_decode_commit() local 336 for (ep = cxl_ep_load(iter, cxlmd); ep && iter; in cxl_region_decode_commit() 337 iter = ep->next, ep = cxl_ep_load(iter, cxlmd)) { in cxl_region_decode_commit() 1140 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_port_attach_region() local 1141 struct cxl_ep *ep = cxl_ep_load(port, cxlmd); in cxl_port_attach_region() 1215 dev_name(&cxld->dev), dev_name(&cxlmd->dev), in cxl_port_attach_region() [all …]
|
| H A D | mbox.c | 896 void cxl_event_trace_record(const struct cxl_memdev *cxlmd, in cxl_event_trace_record() argument 902 trace_cxl_memory_module(cxlmd, type, &evt->mem_module); in cxl_event_trace_record() 906 trace_cxl_generic_event(cxlmd, type, uuid, &evt->generic); in cxl_event_trace_record() 910 trace_cxl_memory_sparing(cxlmd, type, &evt->mem_sparing); in cxl_event_trace_record() 927 cxlr = cxl_dpa_to_region(cxlmd, dpa); in cxl_event_trace_record() 931 hpa = cxl_dpa_to_hpa(cxlr, cxlmd, dpa); in cxl_event_trace_record() 937 if (cxl_store_rec_gen_media((struct cxl_memdev *)cxlmd, evt)) in cxl_event_trace_record() 938 dev_dbg(&cxlmd->dev, "CXL store rec_gen_media failed\n"); in cxl_event_trace_record() 949 trace_cxl_general_media(cxlmd, type, cxlr, hpa, in cxl_event_trace_record() 952 if (cxl_store_rec_dram((struct cxl_memdev *)cxlmd, evt)) in cxl_event_trace_record() [all …]
|
| H A D | port.c | 200 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in mode_show() local 201 struct cxl_dev_state *cxlds = cxlmd->cxlds; in mode_show() 844 struct cxl_memdev *cxlmd = to_cxl_memdev(port->uport_dev); in cxl_port_add() local 845 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_port_add() 858 cxlmd->endpoint = port; in cxl_port_add() 1422 struct cxl_memdev *cxlmd = data; in delete_endpoint() local 1423 struct cxl_port *endpoint = cxlmd->endpoint; in delete_endpoint() 1432 cxlmd->endpoint = NULL; in delete_endpoint() 1438 int cxl_endpoint_autoremove(struct cxl_memdev *cxlmd, struct cxl_port *endpoint) in cxl_endpoint_autoremove() argument 1441 struct device *dev = &cxlmd->dev; in cxl_endpoint_autoremove() [all …]
|
| H A D | atl.c | 65 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_prm_setup_root() local 89 if (!cxlmd || !dev_is_pci(cxlmd->dev.parent)) { in cxl_prm_setup_root() 96 pci_dev = to_pci_dev(cxlmd->dev.parent); in cxl_prm_setup_root() 184 dev_name(cxlmd->dev.parent), base, len, hpa_range.start, in cxl_prm_setup_root()
|
| 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 | core.h | 50 struct cxl_region *cxl_dpa_to_region(const struct cxl_memdev *cxlmd, u64 dpa); 51 u64 cxl_dpa_to_hpa(struct cxl_region *cxlr, const struct cxl_memdev *cxlmd, 56 const struct cxl_memdev *cxlmd, u64 dpa) in cxl_dpa_to_hpa() argument 61 struct cxl_region *cxl_dpa_to_region(const struct cxl_memdev *cxlmd, u64 dpa) in cxl_dpa_to_region() argument 147 bool cxl_memdev_has_poison_cmd(struct cxl_memdev *cxlmd,
|
| 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() 405 struct cxl_memdev *cxlmd = to_cxl_memdev(port->uport_dev); in DEFINE_FREE() local 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() 584 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxled_get_dpa_perf() local 585 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxled_get_dpa_perf() [all …]
|
| H A D | hdm.c | 249 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in __cxl_dpa_release() local 251 struct cxl_dev_state *cxlds = cxlmd->cxlds; in __cxl_dpa_release() 343 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in __cxl_dpa_reserve() local 345 struct cxl_dev_state *cxlds = cxlmd->cxlds; in __cxl_dpa_reserve() 572 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_dpa_set_part() local 573 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_dpa_set_part() 601 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in __cxl_dpa_alloc() local 602 struct cxl_dev_state *cxlds = cxlmd->cxlds; in __cxl_dpa_alloc() 825 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_decoder_commit() local 827 to_cxl_memdev_state(cxlmd->cxlds); in cxl_decoder_commit() [all …]
|
| H A D | ras_rch.c | 118 cxl_handle_cor_ras(&cxlds->cxlmd->dev, dport->regs.ras); in cxl_handle_rdport_errors() 120 cxl_handle_ras(&cxlds->cxlmd->dev, dport->regs.ras); in cxl_handle_rdport_errors()
|
| H A D | features.c | 649 struct cxl_memdev *cxlmd = fwctl_to_memdev(fwctl_dev); in cxlctl_fw_rpc() local 650 struct cxl_features_state *cxlfs = to_cxlfs(cxlmd->cxlds); in cxlctl_fw_rpc() 678 int devm_cxl_setup_fwctl(struct device *host, struct cxl_memdev *cxlmd) in devm_cxl_setup_fwctl() argument 680 struct cxl_dev_state *cxlds = cxlmd->cxlds; in devm_cxl_setup_fwctl() 693 _fwctl_alloc_device(&cxlmd->dev, &cxlctl_ops, sizeof(*fwctl_dev)); in devm_cxl_setup_fwctl()
|
| /linux/drivers/cxl/ |
| H A D | mem.c | 41 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in cxl_mem_dpa_show() local 43 cxl_dpa_debug(file, cxlmd->cxlds); in cxl_mem_dpa_show() 50 struct cxl_memdev *cxlmd = data; in cxl_debugfs_poison_inject() local 52 return cxl_inject_poison(cxlmd, dpa); in cxl_debugfs_poison_inject() 60 struct cxl_memdev *cxlmd = data; in cxl_debugfs_poison_clear() local 62 return cxl_clear_poison(cxlmd, dpa); in cxl_debugfs_poison_clear() 70 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in cxl_mem_probe() local 71 struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds); in cxl_mem_probe() 72 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_mem_probe() 89 if (work_pending(&cxlmd->detach_work)) 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() 18 struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds); 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 [all …]
|
| H A D | pmem.c | 53 struct cxl_dev_state *cxlds = cxl_nvd->cxlmd->cxlds; in id_show() 106 struct cxl_memdev *cxlmd = cxl_nvd->cxlmd; in cxl_nvdimm_arm_dirty_shutdown_tracking() local 107 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_nvdimm_arm_dirty_shutdown_tracking() 139 struct cxl_memdev *cxlmd = cxl_nvd->cxlmd; in cxl_nvdimm_probe() local 140 struct cxl_nvdimm_bridge *cxl_nvb = cxlmd->cxl_nvb; in cxl_nvdimm_probe() 141 struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds); in cxl_nvdimm_probe() 285 struct cxl_memdev *cxlmd = cxl_nvd->cxlmd; in cxl_pmem_nvdimm_ctl() local 286 struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds); in cxl_pmem_nvdimm_ctl() 329 if (cxl_nvd->cxlmd && cxl_nvd->cxlmd->cxl_nvb == data) { in detach_nvdimm() 455 struct cxl_memdev *cxlmd = m->cxlmd; in cxl_pmem_region_probe() local [all …]
|
| H A D | cxlmem.h | 38 int (*probe)(struct cxl_memdev *cxlmd); 109 struct cxl_memdev *cxlmd); 130 struct cxl_memdev *cxlmd) in cxl_ep_load() argument 135 return xa_load(&port->endpoints, (unsigned long)&cxlmd->dev); in cxl_ep_load() 440 struct cxl_memdev *cxlmd; member 867 void cxl_event_trace_record(const struct cxl_memdev *cxlmd, 875 int cxl_mem_get_poison(struct cxl_memdev *cxlmd, u64 offset, u64 len, 877 int cxl_trigger_poison_list(struct cxl_memdev *cxlmd); 878 int cxl_inject_poison(struct cxl_memdev *cxlmd, u64 dpa); 879 int cxl_clear_poison(struct cxl_memdev *cxlmd, u64 dpa); [all …]
|
| H A D | port.c | 29 static void schedule_detach(void *cxlmd) in schedule_detach() argument 31 schedule_cxl_memdev_detach(cxlmd); in schedule_detach() 123 struct cxl_memdev *cxlmd = to_cxl_memdev(port->uport_dev); in cxl_endpoint_port_probe() local 131 get_device(&cxlmd->dev); in cxl_endpoint_port_probe() 132 rc = devm_add_action_or_reset(&port->dev, schedule_detach, cxlmd); in cxl_endpoint_port_probe() 286 int devm_cxl_add_endpoint(struct device *host, struct cxl_memdev *cxlmd, in devm_cxl_add_endpoint() argument 301 ep = cxl_ep_load(iter, cxlmd); in devm_cxl_add_endpoint() 306 endpoint = devm_cxl_add_port(host, &cxlmd->dev, CXL_RESOURCE_NONE, in devm_cxl_add_endpoint() 311 rc = cxl_endpoint_autoremove(cxlmd, endpoint); in devm_cxl_add_endpoint() 316 dev_err(&cxlmd->dev, "%s failed probe\n", in devm_cxl_add_endpoint()
|
| H A D | pci.c | 780 struct cxl_memdev *cxlmd = cxlds->cxlmd; in rcd_pcie_cap_emit() local 784 cxl_mem_find_port(cxlmd, &dport); in rcd_pcie_cap_emit() 864 struct cxl_memdev *cxlmd; in cxl_pci_probe() local 951 cxlmd = devm_cxl_add_memdev(cxlds, NULL); in cxl_pci_probe() 952 if (IS_ERR(cxlmd)) in cxl_pci_probe() 953 return PTR_ERR(cxlmd); in cxl_pci_probe() 959 rc = devm_cxl_sanitize_setup_notifier(&pdev->dev, cxlmd); in cxl_pci_probe() 963 rc = devm_cxl_setup_fwctl(&pdev->dev, cxlmd); in cxl_pci_probe() 986 rc = devm_cxl_pmu_add(cxlds->dev, &pmu_regs, cxlmd->id, i, CXL_PMU_MEMDEV); in cxl_pci_probe() 1012 struct cxl_memdev *cxlmd = cxlds->cxlmd; in cxl_slot_reset() local [all …]
|
| H A D | cxl.h | 583 struct cxl_memdev *cxlmd; member 590 struct cxl_memdev *cxlmd; member 803 int devm_cxl_add_endpoint(struct device *host, struct cxl_memdev *cxlmd, 812 int devm_cxl_enumerate_ports(struct cxl_memdev *cxlmd); 817 struct cxl_port *cxl_mem_find_port(struct cxl_memdev *cxlmd, 819 bool schedule_cxl_memdev_detach(struct cxl_memdev *cxlmd); 855 int cxl_endpoint_autoremove(struct cxl_memdev *cxlmd, struct cxl_port *endpoint); 933 struct cxl_memdev *cxlmd); 975 void cxl_memdev_update_perf(struct cxl_memdev *cxlmd);
|
| /linux/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/tools/testing/cxl/test/ |
| H A D | mock.c | 227 struct cxl_memdev *cxlmd = to_cxl_memdev(port->uport_dev); in __wrap_cxl_endpoint_parse_cdat() local 229 if (ops && ops->is_mock_dev(cxlmd->dev.parent)) in __wrap_cxl_endpoint_parse_cdat()
|
| H A D | cxl.c | 781 struct cxl_memdev *cxlmd; in mock_init_hdm_decoder() local 790 cxlmd = cxled_to_memdev(cxled); in mock_init_hdm_decoder() 791 WARN_ON(!dev_is_platform(cxlmd->dev.parent)); in mock_init_hdm_decoder() 792 pdev = to_platform_device(cxlmd->dev.parent); in mock_init_hdm_decoder() 1090 struct cxl_memdev *cxlmd = to_cxl_memdev(port->uport_dev); in mock_cxl_endpoint_parse_cdat() local 1091 struct cxl_dev_state *cxlds = cxlmd->cxlds; in mock_cxl_endpoint_parse_cdat() 1108 cxl_memdev_update_perf(cxlmd); in mock_cxl_endpoint_parse_cdat()
|