summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Jones <davej@codemonkey.org.uk>2003-05-14 06:45:20 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-05-14 06:45:20 -0700
commitfb697abe9dabdef5166a55147ff797f72a312e25 (patch)
tree1688341d0374571ccaa24cda79f38a4679dc29fd
parent3ab340dcc2ed79fc87a236ce0263f4635bc199a6 (diff)
[PATCH] i810 no codec fix.
Syncs up with 2.4
-rw-r--r--sound/oss/i810_audio.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/sound/oss/i810_audio.c b/sound/oss/i810_audio.c
index f17e0cdaea27..bf69d33df0e8 100644
--- a/sound/oss/i810_audio.c
+++ b/sound/oss/i810_audio.c
@@ -66,16 +66,19 @@
*
* This driver is cursed. (Ben LaHaise)
*
+ * ICH 3 caveats
+ * Intel errata #7 for ICH3 IO. We need to disable SMI stuff
+ * when codec probing. [Not Yet Done]
*
* ICH 4 caveats
*
- * The ICH4 has the feature, that the codec ID doesn't have to be
- * congruent with the IO connection.
+ * The ICH4 has the feature, that the codec ID doesn't have to be
+ * congruent with the IO connection.
*
- * Therefore, from driver version 0.23 on, there is a "codec ID" <->
- * "IO register base offset" mapping (card->ac97_id_map) field.
+ * Therefore, from driver version 0.23 on, there is a "codec ID" <->
+ * "IO register base offset" mapping (card->ac97_id_map) field.
*
- * Juergen "George" Sawinski (jsaw)
+ * Juergen "George" Sawinski (jsaw)
*/
#include <linux/module.h>
@@ -640,6 +643,10 @@ static void i810_set_dac_channels(struct i810_state *state, int channel)
int aud_reg;
struct ac97_codec *codec = state->card->ac97_codec[0];
+ /* No codec, no setup */
+ if(codec == NULL)
+ return;
+
aud_reg = i810_ac97_get(codec, AC97_EXTENDED_STATUS);
aud_reg |= AC97_EA_PRI | AC97_EA_PRJ | AC97_EA_PRK;
state->card->ac97_status &= ~(SURR_ON | CENTER_LFE_ON);