Re: Oops in set_spdif_output in i810_audio

Herbert Xu
2005-04-04T08:21:43Z

SuD Alex <sud@latinsud.com> wrote:
>
> * It seems to me that it detects only 1 card with 1 only codec which is
> the sound card (sound works if i avoid the null pointer oops). So one of
> the problems is the wrong detection.
> Googling i found that jgarzik already got a patch for this
> (ac97_codec.c:158):
> + {0x43585430, "CXT48", &default_ops,
> AC97_DELUDED_MODEM },

Can you please check if this patch works? It's what ALSA does.

Thanks,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
===== sound/oss/ac97_codec.c 1.24 vs edited =====
--- 1.24/sound/oss/ac97_codec.c 2005-03-08 15:41:36 +11:00
+++ edited/sound/oss/ac97_codec.c 2005-04-04 16:07:11 +10:00
@@ -721,14 +721,15 @@

static int ac97_check_modem(struct ac97_codec *codec)
{
+ unsigned int eid;
+
/* Check for an AC97 1.0 soft modem (ID1) */
if(codec->codec_read(codec, AC97_RESET) & 2)
return 1;
/* Check for an AC97 2.x soft modem */
codec->codec_write(codec, AC97_EXTENDED_MODEM_ID, 0L);
- if(codec->codec_read(codec, AC97_EXTENDED_MODEM_ID) & 1)
- return 1;
- return 0;
+ eid = codec->codec_read(codec, AC97_EXTENDED_MODEM_ID);
+ return eid != 0xffff && (eid & 1);
}