Some AD1848 cleanups I forgot
This commit is contained in:
@@ -24,32 +24,22 @@
|
|||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int index;
|
int index;
|
||||||
uint8_t regs[32]; /* 16 original + 16 CS4231A extensions */
|
uint8_t regs[32], status; /* 16 original registers + 16 CS4231A extensions */
|
||||||
uint8_t status;
|
|
||||||
|
|
||||||
int trd;
|
int trd, mce, count;
|
||||||
int mce;
|
|
||||||
|
|
||||||
int count;
|
int16_t out_l, out_r;
|
||||||
|
|
||||||
int16_t out_l, out_r;
|
|
||||||
|
|
||||||
double cd_vol_l, cd_vol_r;
|
double cd_vol_l, cd_vol_r;
|
||||||
|
|
||||||
int enable;
|
int enable, irq, dma, freq;
|
||||||
|
|
||||||
int irq, dma;
|
pc_timer_t timer_count;
|
||||||
|
uint64_t timer_latch;
|
||||||
int freq;
|
|
||||||
|
|
||||||
pc_timer_t timer_count;
|
|
||||||
uint64_t timer_latch;
|
|
||||||
|
|
||||||
int16_t buffer[SOUNDBUFLEN * 2];
|
int16_t buffer[SOUNDBUFLEN * 2];
|
||||||
int pos;
|
int pos, type;
|
||||||
|
|
||||||
int type;
|
|
||||||
} ad1848_t;
|
} ad1848_t;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -40,14 +40,14 @@ static double ad1848_vols_5bits_aux_gain[32];
|
|||||||
void
|
void
|
||||||
ad1848_setirq(ad1848_t *ad1848, int irq)
|
ad1848_setirq(ad1848_t *ad1848, int irq)
|
||||||
{
|
{
|
||||||
ad1848->irq = irq;
|
ad1848->irq = irq;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ad1848_setdma(ad1848_t *ad1848, int dma)
|
ad1848_setdma(ad1848_t *ad1848, int dma)
|
||||||
{
|
{
|
||||||
ad1848->dma = dma;
|
ad1848->dma = dma;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -90,8 +90,8 @@ ad1848_write(uint16_t addr, uint8_t val, void *priv)
|
|||||||
ad1848->index = val & 0x1f; /* cs4231a extended mode enabled */
|
ad1848->index = val & 0x1f; /* cs4231a extended mode enabled */
|
||||||
else
|
else
|
||||||
ad1848->index = val & 0x0f; /* ad1848/cs4248 mode TODO: some variants/clones DO NOT mirror, just ignore the writes? */
|
ad1848->index = val & 0x0f; /* ad1848/cs4248 mode TODO: some variants/clones DO NOT mirror, just ignore the writes? */
|
||||||
ad1848->trd = val & 0x20;
|
ad1848->trd = val & 0x20;
|
||||||
ad1848->mce = val & 0x40;
|
ad1848->mce = val & 0x40;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
@@ -109,7 +109,7 @@ ad1848_write(uint16_t addr, uint8_t val, void *priv)
|
|||||||
case 7: freq /= 2560; break;
|
case 7: freq /= 2560; break;
|
||||||
}
|
}
|
||||||
ad1848->freq = freq;
|
ad1848->freq = freq;
|
||||||
ad1848->timer_latch = (uint64_t)((double)TIMER_USEC * (1000000.0 / (double)ad1848->freq));
|
ad1848->timer_latch = (uint64_t) ((double) TIMER_USEC * (1000000.0 / (double) ad1848->freq));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 9:
|
case 9:
|
||||||
|
|||||||
Reference in New Issue
Block a user