
On Sun, 24 Aug 2008 20:36:56 +0200 Rene Herman rene.herman@keyaccess.nl wrote:
On 24-08-08 18:08, Krzysztof Helt wrote:
From: Krzysztof Helt krzysztof.h1@wp.pl
Use the wss_dout function which does not mess shadowed register values during chip probing. Otherwise, user ends up with stupid mixer settings after driver loading.
Signed-off-by: Krzysztof Helt krzysztof.h1@wp.pl
Acked-by: Rene Herman rene.herman@gmail.com
Must say that I only now notice that we're doing that init loop there.
I noticed it on at least three different cards.
I believe it could be better to introduce an inline __snd_wss_out() with just the two outb()s and use that from snd_wss_out() and here directly.
snd_wss_dout() is almost the same. The waiting loop should never trigger there and it is safer in case some write needs few micro-secs to finish.
And with respect to the mb() ... if anywhere, should't that be between the two outb's really?
_From the Documentation/memory-barriers.txt " (*) inX(), outX(): ... They are guaranteed to be fully ordered with respect to each other.
They are not guaranteed to be fully ordered with respect to other types of memory and I/O operation. ... "
No barriers are needed in this case.
Regards, Krzysztof
---------------------------------------------------------------------- Alergia na seks?