/kernel/linux/linux-6.6/drivers/cxl/core/ |
H A D | hdm.c | 227 static void __cxl_dpa_release(struct cxl_endpoint_decoder *cxled) in __cxl_dpa_release() argument 229 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in __cxl_dpa_release() 230 struct cxl_port *port = cxled_to_port(cxled); in __cxl_dpa_release() 232 struct resource *res = cxled->dpa_res; in __cxl_dpa_release() 238 skip_start = res->start - cxled->skip; in __cxl_dpa_release() 240 if (cxled->skip) in __cxl_dpa_release() 241 __release_region(&cxlds->dpa_res, skip_start, cxled->skip); in __cxl_dpa_release() 242 cxled->skip = 0; in __cxl_dpa_release() 243 cxled->dpa_res = NULL; in __cxl_dpa_release() 244 put_device(&cxled in __cxl_dpa_release() 248 cxl_dpa_release(void *cxled) cxl_dpa_release() argument 259 devm_cxl_dpa_release(struct cxl_endpoint_decoder *cxled) devm_cxl_dpa_release() argument 268 __cxl_dpa_reserve(struct cxl_endpoint_decoder *cxled, resource_size_t base, resource_size_t len, resource_size_t skipped) __cxl_dpa_reserve() argument 342 devm_cxl_dpa_reserve(struct cxl_endpoint_decoder *cxled, resource_size_t base, resource_size_t len, resource_size_t skipped) devm_cxl_dpa_reserve() argument 360 cxl_dpa_size(struct cxl_endpoint_decoder *cxled) cxl_dpa_size() argument 372 cxl_dpa_resource_start(struct cxl_endpoint_decoder *cxled) cxl_dpa_resource_start() argument 383 cxl_dpa_free(struct cxl_endpoint_decoder *cxled) cxl_dpa_free() argument 418 cxl_dpa_set_mode(struct cxl_endpoint_decoder *cxled, enum cxl_decoder_mode mode) cxl_dpa_set_mode() argument 464 cxl_dpa_alloc(struct cxl_endpoint_decoder *cxled, unsigned long long size) cxl_dpa_alloc() argument 650 struct cxl_endpoint_decoder *cxled = cxl_decoder_commit() local 688 struct cxl_endpoint_decoder *cxled = cxl_decoder_commit() local 747 struct cxl_endpoint_decoder *cxled; cxl_decoder_reset() local 760 struct cxl_endpoint_decoder *cxled; cxl_setup_hdm_decoder_from_dvsec() local 801 struct cxl_endpoint_decoder *cxled = NULL; init_hdm_decoder() local 994 struct cxl_endpoint_decoder *cxled; devm_cxl_enumerate_decoders() local [all...] |
H A D | region.c | 156 struct cxl_endpoint_decoder *cxled = p->targets[i]; in cxl_region_decode_reset() local 157 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_region_decode_reset() 158 struct cxl_port *iter = cxled_to_port(cxled); in cxl_region_decode_reset() 183 rc = cxled->cxld.reset(&cxled->cxld); in cxl_region_decode_reset() 217 struct cxl_endpoint_decoder *cxled = p->targets[i]; in cxl_region_decode_commit() local 218 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_region_decode_commit() 225 for (iter = cxled_to_port(cxled); !is_cxl_root(iter); in cxl_region_decode_commit() 244 cxled->cxld.reset(&cxled in cxl_region_decode_commit() 667 struct cxl_endpoint_decoder *cxled; show_targetN() local 733 cxl_region_find_decoder(struct cxl_port *port, struct cxl_endpoint_decoder *cxled, struct cxl_region *cxlr) cxl_region_find_decoder() argument 783 alloc_region_ref(struct cxl_port *port, struct cxl_region *cxlr, struct cxl_endpoint_decoder *cxled) alloc_region_ref() argument 857 cxl_rr_ep_add(struct cxl_region_ref *cxl_rr, struct cxl_endpoint_decoder *cxled) cxl_rr_ep_add() argument 882 cxl_rr_alloc_decoder(struct cxl_port *port, struct cxl_region *cxlr, struct cxl_endpoint_decoder *cxled, struct cxl_region_ref *cxl_rr) cxl_rr_alloc_decoder() argument 942 cxl_port_attach_region(struct cxl_port *port, struct cxl_region *cxlr, struct cxl_endpoint_decoder *cxled, int pos) cxl_port_attach_region() argument 1028 cxl_port_detach_region(struct cxl_port *port, struct cxl_region *cxlr, struct cxl_endpoint_decoder *cxled) cxl_port_detach_region() argument 1069 check_last_peer(struct cxl_endpoint_decoder *cxled, struct cxl_ep *ep, struct cxl_region_ref *cxl_rr, int distance) check_last_peer() argument 1109 cxl_port_setup_targets(struct cxl_port *port, struct cxl_region *cxlr, struct cxl_endpoint_decoder *cxled) cxl_port_setup_targets() argument 1322 struct cxl_endpoint_decoder *cxled; cxl_region_teardown_targets() local 1357 struct cxl_endpoint_decoder *cxled; cxl_region_setup_targets() local 1404 cxl_region_validate_position(struct cxl_region *cxlr, struct cxl_endpoint_decoder *cxled, int pos) cxl_region_validate_position() argument 1452 cxl_region_attach_position(struct cxl_region *cxlr, struct cxl_root_decoder *cxlrd, struct cxl_endpoint_decoder *cxled, const struct cxl_dport *dport, int pos) cxl_region_attach_position() argument 1484 cxl_region_attach_auto(struct cxl_region *cxlr, struct cxl_endpoint_decoder *cxled, int pos) cxl_region_attach_auto() argument 1603 cxl_calc_interleave_pos(struct cxl_endpoint_decoder *cxled) cxl_calc_interleave_pos() argument 1666 struct cxl_endpoint_decoder *cxled = p->targets[i]; cxl_region_sort_targets() local 1685 cxl_region_attach(struct cxl_region *cxlr, struct cxl_endpoint_decoder *cxled, int pos) cxl_region_attach() argument 1834 struct cxl_endpoint_decoder *cxled = p->targets[i]; cxl_region_attach() local 1847 cxl_region_detach(struct cxl_endpoint_decoder *cxled) cxl_region_detach() argument 1907 cxl_decoder_kill_region(struct cxl_endpoint_decoder *cxled) cxl_decoder_kill_region() argument 1915 attach_target(struct cxl_region *cxlr, struct cxl_endpoint_decoder *cxled, int pos, unsigned int state) attach_target() argument 2442 struct cxl_endpoint_decoder *cxled; poison_by_decoder() local 2541 struct cxl_endpoint_decoder *cxled = p->targets[i]; cxl_pmem_region_alloc() local 2803 construct_region(struct cxl_root_decoder *cxlrd, struct cxl_endpoint_decoder *cxled) construct_region() argument 2886 cxl_add_to_region(struct cxl_port *root, struct cxl_endpoint_decoder *cxled) cxl_add_to_region() argument [all...] |
H A D | trace.c | 37 struct cxl_endpoint_decoder *cxled) in cxl_dpa_to_hpa() 41 int pos = cxled->pos; in cxl_dpa_to_hpa() 59 dpa_offset = dpa - cxl_dpa_resource_start(cxled); in cxl_dpa_to_hpa() 78 if (!cxl_is_hpa_in_range(hpa, cxlr, cxled->pos)) in cxl_dpa_to_hpa() 88 struct cxl_endpoint_decoder *cxled = NULL; in cxl_trace_hpa() local 91 cxled = p->targets[i]; in cxl_trace_hpa() 92 if (cxlmd == cxled_to_memdev(cxled)) in cxl_trace_hpa() 95 if (!cxled || cxlmd != cxled_to_memdev(cxled)) in cxl_trace_hpa() 98 return cxl_dpa_to_hpa(dpa, cxlr, cxled); in cxl_trace_hpa() 36 cxl_dpa_to_hpa(u64 dpa, struct cxl_region *cxlr, struct cxl_endpoint_decoder *cxled) cxl_dpa_to_hpa() argument [all...] |
H A D | core.h | 21 void cxl_decoder_kill_region(struct cxl_endpoint_decoder *cxled); 35 static inline void cxl_decoder_kill_region(struct cxl_endpoint_decoder *cxled) in cxl_decoder_kill_region() argument 61 int cxl_dpa_set_mode(struct cxl_endpoint_decoder *cxled, 63 int cxl_dpa_alloc(struct cxl_endpoint_decoder *cxled, unsigned long long size); 64 int cxl_dpa_free(struct cxl_endpoint_decoder *cxled); 65 resource_size_t cxl_dpa_size(struct cxl_endpoint_decoder *cxled); 66 resource_size_t cxl_dpa_resource_start(struct cxl_endpoint_decoder *cxled);
|
H A D | port.c | 194 struct cxl_endpoint_decoder *cxled = to_cxl_endpoint_decoder(dev); in mode_show() local 196 return sysfs_emit(buf, "%s\n", cxl_decoder_mode_name(cxled->mode)); in mode_show() 202 struct cxl_endpoint_decoder *cxled = to_cxl_endpoint_decoder(dev); in mode_store() local 213 rc = cxl_dpa_set_mode(cxled, mode); in mode_store() 224 struct cxl_endpoint_decoder *cxled = to_cxl_endpoint_decoder(dev); in dpa_resource_show() local 227 return sysfs_emit(buf, "%#llx\n", (u64)cxl_dpa_resource_start(cxled)); in dpa_resource_show() 234 struct cxl_endpoint_decoder *cxled = to_cxl_endpoint_decoder(dev); in dpa_size_show() local 235 resource_size_t size = cxl_dpa_size(cxled); in dpa_size_show() 243 struct cxl_endpoint_decoder *cxled = to_cxl_endpoint_decoder(dev); in dpa_size_store() local 254 rc = cxl_dpa_free(cxled); in dpa_size_store() 407 struct cxl_endpoint_decoder *cxled = to_cxl_endpoint_decoder(dev); cxl_endpoint_decoder_release() local 1771 struct cxl_endpoint_decoder *cxled; cxl_endpoint_decoder_alloc() local 1887 struct cxl_endpoint_decoder *cxled; cxld_unregister() local [all...] |
H A D | memdev.c | 262 struct cxl_endpoint_decoder *cxled; in __cxl_dpa_to_region() local 268 cxled = to_cxl_endpoint_decoder(dev); in __cxl_dpa_to_region() 269 if (!cxled->dpa_res || !resource_size(cxled->dpa_res)) in __cxl_dpa_to_region() 272 if (dpa > cxled->dpa_res->end || dpa < cxled->dpa_res->start) in __cxl_dpa_to_region() 276 dev_name(&cxled->cxld.region->dev)); in __cxl_dpa_to_region() 278 ctx->cxlr = cxled->cxld.region; in __cxl_dpa_to_region()
|
/kernel/linux/linux-6.6/drivers/cxl/ |
H A D | port.c | 35 struct cxl_endpoint_decoder *cxled; in discover_region() local 41 cxled = to_cxl_endpoint_decoder(dev); in discover_region() 42 if ((cxled->cxld.flags & CXL_DECODER_F_ENABLE) == 0) in discover_region() 45 if (cxled->state != CXL_DECODER_STATE_AUTO) in discover_region() 52 rc = cxl_add_to_region(root, cxled); in discover_region() 55 cxled->cxld.hpa_range.start, cxled->cxld.hpa_range.end); in discover_region()
|
H A D | cxlmem.h | 63 static inline struct cxl_port *cxled_to_port(struct cxl_endpoint_decoder *cxled) in cxled_to_port() argument 65 return to_cxl_port(cxled->cxld.dev.parent); in cxled_to_port() 74 cxled_to_memdev(struct cxl_endpoint_decoder *cxled) in cxled_to_memdev() argument 76 struct cxl_port *port = to_cxl_port(cxled->cxld.dev.parent); in cxled_to_memdev() 93 int devm_cxl_dpa_reserve(struct cxl_endpoint_decoder *cxled,
|
H A D | cxl.h | 801 struct cxl_endpoint_decoder *cxled); 813 struct cxl_endpoint_decoder *cxled) in cxl_add_to_region() 812 cxl_add_to_region(struct cxl_port *root, struct cxl_endpoint_decoder *cxled) cxl_add_to_region() argument
|
/kernel/linux/linux-6.6/tools/testing/cxl/test/ |
H A D | cxl.c | 738 struct cxl_endpoint_decoder *cxled; in mock_init_hdm_decoder() local 750 cxled = to_cxl_endpoint_decoder(&cxld->dev); in mock_init_hdm_decoder() 751 cxlmd = cxled_to_memdev(cxled); in mock_init_hdm_decoder() 756 port = cxled_to_port(cxled); in mock_init_hdm_decoder() 767 port = cxled_to_port(cxled); in mock_init_hdm_decoder() 793 cxled->state = CXL_DECODER_STATE_AUTO; in mock_init_hdm_decoder() 795 devm_cxl_dpa_reserve(cxled, 0, size / cxld->interleave_ways, 0); in mock_init_hdm_decoder() 878 struct cxl_endpoint_decoder *cxled; in mock_cxl_enumerate_decoders() local 880 cxled = cxl_endpoint_decoder_alloc(port); in mock_cxl_enumerate_decoders() 882 if (IS_ERR(cxled)) { in mock_cxl_enumerate_decoders() [all...] |