val = ddblreadl(link, MCI_CONTROL); if (val & (MCI_CONTROL_RESET | MCI_CONTROL_START_COMMAND)) return -EIO; if (cmd && cmd_len) for (i = 0; i < cmd_len; i++)
ddblwritel(link, cmd[i], MCI_COMMAND + i * 4);
val |= (MCI_CONTROL_START_COMMAND | MCI_CONTROL_ENABLE_DONE_INTERRUPT);
ddblwritel(link, val, MCI_CONTROL);
stat = wait_for_completion_timeout(&state->base->completion, HZ); if (stat == 0) {
dev_warn(state->base->dev, "MCI-%d: MCI timeout\n", state->nr); return -EIO;
} if (res && res_len) for (i = 0; i < res_len; i++)
res[i] = ddblreadl(link, MCI_RESULT + i * 4); return 0;
}
int ddb_mci_cmd(struct mci *state, struct mci_command *command, struct mci_result *result)
{ int stat;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.