Completely re-initialize DMA settings
authorIan Romanick <idr@us.ibm.com>
Thu, 9 Jun 2005 21:18:56 +0000 (21:18 +0000)
committerIan Romanick <idr@us.ibm.com>
Thu, 9 Jun 2005 21:18:56 +0000 (21:18 +0000)
commitdfc650bd80da28b430b65cd26a1bf418074e2086
treef24efaab08c2767edcc0049939b91edce832f42f
parent1252890ff1d62544a250560f0c2985454bf888b5
Completely re-initialize DMA settings
There were two problems. First, the 'warp' and 'primary' pointers weren't
    cleared, so mga_do_cleanup_dma, which gets called multiple times, would
    try to ioremapfree them multiple times. This resulted in the new error
    messages to syslog. The second problem was the, since the dev_private
    structure isn't reallocated and cleaned out in mga_do_init_dma, when
    the server is reloaded idle-waits would wait for impossible values.
I have given this patch some more riggorous testing. This includes:
- Load module, start server, run GL app, stop server, unload module.
- Load module, start server, run GL app, stop server, unload module, reload
    module, restart server, run GL app.
- Load module, start server, run GL app, stop server, restart server, run
    GL app, stop server, unload module.
In all three cases, everything worked as expected. Please let me know if
    there are any further regressions with this patch.
Xorg bug: 3408 Reported by: Chris Rankin
bsd-core/mga_drv.c
linux-core/mga_drv.c
shared-core/mga_dma.c
shared-core/mga_drv.h
shared-core/mga_irq.c