forked from Minki/linux
ALSA: emu10k1: handle dock disconnects
When the dock on an E-mu 1010 card is disconnected, all outputs get muted by the hardware. Add logic to detect a disconnect and unmute. Signed-off-by: Michael Gernoth <michael@gernoth.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
3e21a19d1d
commit
fa863b2d5e
@ -707,6 +707,7 @@ static int emu1010_firmware_thread(void *data)
|
|||||||
{
|
{
|
||||||
struct snd_emu10k1 *emu = data;
|
struct snd_emu10k1 *emu = data;
|
||||||
u32 tmp, tmp2, reg;
|
u32 tmp, tmp2, reg;
|
||||||
|
u32 last_reg = 0;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
@ -782,7 +783,15 @@ static int emu1010_firmware_thread(void *data)
|
|||||||
msleep(10);
|
msleep(10);
|
||||||
/* Unmute all. Default is muted after a firmware load */
|
/* Unmute all. Default is muted after a firmware load */
|
||||||
snd_emu1010_fpga_write(emu, EMU_HANA_UNMUTE, EMU_UNMUTE);
|
snd_emu1010_fpga_write(emu, EMU_HANA_UNMUTE, EMU_UNMUTE);
|
||||||
|
} else if (!reg && last_reg) {
|
||||||
|
/* Audio Dock removed */
|
||||||
|
dev_info(emu->card->dev,
|
||||||
|
"emu1010: Audio Dock detached\n");
|
||||||
|
/* Unmute all */
|
||||||
|
snd_emu1010_fpga_write(emu, EMU_HANA_UNMUTE, EMU_UNMUTE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
last_reg = reg;
|
||||||
}
|
}
|
||||||
dev_info(emu->card->dev, "emu1010: firmware thread stopping\n");
|
dev_info(emu->card->dev, "emu1010: firmware thread stopping\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user