|
@@ -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;
|
|
@@ -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,
|
|
@@ -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);
|