From patchwork Thu Nov 19 10:07:12 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [6/7] lsi53c895a: Use alternative address when already reselected Date: Thu, 19 Nov 2009 00:07:12 -0000 From: Jan Kiszka X-Patchwork-Id: 38819 Message-Id: <20091119100712.16666.12700.stgit@mchn012c.ww002.siemens.net> To: qemu-devel@nongnu.org Cc: Laszlo Ast From: Laszlo Ast See SCRIPTS, 3.2.17 SELECT. Signed-off-by: Laszlo Ast Signed-off-by: Jan Kiszka --- hw/lsi53c895a.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c index 4c638be..480fbca 100644 --- a/hw/lsi53c895a.c +++ b/hw/lsi53c895a.c @@ -1038,8 +1038,9 @@ again: switch (opcode) { case 0: /* Select */ s->sdid = id; - if (s->current_dma_len && (s->ssid & 0xf) == id) { - DPRINTF("Already reselected by target %d\n", id); + if (s->scntl1 & LSI_SCNTL1_CON) { + DPRINTF("Already reselected, jumping to alternative address\n"); + s->dsp = s->dnad; break; } s->sstat0 |= LSI_SSTAT0_WOA;