Lines Matching refs:cxled

130 		struct cxl_endpoint_decoder *cxled = p->targets[i];  in cxl_region_decode_reset()  local
131 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_region_decode_reset()
132 struct cxl_port *iter = cxled_to_port(cxled); in cxl_region_decode_reset()
151 rc = cxled->cxld.reset(&cxled->cxld); in cxl_region_decode_reset()
165 struct cxl_endpoint_decoder *cxled = p->targets[i]; in cxl_region_decode_commit() local
166 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_region_decode_commit()
173 for (iter = cxled_to_port(cxled); !is_cxl_root(iter); in cxl_region_decode_commit()
192 cxled->cxld.reset(&cxled->cxld); in cxl_region_decode_commit()
584 struct cxl_endpoint_decoder *cxled; in show_targetN() local
598 cxled = p->targets[pos]; in show_targetN()
599 if (!cxled) in show_targetN()
602 rc = sysfs_emit(buf, "%s\n", dev_name(&cxled->cxld.dev)); in show_targetN()
720 struct cxl_endpoint_decoder *cxled) in cxl_rr_ep_add() argument
726 struct cxl_ep *ep = cxl_ep_load(port, cxled_to_memdev(cxled)); in cxl_rr_ep_add()
729 rc = xa_insert(&cxl_rr->endpoints, (unsigned long)cxled, ep, in cxl_rr_ep_add()
745 struct cxl_endpoint_decoder *cxled, in cxl_rr_alloc_decoder() argument
750 if (port == cxled_to_port(cxled)) in cxl_rr_alloc_decoder()
751 cxld = &cxled->cxld; in cxl_rr_alloc_decoder()
797 struct cxl_endpoint_decoder *cxled, int pos) in cxl_port_attach_region() argument
799 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_port_attach_region()
847 rc = cxl_rr_alloc_decoder(port, cxlr, cxled, cxl_rr); in cxl_port_attach_region()
853 rc = cxl_rr_ep_add(cxl_rr, cxled); in cxl_port_attach_region()
866 dev_name(&cxled->cxld.dev), pos, in cxl_port_attach_region()
883 struct cxl_endpoint_decoder *cxled) in cxl_port_detach_region() argument
898 if (cxl_rr->decoder == &cxled->cxld) in cxl_port_detach_region()
901 ep = xa_erase(&cxl_rr->endpoints, (unsigned long)cxled); in cxl_port_detach_region()
922 static int check_last_peer(struct cxl_endpoint_decoder *cxled, in check_last_peer() argument
926 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in check_last_peer()
933 int pos = cxled->pos; in check_last_peer()
943 dev_name(&cxlmd->dev), dev_name(&cxled->cxld.dev), pos); in check_last_peer()
953 dev_name(&cxlmd->dev), dev_name(&cxled->cxld.dev), pos, in check_last_peer()
964 struct cxl_endpoint_decoder *cxled) in cxl_port_setup_targets() argument
967 int parent_iw, parent_ig, ig, iw, rc, inc = 0, pos = cxled->pos; in cxl_port_setup_targets()
970 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_port_setup_targets()
1003 rc = check_last_peer(cxled, ep, cxl_rr, in cxl_port_setup_targets()
1089 dev_name(&cxlmd->dev), dev_name(&cxled->cxld.dev), pos); in cxl_port_setup_targets()
1099 dev_name(&cxlmd->dev), dev_name(&cxled->cxld.dev), pos); in cxl_port_setup_targets()
1128 struct cxl_endpoint_decoder *cxled; in cxl_region_teardown_targets() local
1135 cxled = p->targets[i]; in cxl_region_teardown_targets()
1136 cxlmd = cxled_to_memdev(cxled); in cxl_region_teardown_targets()
1138 iter = cxled_to_port(cxled); in cxl_region_teardown_targets()
1151 struct cxl_endpoint_decoder *cxled; in cxl_region_setup_targets() local
1158 cxled = p->targets[i]; in cxl_region_setup_targets()
1159 cxlmd = cxled_to_memdev(cxled); in cxl_region_setup_targets()
1161 iter = cxled_to_port(cxled); in cxl_region_setup_targets()
1171 rc = cxl_port_setup_targets(iter, cxlr, cxled); in cxl_region_setup_targets()
1183 struct cxl_endpoint_decoder *cxled, int pos) in cxl_region_attach() argument
1186 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_region_attach()
1192 if (cxled->mode == CXL_DECODER_DEAD) { in cxl_region_attach()
1193 dev_dbg(&cxlr->dev, "%s dead\n", dev_name(&cxled->cxld.dev)); in cxl_region_attach()
1212 if (p->targets[pos] == cxled) in cxl_region_attach()
1243 ep_port = cxled_to_port(cxled); in cxl_region_attach()
1248 dev_name(&cxlmd->dev), dev_name(&cxled->cxld.dev), in cxl_region_attach()
1255 dev_name(&cxlmd->dev), dev_name(&cxled->cxld.dev), in cxl_region_attach()
1260 if (cxled->cxld.target_type != cxlr->type) { in cxl_region_attach()
1262 dev_name(&cxlmd->dev), dev_name(&cxled->cxld.dev), in cxl_region_attach()
1263 cxled->cxld.target_type, cxlr->type); in cxl_region_attach()
1267 if (!cxled->dpa_res) { in cxl_region_attach()
1269 dev_name(&cxlmd->dev), dev_name(&cxled->cxld.dev)); in cxl_region_attach()
1273 if (resource_size(cxled->dpa_res) * p->interleave_ways != in cxl_region_attach()
1277 dev_name(&cxlmd->dev), dev_name(&cxled->cxld.dev), in cxl_region_attach()
1278 (u64)resource_size(cxled->dpa_res), p->interleave_ways, in cxl_region_attach()
1285 rc = cxl_port_attach_region(iter, cxlr, cxled, pos); in cxl_region_attach()
1290 p->targets[pos] = cxled; in cxl_region_attach()
1291 cxled->pos = pos; in cxl_region_attach()
1301 cxled->cxld.interleave_ways = p->interleave_ways; in cxl_region_attach()
1302 cxled->cxld.interleave_granularity = p->interleave_granularity; in cxl_region_attach()
1303 cxled->cxld.hpa_range = (struct range) { in cxl_region_attach()
1315 cxl_port_detach_region(iter, cxlr, cxled); in cxl_region_attach()
1319 static int cxl_region_detach(struct cxl_endpoint_decoder *cxled) in cxl_region_detach() argument
1321 struct cxl_port *iter, *ep_port = cxled_to_port(cxled); in cxl_region_detach()
1322 struct cxl_region *cxlr = cxled->cxld.region; in cxl_region_detach()
1347 cxl_port_detach_region(iter, cxlr, cxled); in cxl_region_detach()
1349 if (cxled->pos < 0 || cxled->pos >= p->interleave_ways || in cxl_region_detach()
1350 p->targets[cxled->pos] != cxled) { in cxl_region_detach()
1351 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_region_detach()
1354 dev_name(&cxlmd->dev), dev_name(&cxled->cxld.dev), in cxl_region_detach()
1355 cxled->pos); in cxl_region_detach()
1363 p->targets[cxled->pos] = NULL; in cxl_region_detach()
1365 cxled->cxld.hpa_range = (struct range) { in cxl_region_detach()
1379 void cxl_decoder_kill_region(struct cxl_endpoint_decoder *cxled) in cxl_decoder_kill_region() argument
1382 cxled->mode = CXL_DECODER_DEAD; in cxl_decoder_kill_region()
1383 cxl_region_detach(cxled); in cxl_decoder_kill_region()
1838 struct cxl_endpoint_decoder *cxled = p->targets[i]; in cxl_pmem_region_alloc() local
1839 struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); in cxl_pmem_region_alloc()
1844 m->start = cxled->dpa_res->start; in cxl_pmem_region_alloc()
1845 m->size = resource_size(cxled->dpa_res); in cxl_pmem_region_alloc()