Revision 0201e2da hw/spapr_vty.c

b/hw/spapr_vty.c
24 24
    VIOsPAPRVTYDevice *dev = (VIOsPAPRVTYDevice *)opaque;
25 25
    int i;
26 26

  
27
    if ((dev->in == dev->out) && size) {
28
        /* toggle line to simulate edge interrupt */
29
        qemu_irq_pulse(dev->sdev.qirq);
30
    }
27 31
    for (i = 0; i < size; i++) {
28 32
        assert((dev->in - dev->out) < VTERM_BUFSIZE);
29 33
        dev->buf[dev->in++ % VTERM_BUFSIZE] = buf[i];
......
112 116
}
113 117

  
114 118
void spapr_vty_create(VIOsPAPRBus *bus,
115
                      uint32_t reg, CharDriverState *chardev)
119
                      uint32_t reg, CharDriverState *chardev,
120
                      qemu_irq qirq, uint32_t vio_irq_num)
116 121
{
117 122
    DeviceState *dev;
123
    VIOsPAPRDevice *sdev;
118 124

  
119 125
    dev = qdev_create(&bus->bus, "spapr-vty");
120 126
    qdev_prop_set_uint32(dev, "reg", reg);
121 127
    qdev_prop_set_chr(dev, "chardev", chardev);
122 128
    qdev_init_nofail(dev);
129
    sdev = (VIOsPAPRDevice *)dev;
130
    sdev->qirq = qirq;
131
    sdev->vio_irq_num = vio_irq_num;
123 132
}
124 133

  
125 134
static void vty_hcalls(VIOsPAPRBus *bus)

Also available in: Unified diff