Update of /cvsroot/alsa/alsa-kernel/pci/ali5451
In directory sc8-pr-cvs1:/tmp/cvs-serv3064/alsa-kernel/pci/ali5451

Modified Files:
        ali5451.c 
Log Message:
- AC97 code
  - introduced ac97_bus_t structure
  - moved attached codecs to /proc/asound/card?/codec97#? directory
  - merged snd_ac97_modem() to snd_ac97_mixer()
- proc cleanups - removed already initialized variables
- enhanced snd_info_set_text_ops() syntax


Index: ali5451.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/ali5451/ali5451.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- ali5451.c   12 Aug 2003 14:10:14 -0000      1.38
+++ ali5451.c   23 Oct 2003 14:34:53 -0000      1.39
@@ -265,6 +265,7 @@
        unsigned int spurious_irq_count;
        unsigned int spurious_irq_max_delta;
 
+       ac97_bus_t *ac97_bus;
        ac97_t *ac97;
        unsigned short  ac97_ext_id;
        unsigned short  ac97_ext_status;
@@ -1860,6 +1861,12 @@
        ALI5451_SPDIF(SNDRV_CTL_NAME_IEC958("",CAPTURE,SWITCH), 0, 2)
 };
 
+static void snd_ali_mixer_free_ac97_bus(ac97_bus_t *bus)
+{
+       ali_t *codec = snd_magic_cast(ali_t, bus->private_data, return);
+       codec->ac97_bus = NULL;
+}
+
 static void snd_ali_mixer_free_ac97(ac97_t *ac97)
 {
        ali_t *codec = snd_magic_cast(ali_t, ac97->private_data, return);
@@ -1868,16 +1875,23 @@
 
 static int __devinit snd_ali_mixer(ali_t * codec)
 {
+       ac97_bus_t bus;
        ac97_t ac97;
        unsigned int idx;
        int err;
 
+       memset(&bus, 0, sizeof(bus));
+       bus.write = snd_ali_codec_write;
+       bus.read = snd_ali_codec_read;
+       bus.private_data = codec;
+       bus.private_free = snd_ali_mixer_free_ac97_bus;
+       if ((err = snd_ac97_bus(codec->card, &bus, &codec->ac97_bus)) < 0)
+               return err;
+
        memset(&ac97, 0, sizeof(ac97));
-       ac97.write = snd_ali_codec_write;
-       ac97.read = snd_ali_codec_read;
        ac97.private_data = codec;
        ac97.private_free = snd_ali_mixer_free_ac97;
-       if ((err = snd_ac97_mixer(codec->card, &ac97, &codec->ac97)) < 0) {
+       if ((err = snd_ac97_mixer(codec->ac97_bus, &ac97, &codec->ac97)) < 0) {
                snd_printk("ali mixer creating error.\n");
                return err;
        }



-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to