Skip to content

Commit

Permalink
[ALSA] emu10k1 - Fix kthread handling at resume
Browse files Browse the repository at this point in the history
Don't create emu1010 kthread again at resume if it's already created.
Also make the thread function static.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
  • Loading branch information
Takashi Iwai authored and Mercurial server committed Jan 31, 2008
1 parent c94fa4c commit bd3d1c2
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions sound/pci/emu10k1/emu10k1_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -707,7 +707,8 @@ static int snd_emu1010_load_firmware(struct snd_emu10k1 * emu, const char * file
return 0;
}

int emu1010_firmware_thread(void *data) {
static int emu1010_firmware_thread(void *data)
{
struct snd_emu10k1 * emu = data;
int tmp,tmp2;
int reg;
Expand Down Expand Up @@ -1090,10 +1091,12 @@ static int snd_emu10k1_emu1010_init(struct snd_emu10k1 * emu)
snd_emu1010_fpga_write(emu, EMU_HANA_SPDIF_MODE, 0x10 ); /* SPDIF Format spdif (or 0x11 for aes/ebu) */

/* Start Micro/Audio Dock firmware loader thread */
emu->emu1010.firmware_thread = kthread_create(&emu1010_firmware_thread,
emu,
"emu1010_firmware");
wake_up_process(emu->emu1010.firmware_thread);
if (!emu->emu1010.firmware_thread) {
emu->emu1010.firmware_thread =
kthread_create(emu1010_firmware_thread, emu,
"emu1010_firmware");
wake_up_process(emu->emu1010.firmware_thread);
}

#if 0
snd_emu1010_fpga_link_dst_src_write(emu,
Expand Down Expand Up @@ -1257,7 +1260,7 @@ static int snd_emu10k1_free(struct snd_emu10k1 *emu)
/* Disable 48Volt power to Audio Dock */
snd_emu1010_fpga_write(emu, EMU_HANA_DOCK_PWR, 0 );
}
if (emu->card_capabilities->emu_model)
if (emu->emu1010.firmware_thread)
kthread_stop(emu->emu1010.firmware_thread);
if (emu->memhdr)
snd_util_memhdr_free(emu->memhdr);
Expand Down

0 comments on commit bd3d1c2

Please sign in to comment.