this using this fix, the driver is usable with non-rt kernels. the card initialization is moved from the prepare to the hw_params callback.
I don't care much and will accept the change like this (after fixing some issues below), but still wonder why moving to hw_params fixes the issue...
well, i suppose, i am the only user of this driver anyway (at least nobody experienced this issue, which i have been seen on multiple machines). doing some more tests yesteday evening, it seems that this patch fixes the startup issue only in about 90% of all cases. my guess is that it is some kind of timing issue in the communication between driver and microcontroller. most likely because playback and capture devices are started separately.
unfortunately, the error code reported by the uc is not specified in the documentation.
- snd_printd(LXP "allocating pipe for %d channels\n", channels);
- snd_printk(LXP "allocating pipe for %d channels, %lu period size\n",
channels, period_size);
Please don't change the debug message to a normal message. This would appear way too likely. Even I think snd_printdd() would be more appropriate there, since snd_printd() is enabled on most distros.
will prepare a separate patch, when i am back in the studio ...
tim