Workaround missing interrupts - dma_reset on them (when timeout occurse).
When you start tracker and produce some heavy disk activity, output interrupts becomes lost and I don't know how to solve it finally. Newly added code at least allows recovery after timeout.
This commit is contained in:
parent
2211711822
commit
0969410624
@ -357,6 +357,7 @@ DMAbuf_getrdbuffer (int dev, char **buf, int *len, int dontblock)
|
||||
if (TIMED_OUT (dev_sleeper[dev], dev_sleep_flag[dev]))
|
||||
{
|
||||
printk ("Sound: DMA timed out - IRQ/DRQ config error?\n");
|
||||
dma_reset (dev);
|
||||
err = EIO;
|
||||
SET_ABORT_FLAG (dev_sleeper[dev], dev_sleep_flag[dev]);
|
||||
}
|
||||
@ -607,6 +608,7 @@ DMAbuf_getwrbuffer (int dev, char **buf, int *size, int dontblock)
|
||||
if (TIMED_OUT (dev_sleeper[dev], dev_sleep_flag[dev]))
|
||||
{
|
||||
printk ("Sound: DMA timed out - IRQ/DRQ config error?\n");
|
||||
dma_reset (dev);
|
||||
err = EIO;
|
||||
abort = 1;
|
||||
SET_ABORT_FLAG (dev_sleeper[dev], dev_sleep_flag[dev]);
|
||||
|
Loading…
Reference in New Issue
Block a user