From: Eero Nurkkala ext-eero.nurkkala@nokia.com
This RFC set addresses the existence of io_mutex. A safer method is introduced - but it changes the semantics quite a bit, as now all drivers calling snd_soc_update_bits() will need to make sure the codec mutex is taken.
snd_soc_test_bits() - function does not need to take the io_mutex at all - all calls to it have the codec mutex already taken.
Warning: Not even compile tested!
Possible drawback:
dapm_power_widgets() may hold the codec mutex for a few ms, which may be too long; meanwhile, calls to snd_soc_update_bits() are stalled.
Of course we wish optimal performance and maybe the codec mutex should only be taken for such registers that contain both volume and dapm bits...
Ideas, comments, all welcome.