Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/dev/i2o



> > (POLL() macro with bus_dmamap_sync() seems also wrong..)
> 
> Hum, it looks correct to me. We are after the device wrote something
> to RAM, so it's a POSTREAD operation, isn't it ?

Strictly, if DMA is still on-going even after DMA'ed memory is polled,
we also have to call PREREAD sync every time.

        for (xi = xxx; xi; xi--) {
                uint32_t temp;
                bus_dmamap_sync(..., POSTREAD|POSTWRITE);
                temp = le32toh(*sw);
                if (temp == I2O_EXEC_foo);
                        break; 
                bus_dmamap_sync(..., PREREAD);
        }

---
Izumi Tsutsui


Home | Main Index | Thread Index | Old Index