Lines Matching refs:nd_cmd

235 		struct nd_intel_fw_info *nd_cmd, unsigned int buf_len,
241 dev_dbg(dev, "%s(nfit_test: %p nd_cmd: %p, buf_len: %u, idx: %d\n",
242 __func__, t, nd_cmd, buf_len, idx);
244 if (buf_len < sizeof(*nd_cmd))
247 nd_cmd->status = 0;
248 nd_cmd->storage_size = INTEL_FW_STORAGE_SIZE;
249 nd_cmd->max_send_len = INTEL_FW_MAX_SEND_LEN;
250 nd_cmd->query_interval = INTEL_FW_QUERY_INTERVAL;
251 nd_cmd->max_query_time = INTEL_FW_QUERY_MAX_TIME;
252 nd_cmd->update_cap = 0;
253 nd_cmd->fis_version = INTEL_FW_FIS_VERSION;
254 nd_cmd->run_version = 0;
255 nd_cmd->updated_version = fw->version;
261 struct nd_intel_fw_start *nd_cmd, unsigned int buf_len,
267 dev_dbg(dev, "%s(nfit_test: %p nd_cmd: %p buf_len: %u idx: %d)\n",
268 __func__, t, nd_cmd, buf_len, idx);
270 if (buf_len < sizeof(*nd_cmd))
275 nd_cmd->status = 0x10007;
282 nd_cmd->status = 0;
283 nd_cmd->context = fw->context;
285 dev_dbg(dev, "%s: context issued: %#x\n", __func__, nd_cmd->context);
291 struct nd_intel_fw_send_data *nd_cmd, unsigned int buf_len,
296 u32 *status = (u32 *)&nd_cmd->data[nd_cmd->length];
298 dev_dbg(dev, "%s(nfit_test: %p nd_cmd: %p buf_len: %u idx: %d)\n",
299 __func__, t, nd_cmd, buf_len, idx);
301 if (buf_len < sizeof(*nd_cmd))
306 dev_dbg(dev, "%s: cmd->data[0]: %#x\n", __func__, nd_cmd->data[0]);
307 dev_dbg(dev, "%s: cmd->data[%u]: %#x\n", __func__, nd_cmd->length-1,
308 nd_cmd->data[nd_cmd->length-1]);
316 if (nd_cmd->context != fw->context) {
318 __func__, nd_cmd->context, fw->context);
327 if (nd_cmd->offset + nd_cmd->length > INTEL_FW_STORAGE_SIZE ||
328 nd_cmd->length > INTEL_FW_MAX_SEND_LEN) {
334 fw->size_received += nd_cmd->length;
336 __func__, nd_cmd->length, fw->size_received);
342 struct nd_intel_fw_finish_update *nd_cmd,
348 dev_dbg(dev, "%s(nfit_test: %p nd_cmd: %p buf_len: %u idx: %d)\n",
349 __func__, t, nd_cmd, buf_len, idx);
353 nd_cmd->status = 0x20007;
358 __func__, nd_cmd->context, nd_cmd->ctrl_flags);
360 switch (nd_cmd->ctrl_flags) {
362 if (nd_cmd->context != fw->context) {
364 __func__, nd_cmd->context,
366 nd_cmd->status = 0x10007;
369 nd_cmd->status = 0;
378 nd_cmd->status = 0x40007;
385 __func__, nd_cmd->ctrl_flags);
393 struct nd_intel_fw_finish_query *nd_cmd,
399 dev_dbg(dev, "%s(nfit_test: %p nd_cmd: %p buf_len: %u idx: %d)\n",
400 __func__, t, nd_cmd, buf_len, idx);
402 if (buf_len < sizeof(*nd_cmd))
405 if (nd_cmd->context != fw->context) {
407 __func__, nd_cmd->context, fw->context);
408 nd_cmd->status = 0x10007;
412 dev_dbg(dev, "%s context: %#x\n", __func__, nd_cmd->context);
416 nd_cmd->updated_fw_rev = 0;
417 nd_cmd->status = 0;
423 nd_cmd->status = 0x40007;
424 nd_cmd->updated_fw_rev = 0;
430 nd_cmd->updated_fw_rev = 0;
431 nd_cmd->status = 0x20007;
440 nd_cmd->status = 0;
442 fw->version = nd_cmd->updated_fw_rev =
454 static int nfit_test_cmd_get_config_size(struct nd_cmd_get_config_size *nd_cmd,
457 if (buf_len < sizeof(*nd_cmd))
460 nd_cmd->status = 0;
461 nd_cmd->config_size = LABEL_SIZE;
462 nd_cmd->max_xfer = SZ_4K;
468 *nd_cmd, unsigned int buf_len, void *label)
470 unsigned int len, offset = nd_cmd->in_offset;
473 if (buf_len < sizeof(*nd_cmd))
477 if (nd_cmd->in_length + sizeof(*nd_cmd) > buf_len)
480 nd_cmd->status = 0;
481 len = min(nd_cmd->in_length, LABEL_SIZE - offset);
482 memcpy(nd_cmd->out_buf, label + offset, len);
483 rc = buf_len - sizeof(*nd_cmd) - len;
488 static int nfit_test_cmd_set_config_data(struct nd_cmd_set_config_hdr *nd_cmd,
491 unsigned int len, offset = nd_cmd->in_offset;
495 if (buf_len < sizeof(*nd_cmd))
499 if (nd_cmd->in_length + sizeof(*nd_cmd) + 4 > buf_len)
502 status = (void *)nd_cmd + nd_cmd->in_length + sizeof(*nd_cmd);
504 len = min(nd_cmd->in_length, LABEL_SIZE - offset);
505 memcpy(label + offset, nd_cmd->in_buf, len);
506 rc = buf_len - sizeof(*nd_cmd) - (len + 4);
513 static int nfit_test_cmd_ars_cap(struct nd_cmd_ars_cap *nd_cmd,
518 if (buf_len < sizeof(*nd_cmd))
524 nd_cmd->max_ars_out = sizeof(struct nd_cmd_ars_status)
526 nd_cmd->status = (ND_ARS_PERSISTENT | ND_ARS_VOLATILE) << 16;
527 nd_cmd->clear_err_unit = NFIT_TEST_CLEAR_ERR_UNIT;
907 struct nd_intel_lss *nd_cmd, unsigned int buf_len)
911 if (buf_len < sizeof(*nd_cmd))
914 switch (nd_cmd->enable) {
916 nd_cmd->status = 0;
921 nd_cmd->status = 0;
926 dev_warn(dev, "Unknown enable value: %#x\n", nd_cmd->enable);
927 nd_cmd->status = 0x3;
946 struct nd_intel_get_security_state *nd_cmd,
952 nd_cmd->status = 0;
953 nd_cmd->state = sec->state;
954 nd_cmd->extended_state = sec->ext_state;
955 dev_dbg(dev, "security state (%#x) returned\n", nd_cmd->state);
961 struct nd_intel_unlock_unit *nd_cmd,
969 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
972 } else if (memcmp(nd_cmd->passphrase, sec->passphrase,
974 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
977 nd_cmd->status = 0;
982 dev_dbg(dev, "unlocking status returned: %#x\n", nd_cmd->status);
987 struct nd_intel_set_passphrase *nd_cmd,
994 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
996 } else if (memcmp(nd_cmd->old_pass, sec->passphrase,
998 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
1001 memcpy(sec->passphrase, nd_cmd->new_pass,
1004 nd_cmd->status = 0;
1012 struct nd_intel_freeze_lock *nd_cmd,
1019 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
1023 nd_cmd->status = 0;
1031 struct nd_intel_disable_passphrase *nd_cmd,
1039 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
1041 } else if (memcmp(nd_cmd->passphrase, sec->passphrase,
1043 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
1055 struct nd_intel_secure_erase *nd_cmd,
1062 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
1064 } else if (memcmp(nd_cmd->passphrase, sec->passphrase,
1066 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
1070 && (memcmp(nd_cmd->passphrase, zero_key,
1086 struct nd_intel_overwrite *nd_cmd,
1093 memcmp(nd_cmd->passphrase, sec->passphrase,
1095 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
1109 struct nd_intel_query_overwrite *nd_cmd,
1116 nd_cmd->status = ND_INTEL_STATUS_OQUERY_SEQUENCE_ERR;
1127 nd_cmd->status = ND_INTEL_STATUS_OQUERY_INPROGRESS;
1132 struct nd_intel_set_master_passphrase *nd_cmd,
1139 nd_cmd->status = ND_INTEL_STATUS_NOT_SUPPORTED;
1142 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
1144 } else if (memcmp(nd_cmd->old_pass, sec->master_passphrase,
1146 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
1149 memcpy(sec->master_passphrase, nd_cmd->new_pass,
1159 struct nd_intel_master_secure_erase *nd_cmd,
1166 nd_cmd->status = ND_INTEL_STATUS_NOT_SUPPORTED;
1169 nd_cmd->status = ND_INTEL_STATUS_INVALID_STATE;
1171 } else if (memcmp(nd_cmd->passphrase, sec->master_passphrase,
1173 nd_cmd->status = ND_INTEL_STATUS_INVALID_PASS;
1189 struct nd_intel_bus_fw_activate_businfo *nd_cmd,
1216 *nd_cmd = (struct nd_intel_bus_fw_activate_businfo) {
1231 struct nd_intel_bus_fw_activate *nd_cmd,
1247 nd_cmd->status = status;
1269 struct nd_intel_fw_activate_dimminfo *nd_cmd,
1296 *nd_cmd = (struct nd_intel_fw_activate_dimminfo) {
1305 struct nd_intel_fw_activate_arm *nd_cmd,
1310 fw->armed = nd_cmd->activate_arm == ND_INTEL_DIMM_FWA_ARM;
1311 nd_cmd->status = 0;