Lines Matching refs:spa
679 int nfit_spa_type(struct acpi_nfit_system_address *spa) in nfit_spa_type() argument
684 import_guid(&guid, spa->range_guid); in nfit_spa_type()
691 static size_t sizeof_spa(struct acpi_nfit_system_address *spa) in sizeof_spa() argument
693 if (spa->flags & ACPI_NFIT_LOCATION_COOKIE_VALID) in sizeof_spa()
694 return sizeof(*spa); in sizeof_spa()
695 return sizeof(*spa) - 8; in sizeof_spa()
700 struct acpi_nfit_system_address *spa) in add_spa() argument
705 if (spa->header.length != sizeof_spa(spa)) in add_spa()
709 if (memcmp(nfit_spa->spa, spa, sizeof_spa(spa)) == 0) { in add_spa()
715 nfit_spa = devm_kzalloc(dev, sizeof(*nfit_spa) + sizeof_spa(spa), in add_spa()
720 memcpy(nfit_spa->spa, spa, sizeof_spa(spa)); in add_spa()
723 spa->range_index, in add_spa()
724 spa_type_name(nfit_spa_type(spa))); in add_spa()
1003 struct acpi_nfit_system_address *spa) in __nfit_mem_init() argument
1007 int type = spa ? nfit_spa_type(spa) : 0; in __nfit_mem_init()
1014 if (spa) in __nfit_mem_init()
1031 if (spa && nfit_memdev->memdev->range_index != spa->range_index) in __nfit_mem_init()
1033 if (!spa && nfit_memdev->memdev->range_index) in __nfit_mem_init()
1100 spa->range_index, dcr); in __nfit_mem_init()
1109 nfit_mem->spa_dcr = spa; in __nfit_mem_init()
1163 rc = __nfit_mem_init(acpi_desc, nfit_spa->spa); in nfit_mem_init()
2175 return sprintf(buf, "%d\n", nfit_spa->spa->range_index); in range_index_show()
2258 struct acpi_nfit_system_address *spa) in acpi_nfit_init_interleave_set() argument
2270 import_guid(&nd_set->type_guid, spa->range_guid); in acpi_nfit_init_interleave_set()
2287 memdev_from_spa(acpi_desc, spa->range_index, i); in acpi_nfit_init_interleave_set()
2350 struct acpi_nfit_system_address *spa = nfit_spa->spa; in ars_get_cap() local
2353 cmd->address = spa->address; in ars_get_cap()
2354 cmd->length = spa->length; in ars_get_cap()
2368 struct acpi_nfit_system_address *spa = nfit_spa->spa; in ars_start() local
2372 ars_start.address = spa->address; in ars_start()
2373 ars_start.length = spa->length; in ars_start()
2376 if (nfit_spa_type(spa) == NFIT_SPA_PM) in ars_start()
2378 else if (nfit_spa_type(spa) == NFIT_SPA_VOLATILE) in ars_start()
2430 struct acpi_nfit_system_address *spa = nfit_spa->spa; in ars_complete() local
2443 if ((ars_status->address >= spa->address && ars_status->address in ars_complete()
2444 < spa->address + spa->length) in ars_complete()
2445 || (ars_status->address < spa->address)) { in ars_complete()
2455 >= spa->address + spa->length) in ars_complete()
2468 dev_dbg(dev, "ARS: range %d complete\n", spa->range_index); in ars_complete()
2561 struct acpi_nfit_system_address *spa = nfit_spa->spa; in acpi_nfit_init_mapping() local
2565 spa->range_index, memdev->device_handle); in acpi_nfit_init_mapping()
2570 switch (nfit_spa_type(spa)) { in acpi_nfit_init_mapping()
2581 static bool nfit_spa_is_virtual(struct acpi_nfit_system_address *spa) in nfit_spa_is_virtual() argument
2583 return (nfit_spa_type(spa) == NFIT_SPA_VDISK || in nfit_spa_is_virtual()
2584 nfit_spa_type(spa) == NFIT_SPA_VCD || in nfit_spa_is_virtual()
2585 nfit_spa_type(spa) == NFIT_SPA_PDISK || in nfit_spa_is_virtual()
2586 nfit_spa_type(spa) == NFIT_SPA_PCD); in nfit_spa_is_virtual()
2589 static bool nfit_spa_is_volatile(struct acpi_nfit_system_address *spa) in nfit_spa_is_volatile() argument
2591 return (nfit_spa_type(spa) == NFIT_SPA_VDISK || in nfit_spa_is_volatile()
2592 nfit_spa_type(spa) == NFIT_SPA_VCD || in nfit_spa_is_volatile()
2593 nfit_spa_type(spa) == NFIT_SPA_VOLATILE); in nfit_spa_is_volatile()
2600 struct acpi_nfit_system_address *spa = nfit_spa->spa; in acpi_nfit_register_region() local
2610 if (spa->range_index == 0 && !nfit_spa_is_virtual(spa)) { in acpi_nfit_register_region()
2618 res.start = spa->address; in acpi_nfit_register_region()
2619 res.end = res.start + spa->length - 1; in acpi_nfit_register_region()
2624 if (spa->flags & ACPI_NFIT_PROXIMITY_VALID) { in acpi_nfit_register_region()
2625 ndr_desc->numa_node = pxm_to_online_node(spa->proximity_domain); in acpi_nfit_register_region()
2626 ndr_desc->target_node = pxm_to_node(spa->proximity_domain); in acpi_nfit_register_region()
2634 ndr_desc->numa_node = memory_add_physaddr_to_nid(spa->address); in acpi_nfit_register_region()
2639 ndr_desc->target_node = phys_to_target_node(spa->address); in acpi_nfit_register_region()
2659 if (memdev->range_index == 0 || spa->range_index == 0) in acpi_nfit_register_region()
2661 if (memdev->range_index != spa->range_index) in acpi_nfit_register_region()
2665 spa->range_index, ND_MAX_MAPPINGS); in acpi_nfit_register_region()
2677 rc = acpi_nfit_init_interleave_set(acpi_desc, ndr_desc, spa); in acpi_nfit_register_region()
2682 if (nfit_spa_type(spa) == NFIT_SPA_PM) { in acpi_nfit_register_region()
2695 } else if (nfit_spa_is_volatile(spa)) { in acpi_nfit_register_region()
2700 } else if (nfit_spa_is_virtual(spa)) { in acpi_nfit_register_region()
2710 nfit_spa->spa->range_index); in acpi_nfit_register_region()
2862 nfit_spa->spa->range_index, in __acpi_nfit_scrub()
2874 acpi_desc->scrub_spa->spa->range_index); in __acpi_nfit_scrub()
2886 nfit_spa->spa->range_index, rc); in __acpi_nfit_scrub()
2940 int type = nfit_spa_type(nfit_spa->spa); in acpi_nfit_init_ars()
2970 switch (nfit_spa_type(nfit_spa->spa)) { in acpi_nfit_register_regions()
2979 switch (nfit_spa_type(nfit_spa->spa)) { in acpi_nfit_register_regions()
3227 int type = nfit_spa_type(nfit_spa->spa); in acpi_nfit_ars_rescan()