提交 253cb7b9 编写于 作者: A Aurelien Jarno 提交者: Kevin Wolf

ide/atapi: add support for GET EVENT STATUS NOTIFICATION

The GET EVENT STATUS NOTIFICATION is a mandatory command according
to MMC-3, even if event status notification is not supported.

This patch adds support for this command. It returns NEA ("No Event
Available") with an empty "Supported Event Classes" to show that it
doesn't event support status notification. If asychronous operation is
requested, which requires NCQ support, it returns an error according
to the specifications.

This fixes HAL support on FreeBSD and derivatives, which fill up the
logs every second with:

  acd0: FAILURE - unknown CMD (0x03) ILLEGAL REQUEST asc=0x20 ascq=0x00
Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
Signed-off-by: NKevin Wolf <kwolf@redhat.com>
上级 cdcf9153
......@@ -1643,6 +1643,21 @@ static void ide_atapi_cmd(IDEState *s)
ide_atapi_cmd_reply(s, len, max_len);
break;
}
case GPCMD_GET_EVENT_STATUS_NOTIFICATION:
max_len = ube16_to_cpu(packet + 7);
if (packet[1] & 0x01) { /* polling */
/* We don't support any event class (yet). */
cpu_to_ube16(buf, 0x00); /* No event descriptor returned */
buf[2] = 0x80; /* No Event Available (NEA) */
buf[3] = 0x00; /* Empty supported event classes */
ide_atapi_cmd_reply(s, 4, max_len);
} else { /* asynchronous mode */
/* Only polling is supported, asynchronous mode is not. */
ide_atapi_cmd_error(s, SENSE_ILLEGAL_REQUEST,
ASC_INV_FIELD_IN_CMD_PACKET);
}
break;
default:
ide_atapi_cmd_error(s, SENSE_ILLEGAL_REQUEST,
ASC_ILLEGAL_OPCODE);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册