| /linux/drivers/cxl/ |
| H A D | pci.c | 38 #define cxl_doorbell_busy(cxlds) \ argument 39 (readl((cxlds)->regs.mbox + CXLDEV_MBOX_CTRL_OFFSET) & \ 58 static int cxl_pci_mbox_wait_for_doorbell(struct cxl_dev_state *cxlds) in cxl_pci_mbox_wait_for_doorbell() argument 63 while (cxl_doorbell_busy(cxlds)) { in cxl_pci_mbox_wait_for_doorbell() 68 if (!cxl_doorbell_busy(cxlds)) in cxl_pci_mbox_wait_for_doorbell() 75 dev_dbg(cxlds->dev, "Doorbell wait took %dms", in cxl_pci_mbox_wait_for_doorbell() 96 struct cxl_dev_state *cxlds; member 99 static int cxl_request_irq(struct cxl_dev_state *cxlds, int irq, in cxl_request_irq() argument 102 struct device *dev = cxlds->dev; in cxl_request_irq() 108 dev_id->cxlds = cxlds; in cxl_request_irq() [all …]
|
| H A D | pmem.c | 53 struct cxl_dev_state *cxlds = cxl_nvd->cxlmd->cxlds; in id_show() local 55 return sysfs_emit(buf, "%llu\n", cxlds->serial); in id_show() 107 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_nvdimm_arm_dirty_shutdown_tracking() local 108 struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlds); in cxl_nvdimm_arm_dirty_shutdown_tracking() 125 if (!cxl_gpf_get_dvsec(cxlds->dev)) in cxl_nvdimm_arm_dirty_shutdown_tracking() 141 struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds); in cxl_nvdimm_probe() 191 struct cxl_mailbox *cxl_mbox = &mds->cxlds.cxl_mbox; in cxl_pmem_get_config_size() 209 struct cxl_mailbox *cxl_mbox = &mds->cxlds.cxl_mbox; in cxl_pmem_get_config_data() 241 struct cxl_mailbox *cxl_mbox = &mds->cxlds.cxl_mbox; in cxl_pmem_set_config_data() 286 struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds); in cxl_pmem_nvdimm_ctl() [all …]
|
| H A D | cxlmem.h | 58 struct cxl_dev_state *cxlds; member 127 struct cxl_memdev *devm_cxl_add_classdev(struct cxl_dev_state *cxlds); 128 struct cxl_memdev *__devm_cxl_add_memdev(struct cxl_dev_state *cxlds, 147 int cxl_dpa_setup(struct cxl_dev_state *cxlds, const struct cxl_dpa_info *info); 396 static inline resource_size_t cxl_pmem_size(struct cxl_dev_state *cxlds) in cxl_pmem_size() argument 402 for (int i = 0; i < cxlds->nr_partitions; i++) in cxl_pmem_size() 403 if (cxlds->part[i].mode == CXL_PARTMODE_PMEM) in cxl_pmem_size() 404 return resource_size(&cxlds->part[i].res); in cxl_pmem_size() 439 struct cxl_dev_state cxlds; member 456 to_cxl_memdev_state(struct cxl_dev_state *cxlds) in to_cxl_memdev_state() argument [all …]
|
| H A D | security.c | 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() 74 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_pmem_security_change_key() 100 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in __cxl_pmem_security_disable() 135 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_pmem_security_freeze() 148 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_pmem_security_unlock() 173 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_pmem_security_passphrase_erase()
|
| /linux/drivers/cxl/core/ |
| H A D | memdev.c | 45 struct cxl_dev_state *cxlds = cxlmd->cxlds; in firmware_version_show() local 46 struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlds); in firmware_version_show() 58 struct cxl_dev_state *cxlds = cxlmd->cxlds; in payload_max_show() local 59 struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlds); in payload_max_show() 63 return sysfs_emit(buf, "%zu\n", cxlds->cxl_mbox.payload_size); in payload_max_show() 71 struct cxl_dev_state *cxlds = cxlmd->cxlds; in label_storage_size_show() local 72 struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlds); in label_storage_size_show() 80 static resource_size_t cxl_ram_size(struct cxl_dev_state *cxlds) in cxl_ram_size() argument 83 if (cxlds->part[0].mode != CXL_PARTMODE_RAM) in cxl_ram_size() 85 return resource_size(&cxlds->part[0].res); in cxl_ram_size() [all …]
|
| H A D | hdm.c | 199 void cxl_dpa_debug(struct seq_file *file, struct cxl_dev_state *cxlds) in cxl_dpa_debug() argument 204 for (p1 = cxlds->dpa_res.child; p1; p1 = p1->sibling) { in cxl_dpa_debug() 213 static resource_size_t __adjust_skip(struct cxl_dev_state *cxlds, in __adjust_skip() argument 220 for (int i = 0; i < cxlds->nr_partitions; i++) { in __adjust_skip() 221 const struct resource *part_res = &cxlds->part[i].res; in __adjust_skip() 233 __release_region(&cxlds->dpa_res, adjust_start, size); in __adjust_skip() 234 else if (!__request_region(&cxlds->dpa_res, adjust_start, size, in __adjust_skip() 251 struct cxl_dev_state *cxlds = cxlmd->cxlds; in __cxl_dpa_release() local 259 __release_region(&cxlds->dpa_res, res->start, resource_size(res)); in __cxl_dpa_release() 261 release_skip(cxlds, skip_start, cxled->skip); in __cxl_dpa_release() [all …]
|
| H A D | pci.c | 75 static int cxl_dvsec_mem_range_valid(struct cxl_dev_state *cxlds, int id) in cxl_dvsec_mem_range_valid() argument 77 struct pci_dev *pdev = to_pci_dev(cxlds->dev); in cxl_dvsec_mem_range_valid() 78 int d = cxlds->cxl_dvsec; in cxl_dvsec_mem_range_valid() 111 static int cxl_dvsec_mem_range_active(struct cxl_dev_state *cxlds, int id) in cxl_dvsec_mem_range_active() argument 113 struct pci_dev *pdev = to_pci_dev(cxlds->dev); in cxl_dvsec_mem_range_active() 114 int d = cxlds->cxl_dvsec; in cxl_dvsec_mem_range_active() 149 int cxl_await_media_ready(struct cxl_dev_state *cxlds) in cxl_await_media_ready() argument 151 struct pci_dev *pdev = to_pci_dev(cxlds->dev); in cxl_await_media_ready() 152 int d = cxlds->cxl_dvsec; in cxl_await_media_ready() 164 rc = cxl_dvsec_mem_range_valid(cxlds, i); in cxl_await_media_ready() [all …]
|
| H A D | features.c | 49 struct cxl_features_state *to_cxlfs(struct cxl_dev_state *cxlds) in to_cxlfs() argument 51 return cxlds->cxlfs; in to_cxlfs() 84 struct cxl_mailbox *cxl_mbox = &cxlfs->cxlds->cxl_mbox; in get_supported_features() 186 struct cxl_dev_state *cxlds = cxlfs->cxlds; in free_cxlfs() local 188 cxlds->cxlfs = NULL; in free_cxlfs() 199 int devm_cxl_setup_features(struct cxl_dev_state *cxlds) in devm_cxl_setup_features() argument 201 struct cxl_mailbox *cxl_mbox = &cxlds->cxl_mbox; in devm_cxl_setup_features() 211 cxlfs->cxlds = cxlds; in devm_cxl_setup_features() 217 cxlds->cxlfs = cxlfs; in devm_cxl_setup_features() 219 return devm_add_action_or_reset(cxlds->dev, free_cxlfs, no_free_ptr(cxlfs)); in devm_cxl_setup_features() [all …]
|
| H A D | ras.c | 270 struct cxl_dev_state *cxlds = pci_get_drvdata(pdev); in cxl_cor_error_detected() local 271 struct cxl_memdev *cxlmd = cxlds->cxlmd; in cxl_cor_error_detected() 272 struct device *dev = &cxlds->cxlmd->dev; in cxl_cor_error_detected() 282 if (cxlds->rcd) in cxl_cor_error_detected() 283 cxl_handle_rdport_errors(cxlds); in cxl_cor_error_detected() 285 cxl_handle_cor_ras(&cxlds->cxlmd->dev, cxlmd->endpoint->regs.ras); in cxl_cor_error_detected() 293 struct cxl_dev_state *cxlds = pci_get_drvdata(pdev); in cxl_error_detected() local 294 struct cxl_memdev *cxlmd = cxlds->cxlmd; in cxl_error_detected() 306 if (cxlds->rcd) in cxl_error_detected() 307 cxl_handle_rdport_errors(cxlds); in cxl_error_detected() [all …]
|
| H A D | cdat.c | 258 static void cxl_memdev_set_qos_class(struct cxl_dev_state *cxlds, in cxl_memdev_set_qos_class() argument 261 struct device *dev = cxlds->dev; in cxl_memdev_set_qos_class() 268 for (int i = 0; i < cxlds->nr_partitions; i++) { in cxl_memdev_set_qos_class() 269 struct resource *res = &cxlds->part[i].res; in cxl_memdev_set_qos_class() 277 &cxlds->part[i].perf); in cxl_memdev_set_qos_class() 350 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_qos_class_verify() local 374 for (int i = 0; i < cxlds->nr_partitions; i++) { in cxl_qos_class_verify() 375 struct cxl_dpa_perf *perf = &cxlds->part[i].perf; in cxl_qos_class_verify() 382 for (int i = 0; i < cxlds->nr_partitions; i++) { in cxl_qos_class_verify() 383 struct cxl_dpa_perf *perf = &cxlds->part[i].perf; in cxl_qos_class_verify() [all …]
|
| H A D | mbox.c | 670 struct cxl_mailbox *cxl_mbox = &mds->cxlds.cxl_mbox; in cxl_xfer_log() 759 struct cxl_mailbox *cxl_mbox = &mds->cxlds.cxl_mbox; in cxl_walk_cel() 762 struct device *dev = mds->cxlds.dev; in cxl_walk_cel() 799 struct cxl_mailbox *cxl_mbox = &mds->cxlds.cxl_mbox; in cxl_get_gsl() 848 struct cxl_mailbox *cxl_mbox = &mds->cxlds.cxl_mbox; in cxl_enumerate_cmds() 850 struct device *dev = mds->cxlds.dev; in cxl_enumerate_cmds() 997 struct cxl_mailbox *cxl_mbox = &mds->cxlds.cxl_mbox; in cxl_clear_event_record() 1038 dev_dbg(mds->cxlds.dev, "Event log '%d': Clearing %u\n", log, in cxl_clear_event_record() 1067 struct cxl_mailbox *cxl_mbox = &mds->cxlds.cxl_mbox; in cxl_mem_get_records_log() 1068 struct cxl_memdev *cxlmd = mds->cxlds.cxlmd; in cxl_mem_get_records_log() [all …]
|
| H A D | edac.c | 113 cxl_mbox = &cxl_ps_ctx->cxlmd->cxlds->cxl_mbox; in cxl_scrub_get_attrbs() 129 cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_scrub_get_attrbs() 173 cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_scrub_set_attrbs_region() 211 cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_scrub_set_attrbs_device() 375 feat_entry = cxl_feature_info(to_cxlfs(cxlmd->cxlds), in cxl_memdev_scrub_init() 397 rc = cxl_mem_scrub_get_attrbs(&cxlmd->cxlds->cxl_mbox, &cap, &cycle, in cxl_memdev_scrub_init() 433 feat_entry = cxl_feature_info(to_cxlfs(cxlmd->cxlds), in cxl_region_scrub_init() 442 rc = cxl_mem_scrub_get_attrbs(&cxlmd->cxlds->cxl_mbox, &cap, in cxl_region_scrub_init() 551 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_mem_ecs_get_attrbs() 581 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_mem_ecs_set_attrbs() [all …]
|
| H A D | ras_rch.c | 113 void cxl_handle_rdport_errors(struct cxl_dev_state *cxlds) in cxl_handle_rdport_errors() argument 115 struct pci_dev *pdev = to_pci_dev(cxlds->dev); in cxl_handle_rdport_errors() 133 cxl_handle_cor_ras(&cxlds->cxlmd->dev, dport->regs.ras); in cxl_handle_rdport_errors() 135 cxl_handle_ras(&cxlds->cxlmd->dev, dport->regs.ras); in cxl_handle_rdport_errors()
|
| H A D | core.h | 194 void cxl_handle_rdport_errors(struct cxl_dev_state *cxlds); 206 static inline void cxl_handle_rdport_errors(struct cxl_dev_state *cxlds) { } in cxl_handle_rdport_errors() argument 213 int cxl_hdm_decode_init(struct cxl_dev_state *cxlds, struct cxl_hdm *cxlhdm,
|
| H A D | region.c | 266 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_region_decode_reset() local 269 if (cxlds->rcd) in cxl_region_decode_reset() 1670 struct cxl_dev_state *cxlds; in cxl_region_teardown_targets() local 1686 cxlds = cxlmd->cxlds; in cxl_region_teardown_targets() 1688 if (cxlds->rcd) in cxl_region_teardown_targets() 1705 struct cxl_dev_state *cxlds; in cxl_region_setup_targets() local 1714 cxlds = cxlmd->cxlds; in cxl_region_setup_targets() 1717 if (!cxlds->rcd) { in cxl_region_setup_targets() 2055 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_region_attach() local 2075 if (cxlds->part[cxled->part].mode != cxlr->mode) { in cxl_region_attach() [all …]
|
| H A D | trace.h | 97 __entry->serial = cxlmd->cxlds->serial; 166 __entry->serial = cxlmd->cxlds->serial; 202 __entry->serial = cxlmd->cxlds->serial; 270 __entry->serial = (cxlmd)->cxlds->serial; \ 1066 __entry->serial = cxlmd->cxlds->serial;
|
| H A D | port.c | 202 struct cxl_dev_state *cxlds = cxlmd->cxlds; in mode_show() local 210 desc = cxlds->part[part].res.name; in mode_show() 848 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_port_add() local 859 port->reg_map = cxlds->reg_map; in cxl_port_add() 1817 if (cxlmd->cxlds->rcd) in devm_cxl_enumerate_ports() 2397 if (cxlmd->cxlds->rcd) in cxl_endpoint_get_perf_coordinates()
|
| H A D | pmem.c | 229 sprintf(cxl_nvd->dev_id, "%llu", cxlmd->cxlds->serial); in cxl_nvdimm_alloc()
|
| /linux/tools/testing/cxl/test/ |
| H A D | accel.c | 12 struct cxl_dev_state cxlds; member 20 struct cxl_dev_state *cxlds; in cxl_mock_accel_probe() local 27 struct mock_cxl_accel, cxlds, in cxl_mock_accel_probe() 32 cxlds = &cxl_accel->cxlds; in cxl_mock_accel_probe() 33 cxlds->media_ready = true; in cxl_mock_accel_probe() 34 rc = cxl_set_capacity(cxlds, SZ_512M); in cxl_mock_accel_probe() 38 cxlmd = devm_cxl_probe_mem(cxlds, &mock_range); in cxl_mock_accel_probe()
|
| H A D | mem.c | 500 static int mock_set_timestamp(struct cxl_dev_state *cxlds, in mock_set_timestamp() argument 503 struct cxl_mockmem_data *mdata = dev_get_drvdata(cxlds->dev); in mock_set_timestamp() 580 struct cxl_mailbox *cxl_mbox = &mds->cxlds.cxl_mbox; in mock_get_log() 669 struct cxl_mailbox *cxl_mbox = &mds->cxlds.cxl_mbox; in cxl_mockmem_sanitize_work() 677 dev_dbg(mds->cxlds.dev, "sanitize complete\n"); in cxl_mockmem_sanitize_work() 684 struct cxl_mailbox *cxl_mbox = &mds->cxlds.cxl_mbox; in mock_sanitize() 706 dev_dbg(mds->cxlds.dev, "sanitize issued\n"); in mock_sanitize() 1137 struct cxl_dev_state *cxlds; member 1142 cxl_get_injected_po(struct cxl_dev_state *cxlds, u64 offset, u64 length) in cxl_get_injected_po() argument 1153 if (mock_poison_list[i].cxlds != cxlds) in cxl_get_injected_po() [all …]
|
| H A D | mock.c | 184 int __wrap_cxl_await_media_ready(struct cxl_dev_state *cxlds) in __wrap_devm_cxl_endpoint_decoders_setup() 189 if (ops && ops->is_mock_dev(cxlds->dev)) in __wrap_devm_cxl_endpoint_decoders_setup() 192 rc = cxl_await_media_ready(cxlds); in __wrap_devm_cxl_endpoint_decoders_setup() 195 __wrap_cxl_await_media_ready(struct cxl_dev_state * cxlds) __wrap_cxl_await_media_ready() argument
|
| /linux/drivers/net/ethernet/sfc/ |
| H A D | efx_cxl.c | 44 struct efx_cxl, cxlds, false); in efx_cxl_init() 50 &cxl->cxlds.reg_map); in efx_cxl_init() 56 if (!cxl->cxlds.reg_map.component_map.hdm_decoder.valid) { in efx_cxl_init() 61 if (!cxl->cxlds.reg_map.component_map.ras.valid) { in efx_cxl_init() 70 cxl->cxlds.media_ready = true; in efx_cxl_init() 72 if (cxl_set_capacity(&cxl->cxlds, EFX_CTPIO_BUFFER_SIZE)) { in efx_cxl_init() 77 cxl->cxlmd = devm_cxl_probe_mem(&cxl->cxlds, &cxl_pio_range); in efx_cxl_init()
|
| H A D | efx_cxl.h | 21 struct cxl_dev_state cxlds; member
|
| /linux/include/cxl/ |
| H A D | features.h | 56 struct cxl_dev_state *cxlds; member 67 struct cxl_features_state *to_cxlfs(struct cxl_dev_state *cxlds); 68 int devm_cxl_setup_features(struct cxl_dev_state *cxlds); 71 static inline struct cxl_features_state *to_cxlfs(struct cxl_dev_state *cxlds) in to_cxlfs() argument 76 static inline int devm_cxl_setup_features(struct cxl_dev_state *cxlds) in devm_cxl_setup_features() argument
|
| H A D | cxl.h | 227 struct cxl_memdev *devm_cxl_probe_mem(struct cxl_dev_state *cxlds, 230 int cxl_set_capacity(struct cxl_dev_state *cxlds, u64 capacity);
|