
if the ac97 codec is fixed-rate, ac97_set_rate() will return the
fixed-rate, regardless of what sample rate we tried to set, without
an error.

so, instead of checking for an error after we've set the rate on all
dacs, we need to check that ac97_set_rate() successfully set the rate
we wanted, which may not be exactly the rate the user specified, due to
auich's sample rate scaling.

finally, we need to set the sample rate for the dacs in this order:
lfe, surround, front.  this is necessary because ac97_set_rate()
will return without checking for fixed-rate if the dac is
unsupported.  so, if the lfe dac is set last on a stereo only
fixed-rate codec, then we will not know whether we have a fixed-rate
codec.  all codecs have a front dac, and some codecs may have a
surround dac but not lfe.

discussed with brad@, who noticed that the previous commit was
slightly bogus.

orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars