@@ 583,8 583,9 @@ audioopen(Chan *c, int omode)
audio.amode |= Aread;
if(audio.i.bufinit == 0)
bufinit(&audio.i);
- audio.i.chan = c;
setempty(&audio.i);
+ audio.i.chan = c;
+ audio.i.dma = dmaalloc(0, 0, 8, 2, SSPRecvDMA, Port4SSP, audiointr, (void*)&audio.o);
}
if (omode & 0x2) {
/* write */
@@ 595,7 596,7 @@ audioopen(Chan *c, int omode)
bufinit(&audio.o);
setempty(&audio.o);
audio.o.chan = c;
- audio.o.dma = dmaalloc(0, 0, 8, 2, AudioDMA, Port4MCP, audiointr, (void*)&audio.o);
+ audio.o.dma = dmaalloc(0, 0, 8, 2, SSPXmitDMA, Port4SSP, audiointr, (void*)&audio.o);
}
qunlock(&audio);
// mxvolume();
@@ 395,62 395,54 @@ sspinit(void) {
static ulong egpiosticky;
-void
-rs232power(int on)
+static void
+egpiobits(ulong bits, int on)
{
if(on)
- egpiosticky |= EGPIO_rs232_power;
+ egpiosticky |= bits;
else
- egpiosticky &= ~EGPIO_rs232_power;
+ egpiosticky &= ~bits;
*egpioreg = egpiosticky;
}
void
+rs232power(int on)
+{
+ egpiobits(EGPIO_rs232_power, on);
+}
+
+void
irpower(int on)
{
- if(on)
- egpiosticky |= EGPIO_ir_power;
- else
- egpiosticky &= ~EGPIO_ir_power;
- *egpioreg = egpiosticky;
+ egpiobits(EGPIO_ir_power, on);
}
void
lcdpower(int on)
{
- if(on)
- egpiosticky |= EGPIO_lcd_3v|EGPIO_lcd_ic_power|EGPIO_lcd_5v|EGPIO_lcd_9v;
- else
- egpiosticky &= ~(EGPIO_lcd_3v|EGPIO_lcd_ic_power|EGPIO_lcd_5v|EGPIO_lcd_9v);
- *egpioreg = egpiosticky;
+ egpiobits(EGPIO_lcd_3v|EGPIO_lcd_ic_power|EGPIO_lcd_5v|EGPIO_lcd_9v, on);
}
void
audiopower(int on)
{
- if(on)
- egpiosticky |= EGPIO_audio_ic_power | EGPIO_codec_reset;
- else
- egpiosticky &= ~(EGPIO_audio_ic_power | EGPIO_codec_reset);
- *egpioreg = egpiosticky;
+ egpiobits(EGPIO_audio_ic_power | EGPIO_codec_reset, on);
}
void
amplifierpower(int on)
{
- if(on)
- egpiosticky |= EGPIO_audio_power;
- else
- egpiosticky &= ~(EGPIO_audio_power);
- *egpioreg = egpiosticky;
+ egpiobits(EGPIO_audio_power, on);
}
void
audiomute(int on)
{
- if(on)
- egpiosticky |= EGPIO_audio_mute;
- else
- egpiosticky &= ~(EGPIO_audio_mute);
- *egpioreg = egpiosticky;
+ egpiobits(EGPIO_audio_mute, on);
+}
+
+void
+flashprogpower(int on)
+{
+ egpiobits(EGPIO_prog_flash, on);
}