| @@ -1130,11 +1130,11 @@ static int acpi_nfit_add_dimm(struct acpi_nfit_desc *acpi_desc, · 1129 unmodified lines |
| 1130 | } | 1130 | } |
| 1131 | | 1131 | |
| 1132 | /* | 1132 | /* |
| 1133 | * Until standardization materializes we need to consider up to 3 | 1133 | * Until standardization materializes we need to consider 4 |
| 1134 | * different command sets. Note, that checking for function0 (bit0) | 1134 | * different command sets. Note, that checking for function0 (bit0) |
| 1135 | * tells us if any commands are reachable through this uuid. | 1135 | * tells us if any commands are reachable through this uuid. |
| 1136 | */ | 1136 | */ |
| 1137 | for (i = NVDIMM_FAMILY_INTEL; i <= NVDIMM_FAMILY_HPE2; i++) | 1137 | for (i = NVDIMM_FAMILY_INTEL; i <= NVDIMM_FAMILY_MSFT; i++) |
| 1138 | if (acpi_check_dsm(adev_dimm->handle, to_nfit_uuid(i), 1, 1)) | 1138 | if (acpi_check_dsm(adev_dimm->handle, to_nfit_uuid(i), 1, 1)) |
| 1139 | break; | 1139 | break; |
| 1140 | | 1140 | |
| @@ -1144,12 +1144,14 @@ static int acpi_nfit_add_dimm(struct acpi_nfit_desc *acpi_desc, · 3 unmodified lines |
| 1144 | dsm_mask = 0x3fe; | 1144 | dsm_mask = 0x3fe; |
| 1145 | if (disable_vendor_specific) | 1145 | if (disable_vendor_specific) |
| 1146 | dsm_mask &= ~(1 << ND_CMD_VENDOR); | 1146 | dsm_mask &= ~(1 << ND_CMD_VENDOR); |
| 1147 | } else if (nfit_mem->family == NVDIMM_FAMILY_HPE1) | 1147 | } else if (nfit_mem->family == NVDIMM_FAMILY_HPE1) { |
| 1148 | dsm_mask = 0x1c3c76; | 1148 | dsm_mask = 0x1c3c76; |
| 1149 | else if (nfit_mem->family == NVDIMM_FAMILY_HPE2) { | 1149 | } else if (nfit_mem->family == NVDIMM_FAMILY_HPE2) { |
| 1150 | dsm_mask = 0x1fe; | 1150 | dsm_mask = 0x1fe; |
| 1151 | if (disable_vendor_specific) | 1151 | if (disable_vendor_specific) |
| 1152 | dsm_mask &= ~(1 << 8); | 1152 | dsm_mask &= ~(1 << 8); |
| | 1153 | } else if (nfit_mem->family == NVDIMM_FAMILY_MSFT) { |
| | 1154 | dsm_mask = 0xffffffff; |
| 1153 | } else { | 1155 | } else { |
| 1154 | dev_err(dev, "unknown dimm command family\n"); | 1156 | dev_err(dev, "unknown dimm command family\n"); |
| 1155 | nfit_mem->family = -1; | 1157 | nfit_mem->family = -1; |
| @@ -2692,6 +2694,7 @@ static __init int nfit_init(void) · 1536 unmodified lines |
| 2692 | acpi_str_to_uuid(UUID_NFIT_DIMM, nfit_uuid[NFIT_DEV_DIMM]); | 2694 | acpi_str_to_uuid(UUID_NFIT_DIMM, nfit_uuid[NFIT_DEV_DIMM]); |
| 2693 | acpi_str_to_uuid(UUID_NFIT_DIMM_N_HPE1, nfit_uuid[NFIT_DEV_DIMM_N_HPE1]); | 2695 | acpi_str_to_uuid(UUID_NFIT_DIMM_N_HPE1, nfit_uuid[NFIT_DEV_DIMM_N_HPE1]); |
| 2694 | acpi_str_to_uuid(UUID_NFIT_DIMM_N_HPE2, nfit_uuid[NFIT_DEV_DIMM_N_HPE2]); | 2696 | acpi_str_to_uuid(UUID_NFIT_DIMM_N_HPE2, nfit_uuid[NFIT_DEV_DIMM_N_HPE2]); |
| | 2697 | acpi_str_to_uuid(UUID_NFIT_DIMM_N_MSFT, nfit_uuid[NFIT_DEV_DIMM_N_MSFT]); |
| 2695 | | 2698 | |
| 2696 | nfit_wq = create_singlethread_workqueue("nfit"); | 2699 | nfit_wq = create_singlethread_workqueue("nfit"); |
| 2697 | if (!nfit_wq) | 2700 | if (!nfit_wq) |