Lines Matching defs:nfit_mem
190 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
198 if (test_bit(NFIT_MEM_LSR, &nfit_mem->flags))
205 if (test_bit(NFIT_MEM_LSR, &nfit_mem->flags)
210 if (test_bit(NFIT_MEM_LSW, &nfit_mem->flags)
397 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
399 if (nfit_mem && nfit_mem->family == NVDIMM_FAMILY_INTEL
406 static int cmd_to_func(struct nfit_mem *nfit_mem, unsigned int cmd,
412 if (nfit_mem && nfit_mem->family != call_pkg->nd_family)
423 if (!nfit_mem)
427 if (nfit_mem->family == NVDIMM_FAMILY_INTEL)
441 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
464 func = cmd_to_func(nfit_mem, cmd, call_pkg, &family);
469 struct acpi_device *adev = nfit_mem->adev;
477 dsm_mask = nfit_mem->dsm_mask;
479 guid = to_nfit_uuid(nfit_mem->family);
544 && test_bit(NFIT_MEM_LSR, &nfit_mem->flags))
547 && test_bit(NFIT_MEM_LSR, &nfit_mem->flags)) {
552 && test_bit(NFIT_MEM_LSW, &nfit_mem->flags)) {
561 revid = nfit_dsm_revid(nfit_mem->family, func);
766 struct nfit_mem *nfit_mem;
772 list_for_each_entry(nfit_mem, &acpi_desc->dimms, list) {
773 memdev = __to_nfit_memdev(nfit_mem);
1010 struct nfit_mem *nfit_mem, *found;
1043 list_for_each_entry(nfit_mem, &acpi_desc->dimms, list)
1044 if (__to_nfit_memdev(nfit_mem)->device_handle
1046 found = nfit_mem;
1051 nfit_mem = found;
1053 nfit_mem = devm_kzalloc(acpi_desc->dev,
1054 sizeof(*nfit_mem), GFP_KERNEL);
1055 if (!nfit_mem)
1057 INIT_LIST_HEAD(&nfit_mem->list);
1058 nfit_mem->acpi_desc = acpi_desc;
1059 list_add(&nfit_mem->list, &acpi_desc->dimms);
1072 if (!nfit_mem->dcr)
1073 nfit_mem->dcr = nfit_dcr->dcr;
1074 else if (nfit_mem->dcr->windows == 0
1076 nfit_mem->dcr = nfit_dcr->dcr;
1086 nfit_mem->nfit_flush = nfit_flush;
1088 nfit_mem->flush_wpq = devm_kcalloc(acpi_desc->dev,
1092 if (!nfit_mem->flush_wpq)
1095 struct resource *res = &nfit_mem->flush_wpq[i];
1103 if (dcr && !nfit_mem->dcr) {
1114 nfit_mem->spa_dcr = spa;
1115 nfit_mem->memdev_dcr = nfit_memdev->memdev;
1120 nfit_mem->idt_dcr = nfit_idt->idt;
1129 nfit_mem->memdev_pmem = nfit_memdev->memdev;
1131 nfit_mem->memdev_dcr = nfit_memdev->memdev;
1140 struct nfit_mem *a = container_of(_a, typeof(*a), list);
1141 struct nfit_mem *b = container_of(_b, typeof(*b), list);
1164 * the DCR. Throw it all into an nfit_mem object. Note, that
1372 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
1374 return __to_nfit_memdev(nfit_mem);
1380 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
1382 return nfit_mem->dcr;
1460 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
1463 if (nfit_mem->memdev_pmem)
1482 struct nfit_mem *nfit_mem;
1488 nfit_mem = nvdimm_provider_data(nvdimm);
1489 acpi_desc = nfit_mem->acpi_desc;
1540 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
1542 if (nfit_mem->family < 0)
1544 return sysfs_emit(buf, "%d\n", nfit_mem->family);
1552 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
1554 if (nfit_mem->family < 0)
1556 return sysfs_emit(buf, "%#lx\n", nfit_mem->dsm_mask);
1564 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
1565 u16 flags = __to_nfit_memdev(nfit_mem)->flags;
1567 if (test_bit(NFIT_MEM_DIRTY, &nfit_mem->flags))
1585 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
1587 return sysfs_emit(buf, "%s\n", nfit_mem->id);
1595 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
1597 return sysfs_emit(buf, "%d\n", nfit_mem->dirty_shutdown);
1627 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
1642 if (!test_bit(NFIT_MEM_DIRTY_COUNT, &nfit_mem->flags)
1663 struct nfit_mem *nfit_mem;
1665 list_for_each_entry(nfit_mem, &acpi_desc->dimms, list)
1666 if (__to_nfit_memdev(nfit_mem)->device_handle == device_handle)
1667 return nfit_mem->nvdimm;
1674 struct nfit_mem *nfit_mem;
1691 * If we successfully retrieved acpi_desc, then we know nfit_mem data
1694 nfit_mem = dev_get_drvdata(dev);
1695 if (nfit_mem && nfit_mem->flags_attr)
1696 sysfs_notify_dirent(nfit_mem->flags_attr);
1722 __weak void nfit_intel_shutdown_status(struct nfit_mem *nfit_mem)
1724 struct device *dev = &nfit_mem->adev->dev;
1736 const guid_t *guid = to_nfit_uuid(nfit_mem->family);
1737 u8 revid = nfit_dsm_revid(nfit_mem->family, func);
1738 struct acpi_device *adev = nfit_mem->adev;
1742 if ((nfit_mem->dsm_mask & (1 << func)) == 0)
1757 set_bit(NFIT_MEM_DIRTY, &nfit_mem->flags);
1761 set_bit(NFIT_MEM_DIRTY_COUNT, &nfit_mem->flags);
1762 nfit_mem->dirty_shutdown = smart.shutdown_count;
1766 static void populate_shutdown_status(struct nfit_mem *nfit_mem)
1771 * these values in nfit_mem.
1773 if (nfit_mem->family == NVDIMM_FAMILY_INTEL)
1774 nfit_intel_shutdown_status(nfit_mem);
1778 struct nfit_mem *nfit_mem, u32 device_handle)
1787 struct acpi_nfit_control_region *dcr = nfit_mem->dcr;
1790 nfit_mem->dsm_mask = acpi_desc->dimm_cmd_force_en;
1791 nfit_mem->family = NVDIMM_FAMILY_INTEL;
1795 sprintf(nfit_mem->id, "%04x-%02x-%04x-%08x",
1801 sprintf(nfit_mem->id, "%04x-%08x",
1808 populate_shutdown_status(nfit_mem);
1813 nfit_mem->adev = adev_dimm;
1827 * Record nfit_mem for the notification path to track back to
1830 dev_set_drvdata(&adev_dimm->dev, nfit_mem);
1854 nfit_mem->family = family;
1857 else if (nfit_mem->family == NVDIMM_FAMILY_INTEL) {
1861 } else if (nfit_mem->family == NVDIMM_FAMILY_HPE1) {
1863 } else if (nfit_mem->family == NVDIMM_FAMILY_HPE2) {
1867 } else if (nfit_mem->family == NVDIMM_FAMILY_MSFT) {
1869 } else if (nfit_mem->family == NVDIMM_FAMILY_HYPERV) {
1873 nfit_mem->family = -1;
1885 guid = to_nfit_uuid(nfit_mem->family);
1888 nfit_dsm_revid(nfit_mem->family, i),
1890 set_bit(i, &nfit_mem->dsm_mask);
1905 set_bit(NFIT_MEM_LSR, &nfit_mem->flags);
1908 if (test_bit(NFIT_MEM_LSR, &nfit_mem->flags)
1911 set_bit(NFIT_MEM_LSW, &nfit_mem->flags);
1918 if (!test_bit(NFIT_MEM_LSW, &nfit_mem->flags)
1922 clear_bit(NFIT_MEM_LSR, &nfit_mem->flags);
1928 populate_shutdown_status(nfit_mem);
1936 struct nfit_mem *nfit_mem;
1940 * Clear out the nfit_mem->flags_attr and shut down dimm event
1943 list_for_each_entry(nfit_mem, &acpi_desc->dimms, list) {
1944 struct acpi_device *adev_dimm = nfit_mem->adev;
1946 if (nfit_mem->flags_attr) {
1947 sysfs_put(nfit_mem->flags_attr);
1948 nfit_mem->flags_attr = NULL;
1970 struct nfit_mem *nfit_mem)
1973 struct acpi_nfit_desc *acpi_desc = nfit_mem->acpi_desc;
1979 if (nfit_mem->family != NVDIMM_FAMILY_INTEL)
1982 mask = nfit_mem->dsm_mask & NVDIMM_INTEL_FW_ACTIVATE_CMDMASK;
1991 struct nfit_mem *nfit_mem;
1995 list_for_each_entry(nfit_mem, &acpi_desc->dimms, list) {
2002 device_handle = __to_nfit_memdev(nfit_mem)->device_handle;
2013 dimm_memdev = __to_nfit_memdev(nfit_mem);
2020 mem_flags = __to_nfit_memdev(nfit_mem)->flags;
2024 rc = acpi_nfit_add_dimm(acpi_desc, nfit_mem, device_handle);
2034 if (nfit_mem->family == NVDIMM_FAMILY_INTEL) {
2040 cmd_mask |= nfit_mem->dsm_mask & NVDIMM_STANDARD_CMDMASK;
2043 if (test_bit(NFIT_MEM_LSR, &nfit_mem->flags)) {
2047 if (test_bit(NFIT_MEM_LSW, &nfit_mem->flags))
2050 flush = nfit_mem->nfit_flush ? nfit_mem->nfit_flush->flush
2052 nvdimm = __nvdimm_create(acpi_desc->nvdimm_bus, nfit_mem,
2055 nfit_mem->flush_wpq, &nfit_mem->id[0],
2056 acpi_nfit_get_security_ops(nfit_mem->family),
2057 acpi_nfit_get_fw_ops(nfit_mem));
2061 nfit_mem->nvdimm = nvdimm;
2085 list_for_each_entry(nfit_mem, &acpi_desc->dimms, list) {
2088 nvdimm = nfit_mem->nvdimm;
2094 nfit_mem->flags_attr = sysfs_get_dirent(nfit_kernfs,
2097 if (!nfit_mem->flags_attr)
2284 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
2289 struct acpi_nfit_control_region *dcr = nfit_mem->dcr;
2291 if (!memdev || !nfit_mem->dcr) {
2326 struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
2327 struct acpi_nfit_control_region *dcr = nfit_mem->dcr;