Hi,
I have investigated a crash/kernel thread lockup when Juli@ is switched to external SPDIF clock and the incoming SPDIF stream changes samplerate. The problem appears to occur in the timed thread in charge of reading incoming samplerate and acting upon its change.
The problem disappears with the following patch:
diff --git a/sound/i2c/other/ak4114.c b/sound/i2c/other/ak4114.c index c7f5633..68bb326 100644 --- a/sound/i2c/other/ak4114.c +++ b/sound/i2c/other/ak4114.c @@ -154,7 +154,7 @@ void snd_ak4114_reinit(struct ak4114 *chip) { chip->init = 1; mb(); - flush_delayed_work(&chip->work); + //flush_delayed_work(&chip->work); ak4114_init_regs(chip); /* bring up statistics / event queing */ chip->init = 0;
I am afraid I do not know enough about kernel workqueues to determine whether this "fix" is OK.
Interestingly, the almost identical driver ak4113.c for a very similar card Infrasonic Quartet (ice1724/quartet.c) does not suffer from this problem (tested now).
Thanks a lot for your opinion.
Best regards,
Pavel Hofman.