Revert "MGA: Count for cases where DMA header data is not immediately available"
This reverts commit efe9784aad
.
This commit is contained in:
@@ -15,7 +15,6 @@
|
||||
* Copyright 2008-2020 Sarah Walker.
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
@@ -513,8 +512,6 @@ typedef struct mystique_t {
|
||||
pri_header, sec_header,
|
||||
iload_header;
|
||||
|
||||
bool words_expected, sec_words_expected;
|
||||
|
||||
mutex_t *lock;
|
||||
} dma;
|
||||
|
||||
@@ -2667,21 +2664,13 @@ run_dma(mystique_t *mystique)
|
||||
case DMA_STATE_PRI:
|
||||
switch (mystique->dma.primaddress & DMA_MODE_MASK) {
|
||||
case DMA_MODE_REG:
|
||||
if (mystique->dma.pri_state == 0 && !mystique->dma.words_expected) {
|
||||
if (mystique->dma.pri_state == 0) {
|
||||
dma_bm_read(mystique->dma.primaddress & DMA_ADDR_MASK, (uint8_t *) &mystique->dma.pri_header, 4, 4);
|
||||
mystique->dma.primaddress += 4;
|
||||
words_transferred++;
|
||||
}
|
||||
|
||||
if ((mystique->dma.primaddress & DMA_ADDR_MASK) >= (mystique->dma.primend & DMA_ADDR_MASK) && !mystique->dma.words_expected)
|
||||
{
|
||||
/* Wait until more data is available. */
|
||||
mystique->dma.words_expected = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
mystique->dma.words_expected = 0;
|
||||
if ((mystique->dma.pri_header & 0xff) != 0x15) {
|
||||
if ((mystique->dma.pri_header & 0xff) != 0x15 && (mystique->dma.primaddress & DMA_ADDR_MASK) < (mystique->dma.primend & DMA_ADDR_MASK)) {
|
||||
uint32_t val;
|
||||
uint32_t reg_addr;
|
||||
|
||||
@@ -2720,7 +2709,7 @@ run_dma(mystique_t *mystique)
|
||||
case DMA_STATE_SEC:
|
||||
switch (mystique->dma.secaddress & DMA_MODE_MASK) {
|
||||
case DMA_MODE_REG:
|
||||
if (mystique->dma.sec_state == 0 && !mystique->dma.sec_words_expected) {
|
||||
if (mystique->dma.sec_state == 0) {
|
||||
dma_bm_read(mystique->dma.secaddress & DMA_ADDR_MASK, (uint8_t *) &mystique->dma.sec_header, 4, 4);
|
||||
mystique->dma.secaddress += 4;
|
||||
words_transferred++;
|
||||
@@ -2729,14 +2718,6 @@ run_dma(mystique_t *mystique)
|
||||
uint32_t val;
|
||||
uint32_t reg_addr;
|
||||
|
||||
if ((mystique->dma.secaddress & DMA_ADDR_MASK) >= (mystique->dma.secend & DMA_ADDR_MASK) && !mystique->dma.sec_words_expected)
|
||||
{
|
||||
/* Wait until more data is available. */
|
||||
mystique->dma.sec_words_expected = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
mystique->dma.sec_words_expected = 0;
|
||||
dma_bm_read(mystique->dma.secaddress & DMA_ADDR_MASK, (uint8_t *) &val, 4, 4);
|
||||
mystique->dma.secaddress += 4;
|
||||
|
||||
|
Reference in New Issue
Block a user