• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revision5510f30955a75545e699c8d530139d05199e8b22 (tree)
Time2019-01-13 22:52:39
AuthorYoshinori Sato <ysato@user...>
CommiterYoshinori Sato

Log Message

SCI interrupt fix

Change Summary

Incremental Difference

--- a/hw/char/renesas_sci.c
+++ b/hw/char/renesas_sci.c
@@ -62,8 +62,8 @@ static void send_byte(RSCIState *sci)
6262 static void txend(void *opaque)
6363 {
6464 RSCIState *sci= RSCI(opaque);
65- if (sci->scr & 0x80 && (sci->ssr & 0x80) == 0)
66- send_byte(sci);
65+ if ((sci->ssr & 0x80) == 0)
66+ send_byte(sci);
6767 else {
6868 sci->ssr |= 0x04;
6969 if (sci->scr & 0x04)
@@ -104,8 +104,11 @@ static void sci_write(void *opaque, hwaddr addr, uint64_t val, unsigned size)
104104 break;
105105 case 2: /* SCR */
106106 sci->scr = val;
107- if ((sci->scr & 0x20) == 0)
107+ if (sci->scr & 0x20) {
108108 sci->ssr |= 0x84;
109+ qemu_set_irq(sci->irq[TXI], 1);
110+ qemu_set_irq(sci->irq[TXI], 0);
111+ }
109112 if ((sci->scr & 0x04) == 0)
110113 qemu_set_irq(sci->irq[TEI], 0);
111114 if ((sci->scr & 0x40) == 0)