89 |
#define MV64460_SDMA_SDC 0x0000 /* Configuration Register */ |
#define MV64460_SDMA_SDC 0x0000 /* Configuration Register */ |
90 |
#define MV64460_SDMA_SDCM 0x0008 /* Command Register */ |
#define MV64460_SDMA_SDCM 0x0008 /* Command Register */ |
91 |
#define MV64460_SDMA_RX_DESC 0x0800 /* RX descriptor */ |
#define MV64460_SDMA_RX_DESC 0x0800 /* RX descriptor */ |
|
#define MV64460_SDMA_RX_BUF_PTR 0x0808 /* Current buffer address ? */ |
|
92 |
#define MV64460_SDMA_SCRDP 0x0810 /* Current RX descriptor */ |
#define MV64460_SDMA_SCRDP 0x0810 /* Current RX descriptor */ |
93 |
#define MV64460_SDMA_TX_DESC 0x0c00 /* TX descriptor */ |
#define MV64460_SDMA_TX_DESC 0x0c00 /* TX descriptor */ |
94 |
#define MV64460_SDMA_SCTDP 0x0c10 /* Current TX desc. pointer */ |
#define MV64460_SDMA_SCTDP 0x0c10 /* Current TX desc. pointer */ |
365 |
m_uint32_t offset,m_uint32_t op_type, |
m_uint32_t offset,m_uint32_t op_type, |
366 |
m_uint64_t *data) |
m_uint64_t *data) |
367 |
{ |
{ |
368 |
struct sdma_channel *chan; |
struct sdma_channel *channel; |
369 |
int id = -1; |
int id = -1; |
370 |
|
|
371 |
/* Access to SDMA channel 0 registers ? */ |
/* Access to SDMA channel 0 registers ? */ |
390 |
if (op_type == MTS_WRITE) |
if (op_type == MTS_WRITE) |
391 |
*data = swap32(*data); |
*data = swap32(*data); |
392 |
|
|
393 |
chan = &d->sdma[id]; |
channel = &d->sdma[id]; |
394 |
|
|
395 |
switch(offset) { |
switch(offset) { |
396 |
case MV64460_SDMA_SDCM: |
case MV64460_SDMA_SDCM: |
397 |
if (op_type == MTS_READ) |
if (op_type == MTS_READ) |
398 |
; //*data = chan->sdcm; |
; //*data = chan->sdcm; |
399 |
else { |
else { |
400 |
chan->sdcm = *data; |
channel->sdcm = *data; |
401 |
|
|
402 |
if (chan->sdcm & MV64460_SDCM_TXD) |
if (channel->sdcm & MV64460_SDCM_TXD) |
403 |
mv64460_sdma_tx_start(d,chan); |
mv64460_sdma_tx_start(d,channel); |
404 |
} |
} |
405 |
break; |
break; |
406 |
|
|
407 |
case MV64460_SDMA_SCRDP: |
case MV64460_SDMA_SCRDP: |
408 |
if (op_type == MTS_READ) |
if (op_type == MTS_READ) |
409 |
*data = chan->scrdp; |
*data = channel->scrdp; |
410 |
else |
else |
411 |
chan->scrdp = *data; |
channel->scrdp = *data; |
412 |
break; |
break; |
413 |
|
|
414 |
case MV64460_SDMA_SCTDP: |
case MV64460_SDMA_SCTDP: |
415 |
if (op_type == MTS_READ) |
if (op_type == MTS_READ) |
416 |
*data = chan->sctdp; |
*data = channel->sctdp; |
417 |
else |
else |
418 |
chan->sctdp = *data; |
channel->sctdp = *data; |
419 |
break; |
break; |
420 |
|
|
421 |
case MV64460_SDMA_SFTDP: |
case MV64460_SDMA_SFTDP: |
422 |
if (op_type == MTS_READ) |
if (op_type == MTS_READ) |
423 |
*data = chan->sftdp; |
*data = channel->sftdp; |
424 |
else |
else |
425 |
chan->sftdp = *data; |
channel->sftdp = *data; |
426 |
break; |
break; |
427 |
|
|
428 |
#if DEBUG_UNKNOWN |
#if DEBUG_UNKNOWN |