/Linux-v6.1/drivers/cxl/ |
D | pci.c | 34 #define cxl_doorbell_busy(cxlds) \ argument 35 (readl((cxlds)->regs.mbox + CXLDEV_MBOX_CTRL_OFFSET) & \ 54 static int cxl_pci_mbox_wait_for_doorbell(struct cxl_dev_state *cxlds) in cxl_pci_mbox_wait_for_doorbell() argument 59 while (cxl_doorbell_busy(cxlds)) { in cxl_pci_mbox_wait_for_doorbell() 64 if (!cxl_doorbell_busy(cxlds)) in cxl_pci_mbox_wait_for_doorbell() 71 dev_dbg(cxlds->dev, "Doorbell wait took %dms", in cxl_pci_mbox_wait_for_doorbell() 109 static int __cxl_pci_mbox_send_cmd(struct cxl_dev_state *cxlds, in __cxl_pci_mbox_send_cmd() argument 112 void __iomem *payload = cxlds->regs.mbox + CXLDEV_MBOX_PAYLOAD_OFFSET; in __cxl_pci_mbox_send_cmd() 113 struct device *dev = cxlds->dev; in __cxl_pci_mbox_send_cmd() 118 lockdep_assert_held(&cxlds->mbox_mutex); in __cxl_pci_mbox_send_cmd() [all …]
|
D | pmem.c | 23 static void clear_exclusive(void *cxlds) in clear_exclusive() argument 25 clear_exclusive_cxl_commands(cxlds, exclusive_cmds); in clear_exclusive() 57 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_nvdimm_probe() local 72 set_exclusive_cxl_commands(cxlds, exclusive_cmds); in cxl_nvdimm_probe() 73 rc = devm_add_action_or_reset(dev, clear_exclusive, cxlds); in cxl_nvdimm_probe() 104 static int cxl_pmem_get_config_size(struct cxl_dev_state *cxlds, in cxl_pmem_get_config_size() argument 112 .config_size = cxlds->lsa_size, in cxl_pmem_get_config_size() 113 .max_xfer = cxlds->payload_size - sizeof(struct cxl_mbox_set_lsa), in cxl_pmem_get_config_size() 119 static int cxl_pmem_get_config_data(struct cxl_dev_state *cxlds, in cxl_pmem_get_config_data() argument 136 rc = cxl_mbox_send_cmd(cxlds, CXL_MBOX_OP_GET_LSA, &get_lsa, in cxl_pmem_get_config_data() [all …]
|
D | cxlmem.h | 43 struct cxl_dev_state *cxlds; member 77 struct cxl_memdev *devm_cxl_add_memdev(struct cxl_dev_state *cxlds); 250 int (*mbox_send)(struct cxl_dev_state *cxlds, struct cxl_mbox_cmd *cmd); 375 int cxl_mbox_send_cmd(struct cxl_dev_state *cxlds, u16 opcode, void *in, 377 int cxl_dev_state_identify(struct cxl_dev_state *cxlds); 378 int cxl_await_media_ready(struct cxl_dev_state *cxlds); 379 int cxl_enumerate_cmds(struct cxl_dev_state *cxlds); 380 int cxl_mem_create_range_info(struct cxl_dev_state *cxlds); 382 void set_exclusive_cxl_commands(struct cxl_dev_state *cxlds, unsigned long *cmds); 383 void clear_exclusive_cxl_commands(struct cxl_dev_state *cxlds, unsigned long *cmds); [all …]
|
D | port.c | 54 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_port_probe() local 64 rc = cxl_hdm_decode_init(cxlds, cxlhdm); in cxl_port_probe() 68 rc = cxl_await_media_ready(cxlds); in cxl_port_probe()
|
D | cxlpci.h | 76 int cxl_hdm_decode_init(struct cxl_dev_state *cxlds, struct cxl_hdm *cxlhdm);
|
D | mem.c | 43 cxl_dpa_debug(file, cxlmd->cxlds); in cxl_mem_dpa_show()
|
/Linux-v6.1/drivers/cxl/core/ |
D | mbox.c | 164 int cxl_mbox_send_cmd(struct cxl_dev_state *cxlds, u16 opcode, void *in, in cxl_mbox_send_cmd() argument 177 if (in_size > cxlds->payload_size || out_size > cxlds->payload_size) in cxl_mbox_send_cmd() 180 rc = cxlds->mbox_send(cxlds, &mbox_cmd); in cxl_mbox_send_cmd() 257 struct cxl_dev_state *cxlds, u16 opcode, in cxl_mbox_cmd_ctor() argument 272 dev_dbg(cxlds->dev, "%s: input payload not allowed\n", in cxl_mbox_cmd_ctor() 281 mbox->size_out = cxlds->payload_size; in cxl_mbox_cmd_ctor() 303 struct cxl_dev_state *cxlds) in cxl_to_mem_cmd_raw() argument 313 if (send_cmd->out.size > cxlds->payload_size) in cxl_to_mem_cmd_raw() 319 dev_WARN_ONCE(cxlds->dev, true, "raw command path used\n"); in cxl_to_mem_cmd_raw() 335 struct cxl_dev_state *cxlds) in cxl_to_mem_cmd() argument [all …]
|
D | memdev.c | 40 struct cxl_dev_state *cxlds = cxlmd->cxlds; in firmware_version_show() local 42 return sysfs_emit(buf, "%.16s\n", cxlds->firmware_version); in firmware_version_show() 50 struct cxl_dev_state *cxlds = cxlmd->cxlds; in payload_max_show() local 52 return sysfs_emit(buf, "%zu\n", cxlds->payload_size); in payload_max_show() 60 struct cxl_dev_state *cxlds = cxlmd->cxlds; in label_storage_size_show() local 62 return sysfs_emit(buf, "%zu\n", cxlds->lsa_size); in label_storage_size_show() 70 struct cxl_dev_state *cxlds = cxlmd->cxlds; in ram_size_show() local 71 unsigned long long len = resource_size(&cxlds->ram_res); in ram_size_show() 83 struct cxl_dev_state *cxlds = cxlmd->cxlds; in pmem_size_show() local 84 unsigned long long len = resource_size(&cxlds->pmem_res); in pmem_size_show() [all …]
|
D | pci.c | 110 int cxl_await_media_ready(struct cxl_dev_state *cxlds) in cxl_await_media_ready() argument 112 struct pci_dev *pdev = to_pci_dev(cxlds->dev); in cxl_await_media_ready() 113 int d = cxlds->cxl_dvsec; in cxl_await_media_ready() 139 md_status = readq(cxlds->regs.memdev + CXLMDEV_STATUS_OFFSET); in cxl_await_media_ready() 147 static int wait_for_valid(struct cxl_dev_state *cxlds) in wait_for_valid() argument 149 struct pci_dev *pdev = to_pci_dev(cxlds->dev); in wait_for_valid() 150 int d = cxlds->cxl_dvsec, rc; in wait_for_valid() 179 static int cxl_set_mem_enable(struct cxl_dev_state *cxlds, u16 val) in cxl_set_mem_enable() argument 181 struct pci_dev *pdev = to_pci_dev(cxlds->dev); in cxl_set_mem_enable() 182 int d = cxlds->cxl_dvsec; in cxl_set_mem_enable() [all …]
|
D | hdm.c | 146 void cxl_dpa_debug(struct seq_file *file, struct cxl_dev_state *cxlds) in cxl_dpa_debug() argument 151 for (p1 = cxlds->dpa_res.child; p1; p1 = p1->sibling) { in cxl_dpa_debug() 168 struct cxl_dev_state *cxlds = cxlmd->cxlds; in __cxl_dpa_release() local 176 __release_region(&cxlds->dpa_res, res->start, resource_size(res)); in __cxl_dpa_release() 178 __release_region(&cxlds->dpa_res, skip_start, cxled->skip); in __cxl_dpa_release() 211 struct cxl_dev_state *cxlds = cxlmd->cxlds; in __cxl_dpa_reserve() local 239 res = __request_region(&cxlds->dpa_res, base - skipped, skipped, in __cxl_dpa_reserve() 248 res = __request_region(&cxlds->dpa_res, base, len, in __cxl_dpa_reserve() 254 __release_region(&cxlds->dpa_res, base - skipped, in __cxl_dpa_reserve() 261 if (resource_contains(&cxlds->pmem_res, res)) in __cxl_dpa_reserve() [all …]
|
D | port.c | 1129 struct cxl_dev_state *cxlds = cxlmd->cxlds; in devm_cxl_add_endpoint() local 1146 cxlds->component_reg_phys, parent_dport); in devm_cxl_add_endpoint()
|
/Linux-v6.1/tools/testing/cxl/test/ |
D | mem.c | 79 static int mock_get_log(struct cxl_dev_state *cxlds, struct cxl_mbox_cmd *cmd) in mock_get_log() argument 89 if (length > cxlds->payload_size) in mock_get_log() 103 static int mock_id(struct cxl_dev_state *cxlds, struct cxl_mbox_cmd *cmd) in mock_id() argument 122 static int mock_partition_info(struct cxl_dev_state *cxlds, in mock_partition_info() argument 140 static int mock_get_lsa(struct cxl_dev_state *cxlds, struct cxl_mbox_cmd *cmd) in mock_get_lsa() argument 143 void *lsa = dev_get_drvdata(cxlds->dev); in mock_get_lsa() 159 static int mock_set_lsa(struct cxl_dev_state *cxlds, struct cxl_mbox_cmd *cmd) in mock_set_lsa() argument 162 void *lsa = dev_get_drvdata(cxlds->dev); in mock_set_lsa() 176 static int mock_health_info(struct cxl_dev_state *cxlds, in mock_health_info() argument 206 static int cxl_mock_mbox_send(struct cxl_dev_state *cxlds, struct cxl_mbox_cmd *cmd) in cxl_mock_mbox_send() argument [all …]
|
D | mock.c | 196 int __wrap_cxl_await_media_ready(struct cxl_dev_state *cxlds) in __wrap_cxl_await_media_ready() argument 201 if (ops && ops->is_mock_dev(cxlds->dev)) in __wrap_cxl_await_media_ready() 204 rc = cxl_await_media_ready(cxlds); in __wrap_cxl_await_media_ready() 211 int __wrap_cxl_hdm_decode_init(struct cxl_dev_state *cxlds, in __wrap_cxl_hdm_decode_init() argument 217 if (ops && ops->is_mock_dev(cxlds->dev)) in __wrap_cxl_hdm_decode_init() 220 rc = cxl_hdm_decode_init(cxlds, cxlhdm); in __wrap_cxl_hdm_decode_init()
|