hw/char: QOM'ify escc.c (fix)
The previous commit e7c9136977
(hw/char: QOM'ify escc.c) cause qemu-system-ppc/ppc64
OpenBIOS to freeze on startup, this commit fix it.
Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com>
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-Id: <1464767898-30526-1-git-send-email-zxq_yx_007@163.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
8156d48086
commit
4b3eec91b9
@ -989,18 +989,13 @@ static void escc_init1(Object *obj)
|
|||||||
SysBusDevice *dev = SYS_BUS_DEVICE(obj);
|
SysBusDevice *dev = SYS_BUS_DEVICE(obj);
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
s->chn[0].disabled = s->disabled;
|
|
||||||
s->chn[1].disabled = s->disabled;
|
|
||||||
for (i = 0; i < 2; i++) {
|
for (i = 0; i < 2; i++) {
|
||||||
sysbus_init_irq(dev, &s->chn[i].irq);
|
sysbus_init_irq(dev, &s->chn[i].irq);
|
||||||
s->chn[i].chn = 1 - i;
|
s->chn[i].chn = 1 - i;
|
||||||
s->chn[i].clock = s->frequency / 2;
|
|
||||||
}
|
}
|
||||||
s->chn[0].otherchn = &s->chn[1];
|
s->chn[0].otherchn = &s->chn[1];
|
||||||
s->chn[1].otherchn = &s->chn[0];
|
s->chn[1].otherchn = &s->chn[0];
|
||||||
|
|
||||||
memory_region_init_io(&s->mmio, obj, &escc_mem_ops, s, "escc",
|
|
||||||
ESCC_SIZE << s->it_shift);
|
|
||||||
sysbus_init_mmio(dev, &s->mmio);
|
sysbus_init_mmio(dev, &s->mmio);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1009,8 +1004,15 @@ static void escc_realize(DeviceState *dev, Error **errp)
|
|||||||
ESCCState *s = ESCC(dev);
|
ESCCState *s = ESCC(dev);
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
s->chn[0].disabled = s->disabled;
|
||||||
|
s->chn[1].disabled = s->disabled;
|
||||||
|
|
||||||
|
memory_region_init_io(&s->mmio, OBJECT(dev), &escc_mem_ops, s, "escc",
|
||||||
|
ESCC_SIZE << s->it_shift);
|
||||||
|
|
||||||
for (i = 0; i < 2; i++) {
|
for (i = 0; i < 2; i++) {
|
||||||
if (s->chn[i].chr) {
|
if (s->chn[i].chr) {
|
||||||
|
s->chn[i].clock = s->frequency / 2;
|
||||||
qemu_chr_add_handlers(s->chn[i].chr, serial_can_receive,
|
qemu_chr_add_handlers(s->chn[i].chr, serial_can_receive,
|
||||||
serial_receive1, serial_event, &s->chn[i]);
|
serial_receive1, serial_event, &s->chn[i]);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user