Revision e927bb00 hw/omap2.c

b/hw/omap2.c
1109 1109
    struct omap_mcspi_ch_s {
1110 1110
        qemu_irq txdrq;
1111 1111
        qemu_irq rxdrq;
1112
        uint32_t (*txrx)(void *opaque, uint32_t);
1112
        uint32_t (*txrx)(void *opaque, uint32_t, int);
1113 1113
        void *opaque;
1114 1114

  
1115 1115
        uint32_t tx;
......
1157 1157
    if (!(s->control & 1) ||				/* SINGLE */
1158 1158
                    (ch->config & (1 << 20))) {		/* FORCE */
1159 1159
        if (ch->txrx)
1160
            ch->rx = ch->txrx(ch->opaque, ch->tx);
1160
            ch->rx = ch->txrx(ch->opaque, ch->tx,	/* WL */
1161
                            1 + (0x1f & (ch->config >> 7)));
1161 1162
    }
1162 1163

  
1163 1164
    ch->tx = 0;
......
1408 1409
}
1409 1410

  
1410 1411
void omap_mcspi_attach(struct omap_mcspi_s *s,
1411
                uint32_t (*txrx)(void *opaque, uint32_t), void *opaque,
1412
                uint32_t (*txrx)(void *opaque, uint32_t, int), void *opaque,
1412 1413
                int chipselect)
1413 1414
{
1414 1415
    if (chipselect < 0 || chipselect >= s->chnum)
......
1476 1477

  
1477 1478
    case 0x24:	/* STI_ER / STI_DR / XTI_TRACESELECT */
1478 1479
    case 0x28:	/* STI_RX_DR / XTI_RXDATA */
1479
        break;
1480
        /* TODO */
1481
        return 0;
1480 1482

  
1481 1483
    case 0x2c:	/* STI_CLK_CTRL / XTI_SCLKCRTL */
1482 1484
        return s->clkcontrol;
......
1527 1529

  
1528 1530
    case 0x24:	/* STI_ER / STI_DR / XTI_TRACESELECT */
1529 1531
    case 0x28:	/* STI_RX_DR / XTI_RXDATA */
1532
        /* TODO */
1533
        return;
1534

  
1530 1535
    default:
1531 1536
        OMAP_BAD_REG(addr);
1532 1537
        return;

Also available in: Unified diff