Lines Matching refs:nd_cmd

232 		struct nd_intel_fw_info *nd_cmd, unsigned int buf_len,
238 dev_dbg(dev, "%s(nfit_test: %p nd_cmd: %p, buf_len: %u, idx: %d\n",
239 __func__, t, nd_cmd, buf_len, idx);
241 if (buf_len < sizeof(*nd_cmd))
244 nd_cmd->status = 0;
245 nd_cmd->storage_size = INTEL_FW_STORAGE_SIZE;
246 nd_cmd->max_send_len = INTEL_FW_MAX_SEND_LEN;
247 nd_cmd->query_interval = INTEL_FW_QUERY_INTERVAL;
248 nd_cmd->max_query_time = INTEL_FW_QUERY_MAX_TIME;
249 nd_cmd->update_cap = 0;
250 nd_cmd->fis_version = INTEL_FW_FIS_VERSION;
251 nd_cmd->run_version = 0;
252 nd_cmd->updated_version = fw->version;
258 struct nd_intel_fw_start *nd_cmd, unsigned int buf_len,
264 dev_dbg(dev, "%s(nfit_test: %p nd_cmd: %p buf_len: %u idx: %d)\n",
265 __func__, t, nd_cmd, buf_len, idx);
267 if (buf_len < sizeof(*nd_cmd))
272 nd_cmd->status = 0x10007;
279 nd_cmd->status = 0;
280 nd_cmd->context = fw->context;
282 dev_dbg(dev, "%s: context issued: %#x\n", __func__, nd_cmd->context);
288 struct nd_intel_fw_send_data *nd_cmd, unsigned int buf_len,
293 u32 *status = (u32 *)&nd_cmd->data[nd_cmd->length];
295 dev_dbg(dev, "%s(nfit_test: %p nd_cmd: %p buf_len: %u idx: %d)\n",
296 __func__, t, nd_cmd, buf_len, idx);
298 if (buf_len < sizeof(*nd_cmd))
303 dev_dbg(dev, "%s: cmd->data[0]: %#x\n", __func__, nd_cmd->data[0]);
304 dev_dbg(dev, "%s: cmd->data[%u]: %#x\n", __func__, nd_cmd->length-1,
305 nd_cmd->data[nd_cmd->length-1]);
313 if (nd_cmd->context != fw->context) {
315 __func__, nd_cmd->context, fw->context);
324 if (nd_cmd->offset + nd_cmd->length > INTEL_FW_STORAGE_SIZE ||
325 nd_cmd->length > INTEL_FW_MAX_SEND_LEN) {
331 fw->size_received += nd_cmd->length;
333 __func__, nd_cmd->length, fw->size_received);
339 struct nd_intel_fw_finish_update *nd_cmd,
345 dev_dbg(dev, "%s(nfit_test: %p nd_cmd: %p buf_len: %u idx: %d)\n",
346 __func__, t, nd_cmd, buf_len, idx);
350 nd_cmd->status = 0x20007;
355 __func__, nd_cmd->context, nd_cmd->ctrl_flags);
357 switch (nd_cmd->ctrl_flags) {
359 if (nd_cmd->context != fw->context) {
361 __func__, nd_cmd->context,
363 nd_cmd->status = 0x10007;
366 nd_cmd->status = 0;
375 nd_cmd->status = 0x40007;
382 __func__, nd_cmd->ctrl_flags);
390 struct nd_intel_fw_finish_query *nd_cmd,
396 dev_dbg(dev, "%s(nfit_test: %p nd_cmd: %p buf_len: %u idx: %d)\n",
397 __func__, t, nd_cmd, buf_len, idx);
399 if (buf_len < sizeof(*nd_cmd))
402 if (nd_cmd->context != fw->context) {
404 __func__, nd_cmd->context, fw->context);
405 nd_cmd->status = 0x10007;
409 dev_dbg(dev, "%s context: %#x\n", __func__, nd_cmd->context);
413 nd_cmd->updated_fw_rev = 0;
414 nd_cmd->status = 0;
420 nd_cmd->status = 0x40007;
421 nd_cmd->updated_fw_rev = 0;
427 nd_cmd->updated_fw_rev = 0;
428 nd_cmd->status = 0x20007;
437 nd_cmd->status = 0;
439 fw->version = nd_cmd->updated_fw_rev =
451 static int nfit_test_cmd_get_config_size(struct nd_cmd_get_config_size *nd_cmd,
454 if (buf_len < sizeof(*nd_cmd))
457 nd_cmd->status = 0;
458 nd_cmd->config_size = LABEL_SIZE;
459 nd_cmd->max_xfer = SZ_4K;
465 *nd_cmd, unsigned int buf_len, void *label)
467 unsigned int len, offset = nd_cmd->in_offset;
470 if (buf_len < sizeof(*nd_cmd))
474 if (nd_cmd->in_length + sizeof(*nd_cmd) > buf_len)
477 nd_cmd->status = 0;
478 len = min(nd_cmd->in_length, LABEL_SIZE - offset);
479 memcpy(nd_cmd->out_buf, label + offset, len);
480 rc = buf_len - sizeof(*nd_cmd) - len;
485 static int nfit_test_cmd_set_config_data(struct nd_cmd_set_config_hdr *nd_cmd,
488 unsigned int len, offset = nd_cmd->in_offset;
492 if (buf_len < sizeof(*nd_cmd))
496 if (nd_cmd->in_length + sizeof(*nd_cmd) + 4 > buf_len)
499 status = (void *)nd_cmd + nd_cmd->in_length + sizeof(*nd_cmd);
501 len = min(nd_cmd->in_length, LABEL_SIZE - offset);
502 memcpy(label + offset, nd_cmd->in_buf, len);
503 rc = buf_len - sizeof(*nd_cmd) - (len + 4);
510 static int nfit_test_cmd_ars_cap(struct nd_cmd_ars_cap *nd_cmd,
515 if (buf_len < sizeof(*nd_cmd))
521 nd_cmd->max_ars_out = sizeof(struct nd_cmd_ars_status)
523 nd_cmd->status = (ND_ARS_PERSISTENT | ND_ARS_VOLATILE) << 16;
524 nd_cmd->clear_err_unit = NFIT_TEST_CLEAR_ERR_UNIT;
904 struct nd_intel_lss *nd_cmd, unsigned int buf_len)
908 if (buf_len < sizeof(*nd_cmd))
911 switch (nd_cmd->enable) {
913 nd_cmd->status = 0;
918 nd_cmd->status = 0;
923 dev_warn(dev, "Unknown enable value: %#x\n", nd_cmd->enable);
924 nd_cmd->status = 0x3;
943 struct nd_intel_get_security_state *nd_cmd,
949 nd_cmd->status = 0;
950 nd_cmd->state = sec->state;
951 nd_cmd->extended_state = sec->ext_state;
952 dev_dbg(dev, "security state (%#x) returned\n", nd_cmd->state);
958 struct nd_intel_unlock_unit *nd_cmd,
966 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
969 } else if (memcmp(nd_cmd->passphrase, sec->passphrase,
971 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
974 nd_cmd->status = 0;
979 dev_dbg(dev, "unlocking status returned: %#x\n", nd_cmd->status);
984 struct nd_intel_set_passphrase *nd_cmd,
991 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
993 } else if (memcmp(nd_cmd->old_pass, sec->passphrase,
995 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
998 memcpy(sec->passphrase, nd_cmd->new_pass,
1001 nd_cmd->status = 0;
1009 struct nd_intel_freeze_lock *nd_cmd,
1016 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
1020 nd_cmd->status = 0;
1028 struct nd_intel_disable_passphrase *nd_cmd,
1036 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
1038 } else if (memcmp(nd_cmd->passphrase, sec->passphrase,
1040 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
1052 struct nd_intel_secure_erase *nd_cmd,
1059 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
1061 } else if (memcmp(nd_cmd->passphrase, sec->passphrase,
1063 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
1067 && (memcmp(nd_cmd->passphrase, zero_key,
1083 struct nd_intel_overwrite *nd_cmd,
1090 memcmp(nd_cmd->passphrase, sec->passphrase,
1092 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
1106 struct nd_intel_query_overwrite *nd_cmd,
1113 nd_cmd->status = ND_INTEL_STATUS_OQUERY_SEQUENCE_ERR;
1124 nd_cmd->status = ND_INTEL_STATUS_OQUERY_INPROGRESS;
1129 struct nd_intel_set_master_passphrase *nd_cmd,
1136 nd_cmd->status = ND_INTEL_STATUS_NOT_SUPPORTED;
1139 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
1141 } else if (memcmp(nd_cmd->old_pass, sec->master_passphrase,
1143 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
1146 memcpy(sec->master_passphrase, nd_cmd->new_pass,
1156 struct nd_intel_master_secure_erase *nd_cmd,
1163 nd_cmd->status = ND_INTEL_STATUS_NOT_SUPPORTED;
1166 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
1168 } else if (memcmp(nd_cmd->passphrase, sec->master_passphrase,
1170 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
1186 struct nd_intel_bus_fw_activate_businfo *nd_cmd,
1213 *nd_cmd = (struct nd_intel_bus_fw_activate_businfo) {
1228 struct nd_intel_bus_fw_activate *nd_cmd,
1244 nd_cmd->status = status;
1266 struct nd_intel_fw_activate_dimminfo *nd_cmd,
1293 *nd_cmd = (struct nd_intel_fw_activate_dimminfo) {
1302 struct nd_intel_fw_activate_arm *nd_cmd,
1307 fw->armed = nd_cmd->activate_arm == ND_INTEL_DIMM_FWA_ARM;
1308 nd_cmd->status = 0;