Lines Matching +full:- +full:i
1 // SPDX-License-Identifier: GPL-2.0-only
51 int i; in is_multi_bridge() local
53 for (i = 0; i < ARRAY_SIZE(cxl_host_bridge); i++) in is_multi_bridge()
54 if (&cxl_host_bridge[i]->dev == dev) in is_multi_bridge()
61 int i; in is_single_bridge() local
63 for (i = 0; i < ARRAY_SIZE(cxl_hb_single); i++) in is_single_bridge()
64 if (&cxl_hb_single[i]->dev == dev) in is_single_bridge()
91 int i; in is_mock_dev() local
93 for (i = 0; i < ARRAY_SIZE(cxl_mem); i++) in is_mock_dev()
94 if (dev == &cxl_mem[i]->dev) in is_mock_dev()
96 for (i = 0; i < ARRAY_SIZE(cxl_mem_single); i++) in is_mock_dev()
97 if (dev == &cxl_mem_single[i]->dev) in is_mock_dev()
99 for (i = 0; i < ARRAY_SIZE(cxl_rcd); i++) in is_mock_dev()
100 if (dev == &cxl_rcd[i]->dev) in is_mock_dev()
102 if (dev == &cxl_acpi->dev) in is_mock_dev()
109 int i; in is_mock_adev() local
114 for (i = 0; i < ARRAY_SIZE(host_bridge); i++) in is_mock_adev()
115 if (adev == &host_bridge[i]) in is_mock_adev()
395 gen_pool_free(cxl_mock_pool, res->range.start, in depopulate_all_mock_resources()
396 range_len(&res->range)); in depopulate_all_mock_resources()
397 list_del(&res->list); in depopulate_all_mock_resources()
411 INIT_LIST_HEAD(&res->list); in alloc_mock_res()
417 res->range = (struct range) { in alloc_mock_res()
419 .end = phys + size - 1, in alloc_mock_res()
422 list_add(&res->list, &mock_res); in alloc_mock_res()
431 int i; in populate_cedt() local
433 for (i = 0; i < ARRAY_SIZE(mock_cedt.chbs); i++) { in populate_cedt()
434 struct acpi_cedt_chbs *chbs = &mock_cedt.chbs[i]; in populate_cedt()
437 if (chbs->cxl_version == ACPI_CEDT_CHBS_VERSION_CXL20) in populate_cedt()
444 return -ENOMEM; in populate_cedt()
445 chbs->base = res->range.start; in populate_cedt()
446 chbs->length = size; in populate_cedt()
449 for (i = cfmws_start; i <= cfmws_end; i++) { in populate_cedt()
450 struct acpi_cedt_cfmws *window = mock_cfmws[i]; in populate_cedt()
452 res = alloc_mock_res(window->window_size, SZ_256M); in populate_cedt()
454 return -ENOMEM; in populate_cedt()
455 window->base_hpa = res->range.start; in populate_cedt()
478 struct device *dev = ctx->dev; in mock_acpi_table_parse_cedt()
481 int i; in mock_acpi_table_parse_cedt() local
487 for (i = 0; i < ARRAY_SIZE(mock_cedt.chbs); i++) { in mock_acpi_table_parse_cedt()
488 h = (union acpi_subtable_headers *)&mock_cedt.chbs[i]; in mock_acpi_table_parse_cedt()
489 end = (unsigned long)&mock_cedt.chbs[i + 1]; in mock_acpi_table_parse_cedt()
494 for (i = cfmws_start; i <= cfmws_end; i++) { in mock_acpi_table_parse_cedt()
495 h = (union acpi_subtable_headers *) mock_cfmws[i]; in mock_acpi_table_parse_cedt()
496 end = (unsigned long) h + mock_cfmws[i]->header.length; in mock_acpi_table_parse_cedt()
501 for (i = 0; i < ARRAY_SIZE(mock_cxims); i++) { in mock_acpi_table_parse_cedt()
502 h = (union acpi_subtable_headers *)mock_cxims[i]; in mock_acpi_table_parse_cedt()
503 end = (unsigned long)h + mock_cxims[i]->header.length; in mock_acpi_table_parse_cedt()
512 int i; in is_mock_bridge() local
514 for (i = 0; i < ARRAY_SIZE(cxl_host_bridge); i++) in is_mock_bridge()
515 if (dev == &cxl_host_bridge[i]->dev) in is_mock_bridge()
517 for (i = 0; i < ARRAY_SIZE(cxl_hb_single); i++) in is_mock_bridge()
518 if (dev == &cxl_hb_single[i]->dev) in is_mock_bridge()
520 for (i = 0; i < ARRAY_SIZE(cxl_rch); i++) in is_mock_bridge()
521 if (dev == &cxl_rch[i]->dev) in is_mock_bridge()
529 int i; in is_mock_port() local
534 for (i = 0; i < ARRAY_SIZE(cxl_root_port); i++) in is_mock_port()
535 if (dev == &cxl_root_port[i]->dev) in is_mock_port()
538 for (i = 0; i < ARRAY_SIZE(cxl_switch_uport); i++) in is_mock_port()
539 if (dev == &cxl_switch_uport[i]->dev) in is_mock_port()
542 for (i = 0; i < ARRAY_SIZE(cxl_switch_dport); i++) in is_mock_port()
543 if (dev == &cxl_switch_dport[i]->dev) in is_mock_port()
546 for (i = 0; i < ARRAY_SIZE(cxl_root_single); i++) in is_mock_port()
547 if (dev == &cxl_root_single[i]->dev) in is_mock_port()
550 for (i = 0; i < ARRAY_SIZE(cxl_swu_single); i++) in is_mock_port()
551 if (dev == &cxl_swu_single[i]->dev) in is_mock_port()
554 for (i = 0; i < ARRAY_SIZE(cxl_swd_single); i++) in is_mock_port()
555 if (dev == &cxl_swd_single[i]->dev) in is_mock_port()
559 return is_mock_dev(dev->parent); in is_mock_port()
566 return adev - host_bridge; in host_bridge_index()
571 int i; in find_host_bridge() local
573 for (i = 0; i < ARRAY_SIZE(host_bridge); i++) in find_host_bridge()
574 if (handle == host_bridge[i].handle) in find_host_bridge()
575 return &host_bridge[i]; in find_host_bridge()
612 int i; in is_mock_bus() local
614 for (i = 0; i < ARRAY_SIZE(mock_pci_bus); i++) in is_mock_bus()
615 if (bus == &mock_pci_bus[i]) in is_mock_bus()
632 struct cxl_hdm *cxlhdm = devm_kzalloc(&port->dev, sizeof(*cxlhdm), GFP_KERNEL); in mock_cxl_setup_hdm()
635 return ERR_PTR(-ENOMEM); in mock_cxl_setup_hdm()
637 cxlhdm->port = port; in mock_cxl_setup_hdm()
643 dev_err(&port->dev, "unexpected passthrough decoder for cxl_test\n"); in mock_cxl_add_passthrough_decoder()
644 return -EOPNOTSUPP; in mock_cxl_add_passthrough_decoder()
659 ctx->target_map[ctx->index++] = pdev->id; in map_targets()
661 if (ctx->index > ctx->target_count) { in map_targets()
663 return -ENXIO; in map_targets()
671 struct cxl_port *port = to_cxl_port(cxld->dev.parent); in mock_decoder_commit()
672 int id = cxld->id; in mock_decoder_commit()
674 if (cxld->flags & CXL_DECODER_F_ENABLE) in mock_decoder_commit()
677 dev_dbg(&port->dev, "%s commit\n", dev_name(&cxld->dev)); in mock_decoder_commit()
679 dev_dbg(&port->dev, in mock_decoder_commit()
681 dev_name(&cxld->dev), port->id, in mock_decoder_commit()
683 return -EBUSY; in mock_decoder_commit()
686 port->commit_end++; in mock_decoder_commit()
687 cxld->flags |= CXL_DECODER_F_ENABLE; in mock_decoder_commit()
694 struct cxl_port *port = to_cxl_port(cxld->dev.parent); in mock_decoder_reset()
695 int id = cxld->id; in mock_decoder_reset()
697 if ((cxld->flags & CXL_DECODER_F_ENABLE) == 0) in mock_decoder_reset()
700 dev_dbg(&port->dev, "%s reset\n", dev_name(&cxld->dev)); in mock_decoder_reset()
701 if (port->commit_end != id) { in mock_decoder_reset()
702 dev_dbg(&port->dev, in mock_decoder_reset()
704 dev_name(&cxld->dev), port->id, port->commit_end); in mock_decoder_reset()
705 return -EBUSY; in mock_decoder_reset()
708 port->commit_end--; in mock_decoder_reset()
709 cxld->flags &= ~CXL_DECODER_F_ENABLE; in mock_decoder_reset()
716 cxld->hpa_range = (struct range){ in default_mock_decoder()
718 .end = -1, in default_mock_decoder()
721 cxld->interleave_ways = 1; in default_mock_decoder()
722 cxld->interleave_granularity = 256; in default_mock_decoder()
723 cxld->target_type = CXL_DECODER_HOSTONLYMEM; in default_mock_decoder()
724 cxld->commit = mock_decoder_commit; in default_mock_decoder()
725 cxld->reset = mock_decoder_reset; in default_mock_decoder()
735 if (cxld->id == 0) in first_decoder()
753 int i; in mock_init_hdm_decoder() local
755 if (is_endpoint_decoder(&cxld->dev)) { in mock_init_hdm_decoder()
756 cxled = to_cxl_endpoint_decoder(&cxld->dev); in mock_init_hdm_decoder()
758 WARN_ON(!dev_is_platform(cxlmd->dev.parent)); in mock_init_hdm_decoder()
759 pdev = to_platform_device(cxlmd->dev.parent); in mock_init_hdm_decoder()
761 /* check is endpoint is attach to host-bridge0 */ in mock_init_hdm_decoder()
764 if (port->uport_dev == &cxl_host_bridge[0]->dev) { in mock_init_hdm_decoder()
768 if (is_cxl_port(port->dev.parent)) in mock_init_hdm_decoder()
769 port = to_cxl_port(port->dev.parent); in mock_init_hdm_decoder()
778 * attached to host-bridge0 mock a fake / static RAM region. All in mock_init_hdm_decoder()
782 * See 'cxl list -BMPu -m cxl_mem.0,cxl_mem.4' in mock_init_hdm_decoder()
784 if (!hb0 || pdev->id % 4 || pdev->id > 4 || cxld->id > 0) { in mock_init_hdm_decoder()
789 base = window->base_hpa; in mock_init_hdm_decoder()
790 cxld->hpa_range = (struct range) { in mock_init_hdm_decoder()
792 .end = base + size - 1, in mock_init_hdm_decoder()
795 cxld->interleave_ways = 2; in mock_init_hdm_decoder()
796 eig_to_granularity(window->granularity, &cxld->interleave_granularity); in mock_init_hdm_decoder()
797 cxld->target_type = CXL_DECODER_HOSTONLYMEM; in mock_init_hdm_decoder()
798 cxld->flags = CXL_DECODER_F_ENABLE; in mock_init_hdm_decoder()
799 cxled->state = CXL_DECODER_STATE_AUTO; in mock_init_hdm_decoder()
800 port->commit_end = cxld->id; in mock_init_hdm_decoder()
801 devm_cxl_dpa_reserve(cxled, 0, size / cxld->interleave_ways, 0); in mock_init_hdm_decoder()
802 cxld->commit = mock_decoder_commit; in mock_init_hdm_decoder()
803 cxld->reset = mock_decoder_reset; in mock_init_hdm_decoder()
810 for (i = 0; i < 2; i++) { in mock_init_hdm_decoder()
811 dport = iter->parent_dport; in mock_init_hdm_decoder()
812 iter = dport->port; in mock_init_hdm_decoder()
813 dev = device_find_child(&iter->dev, NULL, first_decoder); in mock_init_hdm_decoder()
821 if (i == 0) { in mock_init_hdm_decoder()
823 if (pdev->id == 4) in mock_init_hdm_decoder()
824 cxlsd->target[1] = dport; in mock_init_hdm_decoder()
826 cxlsd->target[0] = dport; in mock_init_hdm_decoder()
828 cxlsd->target[0] = dport; in mock_init_hdm_decoder()
829 cxld = &cxlsd->cxld; in mock_init_hdm_decoder()
830 cxld->target_type = CXL_DECODER_HOSTONLYMEM; in mock_init_hdm_decoder()
831 cxld->flags = CXL_DECODER_F_ENABLE; in mock_init_hdm_decoder()
832 iter->commit_end = 0; in mock_init_hdm_decoder()
837 if (i == 0) in mock_init_hdm_decoder()
838 cxld->interleave_ways = 2; in mock_init_hdm_decoder()
840 cxld->interleave_ways = 1; in mock_init_hdm_decoder()
841 cxld->interleave_granularity = 4096; in mock_init_hdm_decoder()
842 cxld->hpa_range = (struct range) { in mock_init_hdm_decoder()
844 .end = base + size - 1, in mock_init_hdm_decoder()
853 struct cxl_port *port = cxlhdm->port; in mock_cxl_enumerate_decoders()
854 struct cxl_port *parent_port = to_cxl_port(port->dev.parent); in mock_cxl_enumerate_decoders()
855 int target_count, i; in mock_cxl_enumerate_decoders() local
864 for (i = 0; i < NR_CXL_PORT_DECODERS; i++) { in mock_cxl_enumerate_decoders()
878 dev_warn(&port->dev, in mock_cxl_enumerate_decoders()
882 cxld = &cxlsd->cxld; in mock_cxl_enumerate_decoders()
889 dev_warn(&port->dev, in mock_cxl_enumerate_decoders()
893 cxld = &cxled->cxld; in mock_cxl_enumerate_decoders()
899 rc = device_for_each_child(port->uport_dev, &ctx, in mock_cxl_enumerate_decoders()
902 put_device(&cxld->dev); in mock_cxl_enumerate_decoders()
909 put_device(&cxld->dev); in mock_cxl_enumerate_decoders()
910 dev_err(&port->dev, "Failed to add decoder\n"); in mock_cxl_enumerate_decoders()
914 rc = cxl_decoder_autoremove(&port->dev, cxld); in mock_cxl_enumerate_decoders()
917 dev_dbg(&cxld->dev, "Added to port %s\n", dev_name(&port->dev)); in mock_cxl_enumerate_decoders()
926 int i, array_size; in mock_cxl_port_enumerate_dports() local
928 if (port->depth == 1) { in mock_cxl_port_enumerate_dports()
929 if (is_multi_bridge(port->uport_dev)) { in mock_cxl_port_enumerate_dports()
932 } else if (is_single_bridge(port->uport_dev)) { in mock_cxl_port_enumerate_dports()
936 dev_dbg(&port->dev, "%s: unknown bridge type\n", in mock_cxl_port_enumerate_dports()
937 dev_name(port->uport_dev)); in mock_cxl_port_enumerate_dports()
938 return -ENXIO; in mock_cxl_port_enumerate_dports()
940 } else if (port->depth == 2) { in mock_cxl_port_enumerate_dports()
941 struct cxl_port *parent = to_cxl_port(port->dev.parent); in mock_cxl_port_enumerate_dports()
943 if (is_multi_bridge(parent->uport_dev)) { in mock_cxl_port_enumerate_dports()
946 } else if (is_single_bridge(parent->uport_dev)) { in mock_cxl_port_enumerate_dports()
950 dev_dbg(&port->dev, "%s: unknown bridge type\n", in mock_cxl_port_enumerate_dports()
951 dev_name(port->uport_dev)); in mock_cxl_port_enumerate_dports()
952 return -ENXIO; in mock_cxl_port_enumerate_dports()
955 dev_WARN_ONCE(&port->dev, 1, "unexpected depth %d\n", in mock_cxl_port_enumerate_dports()
956 port->depth); in mock_cxl_port_enumerate_dports()
957 return -ENXIO; in mock_cxl_port_enumerate_dports()
960 for (i = 0; i < array_size; i++) { in mock_cxl_port_enumerate_dports()
961 struct platform_device *pdev = array[i]; in mock_cxl_port_enumerate_dports()
964 if (pdev->dev.parent != port->uport_dev) { in mock_cxl_port_enumerate_dports()
965 dev_dbg(&port->dev, "%s: mismatch parent %s\n", in mock_cxl_port_enumerate_dports()
966 dev_name(port->uport_dev), in mock_cxl_port_enumerate_dports()
967 dev_name(pdev->dev.parent)); in mock_cxl_port_enumerate_dports()
971 dport = devm_cxl_add_dport(port, &pdev->dev, pdev->id, in mock_cxl_port_enumerate_dports()
987 dpa_perf->qos_class = FAKE_QTG_ID; in dpa_perf_setup()
988 dpa_perf->dpa_range = *range; in dpa_perf_setup()
989 dpa_perf->coord.read_latency = 500; in dpa_perf_setup()
990 dpa_perf->coord.write_latency = 500; in dpa_perf_setup()
991 dpa_perf->coord.read_bandwidth = 1000; in dpa_perf_setup()
992 dpa_perf->coord.write_bandwidth = 1000; in dpa_perf_setup()
999 struct cxl_memdev *cxlmd = to_cxl_memdev(port->uport_dev); in mock_cxl_endpoint_parse_cdat()
1000 struct cxl_dev_state *cxlds = cxlmd->cxlds; in mock_cxl_endpoint_parse_cdat()
1003 .start = cxlds->pmem_res.start, in mock_cxl_endpoint_parse_cdat()
1004 .end = cxlds->pmem_res.end, in mock_cxl_endpoint_parse_cdat()
1007 .start = cxlds->ram_res.start, in mock_cxl_endpoint_parse_cdat()
1008 .end = cxlds->ram_res.end, in mock_cxl_endpoint_parse_cdat()
1015 dpa_perf_setup(port, &ram_range, &mds->ram_perf); in mock_cxl_endpoint_parse_cdat()
1018 dpa_perf_setup(port, &pmem_range, &mds->pmem_perf); in mock_cxl_endpoint_parse_cdat()
1042 device_initialize(&adev->dev); in mock_companion()
1043 fwnode_init(&adev->fwnode, NULL); in mock_companion()
1044 dev->fwnode = &adev->fwnode; in mock_companion()
1045 adev->fwnode.dev = dev; in mock_companion()
1054 int rc, i; in cxl_rch_init() local
1056 for (i = 0; i < ARRAY_SIZE(cxl_rch); i++) { in cxl_rch_init()
1057 int idx = NR_CXL_HOST_BRIDGES + NR_CXL_SINGLE_HOST + i; in cxl_rch_init()
1065 mock_companion(adev, &pdev->dev); in cxl_rch_init()
1072 cxl_rch[i] = pdev; in cxl_rch_init()
1073 mock_pci_bus[idx].bridge = &pdev->dev; in cxl_rch_init()
1074 rc = sysfs_create_link(&pdev->dev.kobj, &pdev->dev.kobj, in cxl_rch_init()
1080 for (i = 0; i < ARRAY_SIZE(cxl_rcd); i++) { in cxl_rch_init()
1081 int idx = NR_MEM_MULTI + NR_MEM_SINGLE + i; in cxl_rch_init()
1082 struct platform_device *rch = cxl_rch[i]; in cxl_rch_init()
1088 pdev->dev.parent = &rch->dev; in cxl_rch_init()
1089 set_dev_node(&pdev->dev, i % 2); in cxl_rch_init()
1096 cxl_rcd[i] = pdev; in cxl_rch_init()
1102 for (i = ARRAY_SIZE(cxl_rcd) - 1; i >= 0; i--) in cxl_rch_init()
1103 platform_device_unregister(cxl_rcd[i]); in cxl_rch_init()
1105 for (i = ARRAY_SIZE(cxl_rch) - 1; i >= 0; i--) { in cxl_rch_init()
1106 struct platform_device *pdev = cxl_rch[i]; in cxl_rch_init()
1110 sysfs_remove_link(&pdev->dev.kobj, "firmware_node"); in cxl_rch_init()
1111 platform_device_unregister(cxl_rch[i]); in cxl_rch_init()
1119 int i; in cxl_rch_exit() local
1121 for (i = ARRAY_SIZE(cxl_rcd) - 1; i >= 0; i--) in cxl_rch_exit()
1122 platform_device_unregister(cxl_rcd[i]); in cxl_rch_exit()
1123 for (i = ARRAY_SIZE(cxl_rch) - 1; i >= 0; i--) { in cxl_rch_exit()
1124 struct platform_device *pdev = cxl_rch[i]; in cxl_rch_exit()
1128 sysfs_remove_link(&pdev->dev.kobj, "firmware_node"); in cxl_rch_exit()
1129 platform_device_unregister(cxl_rch[i]); in cxl_rch_exit()
1135 int i, rc; in cxl_single_init() local
1137 for (i = 0; i < ARRAY_SIZE(cxl_hb_single); i++) { in cxl_single_init()
1139 &host_bridge[NR_CXL_HOST_BRIDGES + i]; in cxl_single_init()
1143 NR_CXL_HOST_BRIDGES + i); in cxl_single_init()
1147 mock_companion(adev, &pdev->dev); in cxl_single_init()
1154 cxl_hb_single[i] = pdev; in cxl_single_init()
1155 mock_pci_bus[i + NR_CXL_HOST_BRIDGES].bridge = &pdev->dev; in cxl_single_init()
1156 rc = sysfs_create_link(&pdev->dev.kobj, &pdev->dev.kobj, in cxl_single_init()
1162 for (i = 0; i < ARRAY_SIZE(cxl_root_single); i++) { in cxl_single_init()
1164 cxl_hb_single[i % ARRAY_SIZE(cxl_hb_single)]; in cxl_single_init()
1168 NR_MULTI_ROOT + i); in cxl_single_init()
1171 pdev->dev.parent = &bridge->dev; in cxl_single_init()
1178 cxl_root_single[i] = pdev; in cxl_single_init()
1181 for (i = 0; i < ARRAY_SIZE(cxl_swu_single); i++) { in cxl_single_init()
1182 struct platform_device *root_port = cxl_root_single[i]; in cxl_single_init()
1186 NR_MULTI_ROOT + i); in cxl_single_init()
1189 pdev->dev.parent = &root_port->dev; in cxl_single_init()
1196 cxl_swu_single[i] = pdev; in cxl_single_init()
1199 for (i = 0; i < ARRAY_SIZE(cxl_swd_single); i++) { in cxl_single_init()
1201 cxl_swu_single[i % ARRAY_SIZE(cxl_swu_single)]; in cxl_single_init()
1205 i + NR_MEM_MULTI); in cxl_single_init()
1208 pdev->dev.parent = &uport->dev; in cxl_single_init()
1215 cxl_swd_single[i] = pdev; in cxl_single_init()
1218 for (i = 0; i < ARRAY_SIZE(cxl_mem_single); i++) { in cxl_single_init()
1219 struct platform_device *dport = cxl_swd_single[i]; in cxl_single_init()
1222 pdev = platform_device_alloc("cxl_mem", NR_MEM_MULTI + i); in cxl_single_init()
1225 pdev->dev.parent = &dport->dev; in cxl_single_init()
1226 set_dev_node(&pdev->dev, i % 2); in cxl_single_init()
1233 cxl_mem_single[i] = pdev; in cxl_single_init()
1239 for (i = ARRAY_SIZE(cxl_mem_single) - 1; i >= 0; i--) in cxl_single_init()
1240 platform_device_unregister(cxl_mem_single[i]); in cxl_single_init()
1242 for (i = ARRAY_SIZE(cxl_swd_single) - 1; i >= 0; i--) in cxl_single_init()
1243 platform_device_unregister(cxl_swd_single[i]); in cxl_single_init()
1245 for (i = ARRAY_SIZE(cxl_swu_single) - 1; i >= 0; i--) in cxl_single_init()
1246 platform_device_unregister(cxl_swu_single[i]); in cxl_single_init()
1248 for (i = ARRAY_SIZE(cxl_root_single) - 1; i >= 0; i--) in cxl_single_init()
1249 platform_device_unregister(cxl_root_single[i]); in cxl_single_init()
1251 for (i = ARRAY_SIZE(cxl_hb_single) - 1; i >= 0; i--) { in cxl_single_init()
1252 struct platform_device *pdev = cxl_hb_single[i]; in cxl_single_init()
1256 sysfs_remove_link(&pdev->dev.kobj, "physical_node"); in cxl_single_init()
1257 platform_device_unregister(cxl_hb_single[i]); in cxl_single_init()
1265 int i; in cxl_single_exit() local
1267 for (i = ARRAY_SIZE(cxl_mem_single) - 1; i >= 0; i--) in cxl_single_exit()
1268 platform_device_unregister(cxl_mem_single[i]); in cxl_single_exit()
1269 for (i = ARRAY_SIZE(cxl_swd_single) - 1; i >= 0; i--) in cxl_single_exit()
1270 platform_device_unregister(cxl_swd_single[i]); in cxl_single_exit()
1271 for (i = ARRAY_SIZE(cxl_swu_single) - 1; i >= 0; i--) in cxl_single_exit()
1272 platform_device_unregister(cxl_swu_single[i]); in cxl_single_exit()
1273 for (i = ARRAY_SIZE(cxl_root_single) - 1; i >= 0; i--) in cxl_single_exit()
1274 platform_device_unregister(cxl_root_single[i]); in cxl_single_exit()
1275 for (i = ARRAY_SIZE(cxl_hb_single) - 1; i >= 0; i--) { in cxl_single_exit()
1276 struct platform_device *pdev = cxl_hb_single[i]; in cxl_single_exit()
1280 sysfs_remove_link(&pdev->dev.kobj, "physical_node"); in cxl_single_exit()
1281 platform_device_unregister(cxl_hb_single[i]); in cxl_single_exit()
1287 int rc, i; in cxl_test_init() local
1299 rc = -ENOMEM; in cxl_test_init()
1303 rc = gen_pool_add(cxl_mock_pool, iomem_resource.end + 1 - SZ_64G, in cxl_test_init()
1320 for (i = 0; i < ARRAY_SIZE(cxl_host_bridge); i++) { in cxl_test_init()
1321 struct acpi_device *adev = &host_bridge[i]; in cxl_test_init()
1324 pdev = platform_device_alloc("cxl_host_bridge", i); in cxl_test_init()
1328 mock_companion(adev, &pdev->dev); in cxl_test_init()
1335 cxl_host_bridge[i] = pdev; in cxl_test_init()
1336 mock_pci_bus[i].bridge = &pdev->dev; in cxl_test_init()
1337 rc = sysfs_create_link(&pdev->dev.kobj, &pdev->dev.kobj, in cxl_test_init()
1343 for (i = 0; i < ARRAY_SIZE(cxl_root_port); i++) { in cxl_test_init()
1345 cxl_host_bridge[i % ARRAY_SIZE(cxl_host_bridge)]; in cxl_test_init()
1348 pdev = platform_device_alloc("cxl_root_port", i); in cxl_test_init()
1351 pdev->dev.parent = &bridge->dev; in cxl_test_init()
1358 cxl_root_port[i] = pdev; in cxl_test_init()
1362 for (i = 0; i < ARRAY_SIZE(cxl_switch_uport); i++) { in cxl_test_init()
1363 struct platform_device *root_port = cxl_root_port[i]; in cxl_test_init()
1366 pdev = platform_device_alloc("cxl_switch_uport", i); in cxl_test_init()
1369 pdev->dev.parent = &root_port->dev; in cxl_test_init()
1376 cxl_switch_uport[i] = pdev; in cxl_test_init()
1379 for (i = 0; i < ARRAY_SIZE(cxl_switch_dport); i++) { in cxl_test_init()
1381 cxl_switch_uport[i % ARRAY_SIZE(cxl_switch_uport)]; in cxl_test_init()
1384 pdev = platform_device_alloc("cxl_switch_dport", i); in cxl_test_init()
1387 pdev->dev.parent = &uport->dev; in cxl_test_init()
1394 cxl_switch_dport[i] = pdev; in cxl_test_init()
1397 for (i = 0; i < ARRAY_SIZE(cxl_mem); i++) { in cxl_test_init()
1398 struct platform_device *dport = cxl_switch_dport[i]; in cxl_test_init()
1401 pdev = platform_device_alloc("cxl_mem", i); in cxl_test_init()
1404 pdev->dev.parent = &dport->dev; in cxl_test_init()
1405 set_dev_node(&pdev->dev, i % 2); in cxl_test_init()
1412 cxl_mem[i] = pdev; in cxl_test_init()
1427 mock_companion(&acpi0017_mock, &cxl_acpi->dev); in cxl_test_init()
1443 for (i = ARRAY_SIZE(cxl_mem) - 1; i >= 0; i--) in cxl_test_init()
1444 platform_device_unregister(cxl_mem[i]); in cxl_test_init()
1446 for (i = ARRAY_SIZE(cxl_switch_dport) - 1; i >= 0; i--) in cxl_test_init()
1447 platform_device_unregister(cxl_switch_dport[i]); in cxl_test_init()
1449 for (i = ARRAY_SIZE(cxl_switch_uport) - 1; i >= 0; i--) in cxl_test_init()
1450 platform_device_unregister(cxl_switch_uport[i]); in cxl_test_init()
1452 for (i = ARRAY_SIZE(cxl_root_port) - 1; i >= 0; i--) in cxl_test_init()
1453 platform_device_unregister(cxl_root_port[i]); in cxl_test_init()
1455 for (i = ARRAY_SIZE(cxl_host_bridge) - 1; i >= 0; i--) { in cxl_test_init()
1456 struct platform_device *pdev = cxl_host_bridge[i]; in cxl_test_init()
1460 sysfs_remove_link(&pdev->dev.kobj, "physical_node"); in cxl_test_init()
1461 platform_device_unregister(cxl_host_bridge[i]); in cxl_test_init()
1474 int i; in cxl_test_exit() local
1479 for (i = ARRAY_SIZE(cxl_mem) - 1; i >= 0; i--) in cxl_test_exit()
1480 platform_device_unregister(cxl_mem[i]); in cxl_test_exit()
1481 for (i = ARRAY_SIZE(cxl_switch_dport) - 1; i >= 0; i--) in cxl_test_exit()
1482 platform_device_unregister(cxl_switch_dport[i]); in cxl_test_exit()
1483 for (i = ARRAY_SIZE(cxl_switch_uport) - 1; i >= 0; i--) in cxl_test_exit()
1484 platform_device_unregister(cxl_switch_uport[i]); in cxl_test_exit()
1485 for (i = ARRAY_SIZE(cxl_root_port) - 1; i >= 0; i--) in cxl_test_exit()
1486 platform_device_unregister(cxl_root_port[i]); in cxl_test_exit()
1487 for (i = ARRAY_SIZE(cxl_host_bridge) - 1; i >= 0; i--) { in cxl_test_exit()
1488 struct platform_device *pdev = cxl_host_bridge[i]; in cxl_test_exit()
1492 sysfs_remove_link(&pdev->dev.kobj, "physical_node"); in cxl_test_exit()
1493 platform_device_unregister(cxl_host_bridge[i]); in cxl_test_exit()