On (Tue) 12 Apr 2011 [15:09:33], Kevin Wolf wrote: > Am 12.04.2011 13:43, schrieb Amit Shah: > > Handle GET_EVENT_STATUS_NOTIFICATION's No Event Available response in a > > generic way so that future additions to the code to handle other > > response types is easier. > > > > Signed-off-by: Amit Shah <amit.s...@redhat.com> > > --- > > hw/ide/core.c | 24 +++++++++++++++++++----- > > 1 files changed, 19 insertions(+), 5 deletions(-) > > > > diff --git a/hw/ide/core.c b/hw/ide/core.c > > index e838990..a9bc1e3 100644 > > --- a/hw/ide/core.c > > +++ b/hw/ide/core.c > > @@ -1098,9 +1098,17 @@ static void > > handle_get_event_status_notification(IDEState *s, > > uint8_t control; > > } __attribute__((packed)) *gesn_cdb; > > > > + struct { > > + uint16_t len; > > + uint8_t notification_class; > > + uint8_t supported_events; > > + } __attribute((packed)) *gesn_event_header; > > + > > unsigned int max_len, used_len; > > > > gesn_cdb = (void *)packet; > > + gesn_event_header = (void *)packet; > > I think this should be buf, not packet.
Ah, right. (Though they're the same.) > > max_len = be16_to_cpu(gesn_cdb->len); > > > > /* It is fine by the MMC spec to not support async mode operations */ > > @@ -1111,12 +1119,18 @@ static void > > handle_get_event_status_notification(IDEState *s, > > return; > > } > > > > - /* polling */ > > + /* polling mode operation */ > > + > > /* 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); > > + gesn_event_header->supported_events = 0; > > + gesn_event_header->notification_class = 0; > > This line has no effect, even after the next patch. Yep, will remove. Amit