aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorLaszlo Ast <laszlo.ast@siemens-enterprise.com>2009-11-19 11:07:12 +0100
committerAnthony Liguori <aliguori@us.ibm.com>2009-12-03 09:41:41 -0600
commit38f5b2b88cbe02492a4cad3aa06a778a952f7146 (patch)
tree05fff2ce912e8e542b0466bf28d0a1370db90762 /hw
parent07a1bea883895522a89e632757041c364ce2e12e (diff)
lsi53c895a: Use alternative address when already reselected
See SCRIPTS, 3.2.17 SELECT. Signed-off-by: Laszlo Ast <laszlo.ast@siemens-enterprise.com> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/lsi53c895a.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c
index 7e141a0ac1..7fed1d8664 100644
--- a/hw/lsi53c895a.c
+++ b/hw/lsi53c895a.c
@@ -1040,8 +1040,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;