[alsa-devel] ESI Juli@ crash with external clock switch - patch

Pavel Hofman pavel.hofman at ivitera.com
Sun Jan 11 14:58:12 CET 2015


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.


More information about the Alsa-devel mailing list